summaryrefslogtreecommitdiff
path: root/pcr
diff options
context:
space:
mode:
Diffstat (limited to 'pcr')
-rw-r--r--pcr/9mount/PKGBUILD36
-rw-r--r--pcr/9mount/fix-checks.patch24
-rw-r--r--pcr/a2jmidid/PKGBUILD33
-rw-r--r--pcr/a2jmidid/a2jmidid-dso-pthread.patch20
-rw-r--r--pcr/acr/PKGBUILD22
-rw-r--r--pcr/ahcpd/PKGBUILD27
-rw-r--r--pcr/amsynth/PKGBUILD25
-rw-r--r--pcr/amsynth/amsynth.install11
-rw-r--r--pcr/android-udev/PKGBUILD26
-rw-r--r--pcr/android-udev/android-udev.install12
-rw-r--r--pcr/anyremote/PKGBUILD24
-rw-r--r--pcr/anyremote/anyremote.install6
-rw-r--r--pcr/aqsis/PKGBUILD58
-rw-r--r--pcr/aqsis/aqsis.install14
-rw-r--r--pcr/aseprite/PKGBUILD33
-rw-r--r--pcr/aseprite/aseprite.desktop9
-rw-r--r--pcr/asterisk/PKGBUILD95
-rw-r--r--pcr/asterisk/asterisk.install15
-rw-r--r--pcr/asterisk/asterisk.logrotated10
-rw-r--r--pcr/asterisk/asterisk.service20
-rw-r--r--pcr/asterisk/asterisk.tmpfile1
-rw-r--r--pcr/audio-entropyd/PKGBUILD29
-rw-r--r--pcr/audio-entropyd/audio-entropyd.service10
-rw-r--r--pcr/aurvote/PKGBUILD18
-rw-r--r--pcr/aurvote/aurvote193
-rw-r--r--pcr/auto-complete/PKGBUILD30
-rw-r--r--pcr/auto-complete/auto-complete.install21
-rw-r--r--pcr/azr3-jack/PKGBUILD24
-rw-r--r--pcr/babeld/PKGBUILD32
-rw-r--r--pcr/babeld/babeld.install18
-rw-r--r--pcr/bambus/PKGBUILD26
-rw-r--r--pcr/bamf2/PKGBUILD52
-rw-r--r--pcr/barnyard2/PKGBUILD44
-rw-r--r--pcr/bashmount/PKGBUILD37
-rw-r--r--pcr/bashmount/bashmount.install9
-rw-r--r--pcr/batctl/PKGBUILD25
-rw-r--r--pcr/bibletime/PKGBUILD39
-rw-r--r--pcr/bibletime/bibletime.install13
-rw-r--r--pcr/bison++/PKGBUILD51
-rw-r--r--pcr/blender-addon-ogre/PKGBUILD31
-rw-r--r--pcr/bristol/PKGBUILD32
-rw-r--r--pcr/bup/PKGBUILD35
-rw-r--r--pcr/cambozola/PKGBUILD26
-rw-r--r--pcr/cegui-0.5/CEGUIString.h5603
-rw-r--r--pcr/cegui-0.5/PKGBUILD41
-rw-r--r--pcr/cegui-0.6/PKGBUILD55
-rw-r--r--pcr/cgdb/PKGBUILD21
-rw-r--r--pcr/cherokee/PKGBUILD100
-rw-r--r--pcr/cherokee/cherokee.logrotate9
-rw-r--r--pcr/cherokee/cherokee.rc65
-rw-r--r--pcr/cherokee/cherokee.service9
-rw-r--r--pcr/chm2pdf/PKGBUILD22
-rw-r--r--pcr/cinclude2dot/PKGBUILD27
-rw-r--r--pcr/cinepaint-lts/LICENSE25
-rw-r--r--pcr/cinepaint-lts/PKGBUILD62
-rw-r--r--pcr/cinepaint-lts/cinepaint-libpng15.patch446
-rw-r--r--pcr/cinepaint-lts/cinepaint.install11
-rw-r--r--pcr/cjdns-git/PKGBUILD77
-rw-r--r--pcr/cjdns-git/cjdns-git.install21
-rw-r--r--pcr/cl-ppcre/LICENSE25
-rw-r--r--pcr/cl-ppcre/PKGBUILD41
-rw-r--r--pcr/cl-ppcre/cl-ppcre.install73
-rw-r--r--pcr/clx-git/PKGBUILD71
-rw-r--r--pcr/clx-git/README.licensing4
-rw-r--r--pcr/clx-git/clx.install76
-rw-r--r--pcr/coin/PKGBUILD59
-rw-r--r--pcr/collada-dom/PKGBUILD48
-rw-r--r--pcr/command-not-found/PKGBUILD32
-rw-r--r--pcr/command-not-found/install13
-rw-r--r--pcr/conky-control/PKGBUILD35
-rw-r--r--pcr/conky-control/conky-control.install17
-rw-r--r--pcr/conky-lua/PKGBUILD54
-rw-r--r--pcr/cpptest/PKGBUILD24
-rw-r--r--pcr/cpuminer/PKGBUILD32
-rw-r--r--pcr/cpuminer/libcurl.m4251
-rw-r--r--pcr/cronic/PKGBUILD22
-rw-r--r--pcr/culmus-latex/PKGBUILD21
-rw-r--r--pcr/culmus-latex/culmus-latex.install22
-rw-r--r--pcr/culmus/PKGBUILD44
-rw-r--r--pcr/culmus/culmus-0.121-fontconfig_fix.patch203
-rw-r--r--pcr/culmus/culmus.install41
-rw-r--r--pcr/cw/PKGBUILD46
-rw-r--r--pcr/cw/cw.install26
-rw-r--r--pcr/cw/cw.patch78
-rw-r--r--pcr/czmq/PKGBUILD27
-rw-r--r--pcr/d0_blind_id-git/PKGBUILD44
-rw-r--r--pcr/darcsver/PKGBUILD26
-rw-r--r--pcr/debhelper/PKGBUILD29
-rw-r--r--pcr/debootstrap-libre/PKGBUILD53
-rw-r--r--pcr/debootstrap-libre/debootstrap.install14
-rw-r--r--pcr/debootstrap-libre/gnewsense194
-rw-r--r--pcr/debootstrap-libre/trisquel199
-rw-r--r--pcr/dianara/PKGBUILD51
-rw-r--r--pcr/dianara/dianara.install12
-rw-r--r--pcr/din/PKGBUILD38
-rw-r--r--pcr/din/din.install12
-rw-r--r--pcr/dirt/PKGBUILD23
-rw-r--r--pcr/django-cms/PKGBUILD26
-rw-r--r--pcr/django-extensions/PKGBUILD39
-rw-r--r--pcr/django-social-auth/PKGBUILD22
-rw-r--r--pcr/django-tagging/PKGBUILD20
-rw-r--r--pcr/doxymacs/PKGBUILD26
-rw-r--r--pcr/doxymacs/doxymacs.install19
-rw-r--r--pcr/dratmenu/PKGBUILD36
-rw-r--r--pcr/dropbear/PKGBUILD46
-rw-r--r--pcr/dropbear/dropbear-conf.d15
-rw-r--r--pcr/dropbear/dropbear-rc.d88
-rw-r--r--pcr/drumgizmo/PKGBUILD26
-rw-r--r--pcr/drumkv1/PKGBUILD30
-rw-r--r--pcr/drumkv1/drumkv1.install13
-rw-r--r--pcr/dsh/PKGBUILD19
-rw-r--r--pcr/dswm/PKGBUILD41
-rw-r--r--pcr/dswm/dswm.install21
-rw-r--r--pcr/eigen3/PKGBUILD28
-rw-r--r--pcr/emacs-bzr/PKGBUILD93
-rw-r--r--pcr/emacs-bzr/emacs-bzr.install32
-rw-r--r--pcr/emacs-color-theme/PKGBUILD48
-rw-r--r--pcr/emacs-color-theme/emacs-color-theme.install9
-rw-r--r--pcr/emacs-color-theme/fix-build.patch19
-rw-r--r--pcr/emacs-color-theme/gnus-bug.diff28
-rw-r--r--pcr/emacs-elib/PKGBUILD51
-rw-r--r--pcr/emacs-elib/elib-deprecation.patch461
-rw-r--r--pcr/emacs-elib/emacs-elib.install34
-rw-r--r--pcr/emacs-jabber/PKGBUILD26
-rw-r--r--pcr/emacs-jabber/jabber.el.install27
-rw-r--r--pcr/emacs-js2-mode/PKGBUILD20
-rw-r--r--pcr/emacs-lucid/emacs-24.3-giflib5.patch26
-rw-r--r--pcr/emacs-lucid/emacs.install32
-rw-r--r--pcr/emacs-magit-git/PKGBUILD45
-rw-r--r--pcr/emacs-magit-git/emacs-magit-git.install30
-rw-r--r--pcr/emacs-mailcrypt/PKGBUILD32
-rw-r--r--pcr/emacs-mailcrypt/destdir.patch41
-rw-r--r--pcr/emacs-mailcrypt/mailcrypt.install22
-rw-r--r--pcr/emacs-newlisp/PKGBUILD24
-rw-r--r--pcr/emacs-newlisp/emacs-newlisp.install26
-rw-r--r--pcr/emacs-org-mode-ravel-git/PKGBUILD52
-rw-r--r--pcr/emacs-org-mode/PKGBUILD39
-rw-r--r--pcr/emacs-org-mode/emacs-org-mode.install62
-rw-r--r--pcr/emacs-tuareg-mode/PKGBUILD29
-rw-r--r--pcr/emacs-tuareg-mode/emacs-tuareg-mode.install17
-rw-r--r--pcr/emhacks/PKGBUILD33
-rw-r--r--pcr/emhacks/emhacks.install21
-rw-r--r--pcr/etckeeper/PKGBUILD42
-rw-r--r--pcr/etckeeper/etckeeper-archlinux.conf38
-rw-r--r--pcr/etckeeper/etckeeper-pacman.patch9
-rw-r--r--pcr/eterm/PKGBUILD39
-rw-r--r--pcr/evolution-mapi/PKGBUILD35
-rw-r--r--pcr/facter/PKGBUILD30
-rw-r--r--pcr/ffingerd/PKGBUILD27
-rw-r--r--pcr/ffingerd/finger.xinetd8
-rw-r--r--pcr/filemq/PKGBUILD34
-rw-r--r--pcr/fpdns/PKGBUILD28
-rw-r--r--pcr/frame/PKGBUILD32
-rw-r--r--pcr/freeipmi/PKGBUILD49
-rw-r--r--pcr/freetuxtv/PKGBUILD24
-rw-r--r--pcr/fsniper/PKGBUILD32
-rw-r--r--pcr/fwsnort/PKGBUILD44
-rw-r--r--pcr/fwsnort/install_pl.patch27
-rw-r--r--pcr/galera/PKGBUILD29
-rw-r--r--pcr/ganglia/PKGBUILD78
-rw-r--r--pcr/ganglia/ganglia.install24
-rw-r--r--pcr/ganglia/gmetad.service.in11
-rw-r--r--pcr/ganglia/gmond.service.in9
-rw-r--r--pcr/gcc-gcj/PKGBUILD83
-rw-r--r--pcr/gcc-gcj/gcc-gcj.install20
-rw-r--r--pcr/gcc-gcj/gcc_pure64.patch26
-rwxr-xr-xpcr/gcc-gcj/libjava-sjlj.dpatch65
-rw-r--r--pcr/gcc-lts/PKGBUILD299
-rw-r--r--pcr/gcc-lts/gcc-ada.install20
-rw-r--r--pcr/gcc-lts/gcc-fortran.install16
-rw-r--r--pcr/gcc-lts/gcc-go.install20
-rw-r--r--pcr/gcc-lts/gcc-libs.install16
-rw-r--r--pcr/gcc-lts/gcc.install20
-rw-r--r--pcr/geis/PKGBUILD33
-rw-r--r--pcr/gens-gs/PKGBUILD49
-rw-r--r--pcr/gens-gs/gens-gtk.patch187
-rw-r--r--pcr/gimp-art/PKGBUILD105
-rw-r--r--pcr/gimp-art/gimp-splash-artwork.license13
-rw-r--r--pcr/gimp-art/gimp-splash-artwork.pngbin0 -> 375245 bytes
-rw-r--r--pcr/gimp-art/gimp.install12
-rw-r--r--pcr/gimp-pcr/PKGBUILD58
-rw-r--r--pcr/gimp-pcr/gimp.install12
-rw-r--r--pcr/gimp-pcr/gnu.gpl19
-rw-r--r--pcr/gimp-pcr/uri-backend-libcurl.patch77
-rw-r--r--pcr/ginn/PKGBUILD21
-rw-r--r--pcr/git-remote-mediawiki/PKGBUILD31
-rw-r--r--pcr/gitflow/PKGBUILD34
-rw-r--r--pcr/glance/PKGBUILD62
-rw-r--r--pcr/gloobus-preview-bzr/PKGBUILD73
-rw-r--r--pcr/gloobus-preview-bzr/gloobus-preview-bzr.install28
-rw-r--r--pcr/gmqcc-git/PKGBUILD53
-rw-r--r--pcr/gmusicbrowser/PKGBUILD45
-rw-r--r--pcr/gmusicbrowser/gmusicbrowser.install18
-rw-r--r--pcr/gnome-boxes-libre/PKGBUILD44
-rw-r--r--pcr/gnome-boxes-libre/free-distros.patch11
-rw-r--r--pcr/gnome-boxes-libre/gnome-boxes.install17
-rw-r--r--pcr/gnome-boxes-libre/logos.patch39
-rw-r--r--pcr/gnome-rdp/PKGBUILD46
-rw-r--r--pcr/gnome-rdp/appindicator.patch249
-rw-r--r--pcr/gnomeradio/PKGBUILD49
-rw-r--r--pcr/gnomeradio/gnomeradio.install11
-rw-r--r--pcr/gnucash-docs/PKGBUIDL1
-rw-r--r--pcr/gnucash-docs/PKGBUILD28
-rw-r--r--pcr/gnucash-docs/gnucash-docs.install20
-rw-r--r--pcr/gnuhealth/PKGBUILD77
-rw-r--r--pcr/gnuit/PKGBUILD30
-rw-r--r--pcr/gnuit/gnuit.install16
-rw-r--r--pcr/gnun/PKGBUILD31
-rw-r--r--pcr/gnuplot-py/PKGBUILD23
-rw-r--r--pcr/grail/PKGBUILD34
-rw-r--r--pcr/grass/PKGBUILD138
-rw-r--r--pcr/grass/grass-python2.patch327
-rw-r--r--pcr/grass/grass-tk86-fix.patch11
-rw-r--r--pcr/grass/grass.conf1
-rw-r--r--pcr/grass/grass.install26
-rw-r--r--pcr/grass/grass.sh4
-rw-r--r--pcr/gstreamer-hplugins/PKGBUILD30
-rw-r--r--pcr/gtk-theme-numix/PKGBUILD21
-rw-r--r--pcr/gtkmm-utils/PKGBUILD27
-rw-r--r--pcr/gtkmm-utils/gtkmm-utils-glib.diff25
-rw-r--r--pcr/gtkpacman/PKGBUILD30
-rw-r--r--pcr/h264enc/PKGBUILD35
-rw-r--r--pcr/h264enc/h264enc.install9
-rw-r--r--pcr/hexter/PKGBUILD28
-rw-r--r--pcr/hexter/hexter4
-rw-r--r--pcr/hiawatha/PKGBUILD117
-rw-r--r--pcr/hiawatha/cdcatalog.xml212
-rw-r--r--pcr/hiawatha/cdcatalog.xslt24
-rw-r--r--pcr/hiawatha/hiawatha.conf.sample114
-rw-r--r--pcr/hiawatha/hiawatha.install37
-rw-r--r--pcr/hiawatha/hiawatha.service16
-rwxr-xr-xpcr/higan-gtk/PKGBUILD73
-rwxr-xr-xpcr/higan-gtk/higan13
-rwxr-xr-xpcr/higan-gtk/higan.desktop8
-rwxr-xr-xpcr/higan-gtk/purify.desktop8
-rwxr-xr-xpcr/higan-qt/PKGBUILD79
-rwxr-xr-xpcr/higan-qt/higan13
-rwxr-xr-xpcr/higan-qt/higan.desktop8
-rwxr-xr-xpcr/higan-qt/purify.desktop8
-rw-r--r--pcr/hiredis/ChangeLog4
-rw-r--r--pcr/hiredis/PKGBUILD33
-rw-r--r--pcr/ibus-bogo/PKGBUILD55
-rw-r--r--pcr/ibus-bogo/install40
-rw-r--r--pcr/idjc/PKGBUILD41
-rw-r--r--pcr/idjc/idjc.install11
-rw-r--r--pcr/idjc/idjc_0.8.4_configure.patch12
-rw-r--r--pcr/ii/PKGBUILD30
-rw-r--r--pcr/imagemagick-srv/PKGBUILD80
-rw-r--r--pcr/imagemagick-srv/perlmagick.rpath.patch11
-rw-r--r--pcr/inadyn-opendns/PKGBUILD32
-rw-r--r--pcr/inadyn-opendns/inadyn-opendns.install17
-rw-r--r--pcr/inadyn-opendns/inadyn.rc-script38
-rw-r--r--pcr/initng-git/PKGBUILD51
-rw-r--r--pcr/initng-git/fixes.patch31
-rw-r--r--pcr/inspircd/PKGBUILD68
-rw-r--r--pcr/inspircd/inspircd.install15
-rw-r--r--pcr/inspircd/inspircd.rcd54
-rw-r--r--pcr/inspircd/inspircd.service17
-rw-r--r--pcr/ipmitool/PKGBUILD18
-rw-r--r--pcr/ipmiutil/PKGBUILD27
-rw-r--r--pcr/ipycli-git/PKGBUILD56
-rw-r--r--pcr/irssi-xmpp/PKGBUILD22
-rw-r--r--pcr/jack-rack/PKGBUILD34
-rw-r--r--pcr/jdee/PKGBUILD49
-rw-r--r--pcr/jdee/jdee-build.el8
-rw-r--r--pcr/jdee/jdee.install54
-rw-r--r--pcr/jitsi/drop-open-term-on-index-jn-html.patch6
-rw-r--r--pcr/jitsi/jitsi.desktop10
-rw-r--r--pcr/jitsi/jitsi.sh17
-rw-r--r--pcr/kamailio/PKGBUILD36
-rw-r--r--pcr/knot/PKGBUILD31
-rw-r--r--pcr/kompozer/NS_IMETHOD_i686.patch11
-rw-r--r--pcr/kompozer/PKGBUILD69
-rw-r--r--pcr/kompozer/any_kernel_26_plus.patch31
-rw-r--r--pcr/kompozer/gcc46_default_ctors.patch22
-rw-r--r--pcr/kompozer/kompozer-libpng14.patch17
-rw-r--r--pcr/kompozer/kompozer-libpng15.patch64
-rw-r--r--pcr/kompozer/kompozer.desktop11
-rw-r--r--pcr/kompozer/kompozer_gcc_4.7.patch107
-rw-r--r--pcr/kompozer/mozconfig.patch142
-rw-r--r--pcr/lcmc/PKGBUILD39
-rw-r--r--pcr/lcmc/lcmc.desktop10
-rw-r--r--pcr/lessc/PKGBUILD29
-rw-r--r--pcr/libast/LICENSE.txt21
-rw-r--r--pcr/libast/PKGBUILD33
-rw-r--r--pcr/libav/PKGBUILD110
-rw-r--r--pcr/libcacard/PKGBUILD29
-rw-r--r--pcr/libcgroup/PKGBUILD57
-rw-r--r--pcr/libcgroup/cgconfig.service17
-rw-r--r--pcr/libcgroup/cgrules.service16
-rw-r--r--pcr/libcgroup/libcgroup.install11
-rw-r--r--pcr/libdrm-nvfx/COPYING48
-rw-r--r--pcr/libdrm-nvfx/PKGBUILD54
-rw-r--r--pcr/libdshconfig/PKGBUILD20
-rw-r--r--pcr/libfreexl/PKGBUILD21
-rw-r--r--pcr/libglu-git/PKGBUILD52
-rw-r--r--pcr/libibus/PKGBUILD44
-rw-r--r--pcr/libixp-hg/PKGBUILD38
-rw-r--r--pcr/libnatpmp-from-social-repo/PKGBUILD29
-rw-r--r--pcr/libnatpmp/PKGBUILD30
-rw-r--r--pcr/libosinfo-libre/PKGBUILD63
-rw-r--r--pcr/libosinfo-libre/data.patch137
-rw-r--r--pcr/libosinfo-libre/free-distros.patch123
-rw-r--r--pcr/libosinfo-libre/po.patch34
-rw-r--r--pcr/libosinfo-libre/test.patch87
-rw-r--r--pcr/libowfat/PKGBUILD30
-rw-r--r--pcr/libowfat/libowfat.install39
-rw-r--r--pcr/libpng12/PKGBUILD48
-rw-r--r--pcr/libpurple-minimal/PKGBUILD46
-rw-r--r--pcr/libqb/PKGBUILD38
-rw-r--r--pcr/libqinfinity/PKGBUILD27
-rw-r--r--pcr/libquvi-scripts-current/PKGBUILD28
-rw-r--r--pcr/librevpn-git/PKGBUILD145
-rw-r--r--pcr/librevpn/PKGBUILD86
-rw-r--r--pcr/libshout-idjc/PKGBUILD25
-rw-r--r--pcr/libspatialite/PKGBUILD24
-rw-r--r--pcr/libspnav/Makefile.in.diff19
-rw-r--r--pcr/libspnav/PKGBUILD24
-rw-r--r--pcr/libsquish-svn/LICENSE24
-rw-r--r--pcr/libsquish-svn/PKGBUILD35
-rw-r--r--pcr/libtool-lts/PKGBUILD44
-rw-r--r--pcr/libtool-lts/libtool.install20
-rw-r--r--pcr/libtxc_dxtn/PKGBUILD29
-rw-r--r--pcr/libubox/PKGBUILD32
-rw-r--r--pcr/liburcu/PKGBUILD22
-rw-r--r--pcr/libwww-hg/PKGBUILD36
-rw-r--r--pcr/lightspark/PKGBUILD33
-rw-r--r--pcr/lightspark/lightspark.install12
-rw-r--r--pcr/lilo/PKGBUILD47
-rw-r--r--pcr/lilo/lilo.conf25
-rw-r--r--pcr/lilo/lilo.install5
-rw-r--r--pcr/litecoin-qt/PKGBUILD36
-rw-r--r--pcr/litecoin-qt/litecoin-qt.desktop12
-rw-r--r--pcr/litecoin-qt/litecoin-qt.install11
-rw-r--r--pcr/log4c/PKGBUILD22
-rw-r--r--pcr/log4cxx/PKGBUILD24
-rw-r--r--pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch38
-rw-r--r--pcr/lostfiles/PKGBUILD17
-rw-r--r--pcr/lprof/PKGBUILD44
-rw-r--r--pcr/lprof/lcms-117.patch12
-rw-r--r--pcr/lua-cyrussasl/PKGBUILD33
-rw-r--r--pcr/lua-cyrussasl/lua-cyrussasl.patch35
-rw-r--r--pcr/lua-ldap/PKGBUILD28
-rw-r--r--pcr/lua-ldap/lualdap-1.1.0-lua51.patch25
-rw-r--r--pcr/lua51-sql-mysql/PKGBUILD31
-rw-r--r--pcr/luabind/PKGBUILD53
-rw-r--r--pcr/luabind/luabind_boost.patch59
-rw-r--r--pcr/lv2-c++-tools/PKGBUILD33
-rw-r--r--pcr/lv2-c++-tools/lv2-c++-tools-boost-1.50.patch42
-rw-r--r--pcr/lv2-ir/PKGBUILD33
-rw-r--r--pcr/maildirproc/PKGBUILD21
-rw-r--r--pcr/maliit-framework/PKGBUILD33
-rwxr-xr-xpcr/maliit-framework/maliit-framework.install30
-rw-r--r--pcr/maliit-plugins/PKGBUILD32
-rw-r--r--pcr/mariadb-galera/PKGBUILD107
-rw-r--r--pcr/mariadb-galera/mariadb-post.sh8
-rw-r--r--pcr/mariadb-galera/mariadb-tmpfile.conf1
-rw-r--r--pcr/mariadb-galera/mariadb.install47
-rw-r--r--pcr/mariadb-galera/mariadb.service16
-rw-r--r--pcr/mathjax/PKGBUILD20
-rwxr-xr-xpcr/md5deep/PKGBUILD45
-rw-r--r--pcr/mda-lv2/PKGBUILD26
-rw-r--r--pcr/mediatomb/PKGBUILD63
-rw-r--r--pcr/mediatomb/gcc46.patch10
-rw-r--r--pcr/mediatomb/jsparse.patch144
-rw-r--r--pcr/mediatomb/libav_0.7_support.patch64
-rw-r--r--pcr/mediatomb/libavformat.patch52
-rw-r--r--pcr/mediatomb/libmp4v2_191_p497.patch187
-rw-r--r--pcr/mediatomb/mediatomb.conf23
-rw-r--r--pcr/mediatomb/mediatomb.install9
-rw-r--r--pcr/mediatomb/mediatomb.rc54
-rw-r--r--pcr/mediatomb/tonewjs.patch564
-rw-r--r--pcr/mednafen-server/PKGBUILD36
-rw-r--r--pcr/mednafen-server/mednafen-server.service9
-rw-r--r--pcr/mednafen-server/mednafen-serverd41
-rw-r--r--pcr/mesa-nvfx/LICENSE82
-rw-r--r--pcr/mesa-nvfx/PKGBUILD129
-rw-r--r--pcr/mimms/PKGBUILD30
-rw-r--r--pcr/minaton-lv2/PKGBUILD31
-rw-r--r--pcr/minetest-git/PKGBUILD91
-rw-r--r--pcr/mini18n-git/PKGBUILD43
-rw-r--r--pcr/minicomputer/PKGBUILD61
-rw-r--r--pcr/minicomputer/minicomputer.desktop9
-rw-r--r--pcr/minicomputer/minicomputer.install21
-rw-r--r--pcr/minidjvu/PKGBUILD27
-rw-r--r--pcr/miniupnpd/PKGBUILD45
-rw-r--r--pcr/miniupnpd/miniupnpd.systemd12
-rw-r--r--pcr/mit-scheme/PKGBUILD80
-rw-r--r--pcr/mitsuba/PKGBUILD145
-rw-r--r--pcr/mitsuba/mitsuba.install13
-rw-r--r--pcr/moblock/MoBlock-nfq.sh.patch53
-rw-r--r--pcr/moblock/PKGBUILD55
-rw-r--r--pcr/moblock/config30
-rw-r--r--pcr/moblock/moblock70
-rw-r--r--pcr/moblock/moblock-update174
-rw-r--r--pcr/moblock/moblock.install26
-rw-r--r--pcr/moblock/moblock.logrotate11
-rw-r--r--pcr/moblock/moblock_0.9_rc2.patch912
-rw-r--r--pcr/moblock/moblock_include.patch10
-rw-r--r--pcr/monkeysign/PKGBUILD24
-rw-r--r--pcr/monkeysphere/PKGBUILD39
-rw-r--r--pcr/monkeysphere/binmerge.patch25
-rw-r--r--pcr/monkeysphere/monkeysphere.install43
-rw-r--r--pcr/mosquitto/PKGBUILD44
-rw-r--r--pcr/mosquitto/binmerge.patch21
-rw-r--r--pcr/mosquitto/mosquitto.service22
-rw-r--r--pcr/mozilla-devscripts/PKGBUILD32
-rw-r--r--pcr/msdl/PKGBUILD29
-rw-r--r--pcr/multipath-tools-git/PKGBUILD44
-rw-r--r--pcr/multiwatch/PKGBUILD28
-rw-r--r--pcr/musescore/PKGBUILD46
-rw-r--r--pcr/musescore/desktop.patch12
-rw-r--r--pcr/musescore/mime.xml5
-rw-r--r--pcr/musescore/musescore.install12
-rw-r--r--pcr/musescore/paths.patch22
-rw-r--r--pcr/musescore/qmake-qt4.patch25
-rw-r--r--pcr/musescore/system_qscriptgenerator.patch11
-rw-r--r--pcr/mx44/PKGBUILD25
-rw-r--r--pcr/mycron-git/PKGBUILD49
-rw-r--r--pcr/mycron-git/mycron.install3
-rw-r--r--pcr/nagios-nrpe-plugin/PKGBUILD23
-rw-r--r--pcr/nagios-plugins/PKGBUILD27
-rw-r--r--pcr/nagios-plugins/stdio.patch14
-rw-r--r--pcr/nautilus-dropbox/PKGBUILD45
-rw-r--r--pcr/nautilus-dropbox/nautilus-dropbox.install16
-rw-r--r--pcr/nekobee/PKGBUILD27
-rw-r--r--pcr/nekobee/nekobee.patch20
-rw-r--r--pcr/netatalk/PKGBUILD53
-rw-r--r--pcr/netatalk/netatalk.changelog138
-rw-r--r--pcr/netatalk/netatalk.install21
-rw-r--r--pcr/networkmanager-openswan/PKGBUILD26
-rw-r--r--pcr/networkmanager-strongswan/PKGBUILD32
-rw-r--r--pcr/nevow/PKGBUILD23
-rw-r--r--pcr/newlisp/PKGBUILD26
-rw-r--r--pcr/newlisp/newlisp.install20
-rw-r--r--pcr/newtonator/PKGBUILD29
-rw-r--r--pcr/nexuiz-data/PKGBUILD42
-rw-r--r--pcr/nexuiz/PKGBUILD56
-rw-r--r--pcr/nexuiz/libpng14.patch39
-rw-r--r--pcr/nexuiz/nexuiz-dedicated3
-rw-r--r--pcr/nexuiz/nexuiz-glx3
-rw-r--r--pcr/nexuiz/nexuiz-glx.desktop11
-rw-r--r--pcr/nexuiz/nexuiz-sdl3
-rw-r--r--pcr/nexuiz/nexuiz-sdl.desktop11
-rw-r--r--pcr/nexuiz/nexuiz.pngbin0 -> 4603 bytes
-rw-r--r--pcr/nfacct/PKGBUILD31
-rw-r--r--pcr/nicotine/PKGBUILD43
-rw-r--r--pcr/note/PKGBUILD34
-rw-r--r--pcr/nova/PKGBUILD55
-rw-r--r--pcr/npapi-vlc-git/PKGBUILD40
-rw-r--r--pcr/ocaml-camomile/PKGBUILD28
-rw-r--r--pcr/ocaml-pcre/PKGBUILD34
-rw-r--r--pcr/ocsync/PKGBUILD54
-rw-r--r--pcr/oggfwd/PKGBUILD21
-rw-r--r--pcr/oinkmaster/PKGBUILD34
-rw-r--r--pcr/olsrd/PKGBUILD31
-rwxr-xr-xpcr/olsrd/olsrd.install21
-rwxr-xr-xpcr/olsrd/rc.d.olsrd36
-rw-r--r--pcr/openchange/PKGBUILD67
-rw-r--r--pcr/openchange/bugzilla_682449.patch191
-rw-r--r--pcr/opendnssec/LICENSE56
-rw-r--r--pcr/opendnssec/PKGBUILD77
-rw-r--r--pcr/opendnssec/ods-enforcer.service13
-rw-r--r--pcr/opendnssec/ods-signer.service13
-rw-r--r--pcr/opendnssec/opendnssec.install27
-rw-r--r--pcr/opendnssec/pid-path.patch24
-rw-r--r--pcr/openicc/PKGBUILD23
-rw-r--r--pcr/openjdk6/PKGBUILD132
-rw-r--r--pcr/openjdk6/disable-openjdk-Werror.diff147
-rw-r--r--pcr/openjdk6/disable_Werror.diff11
-rw-r--r--pcr/openjdk6/ecj-icedtea.patch893
-rw-r--r--pcr/openjdk6/fix_corba_cmds_path.diff29
-rw-r--r--pcr/openjdk6/fix_jdk_cmds_path.diff29
-rw-r--r--pcr/openjdk6/fontconfig-paths.diff134
-rw-r--r--pcr/openjdk6/nonreparenting-wm.diff60
-rw-r--r--pcr/openjdk6/openjdk6.install24
-rw-r--r--pcr/openjdk6/openjdk6.profile6
-rw-r--r--pcr/openjdk6/openjdk6.profile.csh6
-rw-r--r--pcr/openswan/PKGBUILD56
-rw-r--r--pcr/openswan/compile.patch11
-rwxr-xr-xpcr/openswan/openswan43
-rwxr-xr-xpcr/openswan/openswan.rc.d43
-rwxr-xr-xpcr/openswan/openswan.service13
-rw-r--r--pcr/opentracker/PKGBUILD67
-rw-r--r--pcr/opentracker/license.txt2
-rw-r--r--pcr/opentracker/opentracker.install17
-rw-r--r--pcr/opentracker/opentracker.rc.d37
-rw-r--r--pcr/opentracker/opentracker.service11
-rw-r--r--pcr/otf-stix/PKGBUILD37
-rw-r--r--pcr/otf-stix/otf-stix.install16
-rw-r--r--pcr/owncloud-app-roundcube/PKGBUILD20
-rw-r--r--pcr/owncloud-client/PKGBUILD59
-rw-r--r--pcr/owncloud-client/owncloud-client.desktop11
-rw-r--r--pcr/owncloud-client/owncloud-client.install11
-rw-r--r--pcr/owncloud/PKGBUILD36
-rw-r--r--pcr/owncloud/owncloud.conf17
-rw-r--r--pcr/owncloud/owncloud.install12
-rw-r--r--pcr/package-query/PKGBUILD29
-rw-r--r--pcr/packer/PKGBUILD36
-rw-r--r--pcr/pacman-color/0001-Add-conflict-for-replacing-owned-empty-directory.patch152
-rw-r--r--pcr/pacman-color/0002-Check-empty-subdirectory-ownership.patch61
-rw-r--r--pcr/pacman-color/PKGBUILD42
-rw-r--r--pcr/pacman-color/color.conf46
-rw-r--r--pcr/pacman-color/pacman-color-4.0.3.patch1297
-rw-r--r--pcr/pactools/PKGBUILD18
-rw-r--r--pcr/pactools/pactools63
-rw-r--r--pcr/pactools/pt-deptree54
-rw-r--r--pcr/pactools/pt-pacfix22
-rw-r--r--pcr/pactools/pt-pacman-cage152
-rw-r--r--pcr/pactools/pt-pacman-info77
-rw-r--r--pcr/pactools/pt-pacman-uncage108
-rw-r--r--pcr/pactools/pt-pacsize21
-rw-r--r--pcr/pactools/pt-repolist42
-rw-r--r--pcr/pandoc/PKGBUILD102
-rw-r--r--pcr/pandoc/SRCBUILD45
-rw-r--r--pcr/pandoc/citeproc-hs-pre-0.3.7.patch292
-rw-r--r--pcr/par/PKGBUILD38
-rw-r--r--pcr/pdsh/PKGBUILD33
-rw-r--r--pcr/perl-astro-suntime/PKGBUILD29
-rw-r--r--pcr/perl-crypt-dh/PKGBUILD47
-rw-r--r--pcr/perl-expect/PKGBUILD52
-rw-r--r--pcr/perl-file-find-rule/PKGBUILD27
-rw-r--r--pcr/perl-geo-ipfree/PKGBUILD28
-rw-r--r--pcr/perl-iptables-chainmgr/PKGBUILD22
-rw-r--r--pcr/perl-iptables-parse/PKGBUILD22
-rw-r--r--pcr/perl-latex-encode/PKGBUILD29
-rw-r--r--pcr/perl-math-bigint-gmp/PKGBUILD37
-rw-r--r--pcr/perl-mediawiki-api/PKGBUILD30
-rw-r--r--pcr/perl-net-sftp-foreign/Changes839
-rw-r--r--pcr/perl-net-sftp-foreign/PKGBUILD30
-rw-r--r--pcr/perl-number-compare/PKGBUILD27
-rw-r--r--pcr/perl-php-serialization/PKGBUILD51
-rw-r--r--pcr/perl-sys-mmap/PKGBUILD51
-rw-r--r--pcr/perl-text-glob/PKGBUILD51
-rw-r--r--pcr/perl-unicode-map/PKGBUILD30
-rw-r--r--pcr/perl-unix-syslog/PKGBUILD33
-rw-r--r--pcr/perl-x10/PKGBUILD51
-rw-r--r--pcr/perspectives-server/PKGBUILD51
-rw-r--r--pcr/perspectives-server/perspectives-server.conf17
-rw-r--r--pcr/perspectives-server/perspectives-server.cron7
-rw-r--r--pcr/perspectives-server/perspectives-server.install27
-rw-r--r--pcr/perspectives-server/perspectives-server.service14
-rw-r--r--pcr/petri-foo/PKGBUILD31
-rw-r--r--pcr/petri-foo/petri-foo-0.1.87_fix_recent_file_not_exist.patch24
-rw-r--r--pcr/petri-foo/petri-foo.install19
-rw-r--r--pcr/pmount/PKGBUILD38
-rw-r--r--pcr/poco/PKGBUILD44
-rw-r--r--pcr/polarssl/PKGBUILD28
-rw-r--r--pcr/prboom/PKGBUILD34
-rw-r--r--pcr/prboom/libpng-1.4.patch21
-rw-r--r--pcr/psad/PKGBUILD66
-rw-r--r--pcr/psad/psad-systemdinit.archlinux12
-rw-r--r--pcr/psad/psad-sysvinit.archlinux52
-rw-r--r--pcr/psad/psad.patch137
-rw-r--r--pcr/psad/responses7
-rw-r--r--pcr/pspp/PKGBUILD34
-rw-r--r--pcr/pspp/pspp.install18
-rw-r--r--pcr/pulledpork/PKGBUILD19
-rw-r--r--pcr/pumpa/PKGBUILD84
-rw-r--r--pcr/pumpa/pumpa.install11
-rw-r--r--pcr/puppet/PKGBUILD86
-rw-r--r--pcr/puppet/fileserver.conf12
-rwxr-xr-xpcr/puppet/puppet45
-rw-r--r--pcr/puppet/puppet.conf32
-rw-r--r--pcr/puppet/puppet.install46
-rwxr-xr-xpcr/puppet/puppetmaster45
-rw-r--r--pcr/pybitmessage-git/PKGBUILD58
-rw-r--r--pcr/pybitmessage-git/pybitmessage.sh3
-rw-r--r--pcr/pybonjour/PKGBUILD19
-rw-r--r--pcr/pycryptopp/PKGBUILD31
-rw-r--r--pcr/pysheng/PKGBUILD24
-rw-r--r--pcr/python-anyjson/PKGBUILD21
-rw-r--r--pcr/python-blinker/PKGBUILD19
-rw-r--r--pcr/python-feedgenerator/PKGBUILD18
-rw-r--r--pcr/python-jedi/PKGBUILD23
-rw-r--r--pcr/python-lirc/PKGBUILD28
-rw-r--r--pcr/python-paste-deploy/PKGBUILD24
-rw-r--r--pcr/python-paste/PKGBUILD25
-rw-r--r--pcr/python-pelican/PKGBUILD20
-rw-r--r--pcr/python-prettytable/PKGBUILD29
-rw-r--r--pcr/python-pygame-hg/PKGBUILD72
-rw-r--r--pcr/python-repoze.lru/PKGBUILD32
-rw-r--r--pcr/python-routes/PKGBUILD29
-rw-r--r--pcr/python-unidecode/PKGBUILD18
-rw-r--r--pcr/python-wsgiref/PKGBUILD19
-rw-r--r--pcr/python-xattr/PKGBUILD31
-rw-r--r--pcr/python2-amqplib/PKGBUILD22
-rw-r--r--pcr/python2-argparse/PKGBUILD25
-rw-r--r--pcr/python2-carrot/PKGBUILD21
-rw-r--r--pcr/python2-cheetah/Changelog12
-rw-r--r--pcr/python2-cheetah/PKGBUILD34
-rw-r--r--pcr/python2-daemon/PKGBUILD20
-rw-r--r--pcr/python2-empy/PKGBUILD20
-rw-r--r--pcr/python2-eventlet/PKGBUILD22
-rw-r--r--pcr/python2-fabric/PKGBUILD23
-rw-r--r--pcr/python2-flask-lesscss/PKGBUILD17
-rw-r--r--pcr/python2-iso8601/PKGBUILD19
-rw-r--r--pcr/python2-kombu/PKGBUILD29
-rw-r--r--pcr/python2-mock/PKGBUILD24
-rw-r--r--pcr/python2-netaddr/PKGBUILD19
-rw-r--r--pcr/python2-oauth2/PKGBUILD20
-rw-r--r--pcr/python2-passlib/PKGBUILD21
-rw-r--r--pcr/python2-pillow/PKGBUILD22
-rw-r--r--pcr/python2-pkgtools/PKGBUILD20
-rw-r--r--pcr/python2-polib/PKGBUILD25
-rw-r--r--pcr/python2-postfix-policyd-spf/PKGBUILD28
-rw-r--r--pcr/python2-potr/PKGBUILD39
-rw-r--r--pcr/python2-pycha/PKGBUILD35
-rw-r--r--pcr/python2-pydns/PKGBUILD25
-rw-r--r--pcr/python2-pyspf/PKGBUILD35
-rw-r--r--pcr/python2-pywebdav/PKGBUILD22
-rw-r--r--pcr/python2-qrcode/PKGBUILD21
-rw-r--r--pcr/python2-qrencode/PKGBUILD29
-rw-r--r--pcr/python2-relatorio/PKGBUILD22
-rw-r--r--pcr/python2-renpy/PKGBUILD48
-rw-r--r--pcr/python2-ropemacs/PKGBUILD21
-rw-r--r--pcr/python2-ropemacs/python2-ropemacs.install8
-rw-r--r--pcr/python2-ropemode/PKGBUILD20
-rw-r--r--pcr/python2-rospkg/PKGBUILD23
-rw-r--r--pcr/python2-sendfile/PKGBUILD22
-rw-r--r--pcr/python2-setuptools/PKGBUILD30
-rw-r--r--pcr/python2-sexy/PKGBUILD24
-rw-r--r--pcr/python2-sql/PKGBUILD20
-rw-r--r--pcr/python2-ssh/PKGBUILD26
-rw-r--r--pcr/python2-suds/PKGBUILD25
-rw-r--r--pcr/python2-webob/Changelog26
-rw-r--r--pcr/python2-webob/PKGBUILD34
-rw-r--r--pcr/pyutil/PKGBUILD28
-rw-r--r--pcr/pyzenity/PKGBUILD20
-rw-r--r--pcr/qemu-usbredir/65-kvm.rules2
-rw-r--r--pcr/qemu-usbredir/PKGBUILD77
-rw-r--r--pcr/qemu-usbredir/qemu.install23
-rw-r--r--pcr/qgis/PKGBUILD65
-rw-r--r--pcr/qgis/qgis.desktop10
-rw-r--r--pcr/qt-at-spi-git/PKGBUILD45
-rw-r--r--pcr/qt-at-spi-git/qt-accessibility.sh1
-rw-r--r--pcr/qtkeychain/PKGBUILD48
-rw-r--r--pcr/qtkeychain/prefer-qt4.patch17
-rw-r--r--pcr/qtkeychain/qtkeychain-0.1.zipbin0 -> 19334 bytes
-rw-r--r--pcr/qtoctave/PKGBUILD31
-rw-r--r--pcr/qtoctave/qtoctave.install14
-rw-r--r--pcr/quack/PKGBUILD26
-rw-r--r--pcr/quack/quack.install18
-rw-r--r--pcr/quackle/PKGBUILD38
-rwxr-xr-xpcr/quackle/quacker.sh3
-rw-r--r--pcr/quvi-current/PKGBUILD30
-rw-r--r--pcr/radicale/PKGBUILD23
-rw-r--r--pcr/radicale/radicale.install10
-rw-r--r--pcr/radicale/radicale.service10
-rw-r--r--pcr/radiusclient-ng/PKGBUILD31
-rw-r--r--pcr/rakarrack/PKGBUILD26
-rw-r--r--pcr/rakarrack/fltk_include.patch24
-rw-r--r--pcr/re2-hg/PKGBUILD29
-rw-r--r--pcr/recutils/ChangeLog36
-rw-r--r--pcr/recutils/PKGBUILD44
-rw-r--r--pcr/recutils/recutils-1.5-glibc-2.16.patch29
-rw-r--r--pcr/recutils/recutils.install36
-rw-r--r--pcr/renpy/PKGBUILD62
-rw-r--r--pcr/renpy/renpy-launcher.sh4
-rw-r--r--pcr/renpy/renpy.csh1
-rw-r--r--pcr/renpy/renpy.desktop12
-rw-r--r--pcr/renpy/renpy.install21
-rw-r--r--pcr/renpy/renpy.sh1
-rw-r--r--pcr/retroshare/PKGBUILD148
-rw-r--r--pcr/retroshare/retroshare.desktop11
-rw-r--r--pcr/retroshare/retroshare.install15
-rw-r--r--pcr/rfc5766-turn-server/ChangeLog5
-rw-r--r--pcr/rfc5766-turn-server/PKGBUILD64
-rw-r--r--pcr/rfc5766-turn-server/stun.service10
-rw-r--r--pcr/rfc5766-turn-server/turn.service10
-rw-r--r--pcr/rosinstall/PKGBUILD21
-rw-r--r--pcr/roundcube-carddav/PKGBUILD24
-rw-r--r--pcr/roundcube-rcguard-plugin-git/PKGBUILD32
-rw-r--r--pcr/rstudio-desktop/PKGBUILD38
-rw-r--r--pcr/rstudio-desktop/rstudio.install15
-rw-r--r--pcr/ruby-bundler/PKGBUILD24
-rw-r--r--pcr/ruby-haml/PKGBUILD35
-rw-r--r--pcr/ruby-headers/PKGBUILD26
-rw-r--r--pcr/ruby-hiera-json/PKGBUILD26
-rw-r--r--pcr/ruby-hiera/PKGBUILD34
-rw-r--r--pcr/ruby-hiera/hiera.yaml21
-rw-r--r--pcr/ruby-libnotify/PKGBUILD23
-rw-r--r--pcr/ruby-maruku/PKGBUILD27
-rw-r--r--pcr/ruby-mustache/PKGBUILD31
-rw-r--r--pcr/ruby-shadow/PKGBUILD24
-rw-r--r--pcr/ruby-syntax/PKGBUILD32
-rw-r--r--pcr/ruby-yard/PKGBUILD36
-rw-r--r--pcr/ruby1-bundler/PKGBUILD27
-rw-r--r--pcr/ruby1/PKGBUILD84
-rw-r--r--pcr/ruby1/gemrc5
-rw-r--r--pcr/ruby1/ruby.install22
-rw-r--r--pcr/ryzom-data/PKGBUILD45
-rw-r--r--pcr/ryzom-hg/PKGBUILD52
-rw-r--r--pcr/ryzom-hg/ryzom.desktop11
-rw-r--r--pcr/samba4/PKGBUILD93
-rw-r--r--pcr/samba4/samba4.confd5
-rw-r--r--pcr/samba4/samba4.rc50
-rw-r--r--pcr/samplv1/PKGBUILD30
-rw-r--r--pcr/samplv1/samplv1.install13
-rw-r--r--pcr/seeks/PKGBUILD65
-rw-r--r--pcr/seeks/conf.patch20
-rw-r--r--pcr/seeks/docbook2man.patch24
-rw-r--r--pcr/seeks/img_websearch.patch13
-rw-r--r--pcr/seeks/install18
-rw-r--r--pcr/seeks/logfile.patch29
-rwxr-xr-xpcr/seeks/seeks68
-rw-r--r--pcr/seeks/seeks.conf.d11
-rw-r--r--pcr/seeks/seeks.install12
-rw-r--r--pcr/seeks/seeks.logrotate6
-rw-r--r--pcr/seeks/seeks.rc.d57
-rw-r--r--pcr/seeks/seeksdaemon41
-rw-r--r--pcr/send-to-torrent/PKGBUILD19
-rw-r--r--pcr/setbfree/PKGBUILD45
-rw-r--r--pcr/setbfree/setbfree.install11
-rw-r--r--pcr/setuptools_darcs/PKGBUILD29
-rw-r--r--pcr/sfml-git/PKGBUILD63
-rw-r--r--pcr/shflags/PKGBUILD31
-rw-r--r--pcr/shocco/PKGBUILD30
-rw-r--r--pcr/sic/PKGBUILD32
-rw-r--r--pcr/sigil/PKGBUILD48
-rwxr-xr-xpcr/sigil/sigil.desktop12
-rw-r--r--pcr/sigil/sigil.install12
-rw-r--r--pcr/sineshaper/PKGBUILD35
-rw-r--r--pcr/sineshaper/gcc-4.3.patch57
-rw-r--r--pcr/sipwitch/PKGBUILD32
-rw-r--r--pcr/skanlite/PKGBUILD30
-rw-r--r--pcr/sltv/PKGBUILD32
-rw-r--r--pcr/sltv/PKGBUILD.new32
-rw-r--r--pcr/sltv/sltv.install7
-rw-r--r--pcr/snort/PKGBUILD51
-rw-r--r--pcr/snort/snort41
-rw-r--r--pcr/snort/snort.conf.d21
-rw-r--r--pcr/snort/snort.install26
-rw-r--r--pcr/sobby/PKGBUILD24
-rw-r--r--pcr/softhsm/PKGBUILD46
-rw-r--r--pcr/spacenav-daemon/PKGBUILD44
-rw-r--r--pcr/spacenav-daemon/spacenav.service10
-rw-r--r--pcr/spacenav-daemon/spnavrc8
-rw-r--r--pcr/spatialindex/LICENSE9
-rw-r--r--pcr/spatialindex/PKGBUILD34
-rw-r--r--pcr/spectrum/PKGBUILD81
-rw-r--r--pcr/spectrum/gcc47.patch97
-rw-r--r--pcr/spectrum/logrotate.spectrum10
-rw-r--r--pcr/spectrum/spectrum.install45
-rw-r--r--pcr/spectrum/spectrum.tmpfiles1
-rw-r--r--pcr/spectrum/spectrum@.service14
-rw-r--r--pcr/spice-gtk3/PKGBUILD38
-rw-r--r--pcr/spice-protocol/PKGBUILD36
-rw-r--r--pcr/spice/PKGBUILD38
-rw-r--r--pcr/spnavcfg/PKGBUILD21
-rw-r--r--pcr/sqlcipher/PKGBUILD31
-rw-r--r--pcr/squirm/PKGBUILD32
-rw-r--r--pcr/startupmanager/PKGBUILD45
-rw-r--r--pcr/steadyflow/PKGBUILD33
-rw-r--r--pcr/steadyflow/steadyflow.install17
-rw-r--r--pcr/stow/PKGBUILD24
-rw-r--r--pcr/strongswan/CHANGELOG20
-rw-r--r--pcr/strongswan/PKGBUILD51
-rw-r--r--pcr/stumpwm-git/PKGBUILD151
-rw-r--r--pcr/stumpwm-git/stumpwm.install17
-rw-r--r--pcr/supermodel/PKGBUILD38
-rw-r--r--pcr/supermodel/multiuser.patch107
-rw-r--r--pcr/supermodel/supermodel.install12
-rw-r--r--pcr/supermodel/supermodel.sh12
-rw-r--r--pcr/swig1/PKGBUILD29
-rw-r--r--pcr/sword-svn/PKGBUILD39
-rw-r--r--pcr/sword-svn/automake.patch52
-rw-r--r--pcr/sword/PKGBUILD68
-rw-r--r--pcr/sword/curl.patch22
-rw-r--r--pcr/sword/multimap.patch39
-rw-r--r--pcr/synthv1/PKGBUILD30
-rw-r--r--pcr/synthv1/synthv1.install13
-rw-r--r--pcr/tahoe-lafs/PKGBUILD30
-rw-r--r--pcr/tahoe-lafs/nodaemon.patch19
-rw-r--r--pcr/tanglet/PKGBUILD28
-rw-r--r--pcr/tanglet/tanglet.install11
-rw-r--r--pcr/ted/PKGBUILD60
-rw-r--r--pcr/ted/ted.install11
-rw-r--r--pcr/textext/LICENSE.txt28
-rw-r--r--pcr/textext/PKGBUILD22
-rw-r--r--pcr/theide/PKGBUILD54
-rw-r--r--pcr/theide/license.txt9
-rw-r--r--pcr/theide/theide.install3
-rw-r--r--pcr/thinkfan/PKGBUILD27
-rw-r--r--pcr/thinkfan/thinkfan54
-rw-r--r--pcr/thinkfan/thinkfan.service9
-rw-r--r--pcr/timekpr/Initializes_lastNotified_before_it_is_used.patch10
-rw-r--r--pcr/timekpr/PKGBUILD79
-rw-r--r--pcr/timekpr/timekpr.install24
-rw-r--r--pcr/timekpr/timekpr.service9
-rwxr-xr-xpcr/timekpr/timekprd.sh36
-rw-r--r--pcr/timer_entropyd/PKGBUILD28
-rw-r--r--pcr/timer_entropyd/timer_entropyd.service9
-rw-r--r--pcr/tinc-pre/PKGBUILD42
-rw-r--r--pcr/tinc-pre/tincd@.service10
-rw-r--r--pcr/tokyotyrant/PKGBUILD33
-rw-r--r--pcr/tokyotyrant/tokyotyrant.conf21
-rw-r--r--pcr/tokyotyrant/tokyotyrant.rc41
-rw-r--r--pcr/toluapp/PKGBUILD28
-rwxr-xr-xpcr/toluapp/config_linux.py22
-rw-r--r--pcr/tomb/PKGBUILD53
-rw-r--r--pcr/tomb/tomb.install13
-rw-r--r--pcr/torque/PKGBUILD61
-rw-r--r--pcr/torque/torque-node.service12
-rw-r--r--pcr/torque/torque-scheduler.service12
-rw-r--r--pcr/torque/torque-server.service12
-rw-r--r--pcr/torque/torque.install9
-rw-r--r--pcr/transmission-remote-cli/PKGBUILD25
-rw-r--r--pcr/transmission-remote-cli/python2.patch9
-rw-r--r--pcr/triceratops-lv2/PKGBUILD27
-rw-r--r--pcr/trisquel-themes/PKGBUILD29
-rw-r--r--pcr/trytond-account-invoice/PKGBUILD26
-rw-r--r--pcr/trytond-account-product/PKGBUILD26
-rw-r--r--pcr/trytond-account/PKGBUILD26
-rw-r--r--pcr/trytond-calendar/PKGBUILD26
-rw-r--r--pcr/trytond-company/PKGBUILD26
-rw-r--r--pcr/trytond-country/PKGBUILD26
-rw-r--r--pcr/trytond-currency/PKGBUILD26
-rw-r--r--pcr/trytond-party/PKGBUILD26
-rw-r--r--pcr/trytond-product/PKGBUILD26
-rw-r--r--pcr/trytond-stock-lot/PKGBUILD26
-rw-r--r--pcr/trytond-stock/PKGBUILD26
-rw-r--r--pcr/trytond/PKGBUILD36
-rw-r--r--pcr/trytond/trytond.install20
-rw-r--r--pcr/trytond/trytond.service10
-rw-r--r--pcr/ttf-asana-math/PKGBUILD30
-rw-r--r--pcr/ttf-asana-math/ttf-asana-math.install11
-rw-r--r--pcr/ttf-beteckna/PKGBUILD22
-rw-r--r--pcr/ttf-beteckna/ttf.install15
-rw-r--r--pcr/ttf-font-awesome/PKGBUILD19
-rw-r--r--pcr/ttf-font-awesome/ttf-font-awesome.install20
-rw-r--r--pcr/ttf-roboto/PKGBUILD25
-rw-r--r--pcr/ttf-roboto/ttf-roboto.install15
-rw-r--r--pcr/twinkle/PKGBUILD50
-rw-r--r--pcr/twinkle/twinkle-1.4.2-ccrtp.patch24
-rw-r--r--pcr/ubus/PKGBUILD32
-rw-r--r--pcr/uci/PKGBUILD32
-rw-r--r--pcr/uci/uci-0.8.0-lua5.1.patch31
-rw-r--r--pcr/uftp/PKGBUILD22
-rw-r--r--pcr/ulogd2/PKGBUILD42
-rw-r--r--pcr/ulogd2/logrotate10
-rw-r--r--pcr/ulogd2/ulogd254
-rw-r--r--pcr/ums/PKGBUILD63
-rw-r--r--pcr/unittestpp/PKGBUILD37
-rw-r--r--pcr/upp-svn/GCC.bm23
-rw-r--r--pcr/upp-svn/PKGBUILD67
-rw-r--r--pcr/upp-svn/license.txt9
-rw-r--r--pcr/vcstools/PKGBUILD33
-rw-r--r--pcr/video_entropyd/PKGBUILD28
-rw-r--r--pcr/video_entropyd/video_entropyd.service9
-rw-r--r--pcr/vim-ifdef/PKGBUILD23
-rw-r--r--pcr/vim-ifdef/vimdoc.install14
-rw-r--r--pcr/vuurmuur/PKGBUILD139
-rw-r--r--pcr/vuurmuur/modules.conf3
-rw-r--r--pcr/vuurmuur/vuurmuur.install27
-rw-r--r--pcr/vuurmuur/vuurmuur.rc114
-rw-r--r--pcr/vuurmuur/vuurmuur.script88
-rw-r--r--pcr/vuurmuur/vuurmuur.service13
-rw-r--r--pcr/wallchange/PKGBUILD34
-rw-r--r--pcr/wallchange/wallchange.conf23
-rw-r--r--pcr/wallchange/wallchange.install13
-rw-r--r--pcr/wdiff/PKGBUILD29
-rw-r--r--pcr/whysynth/PKGBUILD24
-rw-r--r--pcr/wikipediafs/PKGBUILD19
-rw-r--r--pcr/wmii-hg/PKGBUILD56
-rw-r--r--pcr/xcftools/PKGBUILD44
-rw-r--r--pcr/xcftools/xcftools.patch27
-rw-r--r--pcr/xchat-otr/PKGBUILD31
-rw-r--r--pcr/xf86-input-wizardpen/PKGBUILD43
-rw-r--r--pcr/xfce-theme-greybird/PKGBUILD55
-rw-r--r--pcr/xfwm4-titleless/PKGBUILD46
-rw-r--r--pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch1456
-rw-r--r--pcr/xfwm4-titleless/xfwm4.install13
-rw-r--r--pcr/xonotic-git/PKGBUILD197
-rw-r--r--pcr/xrdp/PKGBUILD41
-rw-r--r--pcr/xrdp/xrdp-sesman.service15
-rw-r--r--pcr/xrdp/xrdp.service14
-rw-r--r--pcr/xsynth-dssi/PKGBUILD28
-rw-r--r--pcr/xsynth-dssi/xsynth-dssi4
-rw-r--r--pcr/xtables-addons/PKGBUILD35
-rw-r--r--pcr/yafaray/PKGBUILD112
-rw-r--r--pcr/yate/PKGBUILD37
-rw-r--r--pcr/yate/yate.init61
-rw-r--r--pcr/youtube-dl-current/PKGBUILD4
-rw-r--r--pcr/zbar/PKGBUILD40
-rw-r--r--pcr/zbar/v4l1.patch24
-rw-r--r--pcr/zbase32/PKGBUILD25
-rw-r--r--pcr/zenity-gtk2/PKGBUILD44
-rw-r--r--pcr/zeroinstall-injector/PKGBUILD36
-rw-r--r--pcr/zeroinstall-injector/zeroinstall-injector.install12
-rw-r--r--pcr/zfec/PKGBUILD26
-rw-r--r--pcr/zoneminder/PKGBUILD202
-rw-r--r--pcr/zoneminder/httpd-zoneminder.conf20
-rw-r--r--pcr/zoneminder/sysctl-zoneminder.conf3
-rw-r--r--pcr/zoneminder/zoneminder63
-rw-r--r--pcr/zoneminder/zoneminder-1.25-fixwarning.patch14
-rw-r--r--pcr/zoneminder/zoneminder-1.25-text.patch12
-rw-r--r--pcr/zoneminder/zoneminder-1.25.0-ffmpeg.patch130
-rw-r--r--pcr/zoneminder/zoneminder-1.25.0-gcc47.patch33
-rw-r--r--pcr/zoneminder/zoneminder-1.25.0-gcrypt.patch86
-rw-r--r--pcr/zoneminder/zoneminder-1.25.0-kernel35.patch21
-rw-r--r--pcr/zoneminder/zoneminder.install194
-rw-r--r--pcr/zoneminder/zoneminder.service13
-rw-r--r--pcr/zsh-yaourt/PKGBUILD21
904 files changed, 45672 insertions, 2 deletions
diff --git a/pcr/9mount/PKGBUILD b/pcr/9mount/PKGBUILD
new file mode 100644
index 000000000..3de06c084
--- /dev/null
+++ b/pcr/9mount/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Fazlul Shahriar <fshahriar@gmail.com>
+
+pkgname=9mount
+pkgver=1.3
+pkgdesc="A set of SUID tools for mounting 9p filesystems via v9fs."
+url="http://sqweek.net/code/9mount/"
+license=('custom:ISC')
+source=("http://sqweek.net/9p/$pkgname-$pkgver.tar.gz" fix-checks.patch)
+
+pkgrel=3
+arch=('i686' 'x86_64')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -i "$srcdir/fix-checks.patch"
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ PATH=.:$PATH sh ./test.sh
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir/usr" install
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+ ln -s 9mount.1 "$pkgdir/usr/share/man/man1/9umount.1"
+ ln -s 9mount.1 "$pkgdir/usr/share/man/man1/9bind.1"
+}
+
+md5sums=('711a0a6f4d076c8275596171b0a315d0'
+ '7961acda05c55f91f8cd6fb0d51b5c7d')
+sha256sums=('820d80b9b478d05ecb022ad658477b37cfc2414a8669c3af17d192a522064c17'
+ '69cd1be08cc13cdecf2851dd6f78efd734afa8b0b099484cd777edb0b1d36f79')
diff --git a/pcr/9mount/fix-checks.patch b/pcr/9mount/fix-checks.patch
new file mode 100644
index 000000000..9af711ba5
--- /dev/null
+++ b/pcr/9mount/fix-checks.patch
@@ -0,0 +1,24 @@
+--- test.sh.orig 2012-10-15 11:15:07.000000000 -0400
++++ test.sh 2012-10-15 11:15:11.000000000 -0400
+@@ -7,7 +7,7 @@
+ shift; shift
+ actual=$(9mount -n "$@" 2>&1)
+ aopts=$(echo $actual |sed 's/.*-o \([^ ]*\) .*/\1/' |tr , '\n' |sort |tr '\n' , |sed 's/,$//')
+- actual=$(echo $actual |sed 's/-o [^ ]*/-o '"$aopts"'/')
++ actual=$(echo $actual |sed -e 's/-o [^ ]*/-o '"$aopts"'/' -e 's/ ::1 / 127.0.0.1 /')
+ if [ "$expected" != "$actual" ]; then
+ echo ' '9mount "$@"
+ echo $expected' #expected'
+@@ -48,6 +48,7 @@
+ output=$(9mount -n "$@" 2>&1) && {
+ echo ' '9mount "$@"
+ echo $output' #should have failed!'
++ exit 1
+ }
+ }
+
+@@ -59,3 +60,4 @@
+ shouldfail unix!/tmp/9mount!qux $mtpt
+ shouldfail virtio!/dev/chan!bar $mtpt
+ shouldfail tcp!localhost!564!foo $mtpt
++exit 0
diff --git a/pcr/a2jmidid/PKGBUILD b/pcr/a2jmidid/PKGBUILD
new file mode 100644
index 000000000..60d6f048f
--- /dev/null
+++ b/pcr/a2jmidid/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer : Guest One <theguestone at gmail dot com>
+# patch taken from https://aur.archlinux.org/packages/a2jmidid/
+
+pkgname=a2jmidid
+pkgver=8
+pkgrel=1
+pkgdesc="A daemon for exposing legacy ALSA sequencer applications in JACK MIDI system."
+arch=('i686')
+url="http://home.gna.org/$pkgname/"
+license=('GPL')
+depends=('jack' 'python2-dbus')
+source=("http://download.gna.org/$pkgname/$pkgname-$pkgver.tar.bz2"
+ "$pkgname-dso-pthread.patch")
+md5sums=('9cf4edbc3ad2ddeeaf6c8c1791ff3ddd'
+ '4b15e485301aee48371844cb01689ad2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # DSO link patch
+ patch -p1 -i ../$pkgname-dso-pthread.patch
+
+ python2 waf configure --prefix=/usr
+ python2 waf
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 waf install --destdir="$pkgdir/"
+
+ # python2 fix
+ sed -i "s/python/&2/" "$pkgdir/usr/bin/a2j_control"
+} \ No newline at end of file
diff --git a/pcr/a2jmidid/a2jmidid-dso-pthread.patch b/pcr/a2jmidid/a2jmidid-dso-pthread.patch
new file mode 100644
index 000000000..028b9d432
--- /dev/null
+++ b/pcr/a2jmidid/a2jmidid-dso-pthread.patch
@@ -0,0 +1,20 @@
+diff -aur a2jmidid-8/wscript a2jmidid-8.patched/wscript
+--- a2jmidid-8/wscript 2012-07-05 03:14:23.000000000 +0200
++++ a2jmidid-8.patched/wscript 2012-07-10 17:48:30.710109306 +0200
+@@ -67,6 +67,7 @@
+ conf.env['DBUS_ENABLED'] = False
+
+ conf.env['LIB_DL'] = ['dl']
++ conf.env['LIB_PTHREAD'] = ['pthread']
+
+ #conf.check_header('expat.h', mandatory=True)
+ #conf.env['LIB_EXPAT'] = ['expat']
+@@ -152,7 +153,7 @@
+
+ prog.includes = '.' # make waf dependency tracking work
+ prog.target = 'a2jmidid'
+- prog.uselib = 'ALSA JACK DL'
++ prog.uselib = 'ALSA JACK DL PTHREAD'
+ if bld.env()['DBUS_ENABLED']:
+ prog.uselib += " DBUS-1"
+ prog = bld.create_obj('cc', 'program')
diff --git a/pcr/acr/PKGBUILD b/pcr/acr/PKGBUILD
new file mode 100644
index 000000000..d1ba1744b
--- /dev/null
+++ b/pcr/acr/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: stalker_exe <stalkerexe8@gmail.com>
+pkgname=acr
+pkgver=0.8.6
+pkgrel=1
+pkgdesc="ACR is an autoconf like tool that allows you to create configure scripts for your programs."
+arch=('any')
+url="http://nopcode.org/wk.php/Acr"
+license=('GPL2')
+depends=()
+source=("http://www.lolcathost.org/b/$pkgname-$pkgver.tar.gz")
+
+md5sums=('0981ffbd92dcb63015793a849c34465d')
+
+build() {
+ cd "${srcdir}/$pkgname-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+}
+
+package() {
+ cd "${srcdir}/$pkgname-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/pcr/ahcpd/PKGBUILD b/pcr/ahcpd/PKGBUILD
new file mode 100644
index 000000000..52c917bbc
--- /dev/null
+++ b/pcr/ahcpd/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Yann Lopez <arch at lonewulf dot net>
+pkgname=ahcpd
+pkgver=0.53
+pkgrel=2
+pkgdesc="Ad-Hoc Configuration Protocol"
+arch=(i686 x86_64 mips64el)
+url="http://www.pps.jussieu.fr/~jch/software/ahcp/"
+license=('custom')
+depends=('sh')
+source=(http://www.pps.jussieu.fr/~jch/software/files/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -i 's/\$(PREFIX)\/man/$(PREFIX)\/share\/man/g' Makefile
+ make PREFIX="/usr"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make install TARGET=${pkgdir} PREFIX=/usr
+
+ install -d $pkgdir/usr/share/licenses/ahcpd
+ install -m 644 LICENCE $pkgdir/usr/share/licenses/ahcpd/
+}
+md5sums=('a1a610bf20965aa522cd766bf3d5829a')
diff --git a/pcr/amsynth/PKGBUILD b/pcr/amsynth/PKGBUILD
new file mode 100644
index 000000000..7142d6c9f
--- /dev/null
+++ b/pcr/amsynth/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer : Guest One <theguestone at gmail dot com>
+
+pkgname=amsynth
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="Analogue Modeling SYNTHesizer"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/$pkgname/"
+license=('GPL')
+depends=('gtkmm' 'jack' 'liblo' 'ladspa')
+makedepends=('desktop-file-utils' 'dssi' 'libtool')
+install="$pkgname.install"
+source=("http://$pkgname.googlecode.com/files/$pkgname-$pkgver.tar.gz")
+md5sums=('9193d334c89996cf44e98422e03318bb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/amsynth/amsynth.install b/pcr/amsynth/amsynth.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/pcr/amsynth/amsynth.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/android-udev/PKGBUILD b/pcr/android-udev/PKGBUILD
new file mode 100644
index 000000000..10fe60934
--- /dev/null
+++ b/pcr/android-udev/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): M0Rf30
+# Contributor: marlock
+
+pkgname=android-udev
+pkgver=20130911
+_gitver=8dfd1cd0002d7067d24a2ef89360212f164f3856
+url="https://github.com/M0Rf30/android-udev-rules"
+pkgdesc='Udev rules to for Android devices.'
+
+# The author is the maintainer of the AUR package, where it is listed as GPL;
+# this is the best hint to the license that we have.
+license=('GPL')
+
+pkgrel=1
+arch=('any')
+source=("51-android-$pkgver.rules::https://raw.github.com/M0Rf30/android-udev-rules/$_gitver/51-android.rules")
+depends=('systemd' 'libmtp')
+install='android-udev.install'
+
+package() {
+ cd "$srcdir"
+ install -Dm755 "$srcdir"/51-android-$pkgver.rules "$pkgdir"/usr/lib/udev/rules.d/51-android.rules
+}
+
+md5sums=('1b2033fcf52b1b0ffa807ba90b11fd14')
diff --git a/pcr/android-udev/android-udev.install b/pcr/android-udev/android-udev.install
new file mode 100644
index 000000000..dcb1ebc20
--- /dev/null
+++ b/pcr/android-udev/android-udev.install
@@ -0,0 +1,12 @@
+post_install() {
+ post_upgrade
+ echo "NOTE: To use adb as a normal user you have to add yourself to the adbusers group"
+}
+
+post_upgrade() {
+ { getent group adbusers || /usr/sbin/groupadd adbusers; } &>/dev/null
+}
+
+post_remove() {
+ getent group adbusers &>/dev/null && /usr/sbin/groupdel adbusers
+}
diff --git a/pcr/anyremote/PKGBUILD b/pcr/anyremote/PKGBUILD
new file mode 100644
index 000000000..96e030245
--- /dev/null
+++ b/pcr/anyremote/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Andrea Fagiani <andfagiani_at_gmail_dot_com>
+# Contributor: hb <hb.at.spamers.dot.net>
+# Contributor: Lisa Denia <eiffel56@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=anyremote
+pkgver=6.0
+pkgrel=1
+pkgdesc="Remote control (console-oriented) through bluetooth or IR connection"
+arch=('i686' 'x86_64')
+url="http://anyremote.sourceforge.net"
+license=('GPL')
+depends=('bluez' 'dbus-glib' 'libxtst')
+optdepends=("irda-utils: IRDA support")
+install=anyremote.install
+source=(http://downloads.sourceforge.net/sourceforge/anyremote/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
+md5sums=('f39da5df07f3e1a0c59bc3f95347dbe7')
diff --git a/pcr/anyremote/anyremote.install b/pcr/anyremote/anyremote.install
new file mode 100644
index 000000000..012444ce0
--- /dev/null
+++ b/pcr/anyremote/anyremote.install
@@ -0,0 +1,6 @@
+post_install () {
+ echo "
+ >>>Download the java client for your phone at
+ >>>http://anyremote.sourceforge.net/dload.html
+ "
+}
diff --git a/pcr/aqsis/PKGBUILD b/pcr/aqsis/PKGBUILD
new file mode 100644
index 000000000..89998fc84
--- /dev/null
+++ b/pcr/aqsis/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Former contributor: Gino Pezzin <pezzin@gmail.com>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname=aqsis
+pkgver=1.8.2
+pkgrel=3
+pkgdesc='A high quality, photorealistic, 3D rendering solution'
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+url="http://www.$pkgname.org"
+license=GPL2
+optdepends=(
+ 'qt4: graphical interface'
+ 'mesa-libgl: ptview'
+)
+depends=(
+ 'boost-libs=1.53.0'
+ desktop-file-utils
+ hicolor-icon-theme
+ openexr
+ shared-mime-info
+)
+makedepends=(
+ boost
+ cmake
+ libpng
+ mesa
+ qt4
+)
+options=(
+ '!libtool'
+)
+install=$pkgname.install
+source="http://downloads.sourceforge.net/project/$pkgname/$pkgname-source/$pkgver/$pkgname-$pkgver.tar.gz"
+md5sums='399967e99f12cfbd1a7385c4e1d39c3b'
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ mkdir -p $srcdir/$pkgname-build
+ cd $srcdir/$pkgname-build
+
+ setarch $CARCH cmake "$srcdir"/$pkgname-$pkgver\
+ -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONFDIR=/etc/$pkgname
+ setarch $CARCH make
+}
+
+package() {
+ cd $srcdir/$pkgname-build
+ setarch $CARCH make DESTDIR=$pkgdir install
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/pcr/aqsis/aqsis.install b/pcr/aqsis/aqsis.install
new file mode 100644
index 000000000..b2086e07b
--- /dev/null
+++ b/pcr/aqsis/aqsis.install
@@ -0,0 +1,14 @@
+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 $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/aseprite/PKGBUILD b/pcr/aseprite/PKGBUILD
new file mode 100644
index 000000000..bf0052363
--- /dev/null
+++ b/pcr/aseprite/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Benoit Favre <benoit.favre@gmail.com>
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+
+pkgname=aseprite
+pkgver=0.9.5
+pkgrel=3
+pkgdesc='Create animated sprites and pixel art'
+arch=('x86_64' 'i686')
+url='http://www.aseprite.org/'
+license=('GPL')
+depends=('allegro')
+makedepends=('cmake')
+source=("http://aseprite.googlecode.com/files/$pkgname-$pkgver.zip" aseprite.desktop)
+sha256sums=('ce4f1e011744f9a5927a5341fccc3938b67f15f6a66d5df6b4282c5498fb8fd5' 'c9e624b9fd095ebb3eec8220a58d4a9422f39d68477bafcc0047d773814ba0aa')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ cmake -DCMAKE_INSTALL_PREFIX:STRING=/usr .
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ install -Dm644 "$srcdir/$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+ install -Dm644 "data/icons/ase48.png" \
+ "$pkgdir/usr/share/pixmaps/$pkgname.png"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/aseprite/aseprite.desktop b/pcr/aseprite/aseprite.desktop
new file mode 100644
index 000000000..b000fa018
--- /dev/null
+++ b/pcr/aseprite/aseprite.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+Name=Aseprite
+Comment=Pixel-art paint program
+Exec=aseprite
+Terminal=false
+Categories=Graphics;2DGraphics;RasterGraphics
+Icon=aseprite
diff --git a/pcr/asterisk/PKGBUILD b/pcr/asterisk/PKGBUILD
new file mode 100644
index 000000000..01bc1ae6e
--- /dev/null
+++ b/pcr/asterisk/PKGBUILD
@@ -0,0 +1,95 @@
+# Maintainer : Xavier Devlamynck <magicrhesus@ouranos.be>
+# Contributor: Alessio Biancalana <dottorblaster@gmail.com>
+# Contributor: Maik Broemme <mbroemme@libmpq.org>
+
+pkgname=asterisk
+pkgver=11.5.0
+pkgrel=2
+pkgdesc="A complete PBX solution"
+arch=('i686' 'x86_64')
+backup=('etc/asterisk/acl.conf' 'etc/asterisk/adsi.conf'
+'etc/asterisk/agents.conf' 'etc/asterisk/alarmreceiver.conf'
+'etc/asterisk/alsa.conf' 'etc/asterisk/amd.conf'
+'etc/asterisk/app_mysql.conf' 'etc/asterisk/app_skel.conf'
+'etc/asterisk/asterisk.conf' 'etc/asterisk/calendar.conf'
+'etc/asterisk/ccss.conf' 'etc/asterisk/cdr.conf'
+'etc/asterisk/cdr_adaptive_odbc.conf' 'etc/asterisk/cdr_custom.conf'
+'etc/asterisk/cdr_manager.conf' 'etc/asterisk/cdr_mysql.conf'
+'etc/asterisk/cdr_odbc.conf' 'etc/asterisk/cdr_pgsql.conf'
+'etc/asterisk/cdr_sqlite3_custom.conf' 'etc/asterisk/cdr_syslog.conf'
+'etc/asterisk/cdr_tds.conf' 'etc/asterisk/cel.conf'
+'etc/asterisk/cel_custom.conf' 'etc/asterisk/cel_odbc.conf'
+'etc/asterisk/cel_pgsql.conf' 'etc/asterisk/cel_sqlite3_custom.conf'
+'etc/asterisk/cel_tds.conf' 'etc/asterisk/chan_dahdi.conf'
+'etc/asterisk/chan_mobile.conf' 'etc/asterisk/cli.conf'
+'etc/asterisk/cli_aliases.conf' 'etc/asterisk/cli_permissions.conf'
+'etc/asterisk/codecs.conf' 'etc/asterisk/confbridge.conf'
+'etc/asterisk/config_test.conf' 'etc/asterisk/console.conf'
+'etc/asterisk/dbsep.conf' 'etc/asterisk/dnsmgr.conf'
+'etc/asterisk/dsp.conf' 'etc/asterisk/dundi.conf'
+'etc/asterisk/enum.conf' 'etc/asterisk/extconfig.conf'
+'etc/asterisk/extensions.conf' 'etc/asterisk/extensions_minivm.conf'
+'etc/asterisk/features.conf' 'etc/asterisk/festival.conf'
+'etc/asterisk/followme.conf' 'etc/asterisk/func_odbc.conf'
+'etc/asterisk/gtalk.conf' 'etc/asterisk/h323.conf'
+'etc/asterisk/http.conf' 'etc/asterisk/iax.conf'
+'etc/asterisk/iaxprov.conf' 'etc/asterisk/indications.conf'
+'etc/asterisk/jabber.conf' 'etc/asterisk/jingle.conf'
+'etc/asterisk/logger.conf' 'etc/asterisk/manager.conf'
+'etc/asterisk/meetme.conf' 'etc/asterisk/mgcp.conf'
+'etc/asterisk/minivm.conf' 'etc/asterisk/misdn.conf'
+'etc/asterisk/modules.conf' 'etc/asterisk/motif.conf'
+'etc/asterisk/musiconhold.conf' 'etc/asterisk/muted.conf'
+'etc/asterisk/ooh323.conf' 'etc/asterisk/osp.conf'
+'etc/asterisk/oss.conf' 'etc/asterisk/phone.conf'
+'etc/asterisk/phoneprov.conf' 'etc/asterisk/queuerules.conf'
+'etc/asterisk/queues.conf' 'etc/asterisk/res_config_mysql.conf'
+'etc/asterisk/res_config_sqlite.conf'
+'etc/asterisk/res_config_sqlite3.conf' 'etc/asterisk/res_corosync.conf'
+'etc/asterisk/res_curl.conf' 'etc/asterisk/res_fax.conf'
+'etc/asterisk/res_ldap.conf' 'etc/asterisk/res_odbc.conf'
+'etc/asterisk/res_pgsql.conf' 'etc/asterisk/res_pktccops.conf'
+'etc/asterisk/res_snmp.conf' 'etc/asterisk/res_stun_monitor.conf'
+'etc/asterisk/rtp.conf' 'etc/asterisk/say.conf' 'etc/asterisk/sip.conf'
+'etc/asterisk/sip_notify.conf' 'etc/asterisk/skinny.conf'
+'etc/asterisk/sla.conf' 'etc/asterisk/smdi.conf'
+'etc/asterisk/udptl.conf' 'etc/asterisk/unistim.conf'
+'etc/asterisk/users.conf' 'etc/asterisk/voicemail.conf'
+'etc/asterisk/vpb.conf' 'etc/asterisk/xmpp.conf')
+url="http://www.asterisk.org"
+license=('GPL')
+depends=('alsa-lib' 'speex' 'popt' 'libvorbis' 'curl')
+makedepends=('postgresql' 'unixodbc' 'sqlite3')
+optdepends=('libpri' 'libss7' 'openr2' 'iksemel' 'radiusclient-ng' 'dahdi')
+source=(http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-${pkgver}.tar.gz \
+ ${pkgname}.service \
+ ${pkgname}.logrotated \
+ ${pkgname}.tmpfile)
+install=${pkgname}.install
+sha256sums=('a82c1ddd9fb1d98f0dab6e0255a127fb7c7eaa687b3d515182458244062b4194'
+ '74e0b278d553499f0c648a6e3d55c0dbb11b0c6dc93a85b020a21eafadb83783'
+ 'caa24cfec5c6b4f8cea385269e39557362acad7e2a552994c3bc24080e3bdd4e'
+ '673c0c55bce8068c297f9cdd389402c2d5d5a25e2cf84732cb071198bd6fa78a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin
+ make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ make DESTDIR=${pkgdir} samples
+
+ sed -i -e "s/\/var\/run/\/run/" ${pkgdir}/etc/asterisk/asterisk.conf
+
+ mkdir -p ${pkgdir}/usr/share/doc/asterisk/examples
+ for i in ${pkgdir}/etc/asterisk/*; do install -D -m 644 $i ${pkgdir}/usr/share/doc/asterisk/examples/; done
+
+ mv ${pkgdir}/var/run ${pkgdir}
+
+ install -D -m 644 ${srcdir}/asterisk.logrotated ${pkgdir}/etc/logrotate.d/asterisk
+ install -D -m 644 ${srcdir}/asterisk.service ${pkgdir}/usr/lib/systemd/system/asterisk.service
+ install -D -m 644 ${srcdir}/asterisk.tmpfile ${pkgdir}/usr/lib/tmpfiles.d/asterisk.conf
+ }
diff --git a/pcr/asterisk/asterisk.install b/pcr/asterisk/asterisk.install
new file mode 100644
index 000000000..b7c1a71f7
--- /dev/null
+++ b/pcr/asterisk/asterisk.install
@@ -0,0 +1,15 @@
+post_install() {
+ groupadd -r asterisk
+ useradd -MNr -s /bin/false -d /run/asterisk -g asterisk asterisk && passwd -l asterisk &>/dev/null
+
+ chown -R asterisk:asterisk /etc/asterisk
+ chown -R asterisk:asterisk /var/lib/asterisk
+ chown -R asterisk:asterisk /var/log/asterisk
+ chown -R asterisk:asterisk /run/asterisk
+ chown -R asterisk:asterisk /var/spool/asterisk
+}
+
+post_remove() {
+ userdel asterisk &>/dev/null
+ groupdel asterisk &>/dev/null
+}
diff --git a/pcr/asterisk/asterisk.logrotated b/pcr/asterisk/asterisk.logrotated
new file mode 100644
index 000000000..f03d0acd3
--- /dev/null
+++ b/pcr/asterisk/asterisk.logrotated
@@ -0,0 +1,10 @@
+/var/log/asterisk/*_log /var/log/asterisk/messages {
+ create 640 asterisk asterisk
+ compress
+ missingok
+ notifempty
+ postrotate
+ /usr/sbin/asterisk -rx "logger reload" 1>/dev/null || true
+ endscript
+}
+
diff --git a/pcr/asterisk/asterisk.service b/pcr/asterisk/asterisk.service
new file mode 100644
index 000000000..789a1adda
--- /dev/null
+++ b/pcr/asterisk/asterisk.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Asterisk PBX and telephony daemon
+Documentation=man:asterisk(8)
+Wants=network.target
+After=network.target
+
+[Service]
+Type=simple
+User=asterisk
+Group=asterisk
+ExecStart=/usr/bin/asterisk -f -C /etc/asterisk/asterisk.conf
+ExecStop=/usr/bin/asterisk -rx 'core stop now'
+ExecReload=/usr/bin/asterisk -rx 'core reload'
+
+# safe_asterisk emulation
+Restart=always
+RestartSec=10
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/asterisk/asterisk.tmpfile b/pcr/asterisk/asterisk.tmpfile
new file mode 100644
index 000000000..6f1042e8a
--- /dev/null
+++ b/pcr/asterisk/asterisk.tmpfile
@@ -0,0 +1 @@
+d /run/asterisk 0755 asterisk asterisk -
diff --git a/pcr/audio-entropyd/PKGBUILD b/pcr/audio-entropyd/PKGBUILD
new file mode 100644
index 000000000..c691c0128
--- /dev/null
+++ b/pcr/audio-entropyd/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: fauno <fauno@parabola.nu>
+pkgname=audio-entropyd
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="Feeds the /dev/random device with entropy-data read from an audio device"
+arch=('i686')
+url="http://vanheusden.com/aed/"
+license=('GPL2')
+groups=('entropy')
+depends=('alsa-lib')
+source=(http://www.vanheusden.com/aed/${pkgname}-${pkgver}.tgz
+ ${pkgname}.service)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -D -m 755 ${pkgname} ${pkgdir}/usr/bin/${pkgname}
+ install -D -m 644 ${srcdir}/${pkgname}.service \
+ ${pkgdir}/usr/lib/systemd/system/${pkgname}.service
+}
+sha1sums=('b788559c6c01e17bb9d314ac2a7411bc30fbb8a2'
+ '6d3ad093176efaa0e5a4fe80113048aa9c4810ce')
+sha256sums=('6fbaf1c4f77e988f4656cd079309d5eb6bd36cbae89c2ee01324c5690adaf3ff'
+ '41704fac32b2c180c1fb6155b902445e2c5bc493da0191180cb3720cd72bd42c')
diff --git a/pcr/audio-entropyd/audio-entropyd.service b/pcr/audio-entropyd/audio-entropyd.service
new file mode 100644
index 000000000..feff7cae4
--- /dev/null
+++ b/pcr/audio-entropyd/audio-entropyd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Gathering entropy from audio
+After=sound.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/audio-entropyd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/aurvote/PKGBUILD b/pcr/aurvote/PKGBUILD
new file mode 100644
index 000000000..4dcf8d3d2
--- /dev/null
+++ b/pcr/aurvote/PKGBUILD
@@ -0,0 +1,18 @@
+# Maintainer: tuxce <tuxce.net@gmail.com>
+# Maintainer: Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=aurvote
+pkgver=1.4
+pkgrel=1
+pkgdesc="Tool to vote for favorite AUR packages"
+url="http://git.archlinux.fr/aurvote.git/"
+license="GPL"
+arch=('any')
+depends=('curl')
+source=($pkgname)
+
+build() {
+ install -D -m 755 "$srcdir/$pkgname" "$pkgdir/usr/bin/$pkgname"
+}
+
+md5sums=('57f2f0822b833f6c858526eb7c8bb85f')
diff --git a/pcr/aurvote/aurvote b/pcr/aurvote/aurvote
new file mode 100644
index 000000000..1b9c8f1bf
--- /dev/null
+++ b/pcr/aurvote/aurvote
@@ -0,0 +1,193 @@
+#!/bin/bash
+#
+# aurvote : Tool to vote for favorite AUR packages
+#
+# Copyright (c) 2007-2010 Julien MISCHKOWITZ <wain@archlinux.fr>
+# Copyright (c) 2011 tuxce <tuxce.net@gmail.com>
+#
+# This program 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, 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, see <http://www.gnu.org/licenses/>.
+#
+
+NAME='aurvote'
+VERSION=1.4
+
+TMPDIR=${TMPDIR:-/tmp}
+AV_TMP="$TMPDIR/aurvote-$USER"
+
+CONFIGFILE=${XDG_HOME_CONFIG:-~/.config}/aurvote
+
+AUR_URL="https://aur.archlinux.org"
+AUR_URL_LOGIN="$AUR_URL/login/"
+AUR_URL_PKG_INFO="$AUR_URL/rpc.php"
+AUR_URL_PKG_PAGE="$AUR_URL/packages/"
+AUR_DOMAIN="aur.archlinux.org"
+AUR_COOKIE="AURSID"
+AUR_COOKIE_VALUE=""
+AUR_SETLANG="?setlang=en"
+
+
+version() {
+ echo "$NAME $VERSION"
+}
+
+usage() {
+ echo "$NAME $VERSION"
+ echo
+ echo "usage: $0 <option> <pkgname1> <pkgname2> ..."
+ echo
+ echo " --version, -V shows version"
+ echo " --help, -h shows this help"
+ echo " --check, -c check for voted packages"
+ echo " --vote, -v vote for packages"
+ echo " --unvote, -u unvote packages"
+ echo
+ echo " --configure create $CONFIGFILE"
+ echo
+}
+
+error() {
+ echo -e "Error: $*"
+ exit 1
+}
+
+is_cookie_valid() {
+ [[ -r $COOKIE_FILE ]] || return 1
+ local expire
+ expire=$(sed -ne '/^\(#HttpOnly_\|[^#]\)/ { s/#HttpOnly_//;p }' "$COOKIE_FILE" |
+ awk "{ if (\$1==\"$AUR_DOMAIN\" && \$6==\"$AUR_COOKIE\") print \$5\" \"\$7; }")
+ AUR_COOKIE_VALUE=${expire##* }
+ expire=${expire%% *}
+ [[ $expire ]] && { ((expire==0)) || ((expire>$(date +%s))); }
+}
+
+aur_login() {
+ local args=()
+ if ((PERSIST)); then
+ is_cookie_valid && return 0
+ args=(-d "remember_me=on")
+ fi
+ if [[ ! $user || ! $pass ]]; then
+ error "$CONFIGFILE must have user name and password. Run:\n$NAME --configure"
+ fi
+ curl $CURL_OPT -L -fs -c "$COOKIE_FILE" "${args[@]}" -d "user=$user" \
+ --data-urlencode "passwd=$pass" "$AUR_URL_LOGIN" \
+ -o "$AV_TMP/login" || error "Unable to access $AUR_URL_LOGIN"
+ err=$(sed -ne 's/.*ul class="errorlist"><li>\([^<]*\)<.*/\1/p' "$AV_TMP/login")
+ [[ $err ]] && error "$err"
+}
+
+aur_check_vote() {
+ local pkg
+ for pkg in "${pkgnames[@]}"; do
+ curl $CURL_OPT -fs -b "$COOKIE_FILE" \
+ "${AUR_URL_PKG_PAGE}${pkg}${AUR_SETLANG}" \
+ -o "$AV_TMP/$pkg.$PID" ||
+ error "Unable to get $pkg page"
+ if sed '/<div id="news">/q' "$AV_TMP/$pkg.$PID" | grep -q /unvote/; then
+ echo "already voted"
+ elif sed '/<div id="news">/q' "$AV_TMP/$pkg.$PID" | grep -q /vote/; then
+ echo "not voted"
+ else
+ echo "voted status not found"
+ fi
+ done
+}
+
+
+aur_vote() {
+ local pkg
+ (($1)) && vote="/vote/" || vote="/unvote/"
+ for pkg in "${pkgnames[@]}"; do
+ curl $CURL_OPT -fs -b "$COOKIE_FILE" \
+ "${AUR_URL_PKG_PAGE}${pkg}${vote}" -o /dev/null
+ if (($?)); then
+ echo "Error: Can't (un)vote for $pkg"
+ else
+ echo "$pkg : vote changed"
+ fi
+ done
+}
+
+create_config_file() {
+ local ans
+ if [[ -f "$CONFIGFILE" ]]; then
+ read -p "$CONFIGFILE exists. Replace ? [y/N] " ans
+ [[ $ans != 'Y' && $ans != 'y' ]] && return 0
+ fi
+ echo -n > "$CONFIGFILE"
+ if [[ ! -r "$CONFIGFILE" ]]; then
+ error "Unable to create $CONFIGFILE"
+ fi
+ echo "Creation of $CONFIGFILE"
+ read -p "AUR User : " ans
+ printf "user=%q\n" "$ans" >> "$CONFIGFILE"
+ read -p "AUR Password : " ans
+ printf "pass=%q\n" "$ans" >> "$CONFIGFILE"
+ read -p "Persistent login ? [Y/n] " ans
+ [[ $ans = 'n' || $ans = 'N' ]] && return 0
+ read -p "Path to the cookie file : [/var/tmp/aurvote-$USER.cookie] ? " ans
+ printf "COOKIE_FILE=%q\n" "${ans:-/var/tmp/aurvote-$USER.cookie}" >> "$CONFIGFILE"
+ echo
+ echo "Creation complete."
+}
+
+### MAIN PROGRAM ###
+umask 077
+[[ -d "$AV_TMP" ]] || mkdir -p "$AV_TMP"
+[[ -d "$AV_TMP" && -w "$AV_TMP" ]] || error "Cannot access to $AV_TMP"
+PID=$$
+ACTION="vote"
+pkgnames=()
+CURL_OPT=""
+PERSIST=0
+
+[[ -r "$CONFIGFILE" ]] && source "$CONFIGFILE"
+
+[[ $COOKIE_FILE ]] && PERSIST=1
+
+while [[ $1 ]]; do
+ case $1 in
+ --help|-h) usage; exit 0;;
+ --version|-V) version; exit 0;;
+ --check|-c) ACTION="check";;
+ --configure) ACTION="configure";;
+ --vote|-v) ACTION="vote";;
+ --unvote|-u) ACTION="unvote";;
+ --id) ;; # deprecated
+ --insecure) CURL_OPT+=" --insecure";;
+ -k) PERSIST=1; shift; COOKIE_FILE="$1";;
+ --*|-*) usage; exit 1;;
+ *) pkgnames+=("$1");;
+ esac
+ shift
+done
+
+if [[ $ACTION = "configure" ]]; then
+ create_config_file
+ exit 0
+fi
+
+COOKIE_FILE=${COOKIE_FILE:-"$AV_TMP/cookies"}
+pkgnames=("${pkgnames[@]%/*}") # compatibility with yaourt <= 1.2.1
+[[ ! $pkgnames ]] && usage && exit 1
+
+aur_login
+
+case "$ACTION" in
+ check) aur_check_vote;;
+ vote) aur_vote 1;;
+ unvote) aur_vote 0;;
+esac
+
+# vim: set ts=4 sw=4 et:
diff --git a/pcr/auto-complete/PKGBUILD b/pcr/auto-complete/PKGBUILD
new file mode 100644
index 000000000..afa9d8691
--- /dev/null
+++ b/pcr/auto-complete/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: abf <zouxiaoming@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=auto-complete
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="A plugin for emacs that allows to auto-complete.Auto Complete Mode is the most intelligent auto-completion extension for GNU Emacs."
+arch=('any')
+url="http://cx4a.org/software/auto-complete/"
+license=('GPL3')
+install=$pkgname.install
+depends=()
+optdepends=('emacs')
+source=(http://cx4a.org/pub/auto-complete/$pkgname-$pkgver.tar.bz2)
+md5sums=('0ffdc1223d40b8ebc57495e33708ceea')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ mkdir -p $pkgdir/usr/share/$pkgname
+ mkdir -p $pkgdir/usr/share/emacs/site-lisp/
+ make DIR="$pkgdir/usr/share/$pkgname" install
+ ln -s /usr/share/$pkgname $pkgdir/usr/share/emacs/site-lisp/$pkgname
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/auto-complete/auto-complete.install b/pcr/auto-complete/auto-complete.install
new file mode 100644
index 000000000..9687f5e43
--- /dev/null
+++ b/pcr/auto-complete/auto-complete.install
@@ -0,0 +1,21 @@
+post_install()
+{
+echo " "
+echo "==================================================================="
+echo " "
+echo "Add the following code to your .emacs:"
+
+echo "(add-to-list 'load-path \"/usr/share/emacs/site-lisp/auto-complete\")"
+echo "(require 'auto-complete-config)"
+echo "(add-to-list 'ac-dictionary-directories \"/usr/share/emacs/site-lisp/auto-complete/ac-dict\")"
+echo "(ac-config-default)"
+echo " "
+echo "==================================================================="
+echo " "
+
+}
+
+post_upgrade()
+{
+ post_install
+}
diff --git a/pcr/azr3-jack/PKGBUILD b/pcr/azr3-jack/PKGBUILD
new file mode 100644
index 000000000..eaa430418
--- /dev/null
+++ b/pcr/azr3-jack/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+pkgname=azr3-jack
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="A tonewheel organ with drawbars, distortion and rotating speakers"
+arch=('i686')
+url="http://ll-plugins.nongnu.org/azr3/"
+license=('GPL')
+depends=('jack' 'gtkmm' 'lash')
+source=(http://download.savannah.nongnu.org/releases-noredirect/ll-plugins/$pkgname-$pkgver.tar.bz2)
+md5sums=('aa71715e5873aea724713be5970ebfbc')
+
+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/pcr/babeld/PKGBUILD b/pcr/babeld/PKGBUILD
new file mode 100644
index 000000000..20d442fd6
--- /dev/null
+++ b/pcr/babeld/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer (AUR): Yann Lopez <arch at lonewulf dot net>
+# Maintainer (Parabola): fauno <fauno@parabola.nu>
+pkgname=babeld
+pkgver=1.4.1
+pkgrel=1
+pkgdesc="Loop-free distance-vector routing protocol"
+arch=(i686 x86_64 mips64el)
+url="http://www.pps.jussieu.fr/~jch/software/babel/"
+license=('custom')
+depends=(glibc)
+source=(http://www.pps.jussieu.fr/~jch/software/files/$pkgname-$pkgver.tar.gz{,.asc})
+install=babeld.install
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -e "s,/man/,/share&,g" -i Makefile
+
+ make PREFIX=/usr CFLAGS="$CFLAGS"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make PREFIX=/usr TARGET=$pkgdir install
+
+ gzip -f $pkgdir/usr/share/man/man8/$pkgname.8
+
+ install -Dm 644 LICENCE $pkgdir/usr/share/licenses/$pkgname/LICENCE
+}
+md5sums=('406bbd940e3a9019d832d20e277266f2'
+ 'SKIP')
diff --git a/pcr/babeld/babeld.install b/pcr/babeld/babeld.install
new file mode 100644
index 000000000..686153617
--- /dev/null
+++ b/pcr/babeld/babeld.install
@@ -0,0 +1,18 @@
+compatibility_warning() {
+ echo "PLEASE NOTE:"
+ echo " "
+ echo "-------------------------------------------------------------"
+ echo " This version uses the IANA-allocated UDP port and multicast"
+ echo " group and is therefore incompatible with older versions."
+ echo "-------------------------------------------------------------"
+}
+
+post_upgrade() {
+ major=$(echo $2 | cut -d '.' -f1)
+ minor=$(echo $2 | cut -d '.' -f2)
+ if [ $major -lt 1 ]; then
+ compatibility_warning
+ elif [ $major -eq 1 -a $minor -lt 1 ]; then
+ compatibility_warning
+ fi
+}
diff --git a/pcr/bambus/PKGBUILD b/pcr/bambus/PKGBUILD
new file mode 100644
index 000000000..d76ba2dc2
--- /dev/null
+++ b/pcr/bambus/PKGBUILD
@@ -0,0 +1,26 @@
+# Bambus
+# Contributor: ying <Jinoto Systems>
+# Contributor: ying <Jinoto Systems>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=bambus
+pkgver=2.4
+pkgrel=1
+pkgdesc="A small and simple GTK Gui to change Wallpapers using feh, Esetroot, hsetroot, habak or any other command tool."
+url="http://malisch-ts.de"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('gtkmm' 'eterm') # 'eterm' can be changed in any command tool to draw the wallpaper.
+optdepends=('eterm' 'habak' 'feh' 'hsetroot' 'others')
+source=("https://downloads.sourceforge.net/project/simplebambus/bambus-${pkgver}-source.tar.gz?r=&ts=1289210369&use_mirror=master")
+md5sums=('c8001d9f837f04f4f8712729c2aa1849')
+
+build() {
+ make all
+}
+package() {
+ install -Dm755 bambus $pkgdir/usr/bin/bambus || return
+}
+
+
+md5sums=('c8001d9f837f04f4f8712729c2aa1849')
diff --git a/pcr/bamf2/PKGBUILD b/pcr/bamf2/PKGBUILD
new file mode 100644
index 000000000..681d3da7e
--- /dev/null
+++ b/pcr/bamf2/PKGBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Ivan de Jesús Pompa García <ivan.pompa@gmx.com>
+# Contributors: niQo ???
+
+pkgname=bamf2
+_dname=bamf
+pkgver=0.2.126
+pkgrel=2
+pkgdesc="Removes the headache of applications matching into a simple DBus daemon and c wrapper library, 0.2 branch"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/bamf"
+license=('GPL')
+depends=('dbus-glib' 'libwnck3' 'libgtop')
+makedepends=('libwnck' 'vala')
+optdepends=('gtk2: GTK+ 2 library')
+options=(!libtool)
+source=(http://launchpad.net/${_dname}/0.2/${pkgver}/+download/${_dname}-${pkgver}.tar.gz)
+md5sums=('709735137e4b028bb94f9e106bb9ac6e')
+
+conflicts=('bamf')
+provides=('bamf')
+
+build() {
+ cd "$srcdir/${_dname}-${pkgver}"
+
+ # Disable building tests
+ sed -i '/tests/ d' Makefile.in
+
+ sed -i -e 's/--c-include/--include/' lib/libbamf/Makefile.in
+ export CFLAGS="$CFLAGS -Wno-deprecated-declarations -Wno-unused-local-typedefs"
+
+ [[ -d build-gtk3 ]] || mkdir build-gtk3
+ pushd build-gtk3
+ ../configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/${_dname} \
+ --disable-static
+ make
+ popd
+
+ [[ -d build-gtk2 ]] || mkdir build-gtk2
+ pushd build-gtk2
+ ../configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/${_dname} \
+ --disable-static --with-gtk=2
+ make -C lib/libbamf
+ popd
+}
+
+package() {
+ cd "$srcdir/${_dname}-${pkgver}/build-gtk3"
+ make DESTDIR="${pkgdir}/" install
+
+ cd "$srcdir/${_dname}-${pkgver}/build-gtk2"
+ make -C lib/libbamf DESTDIR="${pkgdir}" install
+}
diff --git a/pcr/barnyard2/PKGBUILD b/pcr/barnyard2/PKGBUILD
new file mode 100644
index 000000000..7b52c952c
--- /dev/null
+++ b/pcr/barnyard2/PKGBUILD
@@ -0,0 +1,44 @@
+# Contributor: Commiebstrd<spenserreinhardt@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=barnyard2
+pkgver=1
+pkgrel=9
+pkgdesc="Barnyard2 is a fork of the original barnyard project, designed specifically for Snort's new unified2 file format. Barnyard2 is under active development and continues to adapt based on user feedback."
+arch=('i686' 'x86_64')
+url="http://www.securixlive.com/barnyard2/index.php"
+license=('GPLv2')
+depends=('snort' 'mysql')
+source=("http://www.securixlive.com/download/${pkgname}/${pkgname}-${pkgver}.${pkgrel}.tar.gz")
+
+package() {
+
+ #configures and makes package
+ cd "${srcdir}/${pkgname}-${pkgver}.${pkgrel}"
+ ./configure --with-mysql
+ make
+ make DESTDIR="${pkgdir}" install
+
+ #makes dir for /etc locations
+ mkdir "${pkgdir}/etc" -p
+
+ #makes dirs for /var locations
+ mkdir "${pkgdir}/var" -p
+ mkdir "${pkgdir}/var/log" -p
+ mkdir "${pkgdir}/var/log/$pkgname" -p
+
+ #makes /usr/bin, /usr should already be made from make\make install
+ mkdir "${pkgdir}/usr/bin"
+
+ #copy barnyard2.conf to /etc/barnyard2.conf and executable to /usr/bin/
+ cp "${pkgdir}/usr/local/etc/$pkgname.conf" "${pkgdir}/etc/"
+ cp "${pkgdir}/usr/local/bin/$pkgname" "${pkgdir}/usr/bin/"
+
+ #file permission mods and creation of initial .waldo file
+ chmod 666 "${pkgdir}/var/log/$pkgname"
+ touch "${pkgdir}/var/log/$pkgname/$pkgname.waldo"
+ chown snort.snort "${pkgdir}/var/log/$pkgname/$pkgname.waldo"
+
+ #not needed since conf is copied to /etc/ and barnyard is sent to /usr/bin
+ rm -rf "${pkgdir}/usr/local/"
+}
diff --git a/pcr/bashmount/PKGBUILD b/pcr/bashmount/PKGBUILD
new file mode 100644
index 000000000..e468ab79f
--- /dev/null
+++ b/pcr/bashmount/PKGBUILD
@@ -0,0 +1,37 @@
+# Contributer: Jamie Nguyen <jamie@tomoyolinux.co.uk>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=bashmount
+pkgver=1.6.2
+pkgrel=1
+pkgdesc="A menu-driven bash script for the management of removable media with udisks"
+arch=('any')
+url='http://www.sourceforge.net/projects/bashmount/'
+license=('GPL2')
+depends=('udisks')
+install=${pkgname}.install
+backup=('etc/bashmount.conf')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build()
+{
+ cd "${srcdir}/bashmount-${pkgver}"
+
+ # install script
+ install -D -m755 bashmount "${pkgdir}/usr/bin/bashmount"
+
+ # install config file
+ install -D -m644 bashmount.conf "${pkgdir}/etc/bashmount.conf"
+
+ # install man page
+ gzip -c -9 bashmount.1 > bashmount.1.gz
+ install -D -m644 bashmount.1.gz "${pkgdir}/usr/share/man/man1/bashmount.1.gz"
+
+ # install documentation
+ install -d -m755 "${pkgdir}/usr/share/doc/bashmount"
+ install -m644 AUTHORS "${pkgdir}/usr/share/doc/bashmount/AUTHORS"
+ install -m644 COPYING "${pkgdir}/usr/share/doc/bashmount/COPYING"
+ install -m644 NEWS "${pkgdir}/usr/share/doc/bashmount/NEWS"
+}
+
+sha256sums=('10e5c8f9065e2410c5018d74a3f8cf7f30668fafa30d9ed82ff04cd64a0f7309')
diff --git a/pcr/bashmount/bashmount.install b/pcr/bashmount/bashmount.install
new file mode 100644
index 000000000..6e646d94b
--- /dev/null
+++ b/pcr/bashmount/bashmount.install
@@ -0,0 +1,9 @@
+post_install () {
+ echo
+ echo " * dbus and consolekit/policykit need to be running. If you are not"
+ echo " using a graphical login manager, put this in ~/.xinitrc:"
+ echo
+ echo " source /etc/X11/xinit/xinitrc.d/30-dbus"
+ echo " exec ck-launch-session [insert window manager here]"
+ echo
+}
diff --git a/pcr/batctl/PKGBUILD b/pcr/batctl/PKGBUILD
new file mode 100644
index 000000000..521537a50
--- /dev/null
+++ b/pcr/batctl/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Nathan Owe <ndowens.aur at gmail dot com>
+# Maintainer: Thomas Weißschuh <thomas_weissschuh@lavabit.com>
+pkgname=batctl
+pkgver=2012.3.0
+pkgrel=2
+pkgdesc="B.A.T.M.A.N. advanced control and management tool"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.open-mesh.net/"
+license=('GPL')
+depends=('glibc')
+source=("http://downloads.open-mesh.net/batman/releases/batman-adv-${pkgver}/${pkgname}-${pkgver}.tar.gz"{,.asc})
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} PREFIX=/usr install
+
+}
+
+# vim:set ts=2 sw=2 et:
+md5sums=('fe9e6a3994539037b48afc5e3d31628c'
+ 'fdc6433ebc7fe59ce9eaec56dd843eb9')
diff --git a/pcr/bibletime/PKGBUILD b/pcr/bibletime/PKGBUILD
new file mode 100644
index 000000000..3a2941623
--- /dev/null
+++ b/pcr/bibletime/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: SanskritFritz (gmail)
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Tobias T. <OldShatterhand at gmx-topmail dot de>
+
+pkgname=bibletime
+pkgver=2.9.2
+pkgrel=10
+pkgdesc="Bible study tool for KDE4"
+arch=('x86_64' 'i686')
+url="http://www.bibletime.info/"
+license=('GPL2')
+depends=('sword' 'openssl' 'clucene' 'qtwebkit')
+makedepends=('cmake')
+install=$pkgname.install
+source=("http://sourceforge.net/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ CXXFLAGS+=" -fpermissive"
+
+# rm CMakeCache.txt
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DQT_QMAKE_EXECUTABLE=qmake4 \
+ -DBT_FORCE_USE_QT4=TRUE \
+ "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
+sha256sums=('393c77419b0514645cf2417f52d37bdbd604f8eeb37e76355e14c38d896093c8')
diff --git a/pcr/bibletime/bibletime.install b/pcr/bibletime/bibletime.install
new file mode 100644
index 000000000..ad97d7bab
--- /dev/null
+++ b/pcr/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/pcr/bison++/PKGBUILD b/pcr/bison++/PKGBUILD
new file mode 100644
index 000000000..947c41df4
--- /dev/null
+++ b/pcr/bison++/PKGBUILD
@@ -0,0 +1,51 @@
+# Contributor: Antonio Garcia-Dominguez <antonio.garciadominguez@uca.es>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=bison++
+pkgver=1.21.11
+pkgrel=1
+pkgdesc="Parser generator in C or C++ from BNF notation"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/bison++"
+license=('GPL')
+source=('http://ftp.de.debian.org/debian/pool/main/b/bison++/bison++_1.21.11.orig.tar.gz' 'http://ftp.de.debian.org/debian/pool/main/b/bison++/bison++_1.21.11-3.diff.gz')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Apply the Debian patch
+ patch -p1 < ../*.diff
+
+ # Fix the broken Makefile.am script
+ sed -e '
+ s/datadir/DESTDIR\)\$(datadir/
+ s/bindir/DESTDIR\)\$(bindir/
+ /^pkgdata_DATA/s/ Example$//
+ /install\-exec\-hook/i\install-data-hook:\
+\tcp -r $(srcdir)/Example $(DESTDIR)$(pkgdatadir)\
+' -i Makefile.am
+
+ # Bootstrap the autotools and compile
+ aclocal
+ automake --add-missing
+ autoreconf
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ # Remove or rename files that could conflict with regular Bison
+ rm "$pkgdir/usr/bin/bison"
+ mv "$pkgdir/usr/share/info/"{bison,bison++}.info
+ rm "$pkgdir/usr/share/man/man1/bison.1"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/blender-addon-ogre/PKGBUILD b/pcr/blender-addon-ogre/PKGBUILD
new file mode 100644
index 000000000..5fd846220
--- /dev/null
+++ b/pcr/blender-addon-ogre/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+_bldname=blender
+_bldver=2.69
+_bldep=10
+
+_pkgname=ogre
+pkgname=$_bldname-addon-$_pkgname
+pkgver=0.6.0
+pkgrel=3
+pkgdesc="${_bldname}2$_pkgname: A addon for the ${_bldname^} which allows export to ${_pkgname^}3D formats (scene/mesh/material/skeleton) (built for the $_bldname-libre package)"
+arch=any
+url=https://code.google.com/p/${_bldname}2$_pkgname
+license=LGPL2.1
+depends=(
+ "$_bldname-libre>=$_bldep:$_bldver"
+ "$_bldname-libre<$(($_bldep+1)):${_bldver::2}$((${_bldver:2:4}+1))"
+)
+source=https://${_bldname}2$_pkgname.googlecode.com/files/${_bldname}2$_pkgname-$pkgver.zip
+sha512sums=15609a6dc3f5901ec59193acb6944017cc426fa12ce658715006ba781b6c39a09f38a64c858b28f7e662dff50eccf06ec6ef6efc22e0d2876c6c77fb18c04712
+
+prepare() {
+ msg 'renaming wrong OS name'
+ sed -i 's|Linux|GNU/Linux|' io_export_${_pkgname}DotScene.py
+}
+
+package() {
+ cd $srcdir
+ a=$pkgdir/usr/share/$_bldname/$_bldver/scripts/addons/$_pkgname
+ install -vd $a && cp -va io_export_${_pkgname}DotScene.py $a/__init__.py
+}
diff --git a/pcr/bristol/PKGBUILD b/pcr/bristol/PKGBUILD
new file mode 100644
index 000000000..6464f6b29
--- /dev/null
+++ b/pcr/bristol/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=bristol
+pkgver=0.60.11
+pkgrel=1
+pkgdesc="Vintage synthesizers emulator"
+arch=('i686')
+url="http://bristol.sourceforge.net"
+license=('GPL')
+makedepends=('gcc')
+depends=('jack' 'libx11')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9ea4dacdac0dba3048156e2f6a5ee4d6')
+sha256sums=('7d1f0bbd0d7d303fc77c6b9549b61708d7a83b4dc007818011b1f55d1fa922ba')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --disable-version-check --enable-jack-default-audio # --enable-jack-default-midi
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -v -m 0644 ChangeLog ${pkgdir}/usr/share/bristol/
+ install -v -m 0644 README ${pkgdir}/usr/share/bristol/
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/bup/PKGBUILD b/pcr/bup/PKGBUILD
new file mode 100644
index 000000000..d45d60961
--- /dev/null
+++ b/pcr/bup/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: Bram Schoenmakers <me@bramschoenmakers.nl>
+# Contributor: henning mueller <henning@orgizm.net>
+# Maintainer : Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.io>
+
+# If you'd like to have documentation, please set the variable below to 1.
+# This implies installing pandoc, which in turn depends on many Haskell packages.
+# Which you can build if you wish.
+_havedocs=0
+
+pkgname=bup
+pkgver=0.25rc1
+_pkgver=0.25-rc1
+pkgrel=2
+pkgdesc="Backup tool using git pack files."
+arch=('i686' 'x86_64')
+url="http://github.com/apenwarr/bup"
+license=('GPL')
+depends=('python2-fuse' 'par2cmdline' 'python' 'git')
+[ $_havedocs = 1 ] && makedepends=('haskell-pandoc')
+source=("https://github.com/apenwarr/${pkgname}/archive/${pkgname}-${_pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgname}-${_pkgver}"
+
+ find . -name \*.py | xargs sed -i 's:env python:env python2:'
+ sed -i 's:PYTHON=python:PYTHON=python2:' Makefile
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgname}-${_pkgver}"
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/pcr/cambozola/PKGBUILD b/pcr/cambozola/PKGBUILD
new file mode 100644
index 000000000..27664f181
--- /dev/null
+++ b/pcr/cambozola/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Ernie Brodeur <ebrodeur@ujami.net>
+pkgname=cambozola
+pkgver=0.92
+pkgrel=1
+pkgdesc="A java servlet for streaming JPEG's from ip Cameras."
+url="http://www.charliemouse.com:8080/code/cambozola/"
+arch=('x86_64' 'i686')
+license=('GPL')
+depends=('java-runtime')
+makedepends=('apache-ant')
+source=("${url}${pkgname}-${pkgver}.tar.gz")
+md5sums=('602daba851e726e2399445fda3ca718f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ant
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ mkdir -p ${pkgdir}/usr/share/${pkgname}
+ cp dist/* ${pkgdir}/usr/share/${pkgname}/
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/pcr/cegui-0.5/CEGUIString.h b/pcr/cegui-0.5/CEGUIString.h
new file mode 100644
index 000000000..13a61ba15
--- /dev/null
+++ b/pcr/cegui-0.5/CEGUIString.h
@@ -0,0 +1,5603 @@
+/***********************************************************************
+ filename: CEGUIString.h
+ created: 26/2/2004
+ author: Paul D Turner
+
+ purpose: Defines string class used within the GUI system.
+*************************************************************************/
+/***************************************************************************
+ * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
+ *
+ * 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.
+ ***************************************************************************/
+#ifndef _CEGUIString_h_
+#define _CEGUIString_h_
+
+#include "CEGUIBase.h"
+#include <string>
+#include <string.h>
+#include <stdexcept>
+
+// Start of CEGUI namespace section
+namespace CEGUI
+{
+#define STR_QUICKBUFF_SIZE 32
+ /*************************************************************************
+ Basic Types
+ *************************************************************************/
+ typedef uint8 utf8;
+ //typedef uint16 utf16; // removed typedef to prevent usage, as utf16 is not supported (yet)
+ typedef uint32 utf32;
+
+/*!
+\brief
+ String class used within the GUI system.
+
+ For the most part, this class can replace std::string in basic usage. However, currently String does not use the
+ current locale, and also comparisons do not take into account the Unicode data tables, so are not 'correct'
+ as such.
+*/
+class CEGUIEXPORT String
+{
+public:
+ /*************************************************************************
+ Integral Types
+ *************************************************************************/
+ typedef utf32 value_type; //!< Basic 'code point' type used for String (utf32)
+ typedef size_t size_type; //!< Unsigned type used for size values and indices
+ typedef std::ptrdiff_t difference_type; //!< Signed type used for differences
+ typedef utf32& reference; //!< Type used for utf32 code point references
+ typedef const utf32& const_reference; //!< Type used for constant utf32 code point references
+ typedef utf32* pointer; //!< Type used for utf32 code point pointers
+ typedef const utf32* const_pointer; //!< Type used for constant utf32 code point pointers
+
+ static const size_type npos; //!< Value used to represent 'not found' conditions and 'all code points' etc.
+
+private:
+ /*************************************************************************
+ Implementation data
+ *************************************************************************/
+ size_type d_cplength; //!< holds length of string in code points (not including null termination)
+ size_type d_reserve; //!< code point reserve size (currently allocated buffer size in code points).
+
+ mutable utf8* d_encodedbuff; //!< holds string data encoded as utf8 (generated only by calls to c_str() and data())
+ mutable size_type d_encodeddatlen; //!< holds length of encoded data (in case it's smaller than buffer).
+ mutable size_type d_encodedbufflen; //!< length of above buffer (since buffer can be bigger then the data it holds to save re-allocations).
+
+ utf32 d_quickbuff[STR_QUICKBUFF_SIZE]; //!< This is a integrated 'quick' buffer to save allocations for smallish strings
+ utf32* d_buffer; //!< Pointer the the main buffer memory. This is only valid when quick-buffer is not being used
+
+public:
+ /*************************************************************************
+ Iterator Classes
+ *************************************************************************/
+ /*!
+ \brief
+ Constant forward iterator class for String objects
+ */
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+ class const_iterator : public std::iterator<std::random_access_iterator_tag, utf32>
+#else
+ class const_iterator : public std::iterator<std::random_access_iterator_tag, utf32, std::ptrdiff_t, const utf32*, const utf32&>
+#endif
+ {
+
+ public:
+ //////////////////////////////////////////////////////////////////////////
+ // data
+ //////////////////////////////////////////////////////////////////////////
+ const utf32* d_ptr;
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Methods
+ //////////////////////////////////////////////////////////////////////////
+ const_iterator(void)
+ {
+ d_ptr = 0;
+ }
+ const_iterator(const_pointer ptr)
+ {
+ d_ptr = ptr;
+ }
+
+ const_reference operator*() const
+ {
+ return *d_ptr;
+ }
+
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+# pragma warning (push)
+# pragma warning (disable : 4284)
+#endif
+ const_pointer operator->() const
+ {
+ return &**this;
+ }
+
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+# pragma warning (pop)
+#endif
+
+ const_iterator& operator++()
+ {
+ ++d_ptr;
+ return *this;
+ }
+
+ const_iterator operator++(int)
+ {
+ const_iterator temp = *this;
+ ++*this;
+ return temp;
+ }
+
+ const_iterator& operator--()
+ {
+ --d_ptr;
+ return *this;
+ }
+
+ const_iterator operator--(int)
+ {
+ const_iterator temp = *this;
+ --*this;
+ return temp;
+ }
+
+ const_iterator& operator+=(difference_type offset)
+ {
+ d_ptr += offset;
+ return *this;
+ }
+
+ const_iterator operator+(difference_type offset) const
+ {
+ const_iterator temp = *this;
+ return temp += offset;
+ }
+
+ const_iterator& operator-=(difference_type offset)
+ {
+ return *this += -offset;
+ }
+
+ const_iterator operator-(difference_type offset) const
+ {
+ const_iterator temp = *this;
+ return temp -= offset;
+ }
+
+ difference_type operator-(const const_iterator& iter) const
+ {
+ return d_ptr - iter.d_ptr;
+ }
+
+ const_reference operator[](difference_type offset) const
+ {
+ return *(*this + offset);
+ }
+
+ bool operator==(const const_iterator& iter) const
+ {
+ return d_ptr == iter.d_ptr;
+ }
+
+ bool operator!=(const const_iterator& iter) const
+ {
+ return !(*this == iter);
+ }
+
+ bool operator<(const const_iterator& iter) const
+ {
+ return d_ptr < iter.d_ptr;
+ }
+
+ bool operator>(const const_iterator& iter) const
+ {
+ return (!(iter < *this));
+ }
+
+ bool operator<=(const const_iterator& iter) const
+ {
+ return (!(iter < *this));
+ }
+
+ bool operator>=(const const_iterator& iter) const
+ {
+ return (!(*this < iter));
+ }
+
+ friend const_iterator operator+(difference_type offset, const const_iterator& iter)
+ {
+ return iter + offset;
+ }
+
+ };
+
+ /*!
+ \brief
+ Forward iterator class for String objects
+ */
+ class iterator : public const_iterator
+ {
+ public:
+ iterator(void) {}
+ iterator(pointer ptr) : const_iterator(ptr) {}
+
+
+ reference operator*() const
+ {
+ return ((reference)**(const_iterator *)this);
+ }
+
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+# pragma warning (push)
+# pragma warning (disable : 4284)
+#endif
+
+ pointer operator->() const
+ {
+ return &**this;
+ }
+
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+# pragma warning (pop)
+#endif
+
+ iterator& operator++()
+ {
+ ++this->d_ptr;
+ return *this;
+ }
+
+ iterator operator++(int)
+ {
+ iterator temp = *this;
+ ++*this;
+ return temp;
+ }
+
+ iterator& operator--()
+ {
+ --this->d_ptr;
+ return *this;
+ }
+
+ iterator operator--(int)
+ {
+ iterator temp = *this;
+ --*this;
+ return temp;
+ }
+
+ iterator& operator+=(difference_type offset)
+ {
+ this->d_ptr += offset;
+ return *this;
+ }
+
+ iterator operator+(difference_type offset) const
+ {
+ iterator temp = *this;
+ return temp + offset;
+ }
+
+ iterator& operator-=(difference_type offset)
+ {
+ return *this += -offset;
+ }
+
+ iterator operator-(difference_type offset) const
+ {
+ iterator temp = *this;
+ return temp -= offset;
+ }
+
+ difference_type operator-(const const_iterator& iter) const
+ {
+ return ((const_iterator)*this - iter);
+ }
+
+ reference operator[](difference_type offset) const
+ {
+ return *(*this + offset);
+ }
+
+ friend iterator operator+(difference_type offset, const iterator& iter)
+ {
+ return iter + offset;
+ }
+
+ };
+
+ /*!
+ \brief
+ Constant reverse iterator class for String objects
+ */
+#if defined(_MSC_VER) && ((_MSC_VER <= 1200) || ((_MSC_VER <= 1300) && defined(_STLPORT_VERSION)))
+ typedef std::reverse_iterator<const_iterator, const_pointer, const_reference, difference_type> const_reverse_iterator;
+#else
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+#endif
+
+ /*!
+ \brief
+ Reverse iterator class for String objects
+ */
+#if defined(_MSC_VER) && ((_MSC_VER <= 1200) || ((_MSC_VER <= 1300) && defined(_STLPORT_VERSION)))
+ typedef std::reverse_iterator<iterator, pointer, reference, difference_type> reverse_iterator;
+#else
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+#endif
+
+public:
+ /*!
+ \brief
+ Functor that can be used as comparator in a std::map with String keys.
+ It's faster than using the default, but the map will no longer be sorted alphabetically.
+ */
+ struct FastLessCompare
+ {
+ bool operator() (const String& a, const String& b) const
+ {
+ const size_t la = a.length();
+ const size_t lb = b.length();
+ if (la == lb)
+ return (memcmp(a.ptr(), b.ptr(), la*sizeof(utf32)) < 0);
+ return (la < lb);
+ }
+ };
+
+public:
+ //////////////////////////////////////////////////////////////////////////
+ // Default Construction and Destructor
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Constructs an empty string
+ */
+ String(void)
+ {
+ init();
+ }
+
+ /*!
+ \brief
+ Destructor for String objects
+ */
+ ~String(void);
+
+ //////////////////////////////////////////////////////////////////////////
+ // Construction via CEGUI::String
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Copy constructor - Creates a new string with the same value as \a str
+
+ \param str
+ String object used to initialise the newly created string
+
+ \return
+ Nothing
+ */
+ String(const String& str)
+ {
+ init();
+ assign(str);
+ }
+
+
+ /*!
+ \brief
+ Constructs a new string initialised with code points from another String object.
+
+ \param str
+ String object used to initialise the newly created string
+
+ \param str_idx
+ Starting code-point of \a str to be used when initialising the new String
+
+ \param str_num
+ Maximum number of code points from \a str that are to be assigned to the new String
+
+ \return
+ Nothing
+ */
+ String(const String& str, size_type str_idx, size_type str_num = npos)
+ {
+ init();
+ assign(str, str_idx, str_num);
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Construction via std::string
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Constructs a new string and initialises it using the std::string std_str
+
+ \param std_str
+ The std::string object that is to be used to initialise the new String object.
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ String(const std::string& std_str)
+ {
+ init();
+ assign(std_str);
+ }
+
+ /*!
+ \brief
+ Constructs a new string initialised with characters from the given std::string object.
+
+ \param std_str
+ std::string object used to initialise the newly created string
+
+ \param str_idx
+ Starting character of \a std_str to be used when initialising the new String
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param str_num
+ Maximum number of characters from \a std_str that are to be assigned to the new String
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ String(const std::string& std_str, size_type str_idx, size_type str_num = npos)
+ {
+ init();
+ assign(std_str, str_idx, str_num);
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Construction via UTF-8 stream (for straight ASCII use, only codes 0x00 - 0x7f are valid)
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Constructs a new String object and initialise it using the provided utf8 encoded string buffer.
+
+ \param utf8_str
+ Pointer to a buffer containing a null-terminated Unicode string encoded as utf8 data.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ String(const utf8* utf8_str)
+ {
+ init();
+ assign(utf8_str);
+ }
+
+ /*!
+ \brief
+ Constructs a new String object and initialise it using the provided utf8 encoded string buffer.
+
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param utf8_str
+ Pointer to a buffer containing Unicode string data encoded as utf8.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param chars_len
+ Length of the provided utf8 string in code units (not code-points).
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ String(const utf8* utf8_str, size_type chars_len)
+ {
+ init();
+ assign(utf8_str, chars_len);
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Construction via code-point (using a UTF-32 code unit)
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Constructs a new String that is initialised with the specified code point
+
+ \param num
+ The number of times \a code_point is to be put into new String object
+
+ \param code_point
+ The Unicode code point to be used when initialising the String object
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ String(size_type num, utf32 code_point)
+ {
+ init();
+ assign(num, code_point);
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Construction via iterator
+ //////////////////////////////////////////////////////////////////////////
+ // Create string with characters in the range [beg, end)
+ /*!
+ \brief
+ Construct a new string object and initialise it with code-points from the range [beg, end).
+
+ \param beg
+ Iterator describing the start of the data to be used when initialising the String object
+
+ \param end
+ Iterator describing the (exclusive) end of the data to be used when initialising the String object
+
+ \return
+ Nothing
+ */
+ String(const_iterator iter_beg, const_iterator iter_end)
+ {
+ init();
+ append(iter_beg, iter_end);
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Construction via c-string
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Constructs a new String object and initialise it using the provided c-string.
+
+ \param c_str
+ Pointer to a c-string.
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ String(const char* cstr)
+ {
+ init();
+ assign(cstr);
+ }
+
+ /*!
+ \brief
+ Constructs a new String object and initialise it using characters from the provided char array.
+
+ \param chars
+ char array.
+
+ \param chars_len
+ Number of chars from the array to be used.
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ String(const char* chars, size_type chars_len)
+ {
+ init();
+ assign(chars, chars_len);
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Size operations
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Returns the size of the String in code points
+
+ \return
+ Number of code points currently in the String
+ */
+ size_type size(void) const
+ {
+ return d_cplength;
+ }
+
+ /*!
+ \brief
+ Returns the size of the String in code points
+
+ \return
+ Number of code points currently in the String
+ */
+ size_type length(void) const
+ {
+ return d_cplength;
+ }
+
+ /*!
+ \brief
+ Returns true if the String is empty
+
+ \return
+ true if the String is empty, else false.
+ */
+ bool empty(void) const
+ {
+ return (d_cplength == 0);
+ }
+
+ /*!
+ \brief
+ Returns the maximum size of a String.
+
+ Any operation that would result in a String that is larger than this value will throw the std::length_error exception.
+
+ \return
+ The maximum number of code points that a string can contain
+ */
+ static size_type max_size(void)
+ {
+ return (((size_type)-1) / sizeof(utf32));
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Capacity Operations
+ //////////////////////////////////////////////////////////////////////////
+ // return the number of code points the string could hold without re-allocation
+ // (due to internal encoding this will always report the figure for worst-case encoding, and could even be < size()!)
+ /*!
+ \brief
+ Return the number of code points that the String could hold before a re-allocation would be required.
+
+ \return
+ Size of the current reserve buffer. This is the maximum number of code points the String could hold before a buffer
+ re-allocation would be required
+ */
+ size_type capacity(void) const
+ {
+ return d_reserve - 1;
+ }
+
+ // reserve internal memory for at-least 'num' code-points (characters). if num is 0, request is shrink-to-fit.
+ /*!
+ \brief
+ Specifies the amount of reserve capacity to allocate.
+
+ \param num
+ The number of code points to allocate space for. If \a num is larger that the current reserve, then a re-allocation will occur. If
+ \a num is smaller than the current reserve (but not 0) the buffer may be shrunk to the larger of the specified number, or the current
+ String size (operation is currently not implemented). If \a num is 0, then the buffer is re-allocated to fit the current String size.
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String object would be too big.
+ */
+ void reserve(size_type num = 0)
+ {
+ if (num == 0)
+ trim();
+ else
+ grow(num);
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Comparisons
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Compares this String with the String 'str'.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param str
+ The String object that is to compared with this String.
+
+ \return
+ - 0 if the String objects are equal
+ - <0 if this String is lexicographically smaller than \a str
+ - >0 if this String is lexicographically greater than \a str
+ */
+ int compare(const String& str) const
+ {
+ return compare(0, d_cplength, str);
+ }
+
+ /*!
+ \brief
+ Compares code points from this String with code points from the String 'str'.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param idx
+ Index of the first code point from this String to consider.
+
+ \param len
+ Maximum number of code points from this String to consider.
+
+ \param str
+ The String object that is to compared with this String.
+
+ \param str_idx
+ Index of the first code point from String \a str to consider.
+
+ \param str_len
+ Maximum number of code points from String \a str to consider
+
+ \return
+ - 0 if the specified sub-strings are equal
+ - <0 if specified sub-strings are lexicographically smaller than \a str
+ - >0 if specified sub-strings are lexicographically greater than \a str
+
+ \exception std::out_of_range Thrown if either \a idx or \a str_idx are invalid.
+ */
+ int compare(size_type idx, size_type len, const String& str, size_type str_idx = 0, size_type str_len = npos) const
+ {
+ if ((d_cplength < idx) || (str.d_cplength < str_idx))
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if ((len == npos) || (idx + len > d_cplength))
+ len = d_cplength - idx;
+
+ if ((str_len == npos) || (str_idx + str_len > str.d_cplength))
+ str_len = str.d_cplength - str_idx;
+
+ int val = (len == 0) ? 0 : utf32_comp_utf32(&ptr()[idx], &str.ptr()[str_idx], (len < str_len) ? len : str_len);
+
+ return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_len) ? -1 : (len == str_len) ? 0 : 1;
+ }
+
+
+ /*!
+ \brief
+ Compares this String with the std::string 'std_str'.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param std_str
+ The std::string object that is to compared with this String.
+
+ \note
+ Characters from \a std_str are considered to represent Unicode code points in the range 0x00..0xFF. No translation of
+ the encountered data is performed.
+
+ \return
+ - 0 if the string objects are equal
+ - <0 if this string is lexicographically smaller than \a std_str
+ - >0 if this string is lexicographically greater than \a std_str
+ */
+ int compare(const std::string& std_str) const
+ {
+ return compare(0, d_cplength, std_str);
+ }
+
+
+ /*!
+ \brief
+ Compares code points from this String with code points from the std::string 'std_str'.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param idx
+ Index of the first code point from this String to consider.
+
+ \param len
+ Maximum number of code points from this String to consider.
+
+ \param std_str
+ The std::string object that is to compared with this String.
+
+ \note
+ Characters from \a std_str are considered to represent Unicode code points in the range 0x00..0xFF. No translation of
+ the encountered data is performed.
+
+ \param str_idx
+ Index of the first character from std::string \a std_str to consider.
+
+ \param str_len
+ Maximum number of characters from std::string \a std_str to consider
+
+ \return
+ - 0 if the specified sub-strings are equal
+ - <0 if specified sub-strings are lexicographically smaller than \a std_str
+ - >0 if specified sub-strings are lexicographically greater than \a std_str
+
+ \exception std::out_of_range Thrown if either \a idx or \a str_idx are invalid.
+ */
+ int compare(size_type idx, size_type len, const std::string& std_str, size_type str_idx = 0, size_type str_len = npos) const
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (std_str.size() < str_idx)
+ throw std::out_of_range("Index is out of range for std::string");
+
+ if ((len == npos) || (idx + len > d_cplength))
+ len = d_cplength - idx;
+
+ if ((str_len == npos) || (str_idx + str_len > std_str.size()))
+ str_len = (size_type)std_str.size() - str_idx;
+
+ int val = (len == 0) ? 0 : utf32_comp_char(&ptr()[idx], &std_str.c_str()[str_idx], (len < str_len) ? len : str_len);
+
+ return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_len) ? -1 : (len == str_len) ? 0 : 1;
+ }
+
+
+ /*!
+ \brief
+ Compares this String with the null-terminated utf8 encoded 'utf8_str'.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param utf8_str
+ The buffer containing valid Unicode data encoded as utf8 that is to compared with this String.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ - 0 if the strings are equal
+ - <0 if this string is lexicographically smaller than \a utf8_str
+ - >0 if this string is lexicographically greater than \a utf8_str
+ */
+ int compare(const utf8* utf8_str) const
+ {
+ return compare(0, d_cplength, utf8_str, encoded_size(utf8_str));
+ }
+
+
+ /*!
+ \brief
+ Compares code points from this String with the null-terminated utf8 encoded 'utf8_str'.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param idx
+ Index of the first code point from this String to consider.
+
+ \param len
+ Maximum number of code points from this String to consider.
+
+ \param utf8_str
+ The buffer containing valid Unicode data encoded as utf8 that is to compared with this String.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ - 0 if the specified sub-strings are equal
+ - <0 if specified sub-strings are lexicographically smaller than \a utf8_str
+ - >0 if specified sub-strings are lexicographically greater than \a utf8_str
+
+ \exception std::out_of_range Thrown if \a idx is invalid.
+ */
+ int compare(size_type idx, size_type len, const utf8* utf8_str) const
+ {
+ return compare(idx, len, utf8_str, encoded_size(utf8_str));
+ }
+
+ /*!
+ \brief
+ Compares code points from this String with the utf8 encoded data in buffer 'utf8_str'.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param idx
+ Index of the first code point from this String to consider.
+
+ \param len
+ Maximum number of code points from this String to consider.
+
+ \param utf8_str
+ The buffer containing valid Unicode data encoded as utf8 that is to compared with this String.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param str_cplen
+ The number of encoded code points in the buffer \a utf8_str (this is not the same as the number of code units).
+
+ \return
+ - 0 if the specified sub-strings are equal
+ - <0 if specified sub-strings are lexicographically smaller than \a utf8_str
+ - >0 if specified sub-strings are lexicographically greater than \a utf8_str
+
+ \exception std::out_of_range Thrown if \a idx is invalid.
+ \exception std::length_error Thrown if \a str_cplen is set to npos.
+ */
+ int compare(size_type idx, size_type len, const utf8* utf8_str, size_type str_cplen) const
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (str_cplen == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ if ((len == npos) || (idx + len > d_cplength))
+ len = d_cplength - idx;
+
+ int val = (len == 0) ? 0 : utf32_comp_utf8(&ptr()[idx], utf8_str, (len < str_cplen) ? len : str_cplen);
+
+ return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_cplen) ? -1 : (len == str_cplen) ? 0 : 1;
+ }
+
+
+ /*!
+ \brief
+ Compares this String with the given c-string.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param c_str
+ The c-string that is to compared with this String.
+
+ \return
+ - 0 if the strings are equal
+ - <0 if this string is lexicographically smaller than \a c_str
+ - >0 if this string is lexicographically greater than \a c_str
+ */
+ int compare(const char* cstr) const
+ {
+ return compare(0, d_cplength, cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Compares code points from this String with the given c-string.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param idx
+ Index of the first code point from this String to consider.
+
+ \param len
+ Maximum number of code points from this String to consider.
+
+ \param c_str
+ The c-string that is to compared with this String.
+
+ \return
+ - 0 if the specified sub-strings are equal
+ - <0 if specified sub-strings are lexicographically smaller than \a c_str
+ - >0 if specified sub-strings are lexicographically greater than \a c_str
+
+ \exception std::out_of_range Thrown if \a idx is invalid.
+ */
+ int compare(size_type idx, size_type len, const char* cstr) const
+ {
+ return compare(idx, len, cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Compares code points from this String with chars in the given char array.
+
+ \note
+ This does currently not properly consider Unicode and / or the system locale.
+
+ \param idx
+ Index of the first code point from this String to consider.
+
+ \param len
+ Maximum number of code points from this String to consider.
+
+ \param chars
+ The array containing the chars that are to compared with this String.
+
+ \param chars_len
+ The number of chars in the array.
+
+ \return
+ - 0 if the specified sub-strings are equal
+ - <0 if specified sub-strings are lexicographically smaller than \a chars
+ - >0 if specified sub-strings are lexicographically greater than \a chars
+
+ \exception std::out_of_range Thrown if \a idx is invalid.
+ \exception std::length_error Thrown if \a chars_len is set to npos.
+ */
+ int compare(size_type idx, size_type len, const char* chars, size_type chars_len) const
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ if ((len == npos) || (idx + len > d_cplength))
+ len = d_cplength - idx;
+
+ int val = (len == 0) ? 0 : utf32_comp_char(&ptr()[idx], chars, (len < chars_len) ? len : chars_len);
+
+ return (val != 0) ? ((val < 0) ? -1 : 1) : (len < chars_len) ? -1 : (len == chars_len) ? 0 : 1;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Character access
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Returns the code point at the given index.
+
+ \param idx
+ Zero based index of the code point to be returned.
+
+ \note
+ - For constant strings length()/size() provide a valid index and will access the default utf32 value.
+ - For non-constant strings length()/size() is an invalid index, and acceesing (especially writing) this index could cause string corruption.
+
+ \return
+ The utf32 code point at the given index within the String.
+ */
+ reference operator[](size_type idx)
+ {
+ return (ptr()[idx]);
+ }
+
+ /*!
+ \brief
+ Returns the code point at the given index.
+
+ \param idx
+ Zero based index of the code point to be returned.
+
+ \note
+ - For constant strings length()/size() provide a valid index and will access the default utf32 value.
+ - For non-constant strings length()/size() is an invalid index, and acceesing (especially writing) this index could cause string corruption.
+
+ \return
+ The utf32 code point at the given index within the String.
+ */
+ value_type operator[](size_type idx) const
+ {
+ return ptr()[idx];
+ }
+
+ /*!
+ \brief
+ Returns the code point at the given index.
+
+ \param idx
+ Zero based index of the code point to be returned.
+
+ \return
+ The utf32 code point at the given index within the String.
+
+ \exception std::out_of_range Thrown if \a idx is >= length().
+ */
+ reference at(size_type idx)
+ {
+ if (d_cplength <= idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ return ptr()[idx];
+ }
+
+ /*!
+ \brief
+ Returns the code point at the given index.
+
+ \param idx
+ Zero based index of the code point to be returned.
+
+ \return
+ The utf32 code point at the given index within the String.
+
+ \exception std::out_of_range Thrown if \a idx is >= length().
+ */
+ const_reference at(size_type idx) const
+ {
+ if (d_cplength <= idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ return ptr()[idx];
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // C-Strings and arrays
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Returns contents of the String as a null terminated string of utf8 encoded data.
+
+ \return
+ Pointer to a char buffer containing the contents of the String encoded as null-terminated utf8 data.
+
+ \note
+ The buffer returned from this function is owned by the String object.
+
+ \note
+ Any function that modifies the String data will invalidate the buffer returned by this call.
+ */
+ const char* c_str(void) const
+ {
+ return (const char*)build_utf8_buff();
+ }
+
+ /*!
+ \brief
+ Returns contents of the String as utf8 encoded data.
+
+ \return
+ Pointer to a buffer containing the contents of the String encoded utf8 data.
+
+ \note
+ The buffer returned from this function is owned by the String object.
+
+ \note
+ Any function that modifies the String data will invalidate the buffer returned by this call.
+ */
+ const utf8* data(void) const
+ {
+ return build_utf8_buff();
+ }
+
+ /*!
+ \brief
+ Returns a pointer to the buffer in use.
+ */
+ utf32* ptr(void)
+ {
+ return (d_reserve > STR_QUICKBUFF_SIZE) ? d_buffer : d_quickbuff;
+ }
+
+ /*!
+ \brief
+ Returns a pointer to the buffer in use. (const version)
+ */
+ const utf32* ptr(void) const
+ {
+ return (d_reserve > STR_QUICKBUFF_SIZE) ? d_buffer : d_quickbuff;
+ }
+
+ // copy, at most, 'len' code-points of the string, begining with code-point 'idx', into the array 'buf' as valid utf8 encoded data
+ // return number of utf8 code units placed into the buffer
+ /*!
+ \brief
+ Copies an area of the String into the provided buffer as encoded utf8 data.
+
+ \param buf
+ Pointer to a buffer that is to receive the encoded data (this must be big enough to hold the encoded data)
+
+ \param len
+ Maximum number of code points from the String that should be encoded into the buffer
+
+ \param idx
+ Index of the first code point to be encoded into the buffer
+
+ \return
+ The number of utf8 encoded code units transferred to the buffer.
+
+ \note A code unit does not equal a code point. A utf32 code point, when encoded as utf8, can occupy between 1 and 4 code units.
+
+ \exception std::out_of_range Thrown if \a idx was invalid for this String.
+ */
+ size_type copy(utf8* buf, size_type len = npos, size_type idx = 0) const
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (len == npos)
+ len = d_cplength;
+
+ return encode(&ptr()[idx], buf, npos, len);
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // UTF8 Encoding length information
+ //////////////////////////////////////////////////////////////////////////
+ // return the number of bytes required to hold 'num' code-points, starting at code-point 'idx', of the the string when encoded as utf8 data.
+ /*!
+ \brief
+ Return the number of utf8 code units required to hold an area of the String when encoded as utf8 data
+
+ \param num
+ Maximum number of code points to consider when calculating utf8 encoded size.
+
+ \param idx
+ Index of the first code point to consider when calculating the utf8 encoded size
+
+ \return
+ The number of utf8 code units (bytes) required to hold the specified sub-string when encoded as utf8 data.
+
+ \exception std::out_of_range Thrown if \a idx was invalid for this String.
+ */
+ size_type utf8_stream_len(size_type num = npos, size_type idx = 0) const
+ {
+ using namespace std;
+
+ if (d_cplength < idx)
+ throw out_of_range("Index was out of range for CEGUI::String object");
+
+ size_type maxlen = d_cplength - idx;
+
+ return encoded_size(&ptr()[idx], ceguimin(num, maxlen));
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Assignment Functions
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Assign the value of String \a str to this String
+
+ \param str
+ String object containing the string value to be assigned.
+
+ \return
+ This String after the assignment has happened
+ */
+ String& operator=(const String& str)
+ {
+ return assign(str);
+ }
+
+ /*!
+ \brief
+ Assign a sub-string of String \a str to this String
+
+ \param str
+ String object containing the string data to be assigned.
+
+ \param str_idx
+ Index of the first code point in \a str that is to be assigned
+
+ \param str_num
+ Maximum number of code points from \a str that are be be assigned
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::out_of_range Thrown if str_idx is invalid for \a str
+ */
+ String& assign(const String& str, size_type str_idx = 0, size_type str_num = npos)
+ {
+ if (str.d_cplength < str_idx)
+ throw std::out_of_range("Index was out of range for CEGUI::String object");
+
+ if (str_num == npos)
+ str_num = str.d_cplength - str_idx;
+
+ grow(str_num);
+ setlen(str_num);
+ memcpy(ptr(), &str.ptr()[str_idx], str_num * sizeof(utf32));
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Assign the value of std::string \a std_str to this String
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param std_str
+ std::string object containing the string value to be assigned.
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& operator=(const std::string& std_str)
+ {
+ return assign(std_str);
+ }
+
+ /*!
+ \brief
+ Assign a sub-string of std::string \a std_str to this String
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param std_str
+ std::string object containing the string value to be assigned.
+
+ \param str_idx
+ Index of the first character of \a std_str to be assigned
+
+ \param str_num
+ Maximum number of characters from \a std_str to be assigned
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::out_of_range Thrown if \a str_idx is invalid for \a std_str
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& assign(const std::string& std_str, size_type str_idx = 0, size_type str_num = npos)
+ {
+ if (std_str.size() < str_idx)
+ throw std::out_of_range("Index was out of range for std::string object");
+
+ if (str_num == npos)
+ str_num = (size_type)std_str.size() - str_idx;
+
+ grow(str_num);
+ setlen(str_num);
+
+ while(str_num--)
+ {
+ ((*this)[str_num]) = static_cast<utf32>(static_cast<unsigned char>(std_str[str_num + str_idx]));
+ }
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Assign to this String the string value represented by the given null-terminated utf8 encoded data
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param utf8_str
+ Buffer containing valid null-terminated utf8 encoded data
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& operator=(const utf8* utf8_str)
+ {
+ return assign(utf8_str, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Assign to this String the string value represented by the given null-terminated utf8 encoded data
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param utf8_str
+ Buffer containing valid null-terminated utf8 encoded data
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& assign(const utf8* utf8_str)
+ {
+ return assign(utf8_str, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Assign to this String the string value represented by the given utf8 encoded data
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param utf8_str
+ Buffer containing valid utf8 encoded data
+
+ \param str_num
+ Number of code units (not code points) in the buffer pointed to by \a utf8_str
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::length_error Thrown if the resulting String would have been too large, or if str_num is 'npos'.
+ */
+ String& assign(const utf8* utf8_str, size_type str_num)
+ {
+ if (str_num == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ size_type enc_sze = encoded_size(utf8_str, str_num);
+
+ grow(enc_sze);
+ encode(utf8_str, ptr(), d_reserve, str_num);
+ setlen(enc_sze);
+ return *this;
+ }
+
+ /*!
+ \brief
+ Assigns the specified utf32 code point to this String. Result is always a String 1 code point in length.
+
+ \param code_point
+ Valid utf32 Unicode code point to be assigned to the string
+
+ \return
+ This String after assignment
+ */
+ String& operator=(utf32 code_point)
+ {
+ return assign(1, code_point);
+ }
+
+ /*!
+ \brief
+ Assigns the specified code point repeatedly to the String
+
+ \param num
+ The number of times to assign the code point
+
+ \param code_point
+ Valid utf32 Unicode code point to be assigned to the string
+
+ \return
+ This String after assignment.
+
+ \exception std::length_error Thrown if \a num was 'npos'
+ */
+ String& assign(size_type num, utf32 code_point)
+ {
+ if (num == npos)
+ throw std::length_error("Code point count can not be 'npos'");
+
+ grow(num);
+ setlen(num);
+ utf32* p = ptr();
+
+ while(num--)
+ *p++ = code_point;
+
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Assign to this String the given C-string.
+
+ \param c_str
+ Pointer to a valid C style string.
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& operator=(const char* cstr)
+ {
+ return assign(cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Assign to this String the given C-string.
+
+ \param c_str
+ Pointer to a valid C style string.
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& assign(const char* cstr)
+ {
+ return assign(cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Assign to this String a number of chars from a char array.
+
+ \param chars
+ char array.
+
+ \param chars_len
+ Number of chars to be assigned.
+
+ \return
+ This String after the assignment has happened
+
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& assign(const char* chars, size_type chars_len)
+ {
+ grow(chars_len);
+ utf32* pt = ptr();
+
+ for (size_type i = 0; i < chars_len; ++i)
+ {
+ *pt++ = static_cast<utf32>(static_cast<unsigned char>(*chars++));
+ }
+
+ setlen(chars_len);
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Swaps the value of this String with the given String \a str
+
+ \param str
+ String object whos value is to be swapped with this String.
+
+ \return
+ Nothing
+ */
+ void swap(String& str)
+ {
+ size_type temp_len = d_cplength;
+ d_cplength = str.d_cplength;
+ str.d_cplength = temp_len;
+
+ size_type temp_res = d_reserve;
+ d_reserve = str.d_reserve;
+ str.d_reserve = temp_res;
+
+ utf32* temp_buf = d_buffer;
+ d_buffer = str.d_buffer;
+ str.d_buffer = temp_buf;
+
+ // see if we need to swap 'quick buffer' data
+ if (temp_res <= STR_QUICKBUFF_SIZE)
+ {
+ utf32 temp_qbf[STR_QUICKBUFF_SIZE];
+
+ memcpy(temp_qbf, d_quickbuff, STR_QUICKBUFF_SIZE * sizeof(utf32));
+ memcpy(d_quickbuff, str.d_quickbuff, STR_QUICKBUFF_SIZE * sizeof(utf32));
+ memcpy(str.d_quickbuff, temp_qbf, STR_QUICKBUFF_SIZE * sizeof(utf32));
+ }
+
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Appending Functions
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Appends the String \a str
+
+ \param str
+ String object that is to be appended
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& operator+=(const String& str)
+ {
+ return append(str);
+ }
+
+ /*!
+ \brief
+ Appends a sub-string of the String \a str
+
+ \param str
+ String object containing data to be appended
+
+ \param str_idx
+ Index of the first code point to be appended
+
+ \param str_num
+ Maximum number of code points to be appended
+
+ \return
+ This String after the append operation
+
+ \exception std::out_of_range Thrown if \a str_idx is invalid for \a str.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& append(const String& str, size_type str_idx = 0, size_type str_num = npos)
+ {
+ if (str.d_cplength < str_idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (str_num == npos)
+ str_num = str.d_cplength - str_idx;
+
+ grow(d_cplength + str_num);
+ memcpy(&ptr()[d_cplength], &str.ptr()[str_idx], str_num * sizeof(utf32));
+ setlen(d_cplength + str_num);
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Appends the std::string \a std_str
+
+ \param std_str
+ std::string object that is to be appended
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& operator+=(const std::string& std_str)
+ {
+ return append(std_str);
+ }
+
+ /*!
+ \brief
+ Appends a sub-string of the std::string \a std_str
+
+ \param std_str
+ std::string object containing data to be appended
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param str_idx
+ Index of the first character to be appended
+
+ \param str_num
+ Maximum number of characters to be appended
+
+ \return
+ This String after the append operation
+
+ \exception std::out_of_range Thrown if \a str_idx is invalid for \a std_str.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& append(const std::string& std_str, size_type str_idx = 0, size_type str_num = npos)
+ {
+ if (std_str.size() < str_idx)
+ throw std::out_of_range("Index is out of range for std::string");
+
+ if (str_num == npos)
+ str_num = (size_type)std_str.size() - str_idx;
+
+ size_type newsze = d_cplength + str_num;
+
+ grow(newsze);
+ utf32* pt = &ptr()[newsze-1];
+
+ while(str_num--)
+ *pt-- = static_cast<utf32>(static_cast<unsigned char>(std_str[str_num]));
+
+ setlen(newsze);
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Appends to the String the null-terminated utf8 encoded data in the buffer utf8_str.
+
+ \param utf8_str
+ buffer holding the null-terminated utf8 encoded data that is to be appended
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& operator+=(const utf8* utf8_str)
+ {
+ return append(utf8_str, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Appends to the String the null-terminated utf8 encoded data in the buffer utf8_str.
+
+ \param utf8_str
+ Buffer holding the null-terminated utf8 encoded data that is to be appended
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& append(const utf8* utf8_str)
+ {
+ return append(utf8_str, utf_length(utf8_str));
+ }
+
+
+ /*!
+ \brief
+ Appends to the String the utf8 encoded data in the buffer utf8_str.
+
+ \param utf8_str
+ Buffer holding the utf8 encoded data that is to be appended
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param len
+ Number of code units (not code points) in the buffer to be appended
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large, or if \a len was 'npos'
+ */
+ String& append(const utf8* utf8_str, size_type len)
+ {
+ if (len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ size_type encsz = encoded_size(utf8_str, len);
+ size_type newsz = d_cplength + encsz;
+
+ grow(newsz);
+ encode(utf8_str, &ptr()[d_cplength], encsz, len);
+ setlen(newsz);
+
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Appends a single code point to the string
+
+ \param code_point
+ utf32 Unicode code point that is to be appended
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too long.
+ */
+ String& operator+=(utf32 code_point)
+ {
+ return append(1, code_point);
+ }
+
+ /*!
+ \brief
+ Appends a single code point multiple times to the string
+
+ \param num
+ Number of copies of the code point to be appended
+
+ \param code_point
+ utf32 Unicode code point that is to be appended
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too long, or if \a num was 'npos'.
+ */
+ String& append(size_type num, utf32 code_point)
+ {
+ if (num == npos)
+ throw std::length_error("Code point count can not be 'npos'");
+
+ size_type newsz = d_cplength + num;
+ grow(newsz);
+
+ utf32* p = &ptr()[d_cplength];
+
+ while(num--)
+ *p++ = code_point;
+
+ setlen(newsz);
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Appends a single code point to the string
+
+ \param code_point
+ utf32 Unicode code point that is to be appended
+
+ \return
+ Nothing
+
+ \exception std::length_error Thrown if resulting String would be too long.
+ */
+ void push_back(utf32 code_point)
+ {
+ append(1, code_point);
+ }
+
+ /*!
+ \brief
+ Appends the code points in the reange [beg, end)
+
+ \param beg
+ Iterator describing the start of the range to be appended
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be appended.
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if the resulting string would be too large.
+ */
+ String& append(const_iterator iter_beg, const_iterator iter_end)
+ {
+ return replace(end(), end(), iter_beg, iter_end);
+ }
+
+
+ /*!
+ \brief
+ Appends to the String the given c-string.
+
+ \param c_str
+ c-string that is to be appended.
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& operator+=(const char* cstr)
+ {
+ return append(cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Appends to the String the given c-string.
+
+ \param c_str
+ c-string that is to be appended.
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& append(const char* cstr)
+ {
+ return append(cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Appends to the String chars from the given char array.
+
+ \param chars
+ char array holding the chars that are to be appended
+
+ \param chars_len
+ Number of chars to be appended
+
+ \return
+ This String after the append operation
+
+ \exception std::length_error Thrown if resulting String would be too large, or if \a chars_len was 'npos'
+ */
+ String& append(const char* chars, size_type chars_len)
+ {
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ size_type newsz = d_cplength + chars_len;
+
+ grow(newsz);
+
+ utf32* pt = &ptr()[newsz-1];
+
+ while(chars_len--)
+ *pt-- = static_cast<utf32>(static_cast<unsigned char>(chars[chars_len]));
+
+ setlen(newsz);
+
+ return *this;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Insertion Functions
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Inserts the given String object at the specified position.
+
+ \param idx
+ Index where the string is to be inserted.
+
+ \param str
+ String object that is to be inserted.
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& insert(size_type idx, const String& str)
+ {
+ return insert(idx, str, 0, npos);
+ }
+
+ /*!
+ \brief
+ Inserts a sub-string of the given String object at the specified position.
+
+ \param idx
+ Index where the string is to be inserted.
+
+ \param str
+ String object containing data to be inserted.
+
+ \param str_idx
+ Index of the first code point from \a str to be inserted.
+
+ \param str_num
+ Maximum number of code points from \a str to be inserted.
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx or \a str_idx are out of range.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& insert(size_type idx, const String& str, size_type str_idx, size_type str_num)
+ {
+ if ((d_cplength < idx) || (str.d_cplength < str_idx))
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (str_num == npos)
+ str_num = str.d_cplength - str_idx;
+
+ size_type newsz = d_cplength + str_num;
+ grow(newsz);
+ memmove(&ptr()[idx + str_num], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
+ memcpy(&ptr()[idx], &str.ptr()[str_idx], str_num * sizeof(utf32));
+ setlen(newsz);
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Inserts the given std::string object at the specified position.
+
+ \param idx
+ Index where the std::string is to be inserted.
+
+ \param std_str
+ std::string object that is to be inserted.
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& insert(size_type idx, const std::string& std_str)
+ {
+ return insert(idx, std_str, 0, npos);
+ }
+
+ /*!
+ \brief
+ Inserts a sub-string of the given std::string object at the specified position.
+
+ \param idx
+ Index where the string is to be inserted.
+
+ \param std_str
+ std::string object containing data to be inserted.
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param str_idx
+ Index of the first character from \a std_str to be inserted.
+
+ \param str_num
+ Maximum number of characters from \a str to be inserted.
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx or \a str_idx are out of range.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& insert(size_type idx, const std::string& std_str, size_type str_idx, size_type str_num)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (std_str.size() < str_idx)
+ throw std::out_of_range("Index is out of range for std::string");
+
+ if (str_num == npos)
+ str_num = (size_type)std_str.size() - str_idx;
+
+ size_type newsz = d_cplength + str_num;
+ grow(newsz);
+
+ memmove(&ptr()[idx + str_num], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
+
+ utf32* pt = &ptr()[idx + str_num - 1];
+
+ while(str_num--)
+ *pt-- = static_cast<utf32>(static_cast<unsigned char>(std_str[str_idx + str_num]));
+
+ setlen(newsz);
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Inserts the given null-terminated utf8 encoded data at the specified position.
+
+ \param idx
+ Index where the data is to be inserted.
+
+ \param utf8_str
+ Buffer containing the null-terminated utf8 encoded data that is to be inserted.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& insert(size_type idx, const utf8* utf8_str)
+ {
+ return insert(idx, utf8_str, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Inserts the given utf8 encoded data at the specified position.
+
+ \param idx
+ Index where the data is to be inserted.
+
+ \param utf8_str
+ Buffer containing the utf8 encoded data that is to be inserted.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param len
+ Length of the data to be inserted in uf8 code units (not code points)
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ \exception std::length_error Thrown if resulting String would be too large, or if \a len is 'npos'
+ */
+ String& insert(size_type idx, const utf8* utf8_str, size_type len)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (len == npos)
+ throw std::length_error("Length of utf8 encoded string can not be 'npos'");
+
+ size_type encsz = encoded_size(utf8_str, len);
+ size_type newsz = d_cplength + encsz;
+
+ grow(newsz);
+ memmove(&ptr()[idx + encsz], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
+ encode(utf8_str, &ptr()[idx], encsz, len);
+ setlen(newsz);
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Inserts a code point multiple times into the String
+
+ \param idx
+ Index where the code point(s) are to be inserted
+
+ \param num
+ The number of times to insert the code point
+
+ \param code_point
+ The utf32 code point that is to be inserted
+
+ \return
+ This String after the insertion.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ \exception std::length_error Thrown if resulting String would be too large, or if \a num is 'npos'
+ */
+ String& insert(size_type idx, size_type num, utf32 code_point)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (num == npos)
+ throw std::length_error("Code point count can not be 'npos'");
+
+ size_type newsz = d_cplength + num;
+ grow(newsz);
+
+ memmove(&ptr()[idx + num], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
+
+ utf32* pt = &ptr()[idx + num - 1];
+
+ while(num--)
+ *pt-- = code_point;
+
+ setlen(newsz);
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Inserts a code point multiple times into the String
+
+ \param pos
+ Iterator describing the position where the code point(s) are to be inserted
+
+ \param num
+ The number of times to insert the code point
+
+ \param code_point
+ The utf32 code point that is to be inserted
+
+ \return
+ This String after the insertion.
+
+ \exception std::length_error Thrown if resulting String would be too large, or if \a num is 'npos'
+ */
+ void insert(iterator pos, size_type num, utf32 code_point)
+ {
+ insert(safe_iter_dif(pos, begin()), num, code_point);
+ }
+
+ /*!
+ \brief
+ Inserts a single code point into the String
+
+ \param pos
+ Iterator describing the position where the code point is to be inserted
+
+ \param code_point
+ The utf32 code point that is to be inserted
+
+ \return
+ This String after the insertion.
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ iterator insert(iterator pos, utf32 code_point)
+ {
+ insert(pos, 1, code_point);
+ return pos;
+ }
+
+ /*!
+ \brief
+ Inserts code points specified by the range [beg, end).
+
+ \param pos
+ Iterator describing the position where the data is to be inserted
+
+ \param beg
+ Iterator describing the begining of the range to be inserted
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be inserted.
+
+ \return
+ Nothing.
+
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ void insert(iterator iter_pos, const_iterator iter_beg, const_iterator iter_end)
+ {
+ replace(iter_pos, iter_pos, iter_beg, iter_end);
+ }
+
+
+ /*!
+ \brief
+ Inserts the given c-string at the specified position.
+
+ \param idx
+ Index where the c-string is to be inserted.
+
+ \param c_str
+ c-string that is to be inserted.
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ \exception std::length_error Thrown if resulting String would be too large.
+ */
+ String& insert(size_type idx, const char* cstr)
+ {
+ return insert(idx, cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Inserts chars from the given char array at the specified position.
+
+ \param idx
+ Index where the data is to be inserted.
+
+ \param chars
+ char array containing the chars that are to be inserted.
+
+ \param chars_len
+ Length of the char array to be inserted.
+
+ \return
+ This String after the insert.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ \exception std::length_error Thrown if resulting String would be too large, or if \a chars_len is 'npos'
+ */
+ String& insert(size_type idx, const char* chars, size_type chars_len)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (chars_len == npos)
+ throw std::length_error("Length of char array can not be 'npos'");
+
+ size_type newsz = d_cplength + chars_len;
+
+ grow(newsz);
+ memmove(&ptr()[idx + chars_len], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
+
+ utf32* pt = &ptr()[idx + chars_len - 1];
+
+ while(chars_len--)
+ *pt-- = static_cast<utf32>(static_cast<unsigned char>(chars[chars_len]));
+
+ setlen(newsz);
+
+ return *this;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Erasing characters
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Removes all data from the String
+
+ \return
+ Nothing
+ */
+ void clear(void)
+ {
+ setlen(0);
+ trim();
+ }
+
+ /*!
+ \brief
+ Removes all data from the String
+
+ \return
+ The empty String (*this)
+ */
+ String& erase(void)
+ {
+ clear();
+ return *this;
+ }
+
+ /*!
+ \brief
+ Erase a single code point from the string
+
+ \param idx
+ The index of the code point to be removed.
+
+ \return
+ This String after the erase operation
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ String& erase(size_type idx)
+ {
+ return erase(idx, 1);
+ }
+
+ /*!
+ \brief
+ Erase a range of code points
+
+ \param idx
+ Index of the first code point to be removed.
+
+ \param len
+ Maximum number of code points to be removed.
+
+ \return
+ This String after the erase operation.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ String& erase(size_type idx, size_type len = npos)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range foe CEGUI::String");
+
+ if (len == npos)
+ len = d_cplength - idx;
+
+ size_type newsz = d_cplength - len;
+
+ memmove(&ptr()[idx], &ptr()[idx + len], (d_cplength - idx - len) * sizeof(utf32));
+ setlen(newsz);
+ return *this;
+ }
+
+ /*!
+ \brief
+ Erase the code point described by the given iterator
+
+ \param pos
+ Iterator describing the code point to be erased
+
+ \return
+ This String after the erase operation.
+ */
+ String& erase(iterator pos)
+ {
+ return erase(safe_iter_dif(pos, begin()), 1);
+ }
+
+ /*!
+ \brief
+ Erase a range of code points described by the iterators [beg, end).
+
+ \param beg
+ Iterator describing the postion of the beginning of the range to erase
+
+ \param end
+ Iterator describing the postion of the (exclusive) end of the range to erase
+
+ \return
+ This String after the erase operation.
+ */
+ String& erase(iterator iter_beg, iterator iter_end)
+ {
+ return erase(safe_iter_dif(iter_beg, begin()), safe_iter_dif(iter_end, iter_beg));
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Resizing
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Resizes the String either by inserting default utf32 code points to make it larger, or by truncating to make it smaller
+
+ \param num
+ The length, in code points, that the String is to be made.
+
+ \return
+ Nothing.
+
+ \exception std::length_error Thrown if the String would be too large.
+ */
+ void resize(size_type num)
+ {
+ resize(num, utf32());
+ }
+
+ /*!
+ \brief
+ Resizes the String either by inserting the given utf32 code point to make it larger, or by truncating to make it smaller
+
+ \param num
+ The length, in code points, that the String is to be made.
+
+ \param code_point
+ The utf32 code point that should be used when majing the String larger
+
+ \return
+ Nothing.
+
+ \exception std::length_error Thrown if the String would be too large.
+ */
+ void resize(size_type num, utf32 code_point)
+ {
+ if (num < d_cplength)
+ {
+ setlen(num);
+ }
+ else
+ {
+ append(num - d_cplength, code_point);
+ }
+
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Replacing Characters
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Replace code points in the String with the specified String object
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced (if this is 0, operation is an insert at position \a idx)
+
+ \param str
+ The String object that is to replace the specified code points
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(size_type idx, size_type len, const String& str)
+ {
+ return replace(idx, len, str, 0, npos);
+ }
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with the specified String object
+
+ \note
+ If \a beg == \a end, the operation is a insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param str
+ The String object that is to replace the specified range of code points
+
+ \return
+ This String after the replace operation
+
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, const String& str)
+ {
+ return replace(safe_iter_dif(iter_beg, begin()), safe_iter_dif(iter_end, iter_beg), str, 0, npos);
+ }
+
+ /*!
+ \brief
+ Replace code points in the String with a specified sub-string of a given String object.
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced. If this is 0, the operation is an insert at position \a idx.
+
+ \param str
+ String object containing the data that will replace the specified range of code points
+
+ \param str_idx
+ Index of the first code point of \a str that is to replace the specified code point range
+
+ \param str_num
+ Maximum number of code points of \a str that are to replace the specified code point range
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if either \a idx, or \a str_idx are invalid
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& replace(size_type idx, size_type len, const String& str, size_type str_idx, size_type str_num)
+ {
+ if ((d_cplength < idx) || (str.d_cplength < str_idx))
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (((str_idx + str_num) > str.d_cplength) || (str_num == npos))
+ str_num = str.d_cplength - str_idx;
+
+ if (((len + idx) > d_cplength) || (len == npos))
+ len = d_cplength - idx;
+
+ size_type newsz = d_cplength + str_num - len;
+
+ grow(newsz);
+
+ if ((idx + len) < d_cplength)
+ memmove(&ptr()[idx + str_num], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32));
+
+ memcpy(&ptr()[idx], &str.ptr()[str_idx], str_num * sizeof(utf32));
+ setlen(newsz);
+
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Replace code points in the String with the specified std::string object
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced (if this is 0, operation is an insert at position \a idx)
+
+ \param std_str
+ The std::string object that is to replace the specified code points
+
+ \note
+ Characters from \a std_str are considered to represent Unicode code points in the range 0x00..0xFF. No translation of
+ the encountered data is performed.
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(size_type idx, size_type len, const std::string& std_str)
+ {
+ return replace(idx, len, std_str, 0, npos);
+ }
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with the specified std::string object
+
+ \note
+ If \a beg == \a end, the operation is a insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param std_str
+ The std::string object that is to replace the specified range of code points
+
+ \note
+ Characters from \a std_str are considered to represent Unicode code points in the range 0x00..0xFF. No translation of
+ the encountered data is performed.
+
+ \return
+ This String after the replace operation
+
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, const std::string& std_str)
+ {
+ return replace(safe_iter_dif(iter_beg, begin()), safe_iter_dif(iter_end, iter_beg), std_str, 0, npos);
+ }
+
+ /*!
+ \brief
+ Replace code points in the String with a specified sub-string of a given std::string object.
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced. If this is 0, the operation is an insert at position \a idx.
+
+ \param std_str
+ std::string object containing the data that will replace the specified range of code points
+
+ \note
+ Characters from \a std_str are considered to represent Unicode code points in the range 0x00..0xFF. No translation of
+ the encountered data is performed.
+
+ \param str_idx
+ Index of the first code point of \a std_str that is to replace the specified code point range
+
+ \param str_num
+ Maximum number of code points of \a std_str that are to replace the specified code point range
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if either \a idx, or \a str_idx are invalid
+ \exception std::length_error Thrown if the resulting String would have been too large.
+ */
+ String& replace(size_type idx, size_type len, const std::string& std_str, size_type str_idx, size_type str_num)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (std_str.size() < str_idx)
+ throw std::out_of_range("Index is out of range for std::string");
+
+ if (((str_idx + str_num) > std_str.size()) || (str_num == npos))
+ str_num = (size_type)std_str.size() - str_idx;
+
+ if (((len + idx) > d_cplength) || (len == npos))
+ len = d_cplength - idx;
+
+ size_type newsz = d_cplength + str_num - len;
+
+ grow(newsz);
+
+ if ((idx + len) < d_cplength)
+ memmove(&ptr()[idx + str_num], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32));
+
+ utf32* pt = &ptr()[idx + str_num - 1];
+
+ while (str_num--)
+ *pt-- = static_cast<utf32>(static_cast<unsigned char>(std_str[str_idx + str_num]));
+
+ setlen(newsz);
+
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Replace code points in the String with the specified null-terminated utf8 encoded data.
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced (if this is 0, operation is an insert at position \a idx)
+
+ \param utf8_str
+ Buffer containing the null-terminated utf8 encoded data that is to replace the specified code points
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(size_type idx, size_type len, const utf8* utf8_str)
+ {
+ return replace(idx, len, utf8_str, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with the specified null-terminated utf8 encoded data.
+
+ \note
+ If \a beg == \a end, the operation is a insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param utf8_str
+ Buffer containing the null-terminated utf8 encoded data that is to replace the specified range of code points
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \return
+ This String after the replace operation
+
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, const utf8* utf8_str)
+ {
+ return replace(iter_beg, iter_end, utf8_str, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Replace code points in the String with the specified utf8 encoded data.
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced (if this is 0, operation is an insert at position \a idx)
+
+ \param utf8_str
+ Buffer containing the null-terminated utf8 encoded data that is to replace the specified code points
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param str_len
+ Length of the utf8 encoded data in utf8 code units (not code points).
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String
+ \exception std::length_error Thrown if the resulting String would be too large, or if \a str_len was 'npos'.
+ */
+ String& replace(size_type idx, size_type len, const utf8* utf8_str, size_type str_len)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (str_len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ if (((len + idx) > d_cplength) || (len == npos))
+ len = d_cplength - idx;
+
+ size_type encsz = encoded_size(utf8_str, str_len);
+ size_type newsz = d_cplength + encsz - len;
+
+ grow(newsz);
+
+ if ((idx + len) < d_cplength)
+ memmove(&ptr()[idx + encsz], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32));
+
+ encode(utf8_str, &ptr()[idx], encsz, str_len);
+
+ setlen(newsz);
+ return *this;
+ }
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with the specified null-terminated utf8 encoded data.
+
+ \note
+ If \a beg == \a end, the operation is a insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param utf8_str
+ Buffer containing the null-terminated utf8 encoded data that is to replace the specified range of code points
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param str_len
+ Length of the utf8 encoded data in utf8 code units (not code points).
+
+ \return
+ This String after the replace operation
+
+ \exception std::length_error Thrown if the resulting String would be too large, or if \a str_len was 'npos'.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, const utf8* utf8_str, size_type str_len)
+ {
+ return replace(safe_iter_dif(iter_beg, begin()), safe_iter_dif(iter_end, iter_beg), utf8_str, str_len);
+ }
+
+ /*!
+ \brief
+ Replaces a specified range of code points with occurrences of a given code point
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to replace. If this is 0 the operation is an insert
+
+ \param num
+ Number of occurrences of \a code_point that are to replace the specified range of code points
+
+ \param code_point
+ Code point that is to be used when replacing the specified range of code points
+
+ \return
+ This String after the replace operation.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String
+ \exception std::length_error Thrown if resulting String would have been too long, or if \a num was 'npos'.
+ */
+ String& replace(size_type idx, size_type len, size_type num, utf32 code_point)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (num == npos)
+ throw std::length_error("Code point count can not be 'npos'");
+
+ if (((len + idx) > d_cplength) || (len == npos))
+ len = d_cplength - idx;
+
+ size_type newsz = d_cplength + num - len;
+
+ grow(newsz);
+
+ if ((idx + len) < d_cplength)
+ memmove(&ptr()[idx + num], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32));
+
+ utf32* pt = &ptr()[idx + num - 1];
+
+ while (num--)
+ *pt-- = code_point;
+
+ setlen(newsz);
+
+ return *this;
+ }
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with occurrences of a given code point
+
+ \note
+ If \a beg == \a end, the operation is an insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param num
+ Number of occurrences of \a code_point that are to replace the specified range of code points
+
+ \param code_point
+ Code point that is to be used when replacing the specified range of code points
+
+ \return
+ This String after the replace operation
+
+ \exception std::length_error Thrown if resulting String would have been too long, or if \a num was 'npos'.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, size_type num, utf32 code_point)
+ {
+ return replace(safe_iter_dif(iter_beg, begin()), safe_iter_dif(iter_end, iter_beg), num, code_point);
+ }
+
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with code points from the range [newBeg, newEnd).
+
+ \note
+ If \a beg == \a end, the operation is an insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param newBeg
+ Iterator describing the beginning of the range to insert.
+
+ \param newEnd
+ Iterator describing the (exclusive) end of the range to insert.
+
+ \return
+ This String after the insert operation.
+
+ \exception std::length_error Thrown if the resulting string would be too long.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, const_iterator iter_newBeg, const_iterator iter_newEnd)
+ {
+ if (iter_beg == iter_end)
+ {
+ erase(safe_iter_dif(iter_beg, begin()), safe_iter_dif(iter_end, iter_beg));
+ }
+ else
+ {
+ size_type str_len = safe_iter_dif(iter_newEnd, iter_newBeg);
+ size_type idx = safe_iter_dif(iter_beg, begin());
+ size_type len = safe_iter_dif(iter_end, iter_beg);
+
+ if ((len + idx) > d_cplength)
+ len = d_cplength - idx;
+
+ size_type newsz = d_cplength + str_len - len;
+
+ grow(newsz);
+
+ if ((idx + len) < d_cplength)
+ memmove(&ptr()[idx + str_len], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32));
+
+ memcpy(&ptr()[idx], iter_newBeg.d_ptr, str_len * sizeof(utf32));
+ setlen(newsz);
+ }
+
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Replace code points in the String with the specified c-string.
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced (if this is 0, operation is an insert at position \a idx)
+
+ \param c_str
+ c-string that is to replace the specified code points
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(size_type idx, size_type len, const char* cstr)
+ {
+ return replace(idx, len, cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with the specified c-string.
+
+ \note
+ If \a beg == \a end, the operation is a insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param c_str
+ c-string that is to replace the specified range of code points
+
+ \return
+ This String after the replace operation
+
+ \exception std::length_error Thrown if the resulting String would be too large.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, const char* cstr)
+ {
+ return replace(iter_beg, iter_end, cstr, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Replace code points in the String with chars from the given char array.
+
+ \param idx
+ Index of the first code point to be replaced
+
+ \param len
+ Maximum number of code points to be replaced (if this is 0, operation is an insert at position \a idx)
+
+ \param chars
+ char array containing the cars that are to replace the specified code points
+
+ \param chars_len
+ Number of chars in the char array.
+
+ \return
+ This String after the replace operation
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String
+ \exception std::length_error Thrown if the resulting String would be too large, or if \a chars_len was 'npos'.
+ */
+ String& replace(size_type idx, size_type len, const char* chars, size_type chars_len)
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for CEGUI::String");
+
+ if (chars_len == npos)
+ throw std::length_error("Length for the char array can not be 'npos'");
+
+ if (((len + idx) > d_cplength) || (len == npos))
+ len = d_cplength - idx;
+
+ size_type newsz = d_cplength + chars_len - len;
+
+ grow(newsz);
+
+ if ((idx + len) < d_cplength)
+ memmove(&ptr()[idx + chars_len], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32));
+
+ utf32* pt = &ptr()[idx + chars_len - 1];
+
+ while (chars_len--)
+ *pt-- = static_cast<utf32>(static_cast<unsigned char>(chars[chars_len]));
+
+ setlen(newsz);
+ return *this;
+ }
+
+
+ /*!
+ \brief
+ Replace the code points in the range [beg, end) with chars from the given char array.
+
+ \note
+ If \a beg == \a end, the operation is a insert at iterator position \a beg
+
+ \param beg
+ Iterator describing the start of the range to be replaced
+
+ \param end
+ Iterator describing the (exclusive) end of the range to be replaced.
+
+ \param chars
+ char array containing the chars that are to replace the specified range of code points
+
+ \param chars_len
+ Number of chars in the char array.
+
+ \return
+ This String after the replace operation
+
+ \exception std::length_error Thrown if the resulting String would be too large, or if \a chars_len was 'npos'.
+ */
+ String& replace(iterator iter_beg, iterator iter_end, const char* chars, size_type chars_len)
+ {
+ return replace(safe_iter_dif(iter_beg, begin()), safe_iter_dif(iter_end, iter_beg), chars, chars_len);
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Find a code point
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Search forwards for a given code point
+
+ \param code_point
+ The utf32 code point to search for
+
+ \param idx
+ Index of the code point where the search is to start.
+
+ \return
+ - Index of the first occurrence of \a code_point travelling forwards from \a idx.
+ - npos if the code point could not be found
+ */
+ size_type find(utf32 code_point, size_type idx = 0) const
+ {
+ if (idx < d_cplength)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ while (idx < d_cplength)
+ {
+ if (*pt++ == code_point)
+ return idx;
+
+ ++idx;
+ }
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Search backwards for a given code point
+
+ \param code_point
+ The utf32 code point to search for
+
+ \param idx
+ Index of the code point where the search is to start.
+
+ \return
+ - Index of the first occurrence of \a code_point travelling backwards from \a idx.
+ - npos if the code point could not be found
+ */
+ size_type rfind(utf32 code_point, size_type idx = npos) const
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ if (d_cplength > 0)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (*pt-- == code_point)
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Find a substring
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Search forwards for a sub-string
+
+ \param str
+ String object describing the sub-string to search for
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a str travelling forwards from \a idx.
+ - npos if the sub-string could not be found
+ */
+ size_type find(const String& str, size_type idx = 0) const
+ {
+ if ((str.d_cplength == 0) && (idx < d_cplength))
+ return idx;
+
+ if (idx < d_cplength)
+ {
+ // loop while search string could fit in to search area
+ while (d_cplength - idx >= str.d_cplength)
+ {
+ if (0 == compare(idx, str.d_cplength, str))
+ return idx;
+
+ ++idx;
+ }
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Search backwards for a sub-string
+
+ \param str
+ String object describing the sub-string to search for
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a str travelling backwards from \a idx.
+ - npos if the sub-string could not be found
+ */
+ size_type rfind(const String& str, size_type idx = npos) const
+ {
+ if (str.d_cplength == 0)
+ return (idx < d_cplength) ? idx : d_cplength;
+
+ if (str.d_cplength <= d_cplength)
+ {
+ if (idx > (d_cplength - str.d_cplength))
+ idx = d_cplength - str.d_cplength;
+
+ do
+ {
+ if (0 == compare(idx, str.d_cplength, str))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Search forwards for a sub-string
+
+ \param std_str
+ std::string object describing the sub-string to search for
+
+ \note
+ Characters from \a std_str are considered to represent Unicode code points in the range 0x00..0xFF. No translation of
+ the encountered data is performed.
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a std_str travelling forwards from \a idx.
+ - npos if the sub-string could not be found
+ */
+ size_type find(const std::string& std_str, size_type idx = 0) const
+ {
+ std::string::size_type sze = std_str.size();
+
+ if ((sze == 0) && (idx < d_cplength))
+ return idx;
+
+ if (idx < d_cplength)
+ {
+ // loop while search string could fit in to search area
+ while (d_cplength - idx >= sze)
+ {
+ if (0 == compare(idx, (size_type)sze, std_str))
+ return idx;
+
+ ++idx;
+ }
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Search backwards for a sub-string
+
+ \param std_str
+ std::string object describing the sub-string to search for
+
+ \note
+ Characters from \a std_str are considered to represent Unicode code points in the range 0x00..0xFF. No translation of
+ the encountered data is performed.
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a std_str travelling backwards from \a idx.
+ - npos if the sub-string could not be found
+ */
+ size_type rfind(const std::string& std_str, size_type idx = npos) const
+ {
+ std::string::size_type sze = std_str.size();
+
+ if (sze == 0)
+ return (idx < d_cplength) ? idx : d_cplength;
+
+ if (sze <= d_cplength)
+ {
+ if (idx > (d_cplength - sze))
+ idx = d_cplength - sze;
+
+ do
+ {
+ if (0 == compare(idx, (size_type)sze, std_str))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Search forwards for a sub-string
+
+ \param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the sub-string to search for
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a utf8_str travelling forwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find(const utf8* utf8_str, size_type idx = 0) const
+ {
+ return find(utf8_str, idx, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Search backwards for a sub-string
+
+ \param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the sub-string to search for
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a utf8_str travelling backwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type rfind(const utf8* utf8_str, size_type idx = npos) const
+ {
+ return rfind(utf8_str, idx, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Search forwards for a sub-string
+
+ \param utf8_str
+ Buffer containing utf8 encoded data describing the sub-string to search for
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \param str_len
+ Length of the utf8 encoded sub-string in utf8 code units (not code points)
+
+ \return
+ - Index of the first occurrence of sub-string \a utf8_str travelling forwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::length_error Thrown if \a str_len is 'npos'
+ */
+ size_type find(const utf8* utf8_str, size_type idx, size_type str_len) const
+ {
+ if (str_len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ size_type sze = encoded_size(utf8_str, str_len);
+
+ if ((sze == 0) && (idx < d_cplength))
+ return idx;
+
+ if (idx < d_cplength)
+ {
+ // loop while search string could fit in to search area
+ while (d_cplength - idx >= sze)
+ {
+ if (0 == compare(idx, sze, utf8_str, sze))
+ return idx;
+
+ ++idx;
+ }
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Search backwards for a sub-string
+
+ \param utf8_str
+ Buffer containing utf8 encoded data describing the sub-string to search for
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \param str_len
+ Length of the utf8 encoded sub-string in utf8 code units (not code points)
+
+ \return
+ - Index of the first occurrence of sub-string \a utf8_str travelling backwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::length_error Thrown if \a str_len is 'npos'
+ */
+ size_type rfind(const utf8* utf8_str, size_type idx, size_type str_len) const
+ {
+ if (str_len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ size_type sze = encoded_size(utf8_str, str_len);
+
+ if (sze == 0)
+ return (idx < d_cplength) ? idx : d_cplength;
+
+ if (sze <= d_cplength)
+ {
+ if (idx > (d_cplength - sze))
+ idx = d_cplength - sze;
+
+ do
+ {
+ if (0 == compare(idx, sze, utf8_str, sze))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Search forwards for a sub-string
+
+ \param c_str
+ c-string describing the sub-string to search for
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a c_str travelling forwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find(const char* cstr, size_type idx = 0) const
+ {
+ return find(cstr, idx, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Search backwards for a sub-string
+
+ \param c_str
+ c-string describing the sub-string to search for
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \return
+ - Index of the first occurrence of sub-string \a c_str travelling backwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type rfind(const char* cstr, size_type idx = npos) const
+ {
+ return rfind(cstr, idx, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Search forwards for a sub-string
+
+ \param chars
+ char array describing the sub-string to search for
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \param chars_len
+ Number of chars in the char array.
+
+ \return
+ - Index of the first occurrence of sub-string \a chars travelling forwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::length_error Thrown if \a chars_len is 'npos'
+ */
+ size_type find(const char* chars, size_type idx, size_type chars_len) const
+ {
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ if ((chars_len == 0) && (idx < d_cplength))
+ return idx;
+
+ if (idx < d_cplength)
+ {
+ // loop while search string could fit in to search area
+ while (d_cplength - idx >= chars_len)
+ {
+ if (0 == compare(idx, chars_len, chars, chars_len))
+ return idx;
+
+ ++idx;
+ }
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Search backwards for a sub-string
+
+ \param chars
+ char array describing the sub-string to search for
+
+ \param idx
+ Index of the code point where the search is to start
+
+ \param chars_len
+ Number of chars in the char array.
+
+ \return
+ - Index of the first occurrence of sub-string \a chars travelling backwards from \a idx.
+ - npos if the sub-string could not be found
+
+ \exception std::length_error Thrown if \a chars_len is 'npos'
+ */
+ size_type rfind(const char* chars, size_type idx, size_type chars_len) const
+ {
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ if (chars_len == 0)
+ return (idx < d_cplength) ? idx : d_cplength;
+
+ if (chars_len <= d_cplength)
+ {
+ if (idx > (d_cplength - chars_len))
+ idx = d_cplength - chars_len;
+
+ do
+ {
+ if (0 == compare(idx, chars_len, chars, chars_len))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Find first of different code-points
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Find the first occurrence of one of a set of code points.
+
+ \param str
+ String object describing the set of code points.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first occurrence of any one of the code points in \a str starting from from \a idx.
+ - npos if none of the code points in \a str were found.
+ */
+ size_type find_first_of(const String& str, size_type idx = 0) const
+ {
+ if (idx < d_cplength)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != str.find(*pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Find the first code point that is not one of a set of code points.
+
+ \param str
+ String object describing the set of code points.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first code point that does not match any one of the code points in \a str starting from from \a idx.
+ - npos if all code points matched one of the code points in \a str.
+ */
+ size_type find_first_not_of(const String& str, size_type idx = 0) const
+ {
+ if (idx < d_cplength)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == str.find(*pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the first occurrence of one of a set of code points.
+
+ \param std_str
+ std::string object describing the set of code points.
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first occurrence of any one of the code points in \a std_str starting from from \a idx.
+ - npos if none of the code points in \a std_str were found.
+ */
+ size_type find_first_of(const std::string& std_str, size_type idx = 0) const
+ {
+ if (idx < d_cplength)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != find_codepoint(std_str, *pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Find the first code point that is not one of a set of code points.
+
+ \param std_str
+ std::string object describing the set of code points.
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first code point that does not match any one of the code points in \a std_str starting from from \a idx.
+ - npos if all code points matched one of the code points in \a std_str.
+ */
+ size_type find_first_not_of(const std::string& std_str, size_type idx = 0) const
+ {
+ if (idx < d_cplength)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == find_codepoint(std_str, *pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the first occurrence of one of a set of code points.
+
+ \param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first occurrence of any one of the code points in \a utf8_str starting from from \a idx.
+ - npos if none of the code points in \a utf8_str were found.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_first_of(const utf8* utf8_str, size_type idx = 0) const
+ {
+ return find_first_of(utf8_str, idx, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Find the first code point that is not one of a set of code points.
+
+ \param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first code point that does not match any one of the code points in \a utf8_str starting from from \a idx.
+ - npos if all code points matched one of the code points in \a utf8_str.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_first_not_of(const utf8* utf8_str, size_type idx = 0) const
+ {
+ return find_first_not_of(utf8_str, idx, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Find the first occurrence of one of a set of code points.
+
+ \param utf8_str
+ Buffer containing utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \param str_len
+ Length of the utf8 encoded data in utf8 code units (not code points).
+
+ \return
+ - Index of the first occurrence of any one of the code points in \a utf8_str starting from from \a idx.
+ - npos if none of the code points in \a utf8_str were found.
+
+ \exception std::length_error Thrown if \a str_len was 'npos'.
+ */
+ size_type find_first_of(const utf8* utf8_str, size_type idx, size_type str_len) const
+ {
+ if (str_len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ if (idx < d_cplength)
+ {
+ size_type encsze = encoded_size(utf8_str, str_len);
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != find_codepoint(utf8_str, encsze, *pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Find the first code point that is not one of a set of code points.
+
+ \param utf8_str
+ Buffer containing utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \param str_len
+ Length of the utf8 encoded data in utf8 code units (not code points).
+
+ \return
+ - Index of the first code point that does not match any one of the code points in \a utf8_str starting from from \a idx.
+ - npos if all code points matched one of the code points in \a utf8_str.
+
+ \exception std::length_error Thrown if \a str_len was 'npos'.
+ */
+ size_type find_first_not_of(const utf8* utf8_str, size_type idx, size_type str_len) const
+ {
+ if (str_len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ if (idx < d_cplength)
+ {
+ size_type encsze = encoded_size(utf8_str, str_len);
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == find_codepoint(utf8_str, encsze, *pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Search forwards for a given code point
+
+ \param code_point
+ The utf32 code point to search for
+
+ \param idx
+ Index of the code point where the search is to start.
+
+ \return
+ - Index of the first occurrence of \a code_point starting from from \a idx.
+ - npos if the code point could not be found
+ */
+ size_type find_first_of(utf32 code_point, size_type idx = 0) const
+ {
+ return find(code_point, idx);
+ }
+
+ /*!
+ \brief
+ Search forwards for the first code point that does not match a given code point
+
+ \param code_point
+ The utf32 code point to search for
+
+ \param idx
+ Index of the code point where the search is to start.
+
+ \return
+ - Index of the first code point that does not match \a code_point starting from from \a idx.
+ - npos if all code points matched \a code_point
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_first_not_of(utf32 code_point, size_type idx = 0) const
+ {
+ if (idx < d_cplength)
+ {
+ do
+ {
+ if ((*this)[idx] != code_point)
+ return idx;
+
+ } while(idx++ < d_cplength);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the first occurrence of one of a set of chars.
+
+ \param c_str
+ c-string describing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first occurrence of any one of the chars in \a c_str starting from from \a idx.
+ - npos if none of the chars in \a c_str were found.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_first_of(const char* cstr, size_type idx = 0) const
+ {
+ return find_first_of(cstr, idx, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Find the first code point that is not one of a set of chars.
+
+ \param c_str
+ c-string describing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the first code point that does not match any one of the chars in \a c_str starting from from \a idx.
+ - npos if all code points matched any of the chars in \a c_str.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_first_not_of(const char* cstr, size_type idx = 0) const
+ {
+ return find_first_not_of(cstr, idx, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Find the first occurrence of one of a set of chars.
+
+ \param chars
+ char array containing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \param chars_len
+ Number of chars in the char array.
+
+ \return
+ - Index of the first occurrence of any one of the chars in \a chars starting from from \a idx.
+ - npos if none of the chars in \a chars were found.
+
+ \exception std::length_error Thrown if \a chars_len was 'npos'.
+ */
+ size_type find_first_of(const char* chars, size_type idx, size_type chars_len) const
+ {
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ if (idx < d_cplength)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != find_codepoint(chars, chars_len, *pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the first code point that is not one of a set of chars.
+
+ \param chars
+ char array containing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \param chars_len
+ Number of chars in the car array.
+
+ \return
+ - Index of the first code point that does not match any one of the chars in \a chars starting from from \a idx.
+ - npos if all code points matched any of the chars in \a chars.
+
+ \exception std::length_error Thrown if \a chars_len was 'npos'.
+ */
+ size_type find_first_not_of(const char* chars, size_type idx, size_type chars_len) const
+ {
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ if (idx < d_cplength)
+ {
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == find_codepoint(chars, chars_len, *pt++))
+ return idx;
+
+ } while (++idx != d_cplength);
+
+ }
+
+ return npos;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Find last of different code-points
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Find the last occurrence of one of a set of code points.
+
+ \param str
+ String object describing the set of code points.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last occurrence of any one of the code points in \a str starting from \a idx.
+ - npos if none of the code points in \a str were found.
+ */
+ size_type find_last_of(const String& str, size_type idx = npos) const
+ {
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != str.find(*pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Find the last code point that is not one of a set of code points.
+
+ \param str
+ String object describing the set of code points.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last code point that does not match any one of the code points in \a str starting from \a idx.
+ - npos if all code points matched one of the code points in \a str.
+ */
+ size_type find_last_not_of(const String& str, size_type idx = npos) const
+ {
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == str.find(*pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the last occurrence of one of a set of code points.
+
+ \param std_str
+ std::string object describing the set of code points.
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last occurrence of any one of the code points in \a std_str starting from \a idx.
+ - npos if none of the code points in \a std_str were found.
+ */
+ size_type find_last_of(const std::string& std_str, size_type idx = npos) const
+ {
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != find_codepoint(std_str, *pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Find the last code point that is not one of a set of code points.
+
+ \param std_str
+ std::string object describing the set of code points.
+
+ \note
+ The characters of \a std_str are taken to be unencoded data which represent Unicode code points 0x00..0xFF. No translation of
+ the provided data will occur.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last code point that does not match any one of the code points in \a std_str starting from \a idx.
+ - npos if all code points matched one of the code points in \a std_str.
+ */
+ size_type find_last_not_of(const std::string& std_str, size_type idx = npos) const
+ {
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == find_codepoint(std_str, *pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the last occurrence of one of a set of code points.
+
+ \param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last occurrence of any one of the code points in \a utf8_str starting from \a idx.
+ - npos if none of the code points in \a utf8_str were found.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_last_of(const utf8* utf8_str, size_type idx = npos) const
+ {
+ return find_last_of(utf8_str, idx, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Find the last code point that is not one of a set of code points.
+
+ \param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last code point that does not match any one of the code points in \a utf8_str starting from \a idx.
+ - npos if all code points matched one of the code points in \a utf8_str.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_last_not_of(const utf8* utf8_str, size_type idx = npos) const
+ {
+ return find_last_not_of(utf8_str, idx, utf_length(utf8_str));
+ }
+
+ /*!
+ \brief
+ Find the last occurrence of one of a set of code points.
+
+ \param utf8_str
+ Buffer containing utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \param str_len
+ Length of the utf8 encoded data in utf8 code units (not code points).
+
+ \return
+ - Index of the last occurrence of any one of the code points in \a utf8_str starting from from \a idx.
+ - npos if none of the code points in \a utf8_str were found.
+
+ \exception std::length_error Thrown if \a str_len was 'npos'.
+ */
+ size_type find_last_of(const utf8* utf8_str, size_type idx, size_type str_len) const
+ {
+ if (str_len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ size_type encsze = encoded_size(utf8_str, str_len);
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != find_codepoint(utf8_str, encsze, *pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+ /*!
+ \brief
+ Find the last code point that is not one of a set of code points.
+
+ \param utf8_str
+ Buffer containing utf8 encoded data describing the set of code points.
+
+ \note
+ A basic string literal (cast to utf8*) can be passed to this function, provided that the string is
+ comprised only of code points 0x00..0x7f. The use of extended ASCII characters (with values >0x7f)
+ would result in incorrect behaviour as the String will attempt to 'decode' the data, with unpredictable
+ results.
+
+ \param idx
+ Index of the start point for the search
+
+ \param str_len
+ Length of the utf8 encoded data in utf8 code units (not code points).
+
+ \return
+ - Index of the last code point that does not match any one of the code points in \a utf8_str starting from from \a idx.
+ - npos if all code points matched one of the code points in \a utf8_str.
+
+ \exception std::length_error Thrown if \a str_len was 'npos'.
+ */
+ size_type find_last_not_of(const utf8* utf8_str, size_type idx, size_type str_len) const
+ {
+ if (str_len == npos)
+ throw std::length_error("Length for utf8 encoded string can not be 'npos'");
+
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ size_type encsze = encoded_size(utf8_str, str_len);
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == find_codepoint(utf8_str, encsze, *pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Search for last occurrence of a given code point
+
+ \param code_point
+ The utf32 code point to search for
+
+ \param idx
+ Index of the code point where the search is to start.
+
+ \return
+ - Index of the last occurrence of \a code_point starting from \a idx.
+ - npos if the code point could not be found
+ */
+ size_type find_last_of(utf32 code_point, size_type idx = npos) const
+ {
+ return rfind(code_point, idx);
+ }
+
+ /*!
+ \brief
+ Search for the last code point that does not match a given code point
+
+ \param code_point
+ The utf32 code point to search for
+
+ \param idx
+ Index of the code point where the search is to start.
+
+ \return
+ - Index of the last code point that does not match \a code_point starting from from \a idx.
+ - npos if all code points matched \a code_point
+ */
+ size_type find_last_not_of(utf32 code_point, size_type idx = npos) const
+ {
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ do
+ {
+ if ((*this)[idx] != code_point)
+ return idx;
+
+ } while(idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the last occurrence of one of a set of chars.
+
+ \param c_str
+ c-string describing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last occurrence of any one of the chars in \a c_str starting from \a idx.
+ - npos if none of the chars in \a c_str were found.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_last_of(const char* cstr, size_type idx = npos) const
+ {
+ return find_last_of(cstr, idx, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Find the last code point that is not one of a set of chars.
+
+ \param c_str
+ c-string describing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \return
+ - Index of the last code point that does not match any one of the chars in \a c_str starting from \a idx.
+ - npos if all code points matched any of the chars in \a c_str.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ size_type find_last_not_of(const char* cstr, size_type idx = npos) const
+ {
+ return find_last_not_of(cstr, idx, strlen(cstr));
+ }
+
+
+ /*!
+ \brief
+ Find the last occurrence of one of a set of chars.
+
+ \param chars
+ char array containing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \param chars_len
+ Number of chars in the char array.
+
+ \return
+ - Index of the last occurrence of any one of the chars in \a chars, starting from from \a idx.
+ - npos if none of the chars in \a chars were found.
+
+ \exception std::length_error Thrown if \a chars_len was 'npos'.
+ */
+ size_type find_last_of(const char* chars, size_type idx, size_type chars_len) const
+ {
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos != find_codepoint(chars, chars_len, *pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ /*!
+ \brief
+ Find the last code point that is not one of a set of chars.
+
+ \param chars
+ char array containing the set of chars.
+
+ \param idx
+ Index of the start point for the search
+
+ \param chars_len
+ Number of chars in the char array.
+
+ \return
+ - Index of the last code point that does not match any one of the chars in \a chars, starting from from \a idx.
+ - npos if all code points matched any of the chars in \a chars.
+
+ \exception std::length_error Thrown if \a chars_len was 'npos'.
+ */
+ size_type find_last_not_of(const char* chars, size_type idx, size_type chars_len) const
+ {
+ if (chars_len == npos)
+ throw std::length_error("Length for char array can not be 'npos'");
+
+ if (d_cplength > 0)
+ {
+ if (idx >= d_cplength)
+ idx = d_cplength - 1;
+
+ const utf32* pt = &ptr()[idx];
+
+ do
+ {
+ if (npos == find_codepoint(chars, chars_len, *pt--))
+ return idx;
+
+ } while (idx-- != 0);
+
+ }
+
+ return npos;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////
+ // Substring
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Returns a substring of this String.
+
+ \param idx
+ Index of the first code point to use for the sub-string.
+
+ \param len
+ Maximum number of code points to use for the sub-string
+
+ \return
+ A String object containing the specified sub-string.
+
+ \exception std::out_of_range Thrown if \a idx is invalid for this String.
+ */
+ String substr(size_type idx = 0, size_type len = npos) const
+ {
+ if (d_cplength < idx)
+ throw std::out_of_range("Index is out of range for this CEGUI::String");
+
+ return String(*this, idx, len);
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // Iterator creation
+ //////////////////////////////////////////////////////////////////////////
+ /*!
+ \brief
+ Return a forwards iterator that describes the beginning of the String
+
+ \return
+ iterator object that describes the beginning of the String.
+ */
+ iterator begin(void)
+ {
+ return iterator(ptr());
+ }
+
+ /*!
+ \brief
+ Return a constant forwards iterator that describes the beginning of the String
+
+ \return
+ const_iterator object that describes the beginning of the String.
+ */
+ const_iterator begin(void) const
+ {
+ return const_iterator(ptr());
+ }
+
+ /*!
+ \brief
+ Return a forwards iterator that describes the end of the String
+
+ \return
+ iterator object that describes the end of the String.
+ */
+ iterator end(void)
+ {
+ return iterator(&ptr()[d_cplength]);
+ }
+
+ /*!
+ \brief
+ Return a constant forwards iterator that describes the end of the String
+
+ \return
+ const_iterator object that describes the end of the String.
+ */
+ const_iterator end(void) const
+ {
+ return const_iterator(&ptr()[d_cplength]);
+ }
+
+ /*!
+ \brief
+ Return a reverse iterator that describes the beginning of the String
+
+ \return
+ reverse_iterator object that describes the beginning of the String (so is actually at the end)
+ */
+ reverse_iterator rbegin(void)
+ {
+ return reverse_iterator(end());
+ }
+
+ /*!
+ \brief
+ Return a constant reverse iterator that describes the beginning of the String
+
+ \return
+ const_reverse_iterator object that describes the beginning of the String (so is actually at the end)
+ */
+ const_reverse_iterator rbegin(void) const
+ {
+ return const_reverse_iterator(end());
+ }
+
+ /*!
+ \brief
+ Return a reverse iterator that describes the end of the String
+
+ \return
+ reverse_iterator object that describes the end of the String (so is actually at the beginning)
+ */
+ reverse_iterator rend(void)
+ {
+ return reverse_iterator(begin());
+ }
+
+ /*!
+ \brief
+ Return a constant reverse iterator that describes the end of the String
+
+ \return
+ const_reverse_iterator object that describes the end of the String (so is actually at the beginning)
+ */
+ const_reverse_iterator rend(void) const
+ {
+ return const_reverse_iterator(begin());
+ }
+
+private:
+ /*************************************************************************
+ Implementation Functions
+ *************************************************************************/
+ // string management
+
+ // change size of allocated buffer so it is at least 'new_size'.
+ // May or may not cause re-allocation and copy of buffer if size is larger
+ // will never re-allocate to make size smaller. (see trim())
+ bool grow(size_type new_size);
+
+ // perform re-allocation to remove wasted space.
+ void trim(void);
+
+ // set the length of the string, and terminate it, according to the given value (will not re-allocate, use grow() first).
+ void setlen(size_type len)
+ {
+ d_cplength = len;
+ ptr()[len] = (utf32)(0);
+ }
+
+ // initialise string object
+ void init(void)
+ {
+ d_reserve = STR_QUICKBUFF_SIZE;
+ d_encodedbuff = 0;
+ d_encodedbufflen = 0;
+ d_encodeddatlen = 0;
+ setlen(0);
+ }
+
+ // return true if the given pointer is inside the string data
+ bool inside(utf32* inptr)
+ {
+ if (inptr < ptr() || ptr() + d_cplength <= inptr)
+ return false;
+ else
+ return true;
+ }
+
+ // compute distance between two iterators, returning a 'safe' value
+ size_type safe_iter_dif(const const_iterator& iter1, const const_iterator& iter2) const
+ {
+ return (iter1.d_ptr == 0) ? 0 : (iter1 - iter2);
+ }
+
+ // encoding functions
+ // for all:
+ // src_len is in code units, or 0 for null terminated string.
+ // dest_len is in code units.
+ // returns number of code units put into dest buffer.
+ size_type encode(const utf32* src, utf8* dest, size_type dest_len, size_type src_len = 0) const
+ {
+ // count length for null terminated source...
+ if (src_len == 0)
+ {
+ src_len = utf_length(src);
+ }
+
+ size_type destCapacity = dest_len;
+
+ // while there is data in the source buffer,
+ for (uint idx = 0; idx < src_len; ++idx)
+ {
+ utf32 cp = src[idx];
+
+ // check there is enough destination buffer to receive this encoded unit (exit loop & return if not)
+ if (destCapacity < encoded_size(cp))
+ {
+ break;
+ }
+
+ if (cp < 0x80)
+ {
+ *dest++ = (utf8)cp;
+ --destCapacity;
+ }
+ else if (cp < 0x0800)
+ {
+ *dest++ = (utf8)((cp >> 6) | 0xC0);
+ *dest++ = (utf8)((cp & 0x3F) | 0x80);
+ destCapacity -= 2;
+ }
+ else if (cp < 0x10000)
+ {
+ *dest++ = (utf8)((cp >> 12) | 0xE0);
+ *dest++ = (utf8)(((cp >> 6) & 0x3F) | 0x80);
+ *dest++ = (utf8)((cp & 0x3F) | 0x80);
+ destCapacity -= 3;
+ }
+ else
+ {
+ *dest++ = (utf8)((cp >> 18) | 0xF0);
+ *dest++ = (utf8)(((cp >> 12) & 0x3F) | 0x80);
+ *dest++ = (utf8)(((cp >> 6) & 0x3F) | 0x80);
+ *dest++ = (utf8)((cp & 0x3F) | 0x80);
+ destCapacity -= 4;
+ }
+
+ }
+
+ return dest_len - destCapacity;
+ }
+
+ size_type encode(const utf8* src, utf32* dest, size_type dest_len, size_type src_len = 0) const
+ {
+ // count length for null terminated source...
+ if (src_len == 0)
+ {
+ src_len = utf_length(src);
+ }
+
+ size_type destCapacity = dest_len;
+
+ // while there is data in the source buffer, and space in the dest buffer
+ for (uint idx = 0; ((idx < src_len) && (destCapacity > 0));)
+ {
+ utf32 cp;
+ utf8 cu = src[idx++];
+
+ if (cu < 0x80)
+ {
+ cp = (utf32)(cu);
+ }
+ else if (cu < 0xE0)
+ {
+ cp = ((cu & 0x1F) << 6);
+ cp |= (src[idx++] & 0x3F);
+ }
+ else if (cu < 0xF0)
+ {
+ cp = ((cu & 0x0F) << 12);
+ cp |= ((src[idx++] & 0x3F) << 6);
+ cp |= (src[idx++] & 0x3F);
+ }
+ else
+ {
+ cp = ((cu & 0x07) << 18);
+ cp |= ((src[idx++] & 0x3F) << 12);
+ cp |= ((src[idx++] & 0x3F) << 6);
+ cp |= (src[idx++] & 0x3F);
+ }
+
+ *dest++ = cp;
+ --destCapacity;
+ }
+
+ return dest_len - destCapacity;
+ }
+
+ // return the number of utf8 code units required to encode the given utf32 code point
+ size_type encoded_size(utf32 code_point) const
+ {
+ if (code_point < 0x80)
+ return 1;
+ else if (code_point < 0x0800)
+ return 2;
+ else if (code_point < 0x10000)
+ return 3;
+ else
+ return 4;
+ }
+
+ // return number of code units required to re-encode given null-terminated utf32 data as utf8. return does not include terminating null.
+ size_type encoded_size(const utf32* buf) const
+ {
+ return encoded_size(buf, utf_length(buf));
+ }
+
+ // return number of code units required to re-encode given utf32 data as utf8. len is number of code units in 'buf'.
+ size_type encoded_size(const utf32* buf, size_type len) const
+ {
+ size_type count = 0;
+
+ while (len--)
+ {
+ count += encoded_size(*buf++);
+ }
+
+ return count;
+ }
+
+ // return number of utf32 code units required to re-encode given utf8 data as utf32. return does not include terminating null.
+ size_type encoded_size(const utf8* buf) const
+ {
+ return encoded_size(buf, utf_length(buf));
+ }
+
+ // return number of utf32 code units required to re-encode given utf8 data as utf32. len is number of code units in 'buf'.
+ size_type encoded_size(const utf8* buf, size_type len) const
+ {
+ utf8 tcp;
+ size_type count = 0;
+
+ while (len--)
+ {
+ tcp = *buf++;
+ ++count;
+
+ if (tcp < 0x80)
+ {
+ }
+ else if (tcp < 0xE0)
+ {
+ --len;
+ ++buf;
+ }
+ else if (tcp < 0xF0)
+ {
+ len -= 2;
+ buf += 2;
+ }
+ else
+ {
+ len -= 2;
+ buf += 3;
+ }
+
+ }
+
+ return count;
+ }
+
+ // return number of code units in a null terminated string
+ size_type utf_length(const utf8* utf8_str) const
+ {
+ size_type cnt = 0;
+ while (*utf8_str++)
+ cnt++;
+
+ return cnt;
+ }
+
+ // return number of code units in a null terminated string
+ size_type utf_length(const utf32* utf32_str) const
+ {
+ size_type cnt = 0;
+ while (*utf32_str++)
+ cnt++;
+
+ return cnt;
+ }
+
+ // build an internal buffer with the string encoded as utf8 (remains valid until string is modified).
+ utf8* build_utf8_buff(void) const;
+
+ // compare two utf32 buffers
+ int utf32_comp_utf32(const utf32* buf1, const utf32* buf2, size_type cp_count) const
+ {
+ if (!cp_count)
+ return 0;
+
+ while ((--cp_count) && (*buf1 == *buf2))
+ buf1++, buf2++;
+
+ return *buf1 - *buf2;
+ }
+
+ // compare utf32 buffer with char buffer (chars are taken to be code-points in the range 0x00-0xFF)
+ int utf32_comp_char(const utf32* buf1, const char* buf2, size_type cp_count) const
+ {
+ if (!cp_count)
+ return 0;
+
+ while ((--cp_count) && (*buf1 == static_cast<utf32>(static_cast<unsigned char>(*buf2))))
+ buf1++, buf2++;
+
+ return *buf1 - static_cast<utf32>(static_cast<unsigned char>(*buf2));
+ }
+
+ // compare utf32 buffer with encoded utf8 data
+ int utf32_comp_utf8(const utf32* buf1, const utf8* buf2, size_type cp_count) const
+ {
+ if (!cp_count)
+ return 0;
+
+ utf32 cp;
+ utf8 cu;
+
+ do
+ {
+ cu = *buf2++;
+
+ if (cu < 0x80)
+ {
+ cp = (utf32)(cu);
+ }
+ else if (cu < 0xE0)
+ {
+ cp = ((cu & 0x1F) << 6);
+ cp |= (*buf2++ & 0x3F);
+ }
+ else if (cu < 0xF0)
+ {
+ cp = ((cu & 0x0F) << 12);
+ cp |= ((*buf2++ & 0x3F) << 6);
+ cp |= (*buf2++ & 0x3F);
+ }
+ else
+ {
+ cp = ((cu & 0x07) << 18);
+ cp |= ((*buf2++ & 0x3F) << 12);
+ cp |= ((*buf2++ & 0x3F) << 6);
+ cp |= (*buf2++ & 0x3F);
+ }
+
+ } while ((*buf1++ == cp) && (--cp_count));
+
+ return (*--buf1) - cp;
+ }
+
+ // return index of first occurrence of 'code_point' in std::string 'str', or npos if none
+ size_type find_codepoint(const std::string& str, utf32 code_point) const
+ {
+ size_type idx = 0, sze = (size_type)str.size();
+
+ while (idx != sze)
+ {
+ if (code_point == static_cast<utf32>(static_cast<unsigned char>(str[idx])))
+ return idx;
+
+ ++idx;
+ }
+
+ return npos;
+ }
+
+ // return index of first occurrence of 'code_point' in utf8 encoded string 'str', or npos if none. len is in code points.
+ size_type find_codepoint(const utf8* str, size_type len, utf32 code_point) const
+ {
+ size_type idx = 0;
+
+ utf32 cp;
+ utf8 cu;
+
+ while (idx != len) {
+ cu = *str++;
+
+ if (cu < 0x80)
+ {
+ cp = (utf32)(cu);
+ }
+ else if (cu < 0xE0)
+ {
+ cp = ((cu & 0x1F) << 6);
+ cp |= (*str++ & 0x3F);
+ }
+ else if (cu < 0xF0)
+ {
+ cp = ((cu & 0x0F) << 12);
+ cp |= ((*str++ & 0x3F) << 6);
+ cp |= (*str++ & 0x3F);
+ }
+ else
+ {
+ cp = ((cu & 0x07) << 18);
+ cp |= ((*str++ & 0x3F) << 12);
+ cp |= ((*str++ & 0x3F) << 6);
+ cp |= (*str++ & 0x3F);
+ }
+
+ if (code_point == cp)
+ return idx;
+
+ ++idx;
+ }
+
+ return npos;
+ }
+
+
+ // return index of first occurrence of 'code_point' in char array 'chars', or npos if none
+ size_type find_codepoint(const char* chars, size_type chars_len, utf32 code_point) const
+ {
+ for (size_type idx = 0; idx != chars_len; ++idx)
+ {
+ if (code_point == static_cast<utf32>(static_cast<unsigned char>(chars[idx])))
+ return idx;
+ }
+
+ return npos;
+ }
+
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// Comparison operators
+//////////////////////////////////////////////////////////////////////////
+/*!
+\brief
+ Return true if String \a str1 is equal to String \a str2
+*/
+bool CEGUIEXPORT operator==(const String& str1, const String& str2);
+
+/*!
+\brief
+ Return true if String \a str is equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator==(const String& str, const std::string& std_str);
+
+/*!
+\brief
+ Return true if String \a str is equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator==(const std::string& std_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator==(const String& str, const utf8* utf8_str);
+
+/*!
+\brief
+ Return true if String \a str is equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator==(const utf8* utf8_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str1 is not equal to String \a str2
+*/
+bool CEGUIEXPORT operator!=(const String& str1, const String& str2);
+
+/*!
+\brief
+ Return true if String \a str is not equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator!=(const String& str, const std::string& std_str);
+
+/*!
+\brief
+ Return true if String \a str is not equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator!=(const std::string& std_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is not equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator!=(const String& str, const utf8* utf8_str);
+
+/*!
+\brief
+ Return true if String \a str is not equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator!=(const utf8* utf8_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str1 is lexicographically less than String \a str2
+*/
+bool CEGUIEXPORT operator<(const String& str1, const String& str2);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than std::string \a std_str
+*/
+bool CEGUIEXPORT operator<(const String& str, const std::string& std_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than std::string \a std_str
+*/
+bool CEGUIEXPORT operator<(const std::string& std_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator<(const String& str, const utf8* utf8_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator<(const utf8* utf8_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str1 is lexicographically greater than String \a str2
+*/
+bool CEGUIEXPORT operator>(const String& str1, const String& str2);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than std::string \a std_str
+*/
+bool CEGUIEXPORT operator>(const String& str, const std::string& std_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than std::string \a std_str
+*/
+bool CEGUIEXPORT operator>(const std::string& std_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator>(const String& str, const utf8* utf8_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator>(const utf8* utf8_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str1 is lexicographically less than or equal to String \a str2
+*/
+bool CEGUIEXPORT operator<=(const String& str1, const String& str2);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than or equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator<=(const String& str, const std::string& std_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than or equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator<=(const std::string& std_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than or equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator<=(const String& str, const utf8* utf8_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than or equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator<=(const utf8* utf8_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str1 is lexicographically greater than or equal to String \a str2
+*/
+bool CEGUIEXPORT operator>=(const String& str1, const String& str2);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than or equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator>=(const String& str, const std::string& std_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than or equal to std::string \a std_str
+*/
+bool CEGUIEXPORT operator>=(const std::string& std_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than or equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator>=(const String& str, const utf8* utf8_str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than or equal to null-terminated utf8 data \a utf8_str
+*/
+bool CEGUIEXPORT operator>=(const utf8* utf8_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is equal to c-string \a c_str
+*/
+bool CEGUIEXPORT operator==(const String& str, const char* c_str);
+
+/*!
+\brief
+ Return true if c-string \a c_str is equal to String \a str
+*/
+bool CEGUIEXPORT operator==(const char* c_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is not equal to c-string \a c_str
+*/
+bool CEGUIEXPORT operator!=(const String& str, const char* c_str);
+
+/*!
+\brief
+ Return true if c-string \a c_str is not equal to String \a str
+*/
+bool CEGUIEXPORT operator!=(const char* c_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than c-string \a c_str
+*/
+bool CEGUIEXPORT operator<(const String& str, const char* c_str);
+
+/*!
+\brief
+ Return true if c-string \a c_str is lexicographically less than String \a str
+*/
+bool CEGUIEXPORT operator<(const char* c_str, const String& str);
+
+/*!
+\brief
+Return true if String \a str is lexicographically greater than c-string \a c_str
+*/
+bool CEGUIEXPORT operator>(const String& str, const char* c_str);
+
+/*!
+\brief
+Return true if c-string \a c_str is lexicographically greater than String \a str
+*/
+bool CEGUIEXPORT operator>(const char* c_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically less than or equal to c-string \a c_str
+*/
+bool CEGUIEXPORT operator<=(const String& str, const char* c_str);
+
+/*!
+\brief
+ Return true if c-string \a c_str is lexicographically less than or equal to String \a str
+*/
+bool CEGUIEXPORT operator<=(const char* c_str, const String& str);
+
+/*!
+\brief
+ Return true if String \a str is lexicographically greater than or equal to c-string \a c_str
+*/
+bool CEGUIEXPORT operator>=(const String& str, const char* c_str);
+
+/*!
+\brief
+ Return true if c-string \a c_str is lexicographically greater than or equal to String \a str
+*/
+bool CEGUIEXPORT operator>=(const char* c_str, const String& str);
+
+//////////////////////////////////////////////////////////////////////////
+// Concatenation operator functions
+//////////////////////////////////////////////////////////////////////////
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param str1
+ String object describing first part of the new string
+
+\param str2
+ String object describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a str1 and \a str2
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const String& str1, const String& str2);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param str
+ String object describing first part of the new string
+
+\param std_str
+ std::string object describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a str and \a std_str
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const String& str, const std::string& std_str);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param std_str
+ std::string object describing the first part of the new string
+
+\param str
+ String object describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a std_str and \a str
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const std::string& std_str, const String& str);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param str
+ String object describing first part of the new string
+
+\param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a str and \a utf8_str
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const String& str, const utf8* utf8_str);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param utf8_str
+ Buffer containing null-terminated utf8 encoded data describing the first part of the new string
+
+\param str
+ String object describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a str and \a utf8_str
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const utf8* utf8_str, const String& str);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param str
+ String object describing the first part of the new string
+
+\param code_point
+ utf32 code point describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a str and \a code_point
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const String& str, utf32 code_point);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param code_point
+ utf32 code point describing the first part of the new string
+
+\param str
+ String object describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a code_point and \a str
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(utf32 code_point, const String& str);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param str
+ String object describing first part of the new string
+
+\param c_str
+ c-string describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a str and \a c_str
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const String& str, const char* c_str);
+
+/*!
+\brief
+ Return String object that is the concatenation of the given inputs
+
+\param c_str
+ c-string describing the first part of the new string
+
+\param str
+ String object describing the second part of the new string
+
+\return
+ A String object that is the concatenation of \a c_str and \a str
+
+\exception std::length_error Thrown if the resulting String would be too large.
+*/
+String CEGUIEXPORT operator+(const char* c_str, const String& str);
+
+
+//////////////////////////////////////////////////////////////////////////
+// Output (stream) functions
+//////////////////////////////////////////////////////////////////////////
+CEGUIEXPORT std::ostream& operator<<(std::ostream& s, const String& str);
+
+
+//////////////////////////////////////////////////////////////////////////
+// Modifying operations
+//////////////////////////////////////////////////////////////////////////
+/*!
+\brief
+ Swap the contents for two String objects
+
+\param str1
+ String object who's contents are to be swapped with \a str2
+
+\param str2
+ String object who's contents are to be swapped with \a str1
+
+\return
+ Nothing
+*/
+void CEGUIEXPORT swap(String& str1, String& str2);
+
+
+} // End of CEGUI namespace section
+
+
+#endif // end of guard _CEGUIString_h_
diff --git a/pcr/cegui-0.5/PKGBUILD b/pcr/cegui-0.5/PKGBUILD
new file mode 100644
index 000000000..60c3427cc
--- /dev/null
+++ b/pcr/cegui-0.5/PKGBUILD
@@ -0,0 +1,41 @@
+# Contributor: Jakub Luzny <limoto94@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=cegui-0.5
+pkgver=0.5.0b
+pkgrel=1
+pkgdesc="A free library providing windowing and widgets for graphics APIs/engines"
+arch=('i686' 'x86_64')
+url="http://crayzedsgui.sourceforge.net"
+#options=('!libtool')
+license=("MIT")
+depends=('pcre' 'glew' 'freetype2' 'libxml2' 'devil' 'freeglut' 'silly')
+conflicts=('cegui')
+source=(http://downloads.sourceforge.net/crayzedsgui/CEGUI-$pkgver.tar.gz
+ CEGUIString.h)
+md5sums=('b42322a33c6a06eede76b15f75694a17'
+ 'b0859a1316bb25ca4860a5d0052e9a04')
+
+
+build() {
+ cd $srcdir/CEGUI-0.5.0
+
+ cp $srcdir/CEGUIString.h include/
+ sed -i 's/ILvoid/void/' ImageCodecModules/DevILImageCodec/CEGUIDevILImageCodec.cpp
+
+ ./configure --prefix=/usr --enable-release --enable-shared --disable-expat --disable-tga --disable-samples --disable-xerces-c
+
+ make
+}
+
+package() {
+ cd $srcdir/CEGUI-0.5.0
+
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
+
+#category: lib
+md5sums=('b42322a33c6a06eede76b15f75694a17'
+ 'b0859a1316bb25ca4860a5d0052e9a04')
diff --git a/pcr/cegui-0.6/PKGBUILD b/pcr/cegui-0.6/PKGBUILD
new file mode 100644
index 000000000..fb28c2134
--- /dev/null
+++ b/pcr/cegui-0.6/PKGBUILD
@@ -0,0 +1,55 @@
+# Contributor: Lucio zara <pennega@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=cegui-0.6
+pkgver=0.6.2
+_pkgver=0.6.2b
+pkgrel=13
+
+pkgdesc="A free library providing windowing and widgets for graphics APIs/engines."
+arch=('i686' 'x86_64')
+url="http://www.cegui.org.uk/"
+license=('MIT')
+depends=('devil' 'freetype2' 'libxml2' 'lua' 'pcre' 'silly' 'glew' 'tinyxml' 'directfb' 'freeglut')
+makedepends=()
+options=('!libtool')
+conflicts=('cegui')
+source=("http://downloads.sourceforge.net/crayzedsgui/CEGUI-${_pkgver}.tar.gz")
+md5sums=('4fbd95e5a2ac1c7acf2a8f5df3ac6b93')
+
+
+build() {
+ cd ${srcdir}/CEGUI-${pkgver}
+ #PATCH
+ #sed -i '1i#include <cstddef>' include/CEGUIString.h
+ sed -i '/#include <stdexcept>/a\#include <cstddef>' include/CEGUIString.h
+ sed -i '/#include "CEGUIDynamicModule.h"/a\#include <algorithm>' RendererModules/directfbRenderer/directfb-renderer.cpp
+ sed -i 's:TiXmlNode\:\::TiXmlNode\:\:TINYXML_:g' XMLParserModules/TinyXMLParser/CEGUITinyXMLParser.cpp
+ sed -i 's:ILvoid:void:g' ImageCodecModules/DevILImageCodec/CEGUIDevILImageCodec.cpp
+
+ PYTHON=python2 \
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-xerces-c \
+ --disable-samples \
+ --enable-devil \
+ --enable-silly \
+ --enable-lua-module \
+ --enable-python-module \
+ --with-default-image-codec=SILLYImageCodec
+
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/CEGUI-${pkgver}
+ install -d ${pkgdir}/usr/share/licenses/${pkgname} || return 1
+
+ make DESTDIR=${pkgdir} install || return 1
+
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+}
+md5sums=('4fbd95e5a2ac1c7acf2a8f5df3ac6b93')
+md5sums=('4fbd95e5a2ac1c7acf2a8f5df3ac6b93')
diff --git a/pcr/cgdb/PKGBUILD b/pcr/cgdb/PKGBUILD
new file mode 100644
index 000000000..e623d5a96
--- /dev/null
+++ b/pcr/cgdb/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Javier ‘Phrodo_00’ Aravena <Phrodo.00@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=cgdb
+pkgver=0.6.6
+pkgrel=1
+pkgdesc="Curses-based interface to the GNU Debugger"
+arch=('i686' 'x86_64')
+url="http://cgdb.sourceforge.net/"
+license=('GPL')
+depends=('readline>=5.1' 'ncurses' 'gdb')
+source=("http://downloads.sourceforge.net/cgdb/$pkgname-$pkgver.tar.gz")
+md5sums=('394b542b495755ab8392b7e88dace744')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('394b542b495755ab8392b7e88dace744')
diff --git a/pcr/cherokee/PKGBUILD b/pcr/cherokee/PKGBUILD
new file mode 100644
index 000000000..1d3b3d941
--- /dev/null
+++ b/pcr/cherokee/PKGBUILD
@@ -0,0 +1,100 @@
+# $Id: PKGBUILD 63849 2012-02-06 06:17:28Z foutrelis $
+# Maintainer: Fernando Jiménez Solano <fjim@sdfeu.org>
+# Contributor: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Link Dupont <link@subpop.net>
+# Contributor: Pierre Bourdin <pierre@pi3rrot.net>
+
+pkgname=cherokee
+pkgver=1.2.103
+pkgrel=1
+pkgdesc="A very fast, flexible and easy to configure Web Server (Parabola rebranded)"
+arch=('i686' 'x86_64')
+url="http://www.cherokee-project.com/"
+license=('GPL2')
+depends=('openssl' 'pcre')
+makedepends=('python2' 'gettext' 'libldap' 'pam' 'libmysqlclient'
+ 'ffmpeg' 'geoip')
+optdepends=('python2: cherokee-admin (administrative web interface)'
+ 'libldap: ldap validator'
+ 'pam: pam validator'
+ 'libmysqlclient: mysql validator'
+ 'ffmpeg: Audio/Video streaming handler'
+ 'geoip: GeoIP rule module'
+ 'rrdtool: RRDtool based information collector')
+backup=('etc/cherokee/cherokee.conf'
+ 'etc/logrotate.d/cherokee'
+ 'etc/pam.d/cherokee')
+options=('!libtool')
+source=(https://github.com/cherokee/webserver/archive/v1.2.103.zip
+ cherokee.rc
+ cherokee.logrotate
+# fix-ctk-path-handler-match.patch
+# cherokee-1.2.101-ffmpeg0.11.patch
+ cherokee.service)
+
+sha256sums=('0e125cba2ad2d0dc48ecca3af4894b92ec5fab422a9d7d27fd0c7a74751e5f35'
+ '4c06cebfab8b68edd4967c020bfb41b077cfff10d76596d1ed192d0b6cedbd86'
+ '20e26d633f8c1cd90eb21f41dd163b73a83846e405b1ce995e072c4efefc522e'
+# '2bd05e0181024c9bd02d828e8329d4d96a779e4870b1fc4f18aa8667d8c6a630'
+# '6bcdcb8eaccb5516478a0c36960fbacc3d68f8bc326b9b526c388e0607a65116'
+ '415a2e4cd7d04afe21e502dd0ad76301f85a7087cadbfdab5566bec469679a68')
+
+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"
+ # Fix this bug : https://bugs.mageia.org/show_bug.cgi?id=6145
+# patch -Np1 -i "$srcdir/cherokee-1.2.101-ffmpeg0.11.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="Parabola GNU/Linux-libre"
+ 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"
+ install -Dm644 "$srcdir/$pkgname.service" "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+
+ # Cleanup
+ rm -rf "$pkgdir/srv"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/cherokee/cherokee.logrotate b/pcr/cherokee/cherokee.logrotate
new file mode 100644
index 000000000..19207fd02
--- /dev/null
+++ b/pcr/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/pcr/cherokee/cherokee.rc b/pcr/cherokee/cherokee.rc
new file mode 100644
index 000000000..2d413dc13
--- /dev/null
+++ b/pcr/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/pcr/cherokee/cherokee.service b/pcr/cherokee/cherokee.service
new file mode 100644
index 000000000..7a5b95e43
--- /dev/null
+++ b/pcr/cherokee/cherokee.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Cherokee web server
+After=network.target
+
+[Service]
+ExecStart=/usr/sbin/cherokee
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/chm2pdf/PKGBUILD b/pcr/chm2pdf/PKGBUILD
new file mode 100644
index 000000000..16586e732
--- /dev/null
+++ b/pcr/chm2pdf/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Rodrigo Coacci <rcoacci@gmail.com>
+# Contributor: fes0
+# Maintainer : Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.IO>
+
+pkgname=chm2pdf
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="A simple Python script that converts CHM files into PDF files."
+arch=('any')
+license=('GPL2')
+url="http://code.google.com/p/chm2pdf/"
+depends=('chmlib' 'python2' 'python2-pychm' 'htmldoc')
+optdepends=('beautiful-soup: A Python HTML/XML parser designed for quick turnaround projects like screen-scraping')
+source=('http://chm2pdf.googlecode.com/files/chm2pdf-0.9.1.tar.gz')
+
+
+build() {
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $srcdir/$pkgname-$pkgver/chm2pdf
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --root=$startdir/pkg
+}
+
diff --git a/pcr/cinclude2dot/PKGBUILD b/pcr/cinclude2dot/PKGBUILD
new file mode 100644
index 000000000..bab8804d1
--- /dev/null
+++ b/pcr/cinclude2dot/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+pkgname=cinclude2dot
+pkgver=1.1
+pkgrel=2
+pkgdesc="A Perl script which analyses C/C++ code and produces a #include dependency graph."
+arch=('any')
+url="http://flourish.org/cinclude2dot/"
+license=('GPL')
+depends=('perl')
+source=('http://flourish.org/cinclude2dot/cinclude2dot'
+ 'http://flourish.org/cinclude2dot/cinclude2dot.1')
+
+build() {
+ gzip -c cinclude2dot.1 > cinclude2dot.1.gz
+}
+
+package() {
+ cd "$srcdir"
+ install -d "$pkgdir/usr/bin"
+ install -m755 cinclude2dot "$pkgdir/usr/bin"
+ install -d "$pkgdir/usr/share/man/man1"
+ install -m644 cinclude2dot.1.gz "$pkgdir/usr/share/man/man1"
+}
+
+md5sums=('372ca2cba1170ae4e040f7f84b7b98b5'
+ 'bfdc230a26db0c66b238e6380e6badbe')
diff --git a/pcr/cinepaint-lts/LICENSE b/pcr/cinepaint-lts/LICENSE
new file mode 100644
index 000000000..746207229
--- /dev/null
+++ b/pcr/cinepaint-lts/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/pcr/cinepaint-lts/PKGBUILD b/pcr/cinepaint-lts/PKGBUILD
new file mode 100644
index 000000000..da085729f
--- /dev/null
+++ b/pcr/cinepaint-lts/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id$
+# Maintainer: tobias [tobias.archlinux.org]
+# Contributor: tobias [tobias.justdreams.de]
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname=cinepaint-lts
+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.${pkgname%-lts}.org
+depends=(gtk2 openexr lcms libxpm fltk ftgl libxxf86vm)
+makedepends=(python2 gutenprint)
+optdepends=(
+ 'python2: for python plug-ins'
+ 'gutenprint: for print plug-ins'
+ 'ghostscript: for pdf plug-ins'
+)
+conflicts=(${pkgname%-lts})
+provides=(${pkgname%-lts})
+options=(!libtool)
+install=${pkgname%-lts}.install
+source=(
+ http://sourceforge.net/projects/${pkgname%-lts}/files/CinePaint/${pkgname%-lts}-$pkgver.tgz
+ LICENSE
+ ${pkgname%-lts}-libpng15.patch
+)
+md5sums=(
+ 7dfdb005d246578392ac9bd500534804
+ 169085743f667c250ea2e4022efecf5f
+ 6d3f65b72e0f1569a9efe1bcab1b8124
+)
+
+build() {
+ cd $srcdir/${pkgname%-lts}
+
+ rm config.{sub,guess}
+ ln -s /usr/share/automake-1.12/config.sub config.sub
+ ln -s /usr/share/automake-1.12/config.guess config.guess
+
+ patch -p1 -i ../${pkgname%-lts}-libpng15.patch
+ 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
+ sed -i -e '1 s/^/#include <unistd.h>\n/' plug-ins/icc_examin/icc_examin/icc_modell_beobachter.cpp
+
+ sh autogen.sh
+ LIBS+="-lstdc++ -lm -lX11" ./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%-lts}
+ make DESTDIR=$pkgdir install
+ sed -i -e "s|-I$srcdir/${pkgname%-lts}||" -e "s|-I$srcdir/${pkgname%-lts}/lib||" -e "/lib${pkgname%-lts}.la/d" \
+ -e "s|${srcdir}/${pkgname%-lts}/lib/.libs/\$dlname||" $pkgdir/usr/bin/${pkgname%-lts}tool
+ sed -i "s/${pkgname%-lts}.png/${pkgname%-lts}/" $pkgdir/usr/share/applications/${pkgname%-lts}.desktop
+ install -D -m644 $srcdir/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/cinepaint-lts/cinepaint-libpng15.patch b/pcr/cinepaint-lts/cinepaint-libpng15.patch
new file mode 100644
index 000000000..619d9af42
--- /dev/null
+++ b/pcr/cinepaint-lts/cinepaint-libpng15.patch
@@ -0,0 +1,446 @@
+diff -Nur a/plug-ins/png/png.c b/plug-ins/png/png.c
+--- a/plug-ins/png/png.c 2006-11-24 18:52:55.000000000 -0200
++++ b/plug-ins/png/png.c 2012-10-12 01:07:56.452245955 -0200
+@@ -390,6 +390,16 @@
+ gchar *progress; /* Title for progress display... */
+ guchar alpha[256], /* Index -> Alpha */
+ *alpha_ptr; /* Temporary pointer */
++ png_byte color_type;
++ png_byte bit_depth;
++ png_colorp palette;
++ int num_palette;
++ png_charpp iccp_name;
++ int compression_type;
++ png_bytepp iccp_profile;
++ png_uint_32 iccp_proflen;
++ png_uint_32 width, height;
++ png_byte channels;
+
+ /*
+ * PNG 0.89 and newer have a sane, forwards compatible constructor.
+@@ -405,7 +415,7 @@
+ info = (png_infop)calloc(sizeof(png_info), 1);
+ #endif /* PNG_LIBPNG_VER > 88 */
+
+- if (setjmp (pp->jmpbuf))
++ if (setjmp (png_jmpbuf(pp)))
+ {
+ g_message ("%s\nPNG error. File corrupted?", filename);
+ return image;
+@@ -442,21 +452,26 @@
+ */
+
+ png_read_info(pp, info);
++ color_type = png_get_color_type(pp, info);
++ width=png_get_image_width(pp, info);
++ height=png_get_image_height(pp, info);
+
+ /*
+ * Latest attempt, this should be my best yet :)
+ */
+
++ bit_depth = png_get_bit_depth(pp, info);
++
+ #ifndef WORDS_BIGENDIAN
+- if(info->bit_depth == 16)
++ if(bit_depth == 16)
+ png_set_swap(pp);
+ #endif
+
+- if (info->color_type == PNG_COLOR_TYPE_GRAY && info->bit_depth < 8) {
++ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+ png_set_expand(pp);
+ }
+
+- if (info->color_type == PNG_COLOR_TYPE_PALETTE && info->bit_depth < 8) {
++ if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth < 8) {
+ png_set_packing(pp);
+ }
+
+@@ -464,8 +479,8 @@
+ * Expand G+tRNS to GA, RGB+tRNS to RGBA
+ */
+
+- if (info->color_type != PNG_COLOR_TYPE_PALETTE &&
+- (info->valid & PNG_INFO_tRNS)) {
++ if (color_type != PNG_COLOR_TYPE_PALETTE &&
++ (png_get_valid(pp, info, PNG_INFO_tRNS))) {
+ png_set_expand(pp);
+ }
+
+@@ -482,7 +497,7 @@
+
+ #if PNG_LIBPNG_VER > 99
+ if (png_get_valid(pp, info, PNG_INFO_tRNS) &&
+- info->color_type == PNG_COLOR_TYPE_PALETTE)
++ color_type == PNG_COLOR_TYPE_PALETTE)
+ {
+ png_get_tRNS(pp, info, &alpha_ptr, &num, NULL);
+ /* Copy the existing alpha values from the tRNS chunk */
+@@ -505,9 +520,9 @@
+
+ png_read_update_info(pp, info);
+
+- if(info->bit_depth==16)
++ if(bit_depth==16)
+ {
+- switch (info->color_type)
++ switch (color_type)
+ {
+ case PNG_COLOR_TYPE_RGB : /* RGB */
+ bpp = 6;
+@@ -545,7 +560,7 @@
+ }
+ else
+ {
+- switch (info->color_type)
++ switch (color_type)
+ {
+ case PNG_COLOR_TYPE_RGB : /* RGB */
+ bpp = 3;
+@@ -582,7 +597,7 @@
+ };
+ }
+
+- image = gimp_image_new(info->width, info->height, image_type);
++ image = gimp_image_new(width, height, image_type);
+ if (image == -1)
+ {
+ g_message("Can't allocate new image\n%s", filename);
+@@ -595,7 +610,7 @@
+ * Create the "background" layer to hold the image...
+ */
+
+- layer = gimp_layer_new(image, _("Background"), info->width, info->height,
++ layer = gimp_layer_new(image, _("Background"), width, height,
+ layer_type, 100, NORMAL_MODE);
+ gimp_image_add_layer(image, layer, 0);
+
+@@ -627,20 +642,21 @@
+
+ empty= 0; /* by default assume no full transparent palette entries */
+
+- if (info->color_type & PNG_COLOR_MASK_PALETTE) {
++ if (color_type & PNG_COLOR_MASK_PALETTE) {
+
+ #if PNG_LIBPNG_VER > 99
++ png_get_PLTE(pp, info, &palette, &num_palette);
+ if (png_get_valid(pp, info, PNG_INFO_tRNS)) {
+ for (empty= 0; empty < 256 && alpha[empty] == 0; ++empty);
+ /* Calculates number of fully transparent "empty" entries */
+
+- gimp_image_set_cmap(image, (guchar *) (info->palette + empty),
+- info->num_palette - empty);
++ gimp_image_set_cmap(image, (guchar *) (palette + empty),
++ num_palette - empty);
+ } else {
+- gimp_image_set_cmap(image, (guchar *)info->palette, info->num_palette);
++ gimp_image_set_cmap(image, (guchar *)palette, num_palette);
+ }
+ #else
+- gimp_image_set_cmap(image, (guchar *)info->palette, info->num_palette);
++ gimp_image_set_cmap(image, (guchar *)palette, num_palette);
+ #endif /* PNG_LIBPNG_VER > 99 */
+
+ }
+@@ -659,18 +675,19 @@
+ */
+
+ tile_height = gimp_tile_height ();
+- pixel = g_new(guchar, tile_height * info->width * bpp);
++ pixel = g_new(guchar, tile_height * width * bpp);
+ pixels = g_new(guchar *, tile_height);
++ channels=png_get_channels(pp, info);
+
+- if(info->bit_depth==16)
++ if(bit_depth==16)
+ {
+ for (i = 0; i < tile_height; i ++)
+- pixels[i] = pixel + info->width * info->channels * i * 2;
++ pixels[i] = pixel + width * channels * i * 2;
+ }
+ else
+ {
+ for (i = 0; i < tile_height; i ++)
+- pixels[i] = pixel + info->width * info->channels * i;
++ pixels[i] = pixel + width * channels * i;
+ }
+
+ for (pass = 0; pass < num_passes; pass ++)
+@@ -680,11 +697,11 @@
+ */
+
+ for (begin = 0, end = tile_height;
+- begin < info->height;
++ begin < height;
+ begin += tile_height, end += tile_height)
+ {
+- if (end > info->height)
+- end = info->height;
++ if (end > height)
++ end = height;
+
+ num = end - begin;
+
+@@ -697,20 +714,21 @@
+ gimp_pixel_rgn_set_rect(&pixel_rgn, pixel, 0, begin,
+ drawable->width, num);
+
+- gimp_progress_update(((double)pass + (double)end / (double)info->height) /
++ gimp_progress_update(((double)pass + (double)end / (double)height) /
+ (double)num_passes);
+ };
+ };
+
+ #if defined(PNG_iCCP_SUPPORTED)
+ /* set icc profile */
+- if (info->iccp_proflen > 0) {
+- gimp_image_set_icc_profile_by_mem (image, info->iccp_proflen,
+- info->iccp_profile,
+- ICC_IMAGE_PROFILE);
++ png_get_iCCP(pp, info, (png_charpp)iccp_name, &compression_type, iccp_profile, &iccp_proflen);
++ if (iccp_proflen > 0) {
++ gimp_image_set_icc_profile_by_mem (image, iccp_proflen,
++ (gchar *)iccp_profile,
++ ICC_IMAGE_PROFILE);
+ printf ("%s:%d %s() set embedded profile \"%s\"\n",
+ __FILE__,__LINE__,__func__,
+- info->iccp_name);
++ (char *)iccp_name);
+ }
+ #endif
+
+@@ -808,6 +826,14 @@
+ blue; /* Used for palette background */
+ time_t cutime; /* Time since epoch */
+ struct tm *gmt; /* GMT broken down */
++ png_byte color_type;
++ png_byte bit_depth;
++ int filter_method=0;
++ png_colorp palette;
++ int num_palette;
++ png_charpp iccp_name;
++ png_uint_32 height;
++ int compression_type;
+
+ /*
+ * PNG 0.89 and newer have a sane, forwards compatible constructor.
+@@ -824,7 +850,7 @@
+ info = (png_infop)calloc(sizeof(png_info), 1);
+ #endif /* PNG_LIBPNG_VER > 88 */
+
+- if (setjmp (pp->jmpbuf))
++ if (setjmp (png_jmpbuf(pp)))
+ {
+ g_message ("%s\nPNG error. Couldn't save image", filename);
+ return 0;
+@@ -858,87 +884,75 @@
+ type = gimp_drawable_type (drawable_ID);
+
+ /*
+- * Set the image dimensions, bit depth, interlacing and compression
+- */
+-
+- png_set_compression_level (pp, pngvals.compression_level);
+-
+- info->width = drawable->width;
+- info->height = drawable->height;
+- info->interlace_type = pngvals.interlaced;
+-
+- /*
+ * Set color type and remember bytes per pixel count
+ */
+
+ switch (type)
+ {
+ case RGB_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_RGB;
+- info->bit_depth = 8;
++ color_type = PNG_COLOR_TYPE_RGB;
++ bit_depth = 8;
+ bpp = 3;
+ break;
+ case RGBA_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+- info->bit_depth = 8;
++ color_type = PNG_COLOR_TYPE_RGB_ALPHA;
++ bit_depth = 8;
+ bpp = 4;
+ break;
+ case GRAY_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_GRAY;
+- info->bit_depth = 8;
++ color_type = PNG_COLOR_TYPE_GRAY;
++ bit_depth = 8;
+ bpp = 1;
+ break;
+ case GRAYA_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
+- info->bit_depth = 8;
++ color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
++ bit_depth = 8;
+ bpp = 2;
+ break;
+ case INDEXED_IMAGE :
+ bpp = 1;
+- info->bit_depth = 8;
+- info->color_type = PNG_COLOR_TYPE_PALETTE;
+- info->valid |= PNG_INFO_PLTE;
+- info->palette= (png_colorp) gimp_image_get_cmap(image_ID, &num_colors);
+- info->num_palette= num_colors;
++ bit_depth = 8;
++ color_type = PNG_COLOR_TYPE_PALETTE;
++ png_get_valid(pp, info, PNG_INFO_PLTE);
++ png_set_PLTE(pp, info, (png_colorp) gimp_image_get_cmap(image_ID, &num_colors), num_colors);
+ break;
+ case INDEXEDA_IMAGE :
+ bpp = 2;
+- info->bit_depth = 8;
+- info->color_type = PNG_COLOR_TYPE_PALETTE;
++ bit_depth = 8;
++ color_type = PNG_COLOR_TYPE_PALETTE;
+ respin_cmap (pp, info, image_ID); /* fix up transparency */
+ break;
+ case U16_RGB_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_RGB;
+- info->bit_depth = 16;
++ color_type = PNG_COLOR_TYPE_RGB;
++ bit_depth = 16;
+ bpp = 6;
+ break;
+ case U16_RGBA_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+- info->bit_depth = 16;
++ color_type = PNG_COLOR_TYPE_RGB_ALPHA;
++ bit_depth = 16;
+ bpp = 8;
+ break;
+ case U16_GRAY_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_GRAY;
+- info->bit_depth = 16;
++ color_type = PNG_COLOR_TYPE_GRAY;
++ bit_depth = 16;
+ bpp = 2;
+ break;
+ case U16_GRAYA_IMAGE :
+- info->color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
+- info->bit_depth = 16;
++ color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
++ bit_depth = 16;
+ bpp = 4;
+ break;
+ case U16_INDEXED_IMAGE :
+ bpp = 2;
+- info->bit_depth = 16;
+- info->color_type = PNG_COLOR_TYPE_PALETTE;
+- info->valid |= PNG_INFO_PLTE;
+- info->palette= (png_colorp) gimp_image_get_cmap(image_ID, &num_colors);
+- info->num_palette= num_colors;
++ bit_depth = 16;
++ color_type = PNG_COLOR_TYPE_PALETTE;
++ png_get_valid(pp, info, PNG_INFO_PLTE);
++ png_set_PLTE(pp, info, (png_colorp) gimp_image_get_cmap(image_ID, &num_colors), num_colors);
+ break;
+ case U16_INDEXEDA_IMAGE :
+ bpp = 4;
+- info->bit_depth = 16;
+- info->color_type = PNG_COLOR_TYPE_PALETTE;
++ bit_depth = 16;
++ color_type = PNG_COLOR_TYPE_PALETTE;
+ respin_cmap (pp, info, image_ID); /* fix up transparency */
+ break;
+ default:
+@@ -950,16 +964,22 @@
+ * Fix bit depths for (possibly) smaller colormap images
+ */
+
+- if (info->valid & PNG_INFO_PLTE) {
+- if (info->num_palette <= 2)
+- info->bit_depth= 1;
+- else if (info->num_palette <= 4)
+- info->bit_depth= 2;
+- else if (info->num_palette <= 16)
+- info->bit_depth= 4;
++ if (png_get_valid(pp, info, PNG_INFO_PLTE)) {
++ png_get_PLTE(pp, info, &palette, &num_palette);
++ if (num_palette <= 2)
++ bit_depth= 1;
++ else if (num_palette <= 4)
++ bit_depth= 2;
++ else if (num_palette <= 16)
++ bit_depth= 4;
+ /* otherwise the default is fine */
+ }
+
++ png_set_compression_level (pp, pngvals.compression_level);
++ png_set_IHDR(pp, info, drawable->width, drawable->height,
++ bit_depth, color_type, pngvals.interlaced, compression_type, filter_method);
++
++
+ // write icc profile
+ #if defined(PNG_iCCP_SUPPORTED)
+ if (gimp_image_has_icc_profile (image_ID, ICC_IMAGE_PROFILE)) {
+@@ -970,10 +990,10 @@
+ ICC_IMAGE_PROFILE);
+ png_set_iCCP (pp, info,
+ gimp_image_get_icc_profile_description (image_ID, ICC_IMAGE_PROFILE),
+- 0, buffer, size);
++ 0, (png_const_bytep)buffer, size);
+ printf ("%s:%d %s() embedd icc profile \"%s\"\n",
+ __FILE__,__LINE__,__func__,
+- info->iccp_name);
++ (char *)iccp_name);
+ }
+ #endif
+
+@@ -1039,13 +1059,13 @@
+ * Convert unpacked pixels to packed if necessary
+ */
+
+- if (info->color_type == PNG_COLOR_TYPE_PALETTE && info->bit_depth < 8)
++ if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth < 8)
+ png_set_packing(pp);
+
+ /* Set swapping for 16 bit per sample images */
+
+ #ifndef WORDS_BIGENDIAN
+- if (info->bit_depth == 16)
++ if (bit_depth == 16)
+ png_set_swap(pp);
+ #endif
+
+@@ -1063,6 +1083,7 @@
+
+ gimp_pixel_rgn_init(&pixel_rgn, drawable, 0, 0, drawable->width,
+ drawable->height, FALSE, FALSE);
++ height=png_get_image_height(pp, info);
+
+ for (pass = 0; pass < num_passes; pass ++)
+ {
+@@ -1077,7 +1098,7 @@
+ num = end - begin;
+
+ gimp_pixel_rgn_get_rect (&pixel_rgn, pixel, 0, begin, drawable->width, num);
+- if (info->valid & PNG_INFO_tRNS) {
++ if (png_get_valid(pp, info, PNG_INFO_tRNS)) {
+ for (i = 0; i < num; ++i) {
+ fixed= pixels[i];
+ for (k = 0; k < drawable->width; ++k) {
+@@ -1085,7 +1106,7 @@
+ }
+ }
+ /* Forgot this case before, what if there are too many colors? */
+- } else if (info->valid & PNG_INFO_PLTE && bpp == 2) {
++ } else if (png_get_valid(pp, info, PNG_INFO_PLTE) && bpp == 2) {
+ for (i = 0; i < num; ++i) {
+ fixed= pixels[i];
+ for (k = 0; k < drawable->width; ++k) {
+@@ -1097,7 +1118,6 @@
+ png_write_rows (pp, pixels, num);
+-
+ gimp_progress_update (((double)pass + (double)end /
+- (double)info->height) / (double)num_passes);
++ (double)height) / (double)num_passes);
+ };
+ };
+
diff --git a/pcr/cinepaint-lts/cinepaint.install b/pcr/cinepaint-lts/cinepaint.install
new file mode 100644
index 000000000..5e5cfef4d
--- /dev/null
+++ b/pcr/cinepaint-lts/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/pcr/cjdns-git/PKGBUILD b/pcr/cjdns-git/PKGBUILD
new file mode 100644
index 000000000..2e9646006
--- /dev/null
+++ b/pcr/cjdns-git/PKGBUILD
@@ -0,0 +1,77 @@
+# Maintainer: Prurigro
+# Contributor: Prurigro
+# Contributor: Werecat
+# Contributor: Xyne
+
+_pkgname=cjdns
+pkgname=${_pkgname}-git
+pkgver=0.3.1473
+pkgrel=1
+pkgdesc="A routing engine designed for security, scalability, speed and ease of use."
+url="https://github.com/cjdelisle/${_pkgname}"
+license=('GPL3')
+makedepends=('git' 'cmake' 'python2')
+optdepends=('python2: required by the python cjdnsadmin utilities')
+arch=('i686' 'x86_64' 'armv6h' 'armv7h')
+install=${pkgname}.install
+backup=("etc/default/${_pkgname}")
+
+source=("git://github.com/cjdelisle/${_pkgname}.git#branch=master")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd "${srcdir}/${_pkgname}"
+ git describe --always | sed 's|-|.|g;s|[^\.]*\.||;s|\.[^\.]*$||'
+}
+
+prepare() {
+ cd "${srcdir}/${_pkgname}"
+
+ ## Clean previous builds and resync
+ ./clean
+
+ mkdir build
+
+ ## Set occurances of python to python2 due to a naming conflict between Debian and Archlinux
+ find "${srcdir}/${_pkgname}"/contrib/python \
+ -type f \
+ -exec sed -i 's@/usr/bin/python\s*$@/usr/bin/python2@;s@/usr/bin/env\ python@/usr/bin/env\ python2@' {} \+
+}
+
+build() {
+ cd "${srcdir}"/${_pkgname}
+
+ ## Disable Arch's generic makepkg optimizations (set via /etc/makepkg.conf) in favour of those specified by cjdns
+ unset MAKEFLAGS
+# unset CFLAGS
+# unset CPPFLAGS
+
+ ## Build using the ./do script
+ export NO_DEBUG=1
+ cd build
+ cmake ..
+ make
+}
+
+## Package creation helper functions
+_package_cjdns() {
+ install -D -m755 "${srcdir}"/${_pkgname}/build/admin/angel/cjdroute2 "${pkgdir}"/usr/bin/cjdroute
+ install -D -m755 "${srcdir}"/${_pkgname}/build/admin/angel/${_pkgname} "${pkgdir}"/usr/bin/${_pkgname}
+ install -D -m644 "${srcdir}"/${_pkgname}/contrib/systemd/${_pkgname}.service "${pkgdir}"/usr/lib/systemd/system/${_pkgname}.service
+ install -D -m755 "${srcdir}"/${_pkgname}/contrib/bash/i_am_stupid.sh "${pkgdir}"/usr/bin/cjdns-recoverconfig
+}
+_package_pyutils() {
+ install -D -m644 "${srcdir}"/${_pkgname}/contrib/python/cjdnsadmin/cjdnsadmin.py "${pkgdir}"/usr/lib/$(python2-config --libs | grep -o -E python2.*)/cjdnsadmin/cjdnsadmin.py
+ install -D -m644 "${srcdir}"/${_pkgname}/contrib/python/cjdnsadmin/bencode.py "${pkgdir}"/usr/lib/$(python2-config --libs | grep -o -E python2.*)/cjdnsadmin/bencode.py
+ install -D -m644 "${srcdir}"/${_pkgname}/contrib/python/cjdnsadmin/__init__.py "${pkgdir}"/usr/lib/$(python2-config --libs | grep -o -E python2.*)/cjdnsadmin/__init__.py
+ install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/cjdnslog "${pkgdir}"/usr/bin/cjdns-log
+ install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/dumptable "${pkgdir}"/usr/bin/cjdns-dumptable
+ install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/findnodes "${pkgdir}"/usr/bin/cjdns-findnodes
+ install -D -m755 "${srcdir}"/${_pkgname}/contrib/python/pingAll.py "${pkgdir}"/usr/bin/cjdns-pingAll
+}
+
+## Package creation function: comment out a helper function to remove its associated functionality
+package() {
+ _package_cjdns ## Core binaries (cjdns and cjdroute), a systemd service file and a config recovery script written in bash
+ _package_pyutils ## Miscellaneous python2-based cjdns admin port utility scripts and libraries
+}
diff --git a/pcr/cjdns-git/cjdns-git.install b/pcr/cjdns-git/cjdns-git.install
new file mode 100644
index 000000000..5e9e1a64c
--- /dev/null
+++ b/pcr/cjdns-git/cjdns-git.install
@@ -0,0 +1,21 @@
+post_install() {
+ if [ $(ps -A | ps -A | grep -cE "systemd$") = 1 ]; then
+ systemctl --system daemon-reload
+ fi
+
+ if [ -z $(type -P python2) ]; then
+ echo "You don't currently have python2 installed. It isn't required to use cjdns, but some scripts have been included in the package that won't function without"
+ fi
+
+ echo "By default, the cjdns configuration file is expected to be located @ /etc/cjdroute.conf"
+}
+
+post_upgrade() {
+ if [ $(ps -A | ps -A | grep -cE "systemd$") = 1 ]; then
+ systemctl --system daemon-reload
+ fi
+
+ if [ $(grep -c cjdns /etc/passwd) = 1 ]; then
+ echo "The user 'cjdns' has been detected on your system but is no longer required by this package; if it was installed by a previous version of this package, it can now be safely deleted."
+ fi
+}
diff --git a/pcr/cl-ppcre/LICENSE b/pcr/cl-ppcre/LICENSE
new file mode 100644
index 000000000..8f122e6eb
--- /dev/null
+++ b/pcr/cl-ppcre/LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2002-2007, Dr. Edmund Weitz. 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.
+
+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, 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/pcr/cl-ppcre/PKGBUILD b/pcr/cl-ppcre/PKGBUILD
new file mode 100644
index 000000000..b136c4ac9
--- /dev/null
+++ b/pcr/cl-ppcre/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: mrshpot <mrshpot at gmail dot com>
+# Contributor: veox <cy at wre dot ath dot cx>
+# Contributor: joyfulgirl <joyfulgirl (at) archlinux.us>
+# Contributor: Jonathan Friedman <jonf@gojon.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=cl-ppcre
+pkgver=2.0.3
+pkgrel=2
+pkgdesc="Perl-compatible, portable regexp library for Common Lisp"
+arch=('i686' 'x86_64')
+url="http://www.weitz.de/cl-ppcre/"
+license=('BSD')
+
+depends=('common-lisp' 'cl-asdf')
+
+install=cl-ppcre.install
+source=('http://weitz.de/files/cl-ppcre.tar.gz' 'LICENSE')
+md5sums=('bd5648fd3c8b6f89eea43f5b82b99aa1'
+ 'c6aa01dce26b45aa916329701a448d11')
+
+build() {
+ install -d ${pkgdir}/usr/share/common-lisp/source/${pkgname}
+ install -d ${pkgdir}/usr/share/common-lisp/systems
+ install -d ${pkgdir}/usr/share/licenses/${pkgname}
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ install -m 644 -t ${pkgdir}/usr/share/common-lisp/source/${pkgname} \
+ ${srcdir}/${pkgname}-${pkgver}/*.lisp
+ install -m 644 -t ${pkgdir}/usr/share/common-lisp/source/${pkgname} \
+ ${srcdir}/${pkgname}-${pkgver}/*.asd
+ install -m 644 ${srcdir}/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}
+
+ cd ${pkgdir}/usr/share/common-lisp/systems
+ ln -s ../source/${pkgname}/${pkgname}.asd .
+ ln -s ../source/${pkgname}/${pkgname}-unicode.asd .
+}
+
+# vim:set ts=2 sw=4 et nospell:
diff --git a/pcr/cl-ppcre/cl-ppcre.install b/pcr/cl-ppcre/cl-ppcre.install
new file mode 100644
index 000000000..9ad84d1e1
--- /dev/null
+++ b/pcr/cl-ppcre/cl-ppcre.install
@@ -0,0 +1,73 @@
+_pkgname=cl-ppcre
+_compile_log=n
+_lisp=()
+
+if pacman -Qq clisp &>/dev/null ||
+ pacman -Qq clisp-gtk2 &>/dev/null ||
+ pacman -Qq clisp-new-clx &>/dev/null; then
+ _lisp=(${_lisp[@]} 'clisp')
+fi
+if pacman -Qq sbcl &>/dev/null; then
+ _lisp=(${_lisp[@]} 'sbcl')
+fi
+if pacman -Qq cmucl &> /dev/null; then
+ _lisp=(${_lisp[@]} 'cmucl')
+fi
+
+_compile_sbcl() {
+ sbcl --noinform --no-sysinit --no-userinit \
+ --eval "(require :asdf)" \
+ --eval "(pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)" \
+ --eval "(asdf:operate 'asdf:compile-op '${_pkgname})" \
+ --eval "(quit)" &> ${_compile_log_file} || return 1
+}
+_compile_clisp() {
+ clisp --silent -norc -x \
+ "(load #p\"/usr/share/common-lisp/source/asdf/asdf.lisp\")
+ (pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)
+ (asdf:operate 'asdf:compile-op '${_pkgname})
+ (quit)" &> ${_compile_log_file} || return 1
+}
+_compile_cmucl() {
+ cmucl -quiet -nositeinit -noinit -eval \
+ "(load #p\"/usr/share/common-lisp/source/asdf/asdf.lisp\")
+ (pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)
+ (asdf:operate 'asdf:compile-op '${_pkgname})
+ (quit)" &> ${_compile_log_file} || return 1
+}
+
+post_install() {
+ for _lispiter in ${_lisp[@]}; do
+ echo "---> Compiling lisp files using ${_lispiter} <---"
+ if [ $_compile_log = 'y' ]; then
+ _compile_log_file=/tmp/${_pkgname}_${_lispiter}.log
+ else
+ _compile_log_file=/dev/null
+ fi
+ _compile_${_lispiter}
+ echo "---> Done compiling lisp files (using ${_lispiter}) <---"
+ done
+
+ cat << EOM
+
+ To load this library, load asdf and then run the following lines
+ (or their equivalent for your lisp of choice):
+
+ (push #p"/usr/share/common-lisp/systems/" asdf:*central-registry*)
+ (asdf:operate 'asdf:load-op '${_pkgname})
+EOM
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f /usr/share/common-lisp/source/${_pkgname}/{*.fas,*.fasl,*.lib,*.x86f}
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+# End of file
diff --git a/pcr/clx-git/PKGBUILD b/pcr/clx-git/PKGBUILD
new file mode 100644
index 000000000..6e2a3369b
--- /dev/null
+++ b/pcr/clx-git/PKGBUILD
@@ -0,0 +1,71 @@
+#Contributor: Akshay Srinivasan <akshaysrinivasan at gmail.com>
+pkgname=clx-git
+_clname=clx
+pkgver=20120421
+pkgrel=1
+pkgdesc="Xlib for common lisp systems"
+arch=('i686' 'x86_64')
+url="http://www.cliki.net/CLX"
+license=('custom')
+depends=('x-server' 'sbcl')
+makedepends=('texinfo')
+install=clx.install
+source=(README.licensing)
+md5sums=('74858379015567928f1eee186d9db1a4')
+
+conflicts=('clx')
+provides=('clx')
+
+makedepends=('git')
+
+_gitroot="git://github.com/sharplispers/clx.git"
+_gitname="clx"
+
+
+build() {
+
+ cat << EOM
+
+ WARNING!
+
+ You are building a package using a snapshot from a repository. The
+ resulting package may be unusable or pose a security risk, since
+ the install script does not check source file hashes. Do not continue
+ if this is undesirable.
+
+EOM
+
+ install -d ${pkgdir}/usr/share/common-lisp/systems
+ install -d ${pkgdir}/usr/share/common-lisp/source/${_clname}/{debug,demo,test}
+ install -d ${pkgdir}/usr/share/licenses/${_clname}
+ install -d ${pkgdir}/usr/share/info
+
+ ### Git checkout
+ 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
+
+ cd ${pkgdir}/usr/share/common-lisp/source/${_clname}
+
+ install -m 644 -t . ${srcdir}/${_gitname}/*.lisp
+ install -m 644 -t debug ${srcdir}/${_gitname}/debug/*.lisp
+ install -m 644 -t demo ${srcdir}/${_gitname}/demo/*.lisp
+ install -m 644 -t test ${srcdir}/${_gitname}/test/*.lisp
+
+ install -m 644 -t . ${srcdir}/${_gitname}/${_clname}.asd
+ cd ${pkgdir}/usr/share/common-lisp/systems
+ ln -s ../source/${_clname}/${_clname}.asd .
+
+ cd ${srcdir}/${_gitname}/manual
+ makeinfo ${_clname}.texinfo
+ install -m 644 ${_clname}.info ${pkgdir}/usr/share/info
+
+ install -m 644 ${srcdir}/README.licensing ${pkgdir}/usr/share/licenses/${_clname}
+
+}
diff --git a/pcr/clx-git/README.licensing b/pcr/clx-git/README.licensing
new file mode 100644
index 000000000..669083222
--- /dev/null
+++ b/pcr/clx-git/README.licensing
@@ -0,0 +1,4 @@
+This packages uses several licenses.
+
+To see a given source file's license, please check its header. The
+lisp files are installed in /usr/share/common-lisp/source/clx.
diff --git a/pcr/clx-git/clx.install b/pcr/clx-git/clx.install
new file mode 100644
index 000000000..7344518a4
--- /dev/null
+++ b/pcr/clx-git/clx.install
@@ -0,0 +1,76 @@
+# arg 1: the new package version
+
+_pkgname=clx
+_compile_log=n
+_lisp=()
+
+if pacman -Qq clisp-new-clx &>/dev/null ||
+ pacman -Qq clisp-gtk2 &>/dev/null ||
+ pacman -Qq clisp-new-clx &>/dev/null; then
+ _lisp=(${_lisp[@]} 'clisp')
+fi
+if pacman -Qq sbcl &>/dev/null; then
+ _lisp=(${_lisp[@]} 'sbcl')
+fi
+if pacman -Qq cmucl &> /dev/null; then
+ _lisp=(${_lisp[@]} 'cmucl')
+fi
+
+_compile_sbcl() {
+ sbcl --noinform --no-sysinit --no-userinit \
+ --eval "(require :asdf)" \
+ --eval "(pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)" \
+ --eval "(asdf:operate 'asdf:compile-op '${_pkgname})" \
+ --eval "(quit)" &> ${_compile_log_file} || return 1
+}
+_compile_clisp() {
+ clisp --silent -norc -x \
+ "(load #p\"/usr/share/common-lisp/source/asdf/asdf\")
+ (pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)
+ (asdf:operate 'asdf:compile-op '${_pkgname})
+ (quit)" &> ${_compile_log_file} || return 1
+}
+_compile_cmucl() {
+ cmucl -quiet -nositeinit -noinit -eval \
+ "(load #p\"/usr/share/common-lisp/source/asdf/asdf\")
+ (pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)
+ (asdf:operate 'asdf:compile-op '${_pkgname})
+ (quit)" &> ${_compile_log_file} || return 1
+}
+
+post_install() {
+ for _lispiter in ${_lisp[@]}; do
+ echo "---> Compiling lisp files using ${_lispiter} <---"
+ if [ $_compile_log = 'y' ]; then
+ _compile_log_file=/tmp/${_pkgname}_${_lispiter}.log
+ else
+ _compile_log_file=/dev/null
+ fi
+ _compile_${_lispiter}
+ echo "---> Done compiling lisp files (using ${_lispiter}) <---"
+ done
+
+ cat << EOM
+
+ To load this library, load asdf and then run the following lines
+ (or their equivalent for your lisp of choice):
+
+ (push #p"/usr/share/common-lisp/systems/" asdf:*central-registry*)
+ (asdf:operate 'asdf:load-op '${_pkgname})
+EOM
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ rm -f /usr/share/common-lisp/source/$_pkgname/{*.fas,*.fasl,*.lib,*.x86f}
+}
+
+op=$1
+shift
+
+$op $*
+
+# End of file \ No newline at end of file
diff --git a/pcr/coin/PKGBUILD b/pcr/coin/PKGBUILD
new file mode 100644
index 000000000..c584949c9
--- /dev/null
+++ b/pcr/coin/PKGBUILD
@@ -0,0 +1,59 @@
+# Contributor: Christian Hesse <mail@eworm.de>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: mickele
+# Contributor: marcus fritzsch <fritschy@googlemail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrières <aurelien@cwb.IO>
+
+pkgname=coin
+pkgver=3.1.3
+pkgrel=9
+pkgdesc='A high-level 3D graphics toolkit on top of OpenGL'
+url='http://www.coin3d.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('mesa' 'expat')
+makedepends=('doxygen')
+optdepends=('openal: sound/dynamic linking support'
+ 'fontconfig: dynamic linking support'
+ 'zlib: dynamic linking support'
+ 'freetype2: dynamic linking support'
+ 'js: dynamic linking support'
+ 'simage: image format support')
+options=('!libtool')
+source=("https://bitbucket.org/Coin3D/coin/downloads/Coin-${pkgver}.tar.gz")
+
+build() {
+ cd Coin-${pkgver}
+
+ # fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667139
+ sed -i "/#include <Inventor\/C\/basic.h>/i #include <Inventor/C/errors/debugerror.h>" include/Inventor/SbBasic.h
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-optimization \
+ --enable-3ds-import \
+ --enable-javascript-api \
+ --enable-threadsafe \
+ --enable-exceptions \
+ --enable-man \
+ --with-mesa \
+ --disable-debug \
+ --enable-shared \
+ --disable-maintainer-mode \
+ --disable-dependency-tracking \
+ --enable-system-expat
+
+ make
+}
+
+package() {
+ cd Coin-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # final adjustments
+ for _FILE in threads deprecated errors events ; do
+ mv "${pkgdir}/usr/share/man/man3/${_FILE}.3" "${pkgdir}/usr/share/man/man3/coin-${_FILE}.3"
+ done
+}
diff --git a/pcr/collada-dom/PKGBUILD b/pcr/collada-dom/PKGBUILD
new file mode 100644
index 000000000..7fceb3678
--- /dev/null
+++ b/pcr/collada-dom/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname=collada-dom
+pkgver=2.4.0
+pkgrel=2
+pkgdesc="An API that provides a C++ object representation of a ${pkgname::7} XML instance document"
+url=http://sourceforge.net/projects/$pkgname
+license=MIT
+arch=(
+ mips64el
+ x86_64
+ i686
+)
+depends=(
+ boost-libs
+ libxml2
+ pcre
+)
+makedepends=(
+ boost
+ cmake
+)
+source=http://downloads.sf.net/$pkgname/$pkgname-$pkgver-libsrc.tgz
+sha512sums=4c8cdc159acc89564b46615a0bc73a5ba84a1a5aa41d38661cd0e33a705ce5fd032e9a308fc89f93ec10620892067d757cbff8f1b9ce53da7626ea0e27b0eda5
+
+prepare() {
+ cd $srcdir/$pkgname-$pkgver-libsrc
+
+ [[ -d build ]] && rm -vr build
+ mkdir -v build
+}
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-libsrc/build
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver-libsrc/build
+ make DESTDIR=$pkgdir install
+
+ a=$pkgdir/usr/share/licenses/$pkgname
+
+ install -vd $a && cp -va ../{dom/license.txt,License_Folder/license_e.txt} $a
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/command-not-found/PKGBUILD b/pcr/command-not-found/PKGBUILD
new file mode 100644
index 000000000..e2131a3d5
--- /dev/null
+++ b/pcr/command-not-found/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Aurelien Desbrieres <aurelien@cwb.io>
+# Contributor: Diogo Leal <estranho@diogoleal.com>
+# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
+# Contributor: Matthias Maennich <arch@maennich.net>
+
+pkgname=command-not-found
+pkgver=0.4.5
+pkgrel=1
+pkgdesc="In case a command could not be found this utility searches for packages containing this or a similar command (bash,zsh)."
+arch=('i686' 'x86_64')
+url="http://github.com/metti/command-not-found"
+license=('GPL3')
+depends=('boost-libs' 'tdb' 'libarchive' 'wget')
+makedepends=('boost' 'cmake')
+install='install'
+
+source=("libre://$pkgname-$pkgver.tar.gz")
+mksource=("$pkgname-$pkgver::git+https://github.com/metti/$pkgname.git#tag=v${pkgver}")
+mkmd5sums=('SKIP')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX="" src
+ make
+}
+
+package(){
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums=('c055522251b2c58b9c6e0d0f0df481c0')
diff --git a/pcr/command-not-found/install b/pcr/command-not-found/install
new file mode 100644
index 000000000..50e601258
--- /dev/null
+++ b/pcr/command-not-found/install
@@ -0,0 +1,13 @@
+post_install() {
+ cnf-sync
+}
+
+post_upgrade() {
+ cnf-sync
+}
+
+pre_remove() {
+ rm -f /var/lib/cnf/*.{db,tbd}
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/conky-control/PKGBUILD b/pcr/conky-control/PKGBUILD
new file mode 100644
index 000000000..c607ae86b
--- /dev/null
+++ b/pcr/conky-control/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributer: giacomogiorgianni@gmail.com
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=conky-control
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="control panel for conky"
+arch=('any')
+url="http://bbs.archbang.org/viewtopic.php?id=3017"
+license=('GPL')
+categories=()
+depends=('conky-lua')
+makedepends=()
+options=(!emptydirs)
+source=("Conky_voyager.tar.gz::http://ompldr.org/vZWoxMA" "conky_voyager.tar.gz::http://ompldr.org/vZWoxYg" "conky-control.install")
+md5sums=('6930f45eb5dd402953d306ebe8ff14da'
+ 'e63ba795800ec20df912e620b423688e'
+ '0217a6bee07fb918b0c2050548103d43')
+install=$pkgname.install
+
+build() {
+ mkdir -p $pkgdir/usr/bin
+ mkdir -p $pkgdir/usr/share/applications
+ mkdir -p $pkgdir/etc/skel/.config
+ cp $startdir/conky-controlRC.desktop $pkgdir/etc/skel/.config/
+ cp $startdir/conky-control.desktop $pkgdir/usr/share/applications/
+
+ install -m 0775 -do $LOGNAME $pkgdir/etc/skel/.scripts
+ tar xzf Conky_voyager.tar.gz -C $pkgdir/etc/skel/.scripts
+ tar xzf conky_voyager.tar.gz -C $pkgdir/etc/skel//
+ ln -s $pkgdir/etc/skel/.scripts/Conky/conky $pkgdir/usr/bin/conky-control
+ }
+md5sums=('6930f45eb5dd402953d306ebe8ff14da'
+ 'e63ba795800ec20df912e620b423688e'
+ '0217a6bee07fb918b0c2050548103d43')
diff --git a/pcr/conky-control/conky-control.install b/pcr/conky-control/conky-control.install
new file mode 100644
index 000000000..399672b0a
--- /dev/null
+++ b/pcr/conky-control/conky-control.install
@@ -0,0 +1,17 @@
+post_install() {
+ for i in `ls /home | grep -v lost+found`
+ do
+ cp -fR /etc/skel/.conky /home/$i
+ cp -fR /etc/skel/.scripts /home/$i
+ cp -fR /etc/skel/.config /home/$i
+ echo "# Overwrite this file if you want to have a permanent setting" > /home/$i/.conkyrc
+ chown $i:users -R /home/$i/{.conky,.scripts}
+ chown $i:users "/home/$i/.config/autostart/Conky Control RC.desktop"
+ chown $i:users "/home/$i/.conkyrc"
+ done
+ echo " >> Start 'conky-control' to configure conky"
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/pcr/conky-lua/PKGBUILD b/pcr/conky-lua/PKGBUILD
new file mode 100644
index 000000000..6d36e9c29
--- /dev/null
+++ b/pcr/conky-lua/PKGBUILD
@@ -0,0 +1,54 @@
+# Contributor: Renato Garcia <fgarcia.renato@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Partha Chowdhury <kira.laucas@gmail.com>
+# Contributor: Gaetan Bisson <bisson@archlinux.org>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=conky-lua
+_pkgname=conky
+pkgver=1.9.0
+pkgrel=1
+pkgdesc='Lightweight system monitor for X'
+url='http://conky.sourceforge.net/'
+license=('BSD' 'GPL')
+arch=('i686' 'x86_64')
+options=('!emptydirs')
+makedepends=('docbook2x' 'toluapp' 'perl-xml-libxml')
+depends=('alsa-lib' 'libxml2' 'curl' 'wireless_tools' 'libxft' 'glib2' 'libxdamage' 'imlib2' 'lua' 'cairo')
+provides=('conky=1.9.0')
+conflicts=('conky')
+backup=('etc/conky/conky.conf' 'etc/conky/conky_no_x11.conf')
+source=("http://downloads.sourceforge.net/project/${_pkgname}/${_pkgname}/${pkgver}/${_pkgname}-${pkgver}.tar.gz")
+sha1sums=('a8d26d002370c9b877ae77ad3a3bbd2566b38e5d')
+
+replaces=('torsmo')
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ CPPFLAGS="${CXXFLAGS}" LIBS="${LDFLAGS}" ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-ibm \
+ --enable-curl \
+ --enable-rss \
+ --enable-weather-xoap \
+ --enable-imlib2 \
+ --enable-wlan \
+ --enable-lua \
+ --enable-lua-cairo \
+ --enable-lua-imlib2
+
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
+ install -Dm644 extras/vim/syntax/conkyrc.vim "${pkgdir}"/usr/share/vim/vimfiles/syntax/conkyrc.vim
+ install -Dm644 extras/vim/ftdetect/conkyrc.vim "${pkgdir}"/usr/share/vim/vimfiles/ftdetect/conkyrc.vim
+}
+sha1sums=('a8d26d002370c9b877ae77ad3a3bbd2566b38e5d')
diff --git a/pcr/cpptest/PKGBUILD b/pcr/cpptest/PKGBUILD
new file mode 100644
index 000000000..df08feb00
--- /dev/null
+++ b/pcr/cpptest/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Jorge Araya Navarro <jorgean@lavabit.com>
+# Contributor (aur): Juan Pablo Gonzalez Tognarelli <lord_jotape@yahoo.com.ar>
+pkgname=cpptest
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="CppTest is a portable and powerful unit testing framework for handling automated tests in C++. with focus on usability and extendability."
+url="http://cpptest.sourceforge.net/"
+depends=(gcc-libs)
+makedepends=(pkgconfig)
+source=(http://downloads.sourceforge.net/sourceforge/cpptest/$pkgname-$pkgver.tar.gz)
+md5sums=('79b9bff371d182f11a3235969f84ccb6')
+arch=('i686' 'x86_64')
+license="LGPL"
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/pcr/cpuminer/PKGBUILD b/pcr/cpuminer/PKGBUILD
new file mode 100644
index 000000000..be6cd1678
--- /dev/null
+++ b/pcr/cpuminer/PKGBUILD
@@ -0,0 +1,32 @@
+## Maintainer : gee
+
+name=cpuminer
+pkgname=$name
+pkgver=2.3.2
+pkgrel=5
+pkgdesc="pooler's Litecoin cpuminer."
+arch=('i686' 'x86_64')
+url="https://github.com/pooler/cpuminer"
+depends=('curl' 'jansson')
+license=('GPL2')
+source=("${pkgname}-${pkgver}.zip::https://github.com/pooler/cpuminer/zipball/v${pkgver}"
+ "libcurl.m4")
+
+build() {
+ cpuminer_srcdir=${srcdir}/pooler-cpuminer-*
+ cd ${cpuminer_srcdir}
+ autoreconf -fi -I ..
+ ./configure
+ make ${MAKEFLAGS} CXXFLAGS="-O3 -march=native"
+}
+
+
+package() {
+ cpuminer_srcdir=${srcdir}/pooler-cpuminer-*
+ mkdir -p $pkgdir/usr/bin
+
+ # get compiled binaries
+ install -D -m755 ${cpuminer_srcdir}/minerd $pkgdir/usr/bin/
+}
+md5sums=('ca3200d6574fb6463640e8891555cd12'
+ '5e22a13d29fa628c83c267cf9b4f3218')
diff --git a/pcr/cpuminer/libcurl.m4 b/pcr/cpuminer/libcurl.m4
new file mode 100644
index 000000000..d7d5a5259
--- /dev/null
+++ b/pcr/cpuminer/libcurl.m4
@@ -0,0 +1,251 @@
+# LIBCURL_CHECK_CONFIG ([DEFAULT-ACTION], [MINIMUM-VERSION],
+# [ACTION-IF-YES], [ACTION-IF-NO])
+# ----------------------------------------------------------
+# David Shaw <dshaw@jabberwocky.com> May-09-2006
+#
+# Checks for libcurl. DEFAULT-ACTION is the string yes or no to
+# specify whether to default to --with-libcurl or --without-libcurl.
+# If not supplied, DEFAULT-ACTION is yes. MINIMUM-VERSION is the
+# minimum version of libcurl to accept. Pass the version as a regular
+# version number like 7.10.1. If not supplied, any version is
+# accepted. ACTION-IF-YES is a list of shell commands to run if
+# libcurl was successfully found and passed the various tests.
+# ACTION-IF-NO is a list of shell commands that are run otherwise.
+# Note that using --without-libcurl does run ACTION-IF-NO.
+#
+# This macro #defines HAVE_LIBCURL if a working libcurl setup is
+# found, and sets @LIBCURL@ and @LIBCURL_CPPFLAGS@ to the necessary
+# values. Other useful defines are LIBCURL_FEATURE_xxx where xxx are
+# the various features supported by libcurl, and LIBCURL_PROTOCOL_yyy
+# where yyy are the various protocols supported by libcurl. Both xxx
+# and yyy are capitalized. See the list of AH_TEMPLATEs at the top of
+# the macro for the complete list of possible defines. Shell
+# variables $libcurl_feature_xxx and $libcurl_protocol_yyy are also
+# defined to 'yes' for those features and protocols that were found.
+# Note that xxx and yyy keep the same capitalization as in the
+# curl-config list (e.g. it's "HTTP" and not "http").
+#
+# Users may override the detected values by doing something like:
+# LIBCURL="-lcurl" LIBCURL_CPPFLAGS="-I/usr/myinclude" ./configure
+#
+# For the sake of sanity, this macro assumes that any libcurl that is
+# found is after version 7.7.2, the first version that included the
+# curl-config script. Note that it is very important for people
+# packaging binary versions of libcurl to include this script!
+# Without curl-config, we can only guess what protocols are available,
+# or use curl_version_info to figure it out at runtime.
+
+AC_DEFUN([LIBCURL_CHECK_CONFIG],
+[
+ AH_TEMPLATE([LIBCURL_FEATURE_SSL],[Defined if libcurl supports SSL])
+ AH_TEMPLATE([LIBCURL_FEATURE_KRB4],[Defined if libcurl supports KRB4])
+ AH_TEMPLATE([LIBCURL_FEATURE_IPV6],[Defined if libcurl supports IPv6])
+ AH_TEMPLATE([LIBCURL_FEATURE_LIBZ],[Defined if libcurl supports libz])
+ AH_TEMPLATE([LIBCURL_FEATURE_ASYNCHDNS],[Defined if libcurl supports AsynchDNS])
+ AH_TEMPLATE([LIBCURL_FEATURE_IDN],[Defined if libcurl supports IDN])
+ AH_TEMPLATE([LIBCURL_FEATURE_SSPI],[Defined if libcurl supports SSPI])
+ AH_TEMPLATE([LIBCURL_FEATURE_NTLM],[Defined if libcurl supports NTLM])
+
+ AH_TEMPLATE([LIBCURL_PROTOCOL_HTTP],[Defined if libcurl supports HTTP])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_HTTPS],[Defined if libcurl supports HTTPS])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_FTP],[Defined if libcurl supports FTP])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_FTPS],[Defined if libcurl supports FTPS])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_FILE],[Defined if libcurl supports FILE])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_TELNET],[Defined if libcurl supports TELNET])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_LDAP],[Defined if libcurl supports LDAP])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_DICT],[Defined if libcurl supports DICT])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_TFTP],[Defined if libcurl supports TFTP])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_RTSP],[Defined if libcurl supports RTSP])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_POP3],[Defined if libcurl supports POP3])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_IMAP],[Defined if libcurl supports IMAP])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_SMTP],[Defined if libcurl supports SMTP])
+
+ AC_ARG_WITH(libcurl,
+ AC_HELP_STRING([--with-libcurl=PREFIX],[look for the curl library in PREFIX/lib and headers in PREFIX/include]),
+ [_libcurl_with=$withval],[_libcurl_with=ifelse([$1],,[yes],[$1])])
+
+ if test "$_libcurl_with" != "no" ; then
+
+ AC_PROG_AWK
+
+ _libcurl_version_parse="eval $AWK '{split(\$NF,A,\".\"); X=256*256*A[[1]]+256*A[[2]]+A[[3]]; print X;}'"
+
+ _libcurl_try_link=yes
+
+ if test -d "$_libcurl_with" ; then
+ LIBCURL_CPPFLAGS="-I$withval/include"
+ _libcurl_ldflags="-L$withval/lib"
+ AC_PATH_PROG([_libcurl_config],[curl-config],[],
+ ["$withval/bin"])
+ else
+ AC_PATH_PROG([_libcurl_config],[curl-config],[],[$PATH])
+ fi
+
+ if test x$_libcurl_config != "x" ; then
+ AC_CACHE_CHECK([for the version of libcurl],
+ [libcurl_cv_lib_curl_version],
+ [libcurl_cv_lib_curl_version=`$_libcurl_config --version | $AWK '{print $[]2}'`])
+
+ _libcurl_version=`echo $libcurl_cv_lib_curl_version | $_libcurl_version_parse`
+ _libcurl_wanted=`echo ifelse([$2],,[0],[$2]) | $_libcurl_version_parse`
+
+ if test $_libcurl_wanted -gt 0 ; then
+ AC_CACHE_CHECK([for libcurl >= version $2],
+ [libcurl_cv_lib_version_ok],
+ [
+ if test $_libcurl_version -ge $_libcurl_wanted ; then
+ libcurl_cv_lib_version_ok=yes
+ else
+ libcurl_cv_lib_version_ok=no
+ fi
+ ])
+ fi
+
+ if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = xyes ; then
+ if test x"$LIBCURL_CPPFLAGS" = "x" ; then
+ LIBCURL_CPPFLAGS=`$_libcurl_config --cflags`
+ fi
+ if test x"$LIBCURL" = "x" ; then
+ LIBCURL=`$_libcurl_config --libs`
+
+ # This is so silly, but Apple actually has a bug in their
+ # curl-config script. Fixed in Tiger, but there are still
+ # lots of Panther installs around.
+ case "${host}" in
+ powerpc-apple-darwin7*)
+ LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'`
+ ;;
+ esac
+ fi
+
+ # All curl-config scripts support --feature
+ _libcurl_features=`$_libcurl_config --feature`
+
+ # Is it modern enough to have --protocols? (7.12.4)
+ if test $_libcurl_version -ge 461828 ; then
+ _libcurl_protocols=`$_libcurl_config --protocols`
+ fi
+ else
+ _libcurl_try_link=no
+ fi
+
+ unset _libcurl_wanted
+ fi
+
+ if test $_libcurl_try_link = yes ; then
+
+ # we didn't find curl-config, so let's see if the user-supplied
+ # link line (or failing that, "-lcurl") is enough.
+ LIBCURL=${LIBCURL-"$_libcurl_ldflags -lcurl"}
+
+ AC_CACHE_CHECK([whether libcurl is usable],
+ [libcurl_cv_lib_curl_usable],
+ [
+ _libcurl_save_cppflags=$CPPFLAGS
+ CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS"
+ _libcurl_save_libs=$LIBS
+ LIBS="$LIBCURL $LIBS"
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <curl/curl.h>]],[[
+/* Try and use a few common options to force a failure if we are
+ missing symbols or can't link. */
+int x;
+curl_easy_setopt(NULL,CURLOPT_URL,NULL);
+x=CURL_ERROR_SIZE;
+x=CURLOPT_WRITEFUNCTION;
+x=CURLOPT_FILE;
+x=CURLOPT_ERRORBUFFER;
+x=CURLOPT_STDERR;
+x=CURLOPT_VERBOSE;
+if (x) ;
+]])],libcurl_cv_lib_curl_usable=yes,libcurl_cv_lib_curl_usable=no)
+
+ CPPFLAGS=$_libcurl_save_cppflags
+ LIBS=$_libcurl_save_libs
+ unset _libcurl_save_cppflags
+ unset _libcurl_save_libs
+ ])
+
+ if test $libcurl_cv_lib_curl_usable = yes ; then
+
+ # Does curl_free() exist in this version of libcurl?
+ # If not, fake it with free()
+
+ _libcurl_save_cppflags=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
+ _libcurl_save_libs=$LIBS
+ LIBS="$LIBS $LIBCURL"
+
+ AC_CHECK_FUNC(curl_free,,
+ AC_DEFINE(curl_free,free,
+ [Define curl_free() as free() if our version of curl lacks curl_free.]))
+
+ CPPFLAGS=$_libcurl_save_cppflags
+ LIBS=$_libcurl_save_libs
+ unset _libcurl_save_cppflags
+ unset _libcurl_save_libs
+
+ AC_DEFINE(HAVE_LIBCURL,1,
+ [Define to 1 if you have a functional curl library.])
+ AC_SUBST(LIBCURL_CPPFLAGS)
+ AC_SUBST(LIBCURL)
+
+ for _libcurl_feature in $_libcurl_features ; do
+ AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_feature_$_libcurl_feature),[1])
+ eval AS_TR_SH(libcurl_feature_$_libcurl_feature)=yes
+ done
+
+ if test "x$_libcurl_protocols" = "x" ; then
+
+ # We don't have --protocols, so just assume that all
+ # protocols are available
+ _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT TFTP"
+
+ if test x$libcurl_feature_SSL = xyes ; then
+ _libcurl_protocols="$_libcurl_protocols HTTPS"
+
+ # FTPS wasn't standards-compliant until version
+ # 7.11.0 (0x070b00 == 461568)
+ if test $_libcurl_version -ge 461568; then
+ _libcurl_protocols="$_libcurl_protocols FTPS"
+ fi
+ fi
+
+ # RTSP, IMAP, POP3 and SMTP were added in
+ # 7.20.0 (0x071400 == 463872)
+ if test $_libcurl_version -ge 463872; then
+ _libcurl_protocols="$_libcurl_protocols RTSP IMAP POP3 SMTP"
+ fi
+ fi
+
+ for _libcurl_protocol in $_libcurl_protocols ; do
+ AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1])
+ eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes
+ done
+ else
+ unset LIBCURL
+ unset LIBCURL_CPPFLAGS
+ fi
+ fi
+
+ unset _libcurl_try_link
+ unset _libcurl_version_parse
+ unset _libcurl_config
+ unset _libcurl_feature
+ unset _libcurl_features
+ unset _libcurl_protocol
+ unset _libcurl_protocols
+ unset _libcurl_version
+ unset _libcurl_ldflags
+ fi
+
+ if test x$_libcurl_with = xno || test x$libcurl_cv_lib_curl_usable != xyes ; then
+ # This is the IF-NO path
+ ifelse([$4],,:,[$4])
+ else
+ # This is the IF-YES path
+ ifelse([$3],,:,[$3])
+ fi
+
+ unset _libcurl_with
+])dnl
diff --git a/pcr/cronic/PKGBUILD b/pcr/cronic/PKGBUILD
new file mode 100644
index 000000000..688accbe6
--- /dev/null
+++ b/pcr/cronic/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+pkgname=cronic
+pkgver=2
+pkgdesc="Cron job report wrapper"
+url=http://habilis.net/cronic/
+license=(CC0)
+
+pkgrel=1
+arch=(any)
+depends=('bash')
+
+source=(http://habilis.net/cronic/cronic
+ CC0-1.0.html::http://creativecommons.org/publicdomain/zero/1.0/legalcode)
+md5sums=('a488e6c2c76d8d00eb5576a164be4cf3'
+ 'b753f7299493244a3b0cad2fa4f26830')
+
+package() {
+ cd "$srcdir"
+ install -Dm755 cronic "$pkgdir"/usr/bin/cronic
+ install -Dm644 CC0-1.0.html "$pkgdir"/usr/share/licenses/$pkgname/CC0-1.0.html
+}
diff --git a/pcr/culmus-latex/PKGBUILD b/pcr/culmus-latex/PKGBUILD
new file mode 100644
index 000000000..8562f2fb5
--- /dev/null
+++ b/pcr/culmus-latex/PKGBUILD
@@ -0,0 +1,21 @@
+#Contributor (Arch): Dmitry Batenkov <dima dot batenkov at gmail dot com>
+# Maintainer (Parabola): Alon Ivtsan <alonivtsan@lavabit.com>
+# taken from https://aur.archlinux.org/packages/culmus-latex/
+
+pkgname=culmus-latex
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Culmus Hebrew fonts for LaTeX"
+arch=('i686' 'x86_64')
+url="http://ivritex.sourceforge.net/"
+depends=('culmus' 'texlive-core' 'texlive-bin')
+install=culmus-latex.install
+license=('GPL')
+source=(http://downloads.sourceforge.net/project/ivritex/culmus-latex/culmus-latex-0.7/culmus-latex-0.7-r1.tar.gz)
+md5sums=('0c6f6d5b9e7a0d6ba59fc55680ed48a5')
+
+build(){
+ cd ${srcdir}/${pkgname}-0.7-r1 || return 1
+ mkdir -p $pkgdir/usr/share/texmf || return 1
+ make DESTDIR=$pkgdir pkginstall
+}
diff --git a/pcr/culmus-latex/culmus-latex.install b/pcr/culmus-latex/culmus-latex.install
new file mode 100644
index 000000000..4c6529865
--- /dev/null
+++ b/pcr/culmus-latex/culmus-latex.install
@@ -0,0 +1,22 @@
+
+## arg 1: the new package version
+#pre_install() {
+ # do something here
+#}
+
+## arg 1: the new package version
+post_install() {
+ mktexlsr
+ updmap-sys --enable Map=culmus.map
+}
+
+post_upgrade() {
+ mktexlsr
+ updmap-sys --enable Map=culmus.map
+}
+
+## arg 1: the old package version
+post_remove() {
+ mktexlsr
+ updmap-sys --disable culmus.map
+}
diff --git a/pcr/culmus/PKGBUILD b/pcr/culmus/PKGBUILD
new file mode 100644
index 000000000..3d1a5f567
--- /dev/null
+++ b/pcr/culmus/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer (Arch): Ivan Puntiy <ivan.puntiy at gmail>
+# Contributor (Arch): <francois.archlinux.org>
+# Maintainer (Parabola): Alon Ivtsan <alonivtsan@lavabit.com>
+# taken from https://aur.archlinux.org/packages/culmus/
+
+pkgname=culmus
+pkgver=0.130
+pkgrel=1
+pkgdesc="A collection of Type1 and TrueType Hebrew fonts"
+arch=('any')
+url="http://culmus.sourceforge.net"
+license=('GPL2')
+depends=('fontconfig' 'xorg-fonts-alias' 'xorg-font-utils' 'xorg-fonts-encodings')
+install=${pkgname}.install
+source=(
+ "http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ "$pkgname-0.121-fontconfig_fix.patch"
+)
+md5sums=('58e672defde4caeae42017cd2f9436a6'
+ '6db715a072d9602a54c69a7e31a6428f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fix due to fontconfig 2.10.1 update - patch mailed to upstream
+ patch culmus.conf "$srcdir/$pkgname-0.121-fontconfig_fix.patch"
+}
+
+package() {
+ # install Type1 fonts
+ install -d ${pkgdir}/usr/share/fonts/Type1
+ install -m644 ${srcdir}/culmus-$pkgver/*.{afm,pfa} \
+ ${pkgdir}/usr/share/fonts/Type1
+
+ # install ttf fonts
+ install -d ${pkgdir}/usr/share/fonts/TTF
+ install -m644 ${srcdir}/culmus-$pkgver/*.ttf \
+ ${pkgdir}/usr/share/fonts/TTF
+
+ # install provided config file with priority 61
+ install -d ${pkgdir}/etc/fonts/conf.avail/
+ install -m644 ${srcdir}/culmus-$pkgver/culmus.conf \
+ ${pkgdir}/etc/fonts/conf.avail/61-culmus.conf
+}
diff --git a/pcr/culmus/culmus-0.121-fontconfig_fix.patch b/pcr/culmus/culmus-0.121-fontconfig_fix.patch
new file mode 100644
index 000000000..d303cbb09
--- /dev/null
+++ b/pcr/culmus/culmus-0.121-fontconfig_fix.patch
@@ -0,0 +1,203 @@
+--- culmus.conf.original 2011-12-20 22:21:43.509488367 +0200
++++ culmus.conf.fixed 2012-09-09 21:14:42.401273058 +0300
+@@ -8,6 +8,17 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>Guttman Adii</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>David CLM</string>
++ </edit>
++ <edit mode="assign" binding="same" name="slant" >
++ <const>italic</const>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman Adii-Light</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -30,6 +41,14 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>Guttman Stam</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Stam Ashkenaz CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman Stam1</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -40,6 +59,14 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>Guttman Hodes</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Hadasim CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Monotype Hadassah</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -50,7 +77,23 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>Aharoni</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Aharoni CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman Aharoni</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Aharoni CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman-Aharoni</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -61,7 +104,23 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>FrankRuehl</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Frank Ruehl CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman Frank</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Frank Ruehl CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman Frnew</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -72,7 +131,23 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>David</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>David CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>David Transparent</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>David CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman David</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -83,8 +158,32 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>Fixed Miriam Transparent</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Miriam Mono CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman Myamfix</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Miriam Mono CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman-CourMir</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Miriam Mono CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Miriam Fixed</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -95,8 +194,32 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>Guttman Miryam</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Miriam CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Levenim MT</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Miriam CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Miriam</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Miriam CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Miriam Transparent</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
+@@ -107,6 +230,14 @@
+ <match target="pattern" >
+ <test name="family" >
+ <string>Guttman Drogolin</string>
++ </test>
++ <edit mode="append" binding="same" name="family" >
++ <string>Drugulin CLM</string>
++ </edit>
++ </match>
++
++ <match target="pattern" >
++ <test name="family" >
+ <string>Guttman Vilna</string>
+ </test>
+ <edit mode="append" binding="same" name="family" >
diff --git a/pcr/culmus/culmus.install b/pcr/culmus/culmus.install
new file mode 100644
index 000000000..1376ca5ce
--- /dev/null
+++ b/pcr/culmus/culmus.install
@@ -0,0 +1,41 @@
+configs=('61-culmus.conf')
+
+update_fontcache() {
+ fc-cache -fs
+ mkfontscale /usr/share/fonts/Type1
+ mkfontdir /usr/share/fonts/Type1
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+}
+
+post_install() {
+ pushd /etc/fonts/conf.d > /dev/null
+ for config in "${configs[@]}"; do
+ ln -sf ../conf.avail/${config} .
+ done
+ popd > /dev/null
+
+ update_fontcache
+}
+
+post_upgrade() {
+ if [ "`vercmp 0.102-1 $2`" != "-1" ] || [ ! -L /etc/fonts/conf.d/61-culmus.conf ]; then
+ pushd /etc/fonts/conf.d > /dev/null
+ for config in "${configs[@]}"; do
+ ln -sf ../conf.avail/${config} .
+ done
+ popd > /dev/null
+ fi
+
+ update_fontcache
+}
+
+post_remove() {
+ pushd /etc/fonts/conf.d > /dev/null
+ for config in "${configs[@]}"; do
+ rm -f ${config}
+ done
+ popd > /dev/null
+
+ update_fontcache
+}
diff --git a/pcr/cw/PKGBUILD b/pcr/cw/PKGBUILD
new file mode 100644
index 000000000..fb26acb4a
--- /dev/null
+++ b/pcr/cw/PKGBUILD
@@ -0,0 +1,46 @@
+# Contributor: William Díaz <wdiaz[at]archlinux[dot]us>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=cw
+pkgver=1.0.16
+pkgrel=1
+pkgdesc="A non-intrusive ANSI color wrapper for common unix-based commands on GNU/linux."
+url="http://sourceforge.net/projects/cwrapper/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=()
+makedepends=('patch')
+install=cw.install
+source=("http://cwrapper.sourceforge.net/${pkgname}-${pkgver}.tar.bz2"
+ "${pkgname}.patch")
+md5sums=('142a1e9a25abbb01c3b90091d0bf68fd'
+ '5c54fab22fdb0601e6e4fb3fa87c435d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ install -d ${pkgdir}/usr/bin \
+ ${pkgdir}/usr/share/man/man1 \
+ ${pkgdir}/usr/share/doc/cw
+
+ msg "Patching Files"
+ patch -Np1 -i ${srcdir}/${pkgname}.patch || return 1
+
+ ./configure --prefix=/usr || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install || return 1
+
+ # Deleting the problematic files
+ rm -R ${pkgdir}/usr/lib/${pkgname}/{file,gcc,g++,stat,du}
+
+ cp CHANGES CONTRIB INSTALL README PLATFORM \
+ ${pkgdir}/usr/share/doc/cw
+
+ ln -sf /usr/bin/cw ${pkgdir}/usr/bin/cwe
+}
+md5sums=('142a1e9a25abbb01c3b90091d0bf68fd'
+ '5c54fab22fdb0601e6e4fb3fa87c435d')
diff --git a/pcr/cw/cw.install b/pcr/cw/cw.install
new file mode 100644
index 000000000..bf0219bb7
--- /dev/null
+++ b/pcr/cw/cw.install
@@ -0,0 +1,26 @@
+post_install () {
+ echo -e "\033[32;1m==>\033[0m \033[1mUpdating definition files...\033[0m"
+ /usr/bin/cwu /usr/lib/cw /usr/bin/cw > /dev/null
+
+ echo -e ""
+ echo -e "Complete, definitions are stored in: /usr/lib/cw"
+ echo -e "\033[1mFor bash:\033[0m place 'export PATH=\"/usr/lib/cw:\$PATH\"'"
+ echo -e "at the end of ~/.bash_profile(or /etc/profile globally)"
+ echo -e ""
+ echo -e "\033[1mFor tcsh:\033[0m place 'setenv PATH \"/usr/lib/cw:\$PATH\"'"
+ echo -e "at the end of ~/.login(or /etc/csh.login globally)"
+ echo -e ""
+ echo -e "\033[1mFor zsh:\033[0m place:"
+ echo -e "'export PATH=\"/usr/lib/cw:\$PATH\"'"
+ echo -e "at the end of ~/.zshrc(or /etc/zprofile globally)"
+ echo -e ""
+ echo -e "Or to automate the two lines above use the "colorcfg" command."
+ echo -e "(and add optional anti-coloring precautions)"
+ echo -e "Once the desired shell(s) are setup, use the "color" command,"
+ echo -e "or the environmental variable NOCOLOR=1 to turn"
+ echo -e "color wrapping on and off."
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/pcr/cw/cw.patch b/pcr/cw/cw.patch
new file mode 100644
index 000000000..2158a0d30
--- /dev/null
+++ b/pcr/cw/cw.patch
@@ -0,0 +1,78 @@
+--- cw-1.0.16/Makefile.in 2007-09-25 11:10:20.000000000 -0600
++++ cw-1.0.16/Makefile.in 2009-12-23 00:22:47.932698402 -0600
+@@ -8,7 +8,7 @@ CC=@CC@
+ ECHO=echo
+ LN=ln
+ RM=rm
+-MKDIR=mkdir
++MKDIR=mkdir -p
+ INSTALL=@INSTALL@
+
+ all:
+@@ -56,32 +56,18 @@ installlocal: cleanlocal local
+
+ install: cleanpub cw cwu
+ @$(ECHO) "* Installing color wrapper..."
+- @for FILE in bin/*;do $(INSTALL) -o 0 -g 0 -m 755 $$FILE $(BINDIR);done
+- @$(LN) -sf $(BINDIR)/cw $(BINDIR)/cwe
++ @for FILE in bin/*;do $(INSTALL) -m 755 $$FILE $(DESTDIR)$(BINDIR);done
++ @$(LN) -sf $(DESTDIR)$(BINDIR)/cw $(DESTDIR)$(BINDIR)/cwe
+ @$(ECHO) "* Installing color wrapper generic definition files..."
+- @$(MKDIR) -m 755 $(LIBDIR)/cw/
+- @for FILE in def/*;do $(INSTALL) -o 0 -g 0 -m 755 $$FILE $(LIBDIR)/cw/;done
++ @$(MKDIR) -m 755 $(DESTDIR)$(LIBDIR)/cw/
++ @for FILE in def/*;do $(INSTALL) -m 755 $$FILE $(DESTDIR)$(LIBDIR)/cw/;done
+ @$(ECHO) "* Installing color wrapper generic header/footer files..."
+- @$(MKDIR) -m 755 $(LIBDIR)/cw/etc
+- @for FILE in etc/*;do $(INSTALL) -o 0 -g 0 -m 644 $$FILE $(LIBDIR)/cw/etc;done
++ @$(MKDIR) -m 755 $(DESTDIR)$(LIBDIR)/cw/etc
++ @for FILE in etc/*;do $(INSTALL) -m 644 $$FILE $(DESTDIR)$(LIBDIR)/cw/etc;done
+ @$(ECHO) "* Installing manual pages..."
+- @for FILE in man/*;do $(INSTALL) -o 0 -g 0 -m 644 $$FILE $(MANDIR)/man1/;done
++ @for FILE in man/*;do $(INSTALL) -m 644 $$FILE $(DESTDIR)$(MANDIR)/man1/;done
+ @$(ECHO) "* Updating definition files..."
+- @$(BINDIR)/cwu $(LIBDIR)/cw $(BINDIR)/cw
+- @$(ECHO) "-----------------------------------------------------------"
+- @$(ECHO) "* Complete, definitions are stored in: $(LIBDIR)/cw"
+- @$(ECHO) "* For bash: place 'export PATH=\"$(LIBDIR)/cw:\$$PATH\"'"\
+- "at the end of ~/.bash_profile(or /etc/profile globally)"
+- @$(ECHO) "* For tcsh: place 'setenv PATH \"$(LIBDIR)/cw:\$$PATH\"'"\
+- "at the end of ~/.login(or /etc/csh.login globally)"
+- @$(ECHO) "* Or to automate the two lines above use the"\
+- "\"colorcfg\" command. (and add optional anti-coloring precautions)"
+- @$(ECHO) "* Once the desired shell(s) are setup, use the"\
+- "\"color\" command, or the environmental variable NOCOLOR=1 to turn"\
+- "color wrapping on and off."
+- @$(ECHO) ""
+- @$(ECHO) "* PLEASE view the ./README file for more information if"\
+- "you haven't already."
++ @$(DESTDIR)$(BINDIR)/cwu $(DESTDIR)$(LIBDIR)/cw $(DESTDIR)$(BINDIR)/cw
+
+ clean:
+ @$(ECHO) "* Cleaning compiling content..."
+@@ -94,9 +80,9 @@ cleanlocal:
+
+ cleanpub:
+ @$(ECHO) "* Cleaning cw and cwu binaries, and definitions..."
+- @$(RM) -rf $(BINDIR)/cw $(BINDIR)/cwu $(BINDIR)/cwe\
+- $(BINDIR)/cw.exe $(BINDIR)/cwu.exe $(BINDIR)/color $(BINDIR)/colorcfg\
+- $(LIBDIR)/cw $(MANDIR)/man1/cw.1.gz $(MANDIR)/man1/cwu.1.gz\
+- $(MANDIR)/man1/cwe.1.gz
++ @$(RM) -rf $(DESTDIR)$(BINDIR)/cw $(DESTDIR)$(BINDIR)/cwu $(DESTDIR)$(BINDIR)/cwe\
++ $(DESTDIR)$(BINDIR)/cw.exe $(DESTDIR)$(BINDIR)/cwu.exe $(DESTDIR)$(BINDIR)/color $(DESTDIR)$(BINDIR)/colorcfg\
++ $(DESTDIR)$(LIBDIR)/cw $(DESTDIR)$(MANDIR)/man1/cw.1.gz $(DESTDIR)$(MANDIR)/man1/cwu.1.gz\
++ $(DESTDIR)$(MANDIR)/man1/cwe.1.gz
+
+ cleanall: clean cleanlocal cleanpub
+
+--- cw-1.0.16/bin/colorcfg 2007-09-25 11:10:20.000000000 -0600
++++ cw-1.0.16/bin/colorcfg 2009-12-23 00:29:05.105994275 -0600
+@@ -12,7 +12,7 @@ if test -x "${HOME}/.cw/bin/colorcfg";th
+ else
+ SED="`which sed 2>/dev/null`"
+ if test -z "$SED";then
+- CWLIB="/usr/local/lib/cw"
++ CWLIB="/usr/lib/cw"
+ echo "(NOTE: using static cw library path, this could be invalid)"
+ else
+ CWLIB="`echo \"$0/lib/cw\"|sed \"s/\/bin\/colorcfg//g\"`"
diff --git a/pcr/czmq/PKGBUILD b/pcr/czmq/PKGBUILD
new file mode 100644
index 000000000..2cb94125c
--- /dev/null
+++ b/pcr/czmq/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Brian Knox <taotetek at gmail.com>
+# Maintainer: Brian Knox <taotetek at gmail.com>
+pkgname=czmq
+pkgver=2.0.2
+pkgrel=1
+pkgdesc="High level C API for ZeroMQ"
+arch=(i686 x86_64)
+url="http://czmq.zeromq.org/"
+license=('LGPL')
+depends=('zeromq')
+makedepends=('asciidoc' 'xmlto')
+options=(!libtool)
+source=(http://download.zeromq.org/${pkgname}-${pkgver}.tar.gz)
+
+sha1sums=('9a78ea2bf2100863eefdd0512c77486ebd1e2587')
+sha256sums=('75115c2a89facf7f706bc24d0cd09ad0cc4f173a6b6b242743a7ed4ffa7a791b')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/d0_blind_id-git/PKGBUILD b/pcr/d0_blind_id-git/PKGBUILD
new file mode 100644
index 000000000..bfda13205
--- /dev/null
+++ b/pcr/d0_blind_id-git/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: MrBougo <bougospam at gmail dot com>
+pkgname=d0_blind_id-git
+pkgver=20120716
+pkgrel=1
+pkgdesc="Cryptographic library for identification with Schnorr ID scheme and Blind RSA Signatures"
+arch=('i686' 'x86_64')
+url="http://github.com/divVerent/d0_blind_id"
+license=('BSD')
+depends=('gmp')
+makedepends=('git')
+conflicts=()
+options=('!libtool')
+
+_gitroot="git://git.xonotic.org/xonotic/d0_blind_id.git"
+_gitname="d0_blind_id"
+
+build() {
+ cd "$srcdir"
+ msg "Connecting to GIT server...."
+
+ if [ -d $_gitname ] ; then
+ cd $_gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gitroot $_gitname
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+ cd "$srcdir/$_gitname-build"
+
+ sh autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$_gitname-build"
+ make DESTDIR="$pkgdir/" install
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/pcr/darcsver/PKGBUILD b/pcr/darcsver/PKGBUILD
new file mode 100644
index 000000000..e93250680
--- /dev/null
+++ b/pcr/darcsver/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Andreas B. Wagner <AndreasBWagner@pointfree.net>
+# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+# Contributor: Peter Simons <simons@cryp.to>
+pkgname=darcsver
+pkgver=1.7.4
+pkgrel=2
+pkgdesc="generate a version number from darcs history"
+arch=('any')
+url='http://allmydata.org/trac/darcsver'
+license=('BSD')
+depends=('python2')
+makedepends=('python2-mock' 'python2-distribute')
+source=( http://pypi.python.org/packages/source/d/$pkgname/$pkgname-$pkgver.tar.gz )
+md5sums=('e38aecd1343ab8447888a479ab12cb59')
+
+build(){
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+}
+
+package(){
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+
+ install -Dm644 darcsver.egg-info/PKG-INFO $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/debhelper/PKGBUILD b/pcr/debhelper/PKGBUILD
new file mode 100644
index 000000000..60ff8f267
--- /dev/null
+++ b/pcr/debhelper/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer (AUR): Antoine Lubineau <antoine@lubignon.info>
+# Contributor (AUR): Andrei "Garoth" Thorp <garoth@gmail.com>
+# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
+
+_debrepo=http://ftp.debian.org/debian/pool/main/ # Debian Sid
+debfile() { echo -n "$_debrepo"; echo -n "$@"|sed -r 's@(.).*@\1/&@'; }
+
+pkgname=debhelper
+pkgver=9.20120322
+pkgrel=1
+pkgdesc="A collection of programs that can be used in a debian/rules file to automate common tasks"
+arch=('any')
+url="http://packages.debian.org/${pkgname}"
+license='GPL3'
+depends=('binutils' 'dpkg' 'file' 'html2text' 'man-db' 'perl')
+makedepends=('po4a')
+source=(`debfile ${pkgname}`/${pkgname}_$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums=('9ea56782e6396a59ec49f45f9c4a603f')
diff --git a/pcr/debootstrap-libre/PKGBUILD b/pcr/debootstrap-libre/PKGBUILD
new file mode 100644
index 000000000..47ea86d07
--- /dev/null
+++ b/pcr/debootstrap-libre/PKGBUILD
@@ -0,0 +1,53 @@
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+_pkgname=debootstrap
+pkgname=debootstrap-libre
+pkgver=1.0.53
+pkgrel=3.1
+pkgdesc="A tool used to create a gNewSense or Trisquel base system from scratch, without requiring the availability of dpkg or apt (Debian support removed)"
+arch=('any')
+license=('GPL')
+url="http://packages.debian.org/sid/debootstrap"
+depends=('binutils' 'wget')
+replaces=$_pkgname
+conflicts=$_pkgname
+provides=$_pkgname=$pkgver
+source=("http://ftp.debian.org/debian/pool/main/d/${_pkgname}/${_pkgname}_${pkgver}_all.deb"
+ 'gnewsense'
+ 'trisquel')
+install="debootstrap.install"
+md5sums=('1ea9c87d54b6cf9349d602406bf43e5a'
+ '13978bdd1d877a0dd2c3c874ecd54f03'
+ 'b020aa8426e70a6024c8e76312c17d78')
+
+package(){
+ tar -xzf "${srcdir}/data.tar.gz" -C "${pkgdir}/"
+ # remove Debian scripts
+ rm -v "${pkgdir}/usr/share/debootstrap/scripts"/*
+ # move the executables to /usr/bin
+ mkdir -p ${pkgdir}/usr/bin
+ mv "${pkgdir}/usr/sbin"/* "${pkgdir}/usr/bin/"
+ rmdir "${pkgdir}/usr/sbin"
+ # patch the path to use gNewSense or Trisquel defaults (prevents error in chrooted environment)
+ sed -i 's|export PATH|export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/java/jre/bin:/usr/bin/vendor_perl:/usr/bin/core_perl"|' ${pkgdir}/usr/bin/debootstrap
+ # doesn't work with gpg 2.x, patch to point to gpg1v
+ sed 's/gpgv/gpg1v/g;' -i "${pkgdir}/usr/bin/debootstrap" "${pkgdir}/usr/share/debootstrap/functions"
+
+ # add gNewSense script
+ install -m644 gnewsense "$pkgdir/usr/share/debootstrap/scripts"
+
+ # create gNewSense symlinks
+ ln -s gnewsense "$pkgdir/usr/share/debootstrap/scripts/parkes"
+
+ # add Trisquel script
+ install -m644 trisquel "$pkgdir/usr/share/debootstrap/scripts"
+
+ # create Trisquel symlinks
+ ln -s trisquel "$pkgdir/usr/share/debootstrap/scripts/awen"
+ ln -s trisquel "$pkgdir/usr/share/debootstrap/scripts/brigantia"
+ ln -s trisquel "$pkgdir/usr/share/debootstrap/scripts/dagda"
+ ln -s trisquel "$pkgdir/usr/share/debootstrap/scripts/dwyn"
+ ln -s trisquel "$pkgdir/usr/share/debootstrap/scripts/robur"
+ ln -s trisquel "$pkgdir/usr/share/debootstrap/scripts/slaine"
+ ln -s trisquel "$pkgdir/usr/share/debootstrap/scripts/taranis"
+}
diff --git a/pcr/debootstrap-libre/debootstrap.install b/pcr/debootstrap-libre/debootstrap.install
new file mode 100644
index 000000000..3da2f1d22
--- /dev/null
+++ b/pcr/debootstrap-libre/debootstrap.install
@@ -0,0 +1,14 @@
+post_install() {
+ if [ "$(uname -m)" = "x86_64" ]; then
+ darch="amd64"
+ elif [ "$(uname -m)" = "i686" ]; then
+ darch="i386"
+ else
+ darch="mips64el"
+ fi
+ echo "$darch" > /usr/share/debootstrap/arch
+}
+
+pre_remove() {
+ rm -f /usr/share/debootstrap/arch
+}
diff --git a/pcr/debootstrap-libre/gnewsense b/pcr/debootstrap-libre/gnewsense
new file mode 100644
index 000000000..884ac88a0
--- /dev/null
+++ b/pcr/debootstrap-libre/gnewsense
@@ -0,0 +1,194 @@
+default_mirror http://archive.gnewsense.org/gnewsense-three/gnewsense
+mirror_style release
+download_style apt
+finddebs_style from-indices
+variants - buildd fakechroot minbase scratchbox
+
+if doing_variant fakechroot; then
+ test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
+fi
+
+case $ARCH in
+ alpha|ia64) LIBC="libc6.1" ;;
+ kfreebsd-*) LIBC="libc0.1" ;;
+ hurd-*) LIBC="libc0.3" ;;
+ *) LIBC="libc6" ;;
+esac
+
+work_out_debs () {
+ required="$(get_debs Priority: required)"
+
+ if doing_variant - || doing_variant fakechroot; then
+ #required="$required $(get_debs Priority: important)"
+ # ^^ should be getting debconf here somehow maybe
+ base="$(get_debs Priority: important)"
+ elif doing_variant buildd || doing_variant scratchbox; then
+ base="apt $(get_debs Build-Essential: yes)"
+ elif doing_variant minbase; then
+ base="apt"
+ fi
+
+ if doing_variant fakechroot; then
+ # ldd.fake needs binutils
+ required="$required binutils"
+ fi
+}
+
+first_stage_install () {
+ extract $required
+
+ mkdir -p "$TARGET/var/lib/dpkg"
+ : >"$TARGET/var/lib/dpkg/status"
+ : >"$TARGET/var/lib/dpkg/available"
+
+ setup_etc
+ if [ ! -e "$TARGET/etc/fstab" ]; then
+ echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
+ chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
+ fi
+
+ if doing_variant fakechroot; then
+ setup_devices_fakechroot
+ else
+ setup_devices
+ fi
+
+ x_feign_install () {
+ local pkg="$1"
+ local deb="$(debfor $pkg)"
+ local ver="$(extract_deb_field "$TARGET/$deb" Version)"
+
+ mkdir -p "$TARGET/var/lib/dpkg/info"
+
+ echo \
+"Package: $pkg
+Version: $ver
+Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
+
+ touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
+ }
+
+ x_feign_install dpkg
+}
+
+second_stage_install () {
+ x_core_install () {
+ smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
+ }
+
+ p () {
+ baseprog="$(($baseprog + ${1:-1}))"
+ }
+
+ if doing_variant fakechroot; then
+ setup_proc_fakechroot
+ elif doing_variant scratchbox; then
+ true
+ else
+ setup_proc
+ in_target /sbin/ldconfig
+ fi
+
+ DEBIAN_FRONTEND=noninteractive
+ DEBCONF_NONINTERACTIVE_SEEN=true
+ export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
+
+ baseprog=0
+ bases=7
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #1
+ info INSTCORE "Installing core packages..."
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #2
+ ln -sf mawk "$TARGET/usr/bin/awk"
+ x_core_install base-files base-passwd
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #3
+ x_core_install dpkg
+
+ if [ ! -e "$TARGET/etc/localtime" ]; then
+ ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
+ fi
+
+ if doing_variant fakechroot; then
+ install_fakechroot_tools
+ fi
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #4
+ x_core_install $LIBC
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #5
+ x_core_install perl-base
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #6
+ rm "$TARGET/usr/bin/awk"
+ x_core_install mawk
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #7
+ if doing_variant -; then
+ x_core_install debconf
+ fi
+
+ baseprog=0
+ bases=$(set -- $required; echo $#)
+
+ info UNPACKREQ "Unpacking required packages..."
+
+ exec 7>&1
+
+ smallyes '' |
+ (repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
+ dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 || echo EXITCODE $?) |
+ dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING
+
+ info CONFREQ "Configuring required packages..."
+
+ mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
+ echo \
+"#!/bin/sh
+echo
+echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
+ chmod 755 "$TARGET/sbin/start-stop-daemon"
+
+ setup_dselect_method apt
+
+ smallyes '' |
+ (in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
+ dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 || echo EXITCODE $?) |
+ dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING
+
+ baseprog=0
+ bases="$(set -- $base; echo $#)"
+
+ info UNPACKBASE "Unpacking the base system..."
+
+ setup_available $required $base
+ done_predeps=
+ while predep=$(get_next_predep); do
+ # We have to resolve dependencies of pre-dependencies manually because
+ # dpkg --predep-package doesn't handle this.
+ predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps")
+ # XXX: progress is tricky due to how dpkg_progress works
+ # -- cjwatson 2009-07-29
+ p; smallyes '' |
+ in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep)
+ base=$(without "$base" "$predep")
+ done_predeps="$done_predeps $predep"
+ done
+
+ smallyes '' |
+ (repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
+ dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 || echo EXITCODE $?) |
+ dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING
+
+ info CONFBASE "Configuring the base system..."
+
+ smallyes '' |
+ (repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be re-attempted up to five times." "" \
+ dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 || echo EXITCODE $?) |
+ dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING
+
+ mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
+
+ progress $bases $bases CONFBASE "Configuring base system"
+ info BASESUCCESS "Base system installed successfully."
+}
diff --git a/pcr/debootstrap-libre/trisquel b/pcr/debootstrap-libre/trisquel
new file mode 100644
index 000000000..7efa062f9
--- /dev/null
+++ b/pcr/debootstrap-libre/trisquel
@@ -0,0 +1,199 @@
+default_mirror http://archive.trisquel.info/trisquel
+mirror_style release
+download_style apt
+finddebs_style from-indices
+variants - buildd fakechroot minbase
+
+if doing_variant fakechroot; then
+ test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
+fi
+
+case $ARCH in
+ alpha|ia64) LIBC="libc6.1" ;;
+ *) LIBC="libc6" ;;
+esac
+
+work_out_debs () {
+ required="$(get_debs Priority: required)"
+
+ if doing_variant -; then
+ #required="$required $(get_debs Priority: important)"
+ # ^^ should be getting debconf here somehow maybe
+ base="$(get_debs Priority: important)"
+ elif doing_variant buildd; then
+ base="$(get_debs Build-Essential: yes)"
+ elif doing_variant fakechroot || doing_variant minbase; then
+ base="apt"
+ fi
+}
+
+first_stage_install () {
+ extract $required
+
+ mkdir -p "$TARGET/var/lib/dpkg"
+ : >"$TARGET/var/lib/dpkg/status"
+ : >"$TARGET/var/lib/dpkg/available"
+
+ setup_etc
+ if [ ! -e "$TARGET/etc/fstab" ]; then
+ echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
+ chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
+ fi
+
+ if doing_variant fakechroot; then
+ setup_devices_fakechroot
+ else
+ setup_devices
+ fi
+
+ x_feign_install () {
+ local pkg="$1"
+ local deb="$(debfor $pkg)"
+ local ver="$(extract_deb_field "$TARGET/$deb" Version)"
+
+ mkdir -p "$TARGET/var/lib/dpkg/info"
+
+ echo \
+"Package: $pkg
+Version: $ver
+Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
+
+ touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
+ }
+
+ x_feign_install dpkg
+}
+
+second_stage_install () {
+ x_core_install () {
+ smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
+ }
+
+ p () {
+ baseprog="$(($baseprog + ${1:-1}))"
+ }
+
+ if doing_variant fakechroot; then
+ setup_proc_fakechroot
+ else
+ setup_proc
+ in_target /sbin/ldconfig
+ fi
+
+ DEBIAN_FRONTEND=noninteractive
+ DEBCONF_NONINTERACTIVE_SEEN=true
+ export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
+
+ baseprog=0
+ bases=7
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #1
+ info INSTCORE "Installing core packages..."
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #2
+ ln -sf mawk "$TARGET/usr/bin/awk"
+ x_core_install base-files base-passwd
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #3
+ x_core_install dpkg
+
+ if [ ! -e "$TARGET/etc/localtime" ]; then
+ ln -sf /usr/share/zoneinfo/Etc/UTC "$TARGET/etc/localtime"
+ fi
+
+ if doing_variant fakechroot; then
+ install_fakechroot_tools
+ fi
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #4
+ x_core_install $LIBC
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #5
+ x_core_install perl-base
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #6
+ rm "$TARGET/usr/bin/awk"
+ x_core_install mawk
+
+ p; progress $baseprog $bases INSTCORE "Installing core packages" #7
+ if doing_variant -; then
+ x_core_install debconf
+ fi
+
+ baseprog=0
+ bases=$(set -- $required; echo $#)
+
+ info UNPACKREQ "Unpacking required packages..."
+
+ smallyes '' |
+ (repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
+ dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 |
+ dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
+
+ info CONFREQ "Configuring required packages..."
+
+ if doing_variant fakechroot; then
+ # fix initscripts postinst (no mounting possible, and wrong if condition)
+ sed -i '/dpkg.*--compare-versions/ s/\<lt\>/lt-nl/' "$TARGET/var/lib/dpkg/info/initscripts.postinst"
+ fi
+
+ mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
+ echo \
+"#!/bin/sh
+echo
+echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
+ chmod 755 "$TARGET/sbin/start-stop-daemon"
+
+ if [ -x "$TARGET/sbin/initctl" ]; then
+ mv "$TARGET/sbin/initctl" "$TARGET/sbin/initctl.REAL"
+ echo \
+"#!/bin/sh
+echo
+echo \"Warning: Fake initctl called, doing nothing\"" > "$TARGET/sbin/initctl"
+ chmod 755 "$TARGET/sbin/initctl"
+ fi
+
+ setup_dselect_method apt
+
+ smallyes '' |
+ (in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
+ dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 |
+ dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
+
+ baseprog=0
+ bases="$(set -- $base; echo $#)"
+
+ info UNPACKBASE "Unpacking the base system..."
+
+ setup_available $required $base
+ done_predeps=
+ while predep=$(get_next_predep); do
+ # We have to resolve dependencies of pre-dependencies manually because
+ # dpkg --predep-package doesn't handle this.
+ predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps")
+ # XXX: progress is tricky due to how dpkg_progress works
+ # -- cjwatson 2009-07-29
+ p; smallyes '' | in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep)
+ base=$(without "$base" "$predep")
+ done_predeps="$done_predeps $predep"
+ done
+
+ smallyes '' |
+ (repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
+ dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 |
+ dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1
+
+ info CONFBASE "Configuring the base system..."
+
+ smallyes '' |
+ (repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" \
+ dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 |
+ dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1
+
+ if [ -x "$TARGET/sbin/initctl.REAL" ]; then
+ mv "$TARGET/sbin/initctl.REAL" "$TARGET/sbin/initctl"
+ fi
+ mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
+
+ progress $bases $bases CONFBASE "Configuring base system"
+ info BASESUCCESS "Base system installed successfully."
+}
diff --git a/pcr/dianara/PKGBUILD b/pcr/dianara/PKGBUILD
new file mode 100644
index 000000000..2bca50c77
--- /dev/null
+++ b/pcr/dianara/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): speps <speps@aur.archlinux.org>
+
+pkgname=dianara
+pkgver=1.1
+pkgrel=1
+pkgdesc="A Qt pump.io client"
+arch=(i686 x86_64)
+url="http://dianara.nongnu.org/"
+license=('GPL')
+depends=('qjson' 'qoauth' 'qca-ossl')
+install="$pkgname.install"
+source=("http://download-mirror.savannah.gnu.org/releases/$pkgname/$pkgname-v$pkgver.tar.gz")
+md5sums=('6a7561f75679e7cec767fc6fbd396610')
+
+build() {
+ cd $pkgname-v$pkgver
+ [ -d bld ] || mkdir bld && cd bld
+ qmake-qt4 ..
+ make
+}
+
+package() {
+ cd $pkgname-v$pkgver
+
+ # bin
+ install -Dm755 bld/$pkgname \
+ "$pkgdir/usr/bin/$pkgname"
+
+ # desktop file
+ install -Dm644 $pkgname.desktop \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+
+ # icons
+ install -Dm644 icon/32x32/$pkgname.png \
+ "$pkgdir/usr/share/icons/hicolor/32x32/apps/$pkgname.png"
+ install -Dm644 icon/64x64/$pkgname.png \
+ "$pkgdir/usr/share/icons/hicolor/64x64/apps/$pkgname.png"
+
+ # translations
+ install -d "$pkgdir/usr/share/locale"
+ install -Dm644 translations/*.qm \
+ "$pkgdir/usr/share/locale"
+
+ # man (why 7?)
+ install -d "$pkgdir/usr/share/man/man1"
+ sed '1s/"7"/"1"/' manual/$pkgname.7 > \
+ "$pkgdir/usr/share/man/man1/$pkgname.1"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/dianara/dianara.install b/pcr/dianara/dianara.install
new file mode 100644
index 000000000..029294d67
--- /dev/null
+++ b/pcr/dianara/dianara.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/din/PKGBUILD b/pcr/din/PKGBUILD
new file mode 100644
index 000000000..77013fc5c
--- /dev/null
+++ b/pcr/din/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=din
+pkgver=5.2.1
+pkgrel=1
+pkgdesc="A software musical instrument and audio synthesizer using Bezier curves to draw waveforms."
+arch=('i686')
+url="http://dinisnoise.org/"
+license=('GPL3')
+depends=('fftw' 'jack' 'liblo' 'libgl' 'libircclient' 'tcl')
+makedepends=('mesa')
+install="$pkgname.install"
+source=("http://din.googlecode.com/files/$pkgname-$pkgver.tar.gz")
+md5sums=('d5a9c375b58e7652004bfcc1e3e17f88')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # remove previously generated checkdotdin
+ rm data/checkdotdin
+
+ # colourized echo in m00 script
+ sed -i "s|echo|& -e|" data/m00
+
+ # tcl 8.6 fix
+ sed -i "s/tcl8\.5/tcl8\.6/g" `grep -rl "tcl8\.5"`
+
+ ./configure --prefix=/usr \
+ --datarootdir=/usr/share
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/din/din.install b/pcr/din/din.install
new file mode 100644
index 000000000..810ee4bfd
--- /dev/null
+++ b/pcr/din/din.install
@@ -0,0 +1,12 @@
+post_install() {
+ echo ">>> If you get any trouble, remeber to clean your ~/.din folder"
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/dirt/PKGBUILD b/pcr/dirt/PKGBUILD
new file mode 100644
index 000000000..d269b41f8
--- /dev/null
+++ b/pcr/dirt/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: fauno <fauno@parabola.nu>
+pkgname=dirt
+pkgver=1.0.0a28
+pkgrel=1
+pkgdesc="Multi-platform IRC proxy that adds FiSH-compatible chat encryption (including DH1080 key exchanges) to any IRC client"
+arch=('i686')
+url="http://dirtirc.sourceforge.net/"
+license=('GPL2')
+depends=('openssl')
+source=(http://ufpr.dl.sourceforge.net/project/dirtirc/Dirt/1.0.0%20alpha%2028/${pkgname}-${pkgver}-source.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make unix
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -D -m 755 dirtirc ${pkgdir}/usr/bin/dirtirc
+}
+sha1sums=('0f7f407f5a3cb0f083b95d81849efde90177e7d2')
+sha256sums=('c1e8bc212a54739ba45f10a6f157f1a80052c913863e6624c434d7335fc2721b')
diff --git a/pcr/django-cms/PKGBUILD b/pcr/django-cms/PKGBUILD
new file mode 100644
index 000000000..9a641b7fb
--- /dev/null
+++ b/pcr/django-cms/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Baptiste Jonglez <baptiste--aur at jonglez dot org>
+# Contributor: Fabio Volpe <volpefabio@gmail.com>
+# Contributor: Apkawa <apkawa@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurlien Desbrires <aurelien@cwb.io>
+
+pkgname=django-cms
+pkgver=2.2
+pkgrel=1
+pkgdesc="CMS framework based on Django"
+arch=('any')
+url="http://www.django-cms.org/"
+license=('BSD')
+depends=('python2' 'django' 'python-south' 'python-imaging' 'django-mptt' 'python2-html5lib' 'django-classy-tags' 'django-sekizai')
+source=(http://pypi.python.org/packages/source/d/$pkgname/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir/" --install-data=/usr/share/$pkgname --optimize=1
+ #install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/pcr/django-extensions/PKGBUILD b/pcr/django-extensions/PKGBUILD
new file mode 100644
index 000000000..535091cfc
--- /dev/null
+++ b/pcr/django-extensions/PKGBUILD
@@ -0,0 +1,39 @@
+# Contributor: Alper Kanat <alperkanat@raptiye.org>
+# Contributor: Schnouki <thomas.jost@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=django-extensions
+pkgver=0.6
+pkgrel=1
+pkgdesc="Django Custom Management Command Extensions"
+arch=('any')
+url="http://github.com/django-extensions/django-extensions"
+license=('BSD')
+depends=('django' 'python2')
+makedepends=('setuptools' 'git')
+optdepends=('graphviz: to graph Django models'
+ 'python-werkzeug: to use the Werbzeug debugger in the embedded web server')
+source=()
+
+_giturl=http://github.com/$pkgname/$pkgname.git
+
+build() {
+ cd $srcdir
+
+ if [[ ! -d $srcdir/$pkgname ]]; then
+ # downloading the whole repository
+ git clone $_giturl
+ else
+ # updating the local repository
+ cd $srcdir/$pkgname
+ git pull
+ fi
+
+ cd $srcdir/$pkgname
+
+ # checking out to the tag (version)
+ git checkout -b $pkgver $pkgver
+
+ python2 ./setup.py install --root=$pkgdir --prefix=/usr || return 1
+}
+
diff --git a/pcr/django-social-auth/PKGBUILD b/pcr/django-social-auth/PKGBUILD
new file mode 100644
index 000000000..379a066a2
--- /dev/null
+++ b/pcr/django-social-auth/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Benjamin A. Shelton <zancarius at gmail _ com>
+# Source: https://github.com/zancarius/archlinux-pkgbuilds
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=django-social-auth
+pkgver=0.7.9
+pkgrel=1
+pkgdesc="Social authentication made simple."
+arch=(any)
+url="http://pypi.python.org/pypi/django-social-auth"
+license=(BSD)
+depends=(python2 python2-openid python2-oauth2)
+makedepends=(python2-distribute)
+conflicts=(django-socialauth-git)
+source=("http://pypi.python.org/packages/source/d/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build () {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}/" --optimize=1
+
+}
diff --git a/pcr/django-tagging/PKGBUILD b/pcr/django-tagging/PKGBUILD
new file mode 100644
index 000000000..83f808280
--- /dev/null
+++ b/pcr/django-tagging/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Ryan Coyner <rcoyner@gmail.com>
+# Contributor: James Pearson <james.m.pearson+arch@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurlien Desbrires <aurelien@cwb.io>
+
+pkgname=django-tagging
+pkgver=0.3.1
+pkgrel=2
+pkgdesc="A generic tagging application for Django projects"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/django-tagging/"
+license=('MIT')
+depends=('python2')
+source=(http://django-tagging.googlecode.com/files/django-tagging-$pkgver.tar.gz)
+
+build() {
+ cd $srcdir/django-tagging-$pkgver
+ python2 setup.py build || return 1
+ python2 setup.py install --root=$pkgdir || return 1
+ install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/doxymacs/PKGBUILD b/pcr/doxymacs/PKGBUILD
new file mode 100644
index 000000000..09a46a0ae
--- /dev/null
+++ b/pcr/doxymacs/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Limao Luo <luolimao+AUR@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=doxymacs
+pkgver=1.8.0
+pkgrel=2
+pkgdesc="Use Doxygen from within {X}Emacs"
+arch=(i686 x86_64)
+url=http://$pkgname.sourceforge.net
+license=(GPL)
+depends=('libxml2>=2.6.13')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('a23fd833bc3c21ee5387c62597610941e987f9d4372916f996bf6249cc495afa')
+sha512sums=('7461a8a415aadf331f856e4f122712cbedc2907eff9e452f24e6ee83b96903d9944d2cfdbcfeab8a66144a0be508eae723c29f82a081df9723560b10c444f8ac')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver/
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver/
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/doxymacs/doxymacs.install b/pcr/doxymacs/doxymacs.install
new file mode 100644
index 000000000..9d8366f45
--- /dev/null
+++ b/pcr/doxymacs/doxymacs.install
@@ -0,0 +1,19 @@
+post_install() {
+ cat <<__EOF__
+====> Put (require 'doxymacs) in your .emacs
+====> Invoke doxymacs-mode with M-x doxymacs-mode.
+====> To have doxymacs-mode invoked automatically when in C/C++ mode, put
+(add-hook 'c-mode-common-hook 'doxymacs-mode)
+====> in your .emacs.
+====> If you want Doxygen keywords fontified use M-x doxymacs-font-lock.
+====> To do it automatically in C and C++ modes, add the following to your .emacs:
+(defun my-doxymacs-font-lock-hook ()
+ (if (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
+ (doxymacs-font-lock)))
+(add-hook 'font-lock-mode-hook 'my-doxymacs-font-lock-hook)
+__EOF__
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/pcr/dratmenu/PKGBUILD b/pcr/dratmenu/PKGBUILD
new file mode 100644
index 000000000..8d6a2b357
--- /dev/null
+++ b/pcr/dratmenu/PKGBUILD
@@ -0,0 +1,36 @@
+# Contributor: ivoarch <ivkuzev@gmail.com>
+# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io>
+
+pkgname=dratmenu
+pkgver=20121218
+pkgrel=1
+pkgdesc="ratpoison window dmenu"
+arch=('any')
+url="https://github.com/dimatura/dratmenu.git"
+license=('GPL')
+depends=('dmenu' 'python2')
+makedepends=('git')
+
+_gitroot="https://github.com/dimatura/dratmenu.git"
+_gitname="master"
+
+build() {
+ cd $srcdir
+
+ if [ -d $srcdir/$pkgname ] ; then
+ msg "update git"
+ cd $pkgname && git pull origin
+ else
+ msg "clone git"
+ git clone $_gitroot
+ fi
+}
+
+package() {
+ mkdir -p $pkgdir/usr/lib/python2.7/site-packages
+ cp -r $srcdir/$pkgname $pkgdir/usr/lib/python2.7/site-packages
+ mkdir -p $pkgdir/usr/bin
+ echo "#!/bin/bash
+ python2 /usr/lib/python2.7/site-packages/$pkgname/dratmenu.py" > $pkgdir/usr/bin/dratmenu
+ chmod +x $pkgdir/usr/bin/dratmenu
+}
diff --git a/pcr/dropbear/PKGBUILD b/pcr/dropbear/PKGBUILD
new file mode 100644
index 000000000..1e50534a3
--- /dev/null
+++ b/pcr/dropbear/PKGBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Jason Pierce <`echo 'moc tod liamg ta nosaj tod ecreip' | rev`>
+# Contributor: Jeremy Cowgar <jeremy@cowgar.com>
+
+pkgname=dropbear
+pkgver=0.53.1
+pkgrel=2
+pkgdesc="Lightweight replacement for sshd"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://matt.ucc.asn.au/dropbear/dropbear.html"
+license=('custom:BSD' 'custom:PD')
+depends=('zlib')
+source=(http://matt.ucc.asn.au/$pkgname/releases/$pkgname-$pkgver.tar.bz2 \
+ $pkgname-conf.d \
+ $pkgname-rc.d)
+sha256sums=('e24d3cbecd3bc850b2b336b8eb50c845a285ceef8e22544938a582e163d36393'
+ 'eaec8cecae4476a660351ba9079c91b7c379146a22df881bd24b81af8f50d74c'
+ '29ab5438d15bfa727620fc04ec52ff55d676577b903c9261ce00bb291ae171a8')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ sed -i 's:usr/libexec/sftp:usr/lib/ssh/sftp:' options.h
+
+ ./configure --prefix=/usr
+ LIBS="-lcrypt" make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make prefix=${pkgdir}/usr install
+
+#man pages
+ install -D -m644 dbclient.1 ${pkgdir}/usr/share/man/man1/dbclient.1
+ install -D -m644 $pkgname.8 ${pkgdir}/usr/share/man/man8/$pkgname.8
+ install -D -m644 dropbearkey.8 ${pkgdir}/usr/share/man/man8/dropbearkey.8
+
+#configuration files
+ install -d ${pkgdir}/etc/$pkgname
+ install -D -m644 ${srcdir}/$pkgname-conf.d ${pkgdir}/etc/conf.d/$pkgname
+ install -D -m755 ${srcdir}/$pkgname-rc.d ${pkgdir}/etc/rc.d/$pkgname
+
+#license file
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/dropbear/dropbear-conf.d b/pcr/dropbear/dropbear-conf.d
new file mode 100644
index 000000000..6f3b8f0c5
--- /dev/null
+++ b/pcr/dropbear/dropbear-conf.d
@@ -0,0 +1,15 @@
+# the TCP port that Dropbear listens on
+DROPBEAR_PORT="127.0.0.1:22" # Default to local-only.
+
+# any additional arguments for Dropbear
+DROPBEAR_EXTRA_ARGS="-w" # Default to no-root logins.
+
+# specify an optional banner file containing a message to be
+# sent to clients before they connect, such as "/etc/issue.net"
+DROPBEAR_BANNER=""
+
+# RSA hostkey file (default: /etc/dropbear/dropbear_rsa_host_key)
+#DROPBEAR_RSAKEY="/etc/dropbear/dropbear_rsa_host_key"
+
+# DSS hostkey file (default: /etc/dropbear/dropbear_dss_host_key)
+DROPBEAR_DSSKEY="/etc/dropbear/dropbear_dss_host_key"
diff --git a/pcr/dropbear/dropbear-rc.d b/pcr/dropbear/dropbear-rc.d
new file mode 100644
index 000000000..011880b3b
--- /dev/null
+++ b/pcr/dropbear/dropbear-rc.d
@@ -0,0 +1,88 @@
+#!/bin/bash
+daemon_name=dropbear
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+. /etc/conf.d/$daemon_name
+
+for port in $DROPBEAR_PORT; do
+ daemon_args="$daemon_args -p $port"
+done
+
+[ ! -z $DROPBEAR_BANNER ] && daemon_args="$daemon_args -b $DROPBEAR_BANNER"
+[ ! -z $DROPBEAR_DSSKEY ] && daemon_args="$daemon_args -d $DROPBEAR_DSSKEY"
+[ ! -z $DROPBEAR_RSAKEY ] && daemon_args="$daemon_args -r $DROPBEAR_RSAKEY"
+[ ! -z $DROPBEAR_EXTRA_ARGS ] && daemon_args="$daemon_args $DROPBEAR_EXTRA_ARGS"
+[ -z $DROPBEAR_PIDFILE ] && DROPBEAR_PIDFILE="/var/run/$daemon_name.pid"
+daemon_args="$daemon_args -P $DROPBEAR_PIDFILE"
+
+get_pid() {
+ PID=''
+ if [ -r $DROPBEAR_PIDFILE -a -f $DROPBEAR_PIDFILE -a -w $DROPBEAR_PIDFILE ]; then
+ if kill -0 "`< $DROPBEAR_PIDFILE`" &>/dev/null; then # kill -0 == "exit code indicates if a signal may be sent"
+ PID="`< $DROPBEAR_PIDFILE`"
+ else # may not send signals to dropbear, because it's probably not running => remove pidfile
+ rm -f $DROPBEAR_PIDFILE
+ fi
+ fi
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name"
+ get_pid
+ if [ -z "$PID" ]; then
+ printhl "Checking for hostkeys"
+ if [ ! -z $DROPBEAR_DSSKEY ]; then
+ [ ! -f $DROPBEAR_DSSKEY ] && dropbearkey -t dss -f $DROPBEAR_DSSKEY
+ fi;
+ if [ ! -z $DROPBEAR_RSAKEY ]; then
+ [ ! -f $DROPBEAR_RSAKEY ] && dropbearkey -t rsa -f $DROPBEAR_RSAKEY
+ fi;
+
+ $daemon_name $daemon_args # Make it Go Joe!
+ if [ $? -gt 0 ]; then
+ stat_die
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_die
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name"
+
+ get_pid
+ [ ! -z "$PID" ] && kill $PID &> /dev/null # Be dead (please), I say!
+ if [ $? -gt 0 ]; then
+ stat_die
+ else
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ fingerprint)
+ stat_busy "Fingerprinting $daemon_name hostkeys"
+ if [ ! -z $DROPBEAR_DSSKEY ]; then
+ printhl "DSS/DSA Key $(dropbearkey -y -f $DROPBEAR_DSSKEY | grep Fingerprint)"
+ fi;
+ if [ ! -z $DROPBEAR_RSAKEY ]; then
+ printhl "RSA Key $(dropbearkey -y -f $DROPBEAR_RSAKEY | grep Fingerprint)"
+ fi;
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|fingerprint}"
+esac
+exit 0
diff --git a/pcr/drumgizmo/PKGBUILD b/pcr/drumgizmo/PKGBUILD
new file mode 100644
index 000000000..d423a6f82
--- /dev/null
+++ b/pcr/drumgizmo/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=drumgizmo
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="A drum LV2 plugin and stand-alone application"
+arch=('i686' 'x86_64')
+url="http://www.drumgizmo.org/"
+license=('GPL')
+groups=('lv2-plugins')
+depends=('lv2' 'libsmf' 'libao' 'jack' 'qt4')
+options=('!libtool')
+source=("${url}releases/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz")
+md5sums=('a0aeef33f74792afd528bec21b8d0f6b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --enable-static=no
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/drumkv1/PKGBUILD b/pcr/drumkv1/PKGBUILD
new file mode 100644
index 000000000..2f2841e11
--- /dev/null
+++ b/pcr/drumkv1/PKGBUILD
@@ -0,0 +1,30 @@
+
+pkgname=drumkv1
+pkgver=0.3.4
+pkgrel=1
+pkgdesc="An old-school drum-kit sampler"
+arch=(i686 x86_64)
+url="http://$pkgname.sourceforge.net/$pkgname-index.html"
+license=('GPL')
+groups=('lv2-plugins')
+depends=('jack' 'liblo' 'lv2' 'qt4' 'shared-mime-info')
+install="$pkgname.install"
+source=("http://download.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('d94b9c5b21bfdbf0f57cf811273b1fcd')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # x86_64 lib path fix
+ sed -i "s/lib64/lib/" src/src_lv2.pro
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/drumkv1/drumkv1.install b/pcr/drumkv1/drumkv1.install
new file mode 100644
index 000000000..ec1a84bbb
--- /dev/null
+++ b/pcr/drumkv1/drumkv1.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ update-mime-database usr/share/mime
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/dsh/PKGBUILD b/pcr/dsh/PKGBUILD
new file mode 100644
index 000000000..605598100
--- /dev/null
+++ b/pcr/dsh/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: SkiltZ <skiltz@free.fr>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=dsh
+pkgver=0.25.9
+pkgrel=2
+pkgdesc="Distributed shell. Runs command through rsh or ssh on a cluster of machines."
+arch=(i686 x86_64)
+depends=('libdshconfig')
+url="http://www.netfort.gr.jp/~dancer/software/dsh.html.en"
+license=('GPL')
+source=(http://www.netfort.gr.jp/~dancer/software/downloads/dsh-$pkgver.tar.gz)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir='/etc'
+ make || return 1
+ make prefix=$startdir/pkg/usr sysconfdir=$startdir/pkg/etc install
+ }
diff --git a/pcr/dswm/PKGBUILD b/pcr/dswm/PKGBUILD
new file mode 100644
index 000000000..122e62b9a
--- /dev/null
+++ b/pcr/dswm/PKGBUILD
@@ -0,0 +1,41 @@
+pkgname=dswm
+pkgver=0.0.5r2
+pkgrel=5
+pkgdesc="Deep Space Window Manager - tiling window manager, oriented for good usability and good emacs integration (StumpWM-based)."
+url="http://sourceforge.net/projects/dswm/"
+arch=('x86_64' 'i686')
+license=('GPLv2')
+depends=('sbcl' 'clx-git' 'cl-ppcre')
+optdepends=('emacs')
+makedepends=('autoconf')
+conflicts=()
+replaces=()
+backup=()
+install='dswm.install'
+options=(!strip)
+source=("http://sourceforge.net/projects/${pkgname}/files/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('90f95f7ecfbf964f8ed5aa629959bc1f')
+
+build() {
+ mkdir -p "${pkgdir}"/usr/share/xsessions/ # patch for specific original makefile
+ cd $startdir/src/$pkgname-$pkgver
+ sed -i 's/\@prefix\@//g' dswm.lisp.in
+ autoconf
+ ./configure --prefix=/usr \
+ --with-ppcre=/usr/share/common-lisp/source/cl-ppcre
+
+# this is necesary since the AUR packages do not modify the asdf's registry by default
+ _sbcl_bopt="sbcl_BUILDOPTS=--eval \"(require :asdf)\" \
+--eval \"(pushnew #p\\\"/usr/share/common-lisp/systems/\\\" asdf:*central-registry* :test #'equal)\" \
+--eval \"(asdf:operate 'asdf:load-op 'clx)\" \
+--load ./make-image.lisp"
+ _sbcl_iopt="sbcl_INFOOPTS=--eval \"(require 'asdf)\" \
+--eval \"(pushnew #p\\\"/usr/share/common-lisp/systems/\\\" asdf:*central-registry* :test #'equal)\" \
+--eval \"(asdf:operate 'asdf:load-op 'clx)\" \
+--eval \"(require 'dswm)\" \
+--load ./manual.lisp \
+--eval \"(progn (dswm::generate-manual) (sb-ext:quit))\""
+
+ make "$_sbcl_bopt" "$_sbcl_iopt"
+ make destdir="${pkgdir}" install
+}
diff --git a/pcr/dswm/dswm.install b/pcr/dswm/dswm.install
new file mode 100644
index 000000000..0077d0018
--- /dev/null
+++ b/pcr/dswm/dswm.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(dswm.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/pcr/eigen3/PKGBUILD b/pcr/eigen3/PKGBUILD
new file mode 100644
index 000000000..240b55f8a
--- /dev/null
+++ b/pcr/eigen3/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Chirantan Ekbote <chirantan.ekbote at gmail.com>
+# Contributor: Kringel
+# This PKGBUILD is a modified version of eigen 2.x in extra/eigen
+# Maintainer: Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.IO>
+
+pkgname=eigen3
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Eigen is a lightweight C++ template library for vector and matrix math, a.k.a. linear algebra."
+arch=('any')
+url='http://eigen.tuxfamily.org'
+license=('MPL2')
+makedepends=('cmake' 'pkgconfig')
+source=("${pkgname}-${pkgver}.tar.bz2::http://bitbucket.org/eigen/eigen/get/${pkgver}.tar.bz2")
+sha512sums=ab30077c845b09aa3f652e4695f1e256c7c7ff1c0f850e38cf9867ab9659ec6008fa646c2796796ca718b996764e7e3d2811a2c6a24abacbe50a2513fc670ca5
+
+build() {
+ mkdir -p "$srcdir"/build
+ cd "$srcdir"/build
+ cmake ../eigen-eigen-* \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+}
+
+package() {
+ cd "$srcdir"/build
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/emacs-bzr/PKGBUILD b/pcr/emacs-bzr/PKGBUILD
new file mode 100644
index 000000000..7383e3490
--- /dev/null
+++ b/pcr/emacs-bzr/PKGBUILD
@@ -0,0 +1,93 @@
+# Contributor: Neil Santos <nsantos16+aur@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+# Compile against Gtk+ 2.x, instead of the default 3.x
+_opt_use_gtk2="n"
+# Emacs is leaking like a sieve on my box with the default values;
+# this should be the number of bytes Emacs should allocate for pure
+# storage (see Elisp manual). Default as of writing this is 1.62 megs
+# (not the final value; there are still calculations done on it).
+_opt_puresize="2000000"
+
+pkgname=emacs-bzr
+pkgver=110380
+pkgrel=1
+pkgdesc='The extensible, customizable, self-documenting real-time display editor from its official Bzr repository'
+arch=('i686' 'x86_64')
+url='http://www.gnu.org/software/emacs/'
+license=('GPL3')
+if [[ $_opt_use_gtk2 = "y" ]]; then
+ depends=('dbus-core' 'desktop-file-utils' 'libpng' 'libtiff' 'librsvg' 'giflib' 'gtk2' 'libxpm' 'libjpeg>=7' 'hicolor-icon-theme')
+else
+ depends=('dbus-core' 'desktop-file-utils' 'libpng' 'libtiff' 'librsvg' 'giflib' 'gtk3' 'libxpm' 'libjpeg>=7' 'hicolor-icon-theme')
+fi
+
+makedepends=('bzr' 'pkgconfig' 'texinfo')
+provides=("emacs=$pkgver")
+conflicts=('emacs' 'emacs-nox' 'emacs-otf' 'emacs-cvs' 'emacs-git')
+install=$pkgname.install
+
+_bzrtrunk='http://bzr.savannah.gnu.org/r/emacs/trunk'
+_bzrmod='emacs'
+
+build() {
+ cd $srcdir
+ msg "Connecting to Savannah..."
+
+ if [[ -d $_bzrmod/.bzr ]]; then
+ (cd $_bzrmod && bzr update -v && cd ..)
+ msg "Local checkout updated or server timeout"
+ else
+ bzr co --lightweight -v $_bzrtrunk $_bzrmod
+ msg "Checkout done or server timeout"
+ fi
+
+ cp -urT $_bzrmod/ ${_bzrmod}-build
+ cd ${_bzrmod}-build
+ msg "Adjusting BASE_PURESIZE to avoid possible leaks"
+ sed -i -e "s/\(define BASE_PURESIZE\s*(*\)[0-9]*/\1${_opt_puresize}/" src/puresize.h
+
+ msg "Bootstrapping Emacs Lisp files..."
+ make bootstrap
+
+ mandir=/usr/share/man
+ msg "Starting make..."
+ if [[ $_opt_use_gtk2 = "y" ]]; then
+ ./autogen.sh && ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --mandir=${mandir} \
+ --without-sound \
+ --with-xft \
+ --with-x-toolkit=gtk2
+ else
+ ./autogen.sh && ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --mandir=${mandir} \
+ --without-sound \
+ --with-xft \
+ --with-x-toolkit=gtk3
+ fi
+ make
+ make DESTDIR=${pkgdir} install
+
+ msg "Cleaning up..."
+ mv $pkgdir/usr/bin/{ctags,ctags.emacs}
+ mv $pkgdir/usr/bin/{etags,etags.emacs}
+ mv $pkgdir${mandir}/man1/{etags.1,etags.emacs.1}.gz
+ mv $pkgdir${mandir}/man1/{ctags.1,ctags.emacs.1}.gz
+
+ # This is mostly superfluous, and conflicts with texinfo
+ rm $pkgdir/usr/share/info/info.info.gz
+ rm $pkgdir/usr/share/info/dir
+
+ find $pkgdir/usr/share/emacs -type d -exec chmod 755 {} \;
+ find $pkgdir/usr/share/emacs -exec chown root.root {} \;
+ chmod 775 $pkgdir/var/games
+ chmod 775 $pkgdir/var/games/emacs
+ chmod 664 $pkgdir/var/games/emacs/*
+ chown -R root:50 $pkgdir/var/games
+}
diff --git a/pcr/emacs-bzr/emacs-bzr.install b/pcr/emacs-bzr/emacs-bzr.install
new file mode 100644
index 000000000..35d11bd56
--- /dev/null
+++ b/pcr/emacs-bzr/emacs-bzr.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 ert eshell
+eudc flymake forms gnus idlwave 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.info.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.info.gz ${INFO_DIR}/dir 2> /dev/null
+ done
+}
diff --git a/pcr/emacs-color-theme/PKGBUILD b/pcr/emacs-color-theme/PKGBUILD
new file mode 100644
index 000000000..53ad1bf24
--- /dev/null
+++ b/pcr/emacs-color-theme/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 59903 2011-12-02 11:18:13Z andrea $
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Cesar Romero <cesar.romero@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=emacs-color-theme
+pkgver=6.6.0
+pkgrel=8
+arch=('any')
+pkgdesc="Emacs color themes"
+url="https://gna.org/projects/color-theme"
+license=('GPL2')
+depends=('emacs' 'xorg-fonts-100dpi')
+makedepends=('emacs')
+provides=('color-theme')
+replaces=('color-theme')
+install=$pkgname.install
+source=(http://download.savannah.gnu.org/releases/color-theme/color-theme-$pkgver.tar.gz
+ 'gnus-bug.diff'
+ 'fix-build.patch')
+md5sums=('a4de73c236a6af11ab378bfe18dabcca'
+ '8b7ee1c4c6f80606f22c3de448ec92e8'
+ '25b92ea246716689502ebe050322a60a')
+
+build() {
+ cd $srcdir/color-theme-$pkgver
+
+ patch -p1 -i $srcdir/gnus-bug.diff
+ patch -p0 -i $srcdir/fix-build.patch
+
+ make
+}
+
+package() {
+ cd $srcdir/color-theme-$pkgver
+ install -Dm644 color-theme.el \
+ $pkgdir/usr/share/emacs/site-lisp/color-theme.el
+ install -Dm644 themes/color-theme-library.el \
+ $pkgdir/usr/share/emacs/site-lisp/themes/color-theme-library.el
+ install -Dm644 themes/color-theme-example.el \
+ $pkgdir/usr/share/emacs/site-lisp/themes/color-theme-example.el
+ install -Dm644 color-theme.elc \
+ $pkgdir/usr/share/emacs/site-lisp/color-theme.elc
+ install -Dm644 themes/color-theme-library.elc \
+ $pkgdir/usr/share/emacs/site-lisp/themes/color-theme-library.elc
+ install -Dm644 themes/color-theme-example.elc \
+ $pkgdir/usr/share/emacs/site-lisp/themes/color-theme-example.elc
+}
diff --git a/pcr/emacs-color-theme/emacs-color-theme.install b/pcr/emacs-color-theme/emacs-color-theme.install
new file mode 100644
index 000000000..b1de09f76
--- /dev/null
+++ b/pcr/emacs-color-theme/emacs-color-theme.install
@@ -0,0 +1,9 @@
+# arg 1: the new package version
+post_install() {
+echo "# To start using color-theme add this to your .emacs:"
+echo "# (require 'color-theme)"
+}
+
+post_upgrade() {
+ post_install
+} \ No newline at end of file
diff --git a/pcr/emacs-color-theme/fix-build.patch b/pcr/emacs-color-theme/fix-build.patch
new file mode 100644
index 000000000..cadb1ae05
--- /dev/null
+++ b/pcr/emacs-color-theme/fix-build.patch
@@ -0,0 +1,19 @@
+--- Makefile.orig 2009-05-15 18:22:49.000000000 +0200
++++ Makefile 2009-05-16 08:59:36.000000000 +0200
+@@ -15,6 +15,7 @@
+ TARGET = $(patsubst %.el,%.elc,$(SPECIAL) $(SOURCE))
+ MANUAL = color-theme
+ MISC = AUTHORS COPYING ChangeLog Makefile.defs Makefile $(AUTOLOADFILE).in
++LOADPATH = "$(shell pwd)" "$(shell pwd)/themes"
+ #AUTHORS CREDITS HISTORY NEWS README Makefile ChangeLog \
+ #ChangeLog.2005 ChangeLog.2004 ChangeLog.2003 ChangeLog.2002 \
+ #ChangeLog.2001 servers.pl color-theme-auto.in color-theme.texi
+@@ -47,7 +48,7 @@
+
+ %.elc: %.el
+ @$(EMACS) $(OPTIONCOMPILE) \
+- --eval '(setq load-path (cons "." load-path))' \
++ --eval '(setq load-path (append load-path (list $(LOADPATH))))' \
+ -f batch-byte-compile $<
+
+ %.info: %.texi
diff --git a/pcr/emacs-color-theme/gnus-bug.diff b/pcr/emacs-color-theme/gnus-bug.diff
new file mode 100644
index 000000000..9d227df56
--- /dev/null
+++ b/pcr/emacs-color-theme/gnus-bug.diff
@@ -0,0 +1,28 @@
+diff -Naur color-theme-6.6.0.orig/color-theme.el color-theme-6.6.0.new/color-theme.el
+--- color-theme-6.6.0.orig/color-theme.el 2011-11-18 01:17:29.000000000 +0100
++++ color-theme-6.6.0.new/color-theme.el 2011-11-18 01:24:07.000000000 +0100
+@@ -73,9 +73,10 @@
+ "Non-nil if running XEmacs.")
+
+ ;; Add this since it appears to miss in emacs-2x
+-(or (fboundp 'replace-in-string)
+- (defun replace-in-string (target old new)
+- (replace-regexp-in-string old new target)))
++(if (fboundp 'replace-in-string)
++ (defalias 'color-theme-replace-in-string 'replace-in-string)
++ (defsubst color-theme-replace-in-string (target old new &optional literal)
++ (replace-regexp-in-string old new target nil literal)))
+
+ ;; face-attr-construct has a problem in Emacs 20.7 and older when
+ ;; dealing with inverse-video faces. Here is a short test to check
+@@ -1626,8 +1627,8 @@
+ (add-to-list 'color-themes
+ (list ',n
+ (upcase-initials
+- (replace-in-string
+- (replace-in-string
++ (color-theme-replace-in-string
++ (color-theme-replace-in-string
+ (symbol-name ',n) "^color-theme-" "") "-" " "))
+ ,author))
+ (defun ,n ()
diff --git a/pcr/emacs-elib/PKGBUILD b/pcr/emacs-elib/PKGBUILD
new file mode 100644
index 000000000..22946859e
--- /dev/null
+++ b/pcr/emacs-elib/PKGBUILD
@@ -0,0 +1,51 @@
+# PKGBUILD for Emacs Lisp Library (elib)
+# Contributor: J. Bromley <jbromley@gmail.com>
+# $Id: PKGBUILD,v e6d455730f95 2009/12/03 05:38:28 jbromley $
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=emacs-elib
+_pkgname=elib
+pkgver=1.0
+pkgrel=3
+pkgdesc="The Emacs Lisp library"
+arch=('i686' 'x86_64')
+url="http://jdee.sourceforge.net/"
+license="GPL"
+depends=('emacs')
+makedepends=('texinfo' 'gzip')
+conflicts=()
+replaces=()
+backup=()
+install="$pkgname.install"
+source=(http://downloads.sourceforge.net/project/jdee/jdee/Dependencies/elib.tar.gz)
+md5sums=('4feb380f2e3b12eb5500dfe6714e349d')
+
+build() {
+mv $startdir/src/pub/comp/os/unix/gnu/elib/$_pkgname-$pkgver.tar.gz $startdir/src
+cd $startdir/src/
+tar -xzf $_pkgname-$pkgver.tar.gz
+cd $startdir/src/$_pkgname-$pkgver
+
+# Fix up paths and old --infodir flag.
+sed -i 's!/usr/local!/usr!' Makefile
+sed -i 's!/info!/share/info!' Makefile
+sed -i 's!--infodir!--info-dir!g' Makefile
+
+# Patch to get rid of deprecated code.
+patch -p1 < $startdir/elib-deprecation.patch
+
+# Create directories for installation
+mkdir -p $startdir/pkg/usr/share/info
+mkdir -p $startdir/pkg/usr/share/emacs/site-lisp
+make || return 1
+
+# Install the compile package and gzip info file.
+make prefix=$startdir/pkg/usr install
+find $startdir/pkg -name dir -exec rm '{}' \;
+mv $startdir/pkg/usr/share/info/elib.info $startdir/pkg/usr/share/info/elib
+gzip $startdir/pkg/usr/share/info/elib
+}
+
+# Local Variables:
+# mode: shell-script
+# End:
diff --git a/pcr/emacs-elib/elib-deprecation.patch b/pcr/emacs-elib/elib-deprecation.patch
new file mode 100644
index 000000000..ce8aedb6f
--- /dev/null
+++ b/pcr/emacs-elib/elib-deprecation.patch
@@ -0,0 +1,461 @@
+diff -ub elib-1.0.orig/avltree.el elib-1.0/avltree.el
+--- elib-1.0.orig/avltree.el 1995-12-10 16:50:53.000000000 -0800
++++ elib-1.0/avltree.el 2008-06-22 15:31:48.000000000 -0700
+@@ -69,19 +69,19 @@
+ (defmacro elib-avl-node-create (left right data balance)
+
+ ;; Create and return an avl-tree node.
+- (` (vector (, left) (, right) (, data) (, balance))))
++ `(vector ,left ,right ,data ,balance))
+
+
+ (defmacro elib-avl-node-balance (node)
+
+ ;; Return the balance field of a node.
+- (` (aref (, node) 3)))
++ `(aref ,node 3))
+
+
+ (defmacro elib-avl-node-set-balance (node newbal)
+
+ ;; Set the balance field of a node.
+- (` (aset (, node) 3 (, newbal))))
++ `(aset ,node 3 ,newbal))
+
+
+
+@@ -96,20 +96,20 @@
+ (defmacro elib-avl-root (tree)
+
+ ;; Return the root node for an avl-tree. INTERNAL USE ONLY.
+- (` (elib-node-left (car (cdr (, tree))))))
++ `(elib-node-left (car (cdr ,tree))))
+
+
+ (defmacro elib-avl-dummyroot (tree)
+
+ ;; Return the dummy node of an avl-tree. INTERNAL USE ONLY.
+
+- (` (car (cdr (, tree)))))
++ `(car (cdr ,tree)))
+
+
+ (defmacro elib-avl-cmpfun (tree)
+
+ ;; Return the compare function of AVL tree TREE. INTERNAL USE ONLY.
+- (` (cdr (cdr (, tree)))))
++ `(cdr (cdr ,tree)))
+
+
+ ;; ----------------------------------------------------------------
+@@ -412,20 +412,20 @@
+ ;; INTERNAL USE ONLY.
+
+ (let ((node root)
+- (stack (elib-stack-create))
++ (stack (stack-create))
+ (go-left t))
+- (elib-stack-push stack nil)
++ (stack-push stack nil)
+ (while node
+ (if (and go-left
+ (elib-node-left node))
+ (progn ; Do the left subtree first.
+- (elib-stack-push stack node)
++ (stack-push stack node)
+ (setq node (elib-node-left node)))
+ (funcall map-function node) ; Apply the function...
+ (if (elib-node-right node) ; and do the right subtree.
+ (setq node (elib-node-right node)
+ go-left t)
+- (setq node (elib-stack-pop stack)
++ (setq node (stack-pop stack)
+ go-left nil))))))
+
+
+diff -ub elib-1.0.orig/bintree.el elib-1.0/bintree.el
+--- elib-1.0.orig/bintree.el 1995-12-10 16:50:53.000000000 -0800
++++ elib-1.0/bintree.el 2008-06-22 15:28:45.000000000 -0700
+@@ -64,19 +64,19 @@
+ (defmacro elib-bintree-root (tree)
+
+ ;; Return the root node for a binary tree. INTERNAL USE ONLY.
+- (` (elib-node-left (car (cdr (, tree))))))
++ `(elib-node-left (car (cdr ,tree))))
+
+
+ (defmacro elib-bintree-dummyroot (tree)
+
+ ;; Return the dummy node of a binary tree. INTERNAL USE ONLY.
+- (` (car (cdr (, tree)))))
++ `(car (cdr ,tree)))
+
+
+ (defmacro elib-bintree-cmpfun (tree)
+
+ ;; Return the compare function of binary tree TREE. INTERNAL USE ONLY."
+- (` (cdr (cdr (, tree)))))
++ `(cdr (cdr ,tree)))
+
+
+
+@@ -90,20 +90,20 @@
+ ;; INTERNAL USE ONLY."
+
+ (let ((node root)
+- (stack (elib-stack-create))
++ (stack (stack-create))
+ (go-left t))
+- (elib-stack-push stack nil)
++ (stack-push stack nil)
+ (while node
+ (if (and go-left
+ (elib-node-left node))
+ (progn ; Do the left subtree first.
+- (elib-stack-push stack node)
++ (stack-push stack node)
+ (setq node (elib-node-left node)))
+ (funcall map-function node) ; Apply the function...
+ (if (elib-node-right node) ; and do the right subtree.
+ (setq node (elib-node-right node)
+ go-left t)
+- (setq node (elib-stack-pop stack)
++ (setq node (stack-pop stack)
+ go-left nil))))))
+
+
+diff -ub elib-1.0.orig/cookie.el elib-1.0/cookie.el
+--- elib-1.0.orig/cookie.el 1995-12-10 16:50:54.000000000 -0800
++++ elib-1.0/cookie.el 2008-06-22 15:38:55.000000000 -0700
+@@ -139,13 +139,13 @@
+
+ (let ((old-buffer (make-symbol "old-buffer"))
+ (hnd (make-symbol "collection")))
+- (` (let* (((, old-buffer) (current-buffer))
+- ((, hnd) (, collection))
+- (dll (elib-collection->dll (, hnd))))
+- (set-buffer (elib-collection->buffer (, hnd)))
++ `(let* ((,old-buffer (current-buffer))
++ (,hnd ,collection)
++ (dll (elib-collection->dll ,hnd)))
++ (set-buffer (elib-collection->buffer ,hnd))
+ (unwind-protect
+- (progn (,@ forms))
+- (set-buffer (, old-buffer)))))))
++ (progn ,@forms)
++ (set-buffer ,old-buffer)))))
+
+
+ (put 'elib-set-buffer-bind-dll-let* 'lisp-indent-hook 2)
+@@ -160,14 +160,14 @@
+
+ (let ((old-buffer (make-symbol "old-buffer"))
+ (hnd (make-symbol "collection")))
+- (` (let* (((, old-buffer) (current-buffer))
+- ((, hnd) (, collection))
+- (dll (elib-collection->dll (, hnd)))
+- (,@ varlist))
+- (set-buffer (elib-collection->buffer (, hnd)))
++ `(let* ((,old-buffer (current-buffer))
++ (,hnd ,collection)
++ (dll (elib-collection->dll ,hnd))
++ ,@varlist)
++ (set-buffer (elib-collection->buffer ,hnd))
+ (unwind-protect
+- (progn (,@ forms))
+- (set-buffer (, old-buffer)))))))
++ (progn ,@forms)
++ (set-buffer ,old-buffer)))))
+
+
+ (defmacro elib-filter-hf (collection tin)
+@@ -179,12 +179,12 @@
+
+ (let ((tempvar (make-symbol "tin"))
+ (tmpcoll (make-symbol "tmpcollection")))
+- (` (let (((, tempvar) (, tin))
+- ((, tmpcoll) (, collection)))
+- (if (or (eq (, tempvar) (elib-collection->header (, tmpcoll)))
+- (eq (, tempvar) (elib-collection->footer (, tmpcoll))))
++ `(let ((,tempvar ,tin)
++ (,tmpcoll ,collection))
++ (if (or (eq ,tempvar (elib-collection->header ,tmpcoll))
++ (eq ,tempvar (elib-collection->footer ,tmpcoll)))
+ nil
+- (, tempvar))))))
++ ,tempvar))))
+
+
+
+diff -ub elib-1.0.orig/dll-debug.el elib-1.0/dll-debug.el
+--- elib-1.0.orig/dll-debug.el 1995-12-10 16:50:54.000000000 -0800
++++ elib-1.0/dll-debug.el 2008-06-22 15:25:14.000000000 -0700
+@@ -74,9 +74,9 @@
+ (defmacro dll-insert-after (node element)
+ (let ((node-v (make-symbol "node"))
+ (element-v (make-symbol "element")))
+- (` (let (((, node-v) (, node))
+- ((, element-v) (, element)))
+- (setcdr (, node-v) (cons (, element-v) (cdr (, node-v))))))))
++ `(let ((,node-v ,node)
++ (,element-v ,element))
++ (setcdr ,node-v (cons ,element-v (cdr ,node-v))))))
+
+ ;;; ===================================================================
+ ;;; The public functions which operate on doubly linked lists.
+@@ -86,7 +86,7 @@
+ "Get the element of a NODE in a doubly linked list DLL.
+ Args: DLL NODE."
+
+- (` (car (, node))))
++ `(car ,node))
+
+
+ (defun dll-create ()
+diff -ub elib-1.0.orig/dll.el elib-1.0/dll.el
+--- elib-1.0.orig/dll.el 1995-12-10 16:50:54.000000000 -0800
++++ elib-1.0/dll.el 2008-06-22 15:22:58.000000000 -0700
+@@ -89,7 +89,7 @@
+ "Get the element of a NODE in a doubly linked list DLL.
+ Args: DLL NODE."
+
+- (` (elib-node-data (, node))))
++ `(elib-node-data ,node))
+
+
+ (defun dll-create ()
+diff -ub elib-1.0.orig/elib-node.el elib-1.0/elib-node.el
+--- elib-1.0.orig/elib-node.el 1995-12-10 16:50:53.000000000 -0800
++++ elib-1.0/elib-node.el 2008-06-22 15:21:46.000000000 -0700
+@@ -49,42 +49,42 @@
+ (defmacro elib-node-create (left right data)
+
+ ;; Create a tree node from LEFT, RIGHT and DATA.
+- (` (vector (, left) (, right) (, data))))
++ `(vector ,left ,right ,data))
+
+
+ (defmacro elib-node-left (node)
+
+ ;; Return the left pointer of NODE.
+- (` (aref (, node) 0)))
++ `(aref ,node 0))
+
+
+ (defmacro elib-node-right (node)
+
+ ;; Return the right pointer of NODE.
+- (` (aref (, node) 1)))
++ `(aref ,node 1))
+
+
+ (defmacro elib-node-data (node)
+
+ ;; Return the data of NODE.
+- (` (aref (, node) 2)))
++ `(aref ,node 2))
+
+
+ (defmacro elib-node-set-left (node newleft)
+
+ ;; Set the left pointer of NODE to NEWLEFT.
+- (` (aset (, node) 0 (, newleft))))
++ `(aset ,node 0 ,newleft))
+
+
+ (defmacro elib-node-set-right (node newright)
+
+ ;; Set the right pointer of NODE to NEWRIGHT.
+- (` (aset (, node) 1 (, newright))))
++ `(aset ,node 1 ,newright))
+
+
+ (defmacro elib-node-set-data (node newdata)
+ ;; Set the data of NODE to NEWDATA.
+- (` (aset (, node) 2 (, newdata))))
++ `(aset ,node 2 ,newdata))
+
+
+
+@@ -94,7 +94,7 @@
+ ;;
+ ;; NODE is the node, and BRANCH is the branch.
+ ;; 0 for left pointer, 1 for right pointer and 2 for the data."
+- (` (aref (, node) (, branch))))
++ `(aref ,node ,branch))
+
+
+ (defmacro elib-node-set-branch (node branch newval)
+@@ -104,6 +104,6 @@
+ ;; NODE is the node, and BRANCH is the branch.
+ ;; 0 for left pointer, 1 for the right pointer and 2 for the data.
+ ;; NEWVAL is new value of the branch."
+- (` (aset (, node) (, branch) (, newval))))
++ `(aset ,node ,branch ,newval))
+
+ ;;; elib-node.el ends here.
+Only in elib-1.0: elib.info
+diff -ub elib-1.0.orig/queue-m.el elib-1.0/queue-m.el
+--- elib-1.0.orig/queue-m.el 1995-12-10 16:50:53.000000000 -0800
++++ elib-1.0/queue-m.el 2008-06-22 15:13:41.000000000 -0700
+@@ -54,12 +54,12 @@
+
+ (defmacro queue-create ()
+ "Create an empty fifo queue."
+- (` (cons 'QUEUE (cons nil nil))))
++ `(cons 'QUEUE (cons nil nil)))
+
+
+ (defmacro queue-p (queue)
+ "Return t if QUEUE is a queue, otherwise return nil."
+- (` (eq (car-safe (, queue)) 'QUEUE)))
++ `(eq (car-safe ,queue) 'QUEUE))
+
+
+ (defun queue-enqueue (queue element)
+@@ -91,13 +91,13 @@
+
+ (defmacro queue-empty (queue)
+ "Return t if QUEUE is empty, otherwise return nil."
+- (` (null (car (cdr (, queue))))))
++ `(null (car (cdr ,queue))))
+
+
+ (defmacro queue-first (queue)
+ "Return the first element of QUEUE or nil if it is empty.
+ The element is not removed."
+- (` (car-safe (car (cdr (, queue))))))
++ `(car-safe (car (cdr ,queue))))
+
+
+ (defmacro queue-nth (queue n)
+@@ -106,18 +106,18 @@
+ If the length of the queue is less than N, return nil.
+
+ The oldest element (the first one) has number 0."
+- (` (nth (, n) (car (cdr (, queue))))))
++ `(nth ,n (car (cdr ,queue))))
+
+
+ (defmacro queue-last (queue)
+ "Return the last element of QUEUE or nil if it is empty."
+- (` (car-safe (cdr (cdr (, queue))))))
++ `(car-safe (cdr (cdr ,queue))))
+
+
+ (defmacro queue-all (queue)
+ "Return a list of all elements of QUEUE or nil if it is empty.
+ The oldest element in the queue is the first in the list."
+- (` (car (cdr (, queue)))))
++ `(car (cdr ,queue)))
+
+
+ (defun queue-copy (queue)
+@@ -131,11 +131,11 @@
+
+ (defmacro queue-length (queue)
+ "Return the number of elements in QUEUE."
+- (` (length (car (cdr (, queue))))))
++ `(length (car (cdr ,queue))))
+
+
+ (defmacro queue-clear (queue)
+ "Remove all elements from QUEUE."
+- (` (setcdr (, queue) (cons nil nil))))
++ `(setcdr ,queue (cons nil nil)))
+
+ ;;; queue-m.el ends here
+diff -ub elib-1.0.orig/read.el elib-1.0/read.el
+--- elib-1.0.orig/read.el 1995-12-10 16:50:54.000000000 -0800
++++ elib-1.0/read.el 2008-06-22 15:40:38.000000000 -0700
+@@ -61,7 +61,7 @@
+ numdefault)
+ (setq number numdefault))
+ ((string-match "\\`[0-9]+\\'" numstr)
+- (setq number (string-to-int numstr)))
++ (setq number (string-to-number numstr)))
+ (t (beep))))
+ number))
+
+diff -ub elib-1.0.orig/stack-m.el elib-1.0/stack-m.el
+--- elib-1.0.orig/stack-m.el 1995-12-10 16:50:52.000000000 -0800
++++ elib-1.0/stack-m.el 2008-06-22 15:10:48.000000000 -0700
+@@ -51,36 +51,36 @@
+
+ (defmacro stack-create ()
+ "Create an empty lifo stack."
+- (` (cons 'STACK nil)))
++ `(cons 'STACK nil))
+
+
+ (defmacro stack-p (stack)
+ "Return t if STACK is a stack, otherwise return nil."
+- (` (eq (car-safe (, stack)) 'STACK)))
++ `(eq (car-safe ,stack) 'STACK))
+
+
+ (defmacro stack-push (stack element)
+ "Push an element onto the stack.
+ Args: STACK ELEMENT"
+- (` (setcdr (, stack) (cons (, element) (cdr (, stack))))))
++ `(setcdr ,stack (cons ,element (cdr ,stack))))
+
+
+ (defmacro stack-pop (stack)
+ "Remove the topmost element from STACK and return it.
+ If the stack is empty, return nil."
+- (` (prog1
+- (car-safe (cdr (, stack)))
+- (setcdr (, stack) (cdr-safe (cdr (, stack)))))))
++ `(prog1
++ (car-safe (cdr ,stack))
++ (setcdr ,stack (cdr-safe (cdr ,stack)))))
+
+
+ (defmacro stack-empty (stack)
+ "Return t if STACK is empty, otherwise return nil."
+- (` (null (cdr (, stack)))))
++ `(null (cdr ,stack)))
+
+
+ (defmacro stack-top (stack)
+ "Return the topmost element of STACK or nil if it is empty."
+- (` (car-safe (cdr (, stack)))))
++ `(car-safe (cdr ,stack)))
+
+
+ (defmacro stack-nth (stack n)
+@@ -89,28 +89,28 @@
+ If the length of the stack is less than N, return nil.
+
+ The top stack element has number 0."
+- (` (nth (, n) (cdr (, stack)))))
++ `(nth ,n (cdr ,stack)))
+
+
+ (defmacro stack-all (stack)
+ "Return a list of all entries in STACK.
+ The element last pushed is first in the list."
+- (` (cdr (, stack))))
++ `(cdr ,stack))
+
+
+ (defmacro stack-copy (stack)
+ "Return a copy of STACK.
+ All entries in STACK are also copied."
+- (` (cons 'STACK (copy-sequence (cdr (, stack))))))
++ `(cons 'STACK (copy-sequence (cdr ,stack))))
+
+
+ (defmacro stack-length (stack)
+ "Return the number of elements on STACK."
+- (` (length (cdr (, stack)))))
++ `(length (cdr ,stack)))
+
+
+ (defmacro stack-clear (stack)
+ "Remove all elements from STACK."
+- (` (setcdr (, stack) nil)))
++ `(setcdr ,stack nil))
+
+ ;;; stack-m.el ends here
diff --git a/pcr/emacs-elib/emacs-elib.install b/pcr/emacs-elib/emacs-elib.install
new file mode 100644
index 000000000..53a01f9f6
--- /dev/null
+++ b/pcr/emacs-elib/emacs-elib.install
@@ -0,0 +1,34 @@
+# emacs-elib.install
+# Install info file and show configuration info.
+# $Id: emacs-elib.install,v e6d455730f95 2008/06/23 05:55:28 jbromley $
+post_install () {
+if sh -c 'install-info --version' > /dev/nul 2>&1; then
+ if [ -f /usr/share/info/elib.gz ]; then
+ cd /usr/share/info
+ install-info --info-dir=/usr/share/info --section=Emacs --name=Elib \
+ --description=' The Emacs Lisp Library' elib.gz
+ fi
+fi
+
+echo ""
+echo "==> To use elib, add the following Lisp to your ~/.emacs file:"
+echo "==> "
+echo "==> (setq load-path (append (list \"/usr/share/emacs/site-lisp/elib\")"
+echo "==> load-path))"
+echo "==> "
+echo "==> You do not need this if you have a subdirs.el in your Emacs site-lisp"
+echo "==> directory."
+echo ""
+}
+
+post_upgrade () {
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
+
+# Local Variables:
+# mode: shell-script
+# End:
diff --git a/pcr/emacs-jabber/PKGBUILD b/pcr/emacs-jabber/PKGBUILD
new file mode 100644
index 000000000..0b2170261
--- /dev/null
+++ b/pcr/emacs-jabber/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=emacs-jabber
+pkgver=0.8.91
+pkgrel=2
+pkgdesc="Jabber.el: a minimal jabber client for emacs"
+url=http://emacs-jabber.sourceforge.net
+arch=('any')
+license=('GPL')
+depends=('emacs' 'gnutls' 'gconf')
+install=jabber.el.install
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.lzma)
+md5sums=('739506fbc498386989590cd7733dd47a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/emacs-jabber \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=$pkgdir install
+}
diff --git a/pcr/emacs-jabber/jabber.el.install b/pcr/emacs-jabber/jabber.el.install
new file mode 100644
index 000000000..556888995
--- /dev/null
+++ b/pcr/emacs-jabber/jabber.el.install
@@ -0,0 +1,27 @@
+infodir=/usr/share/info
+filelist=(jabber.info.gz)
+pkgname=emacs-jabber
+
+pre_upgrade() {
+ /usr/sbin/gconfpkg --uninstall $pkgname
+}
+
+post_install() {
+ /usr/sbin/gconfpkg --install $pkgname
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+ echo "Please add the following line to your .emacs."
+ echo "(require 'jabber)"
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ /usr/sbin/gconfpkg --uninstall $pkgname
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/pcr/emacs-js2-mode/PKGBUILD b/pcr/emacs-js2-mode/PKGBUILD
new file mode 100644
index 000000000..7a73d3f40
--- /dev/null
+++ b/pcr/emacs-js2-mode/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Hauke Wesselmann <hauke@h-dawg.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=emacs-js2-mode
+pkgver=20090723b
+pkgrel=1
+pkgdesc="An improved JavaScript mode for GNU Emacs"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/js2-mode/"
+license=('GPL2')
+depends=('emacs')
+source=(http://js2-mode.googlecode.com/files/js2-$pkgver.el)
+md5sums=('9109dca8b624edb8358fb9938a03d785')
+
+build() {
+ cd $startdir/src/
+ emacs -batch -q -f batch-byte-compile js2-$pkgver.el
+ install -Dm644 $srcdir/js2-$pkgver.el $pkgdir/usr/share/emacs/site-lisp/js2.el
+ install -Dm644 $srcdir/js2-$pkgver.elc $pkgdir/usr/share/emacs/site-lisp/js2.elc
+}
diff --git a/pcr/emacs-lucid/emacs-24.3-giflib5.patch b/pcr/emacs-lucid/emacs-24.3-giflib5.patch
new file mode 100644
index 000000000..b8571abb2
--- /dev/null
+++ b/pcr/emacs-lucid/emacs-24.3-giflib5.patch
@@ -0,0 +1,26 @@
+--- src/image.c
++++ src/image.c 2013-05-21 15:49:41.945819346 +0000
+@@ -7192,7 +7192,11 @@ gif_load (struct frame *f, struct image
+ }
+
+ /* Open the GIF file. */
++#if GIFLIB_MAJOR < 5
+ gif = fn_DGifOpenFileName (SSDATA (file));
++#else
++ gif = fn_DGifOpenFileName (SSDATA (file), NULL);
++#endif
+ if (gif == NULL)
+ {
+ image_error ("Cannot open `%s'", file, Qnil);
+@@ -7213,7 +7217,11 @@ gif_load (struct frame *f, struct image
+ memsrc.len = SBYTES (specified_data);
+ memsrc.index = 0;
+
++#if GIFLIB_MAJOR < 5
+ gif = fn_DGifOpen (&memsrc, gif_read_from_memory);
++#else
++ gif = fn_DGifOpen (&memsrc, gif_read_from_memory, NULL);
++#endif
+ if (!gif)
+ {
+ image_error ("Cannot open memory source `%s'", img->spec, Qnil);
diff --git a/pcr/emacs-lucid/emacs.install b/pcr/emacs-lucid/emacs.install
new file mode 100644
index 000000000..6712f44ba
--- /dev/null
+++ b/pcr/emacs-lucid/emacs.install
@@ -0,0 +1,32 @@
+ICON_PATH=usr/share/icons/hicolor
+INFO_DIR=usr/share/info
+
+INFO_FILES=(ada-mode auth autotype bovine calc ccmode cl dbus dired-x ebrowse
+ede ediff edt efaq eieio eintr elisp emacs emacs-gnutls emacs-mime epa erc ert eshell eudc flymake
+forms gnus htmlfontify idlwave mairix-el message mh-e newsticker nxml-mode
+org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve smtpmail
+speedbar srecode tramp url vip viper widget wisent 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.info.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.info.gz ${INFO_DIR}/dir 2> /dev/null
+ done
+}
diff --git a/pcr/emacs-magit-git/PKGBUILD b/pcr/emacs-magit-git/PKGBUILD
new file mode 100644
index 000000000..734b13072
--- /dev/null
+++ b/pcr/emacs-magit-git/PKGBUILD
@@ -0,0 +1,45 @@
+# Contributor: Stefan Husmann <stefan.husmann@t-online.de>
+# Contributor: Peter Simons <simons@cryp.to>
+# Contributor: Just Lest <just.lest@gmail.com>
+# Contributor: Daniel White <daniel@whitehouse.id.au>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=emacs-magit-git
+pkgver=20121104
+pkgrel=1
+pkgdesc="It's Magit! A Emacs mode for Git."
+arch=("any")
+url="http://github.com/magit/magit"
+license=('GPL3')
+depends=('emacs' 'git')
+makedepends=('automake' 'autoconf')
+provides=('emacs-magit')
+conflicts=('emacs-magit')
+install="${pkgname}.install"
+
+_gitname="master"
+_gitroot="git://github.com/magit/magit.git"
+
+build()
+{
+ cd "${srcdir}"
+ if [ -d magit ] ; then
+ cd magit
+ git pull origin
+ else
+ git clone --depth=1 "${_gitroot}"
+ fi
+ [ -d "${srcdir}/build" ] && rm -rf "${srcdir}/build"
+ cp -r "${srcdir}/magit" "${srcdir}/build"
+ cd "${srcdir}/build"
+ make
+}
+
+package()
+{
+ cd "${srcdir}/build"
+ mkdir -p "${pkgdir}/usr/bin" # work around a bug in the makefile
+ make PREFIX="/usr" DESTDIR="${pkgdir}" install install_contrib
+ rm "${pkgdir}/etc/emacs/site-start.d/50magit.el" "${pkgdir}/usr/share/info/dir"
+ rmdir "${pkgdir}/etc/emacs/site-start.d" "${pkgdir}/etc/emacs" "${pkgdir}/etc"
+}
diff --git a/pcr/emacs-magit-git/emacs-magit-git.install b/pcr/emacs-magit-git/emacs-magit-git.install
new file mode 100644
index 000000000..a9904739e
--- /dev/null
+++ b/pcr/emacs-magit-git/emacs-magit-git.install
@@ -0,0 +1,30 @@
+infodir=/usr/share/info
+filelist=(magit.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
+
+ cat << EOF
+==> In order to use magit, add the following lines to your ~/.emacs file:
+
+(autoload 'magit-status "magit" nil t)
+EOF
+}
+
+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
+}
+
+op=$1
+shift
+$op $*
diff --git a/pcr/emacs-mailcrypt/PKGBUILD b/pcr/emacs-mailcrypt/PKGBUILD
new file mode 100644
index 000000000..8dad422c0
--- /dev/null
+++ b/pcr/emacs-mailcrypt/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Stefan Husmann <stefan-husmann@t-online.de>
+
+_pkgname=mailcrypt
+pkgname=emacs-$_pkgname
+pkgver=3.5.9
+pkgdesc="Emacs interface to PGP and GnuPG"
+url="http://mailcrypt.sourceforge.net/"
+license=('GPL')
+
+pkgrel=2.1
+arch=(any)
+depends=(emacs)
+install=$_pkgname.install
+source=(http://downloads.sourceforge.net/sourceforge/$_pkgname/$_pkgname-$pkgver.tar.gz
+ destdir.patch)
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/destdir.patch"
+ autoreconf
+ ./configure --prefix=/usr --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums=('18c0dea5dde0fc73168f4815df0d9db0'
+ '805f2c6bf624c946df2eefaf0edabcb3')
diff --git a/pcr/emacs-mailcrypt/destdir.patch b/pcr/emacs-mailcrypt/destdir.patch
new file mode 100644
index 000000000..a0159cd02
--- /dev/null
+++ b/pcr/emacs-mailcrypt/destdir.patch
@@ -0,0 +1,41 @@
+diff -ruN mailcrypt-3.5.9.orig/Makefile.in mailcrypt-3.5.9/Makefile.in
+--- mailcrypt-3.5.9.orig/Makefile.in 2010-03-11 08:38:05.000000000 -0500
++++ mailcrypt-3.5.9/Makefile.in 2012-12-13 18:38:59.000000000 -0500
+@@ -77,16 +77,16 @@
+
+ install: all installdirs install-info
+ for f in $(SOURCES); do \
+- $(INSTALL_DATA) $(srcdir)/$$f $(lispdir); \
++ $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(lispdir); \
+ done;
+ for f in $(OBJECTS); do \
+- $(INSTALL_DATA) $$f $(lispdir); \
++ $(INSTALL_DATA) $$f $(DESTDIR)$(lispdir); \
+ done;
+
+ # Make sure all installation directories actually exist
+ # by making them if necessary.
+ installdirs: mkinstalldirs
+- $(srcdir)/mkinstalldirs $(lispdir) $(infodir)
++ $(srcdir)/mkinstalldirs $(DESTDIR)$(lispdir) $(DESTDIR)$(infodir)
+
+ # If your install-info doesn't know how to look inside the .info file for the
+ # menu entry to add, try adding
+@@ -95,14 +95,12 @@
+
+ install-info: info
+ cd $(srcdir) && for file in $(INFOFILES); do\
+- $(INSTALL_DATA) $$file $(infodir)/$$file; \
++ $(INSTALL_DATA) $$file $(DESTDIR)$(infodir)/$$file; \
+ done
+- -$(INSTALL_INFO) --info-dir=$(infodir) mailcrypt.info
+
+ uninstall:
+- -cd $(lispdir) && rm -f $(SOURCES) $(OBJECTS)
+- -cd $(infodir) && rm -f $(INFOFILES)
+- $(INSTALL_INFO) --remove --info-dir=$(infodir) mailcrypt.info
++ -cd $(DESTDIR)$(lispdir) && rm -f $(SOURCES) $(OBJECTS)
++ -cd $(DESTDIR)$(infodir) && rm -f $(INFOFILES)
+
+ info: $(INFOFILES)
+
diff --git a/pcr/emacs-mailcrypt/mailcrypt.install b/pcr/emacs-mailcrypt/mailcrypt.install
new file mode 100644
index 000000000..3257b7338
--- /dev/null
+++ b/pcr/emacs-mailcrypt/mailcrypt.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(mailcrypt.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/pcr/emacs-newlisp/PKGBUILD b/pcr/emacs-newlisp/PKGBUILD
new file mode 100644
index 000000000..25dcbc219
--- /dev/null
+++ b/pcr/emacs-newlisp/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Jan Krvek <wamba@centrum.cz>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer : Parabola GNU / Linux-libre Aurélien DESBRIÈRES <aurelien@cwb.IO>
+
+pkgname=emacs-newlisp
+pkgver=0.25
+pkgrel=5
+arch=('any')
+pkgdesc="Emacs mode for Newlisp."
+url="http://artfulcode.net/projects"
+depends=('emacs')
+makedepends=('unzip')
+license=('GPL')
+source=(http://www.artfulcode.net/wp-content/uploads/2008/12/newlisp-mode.zip)
+noextract=newlisp-mode.zip
+install=emacs-newlisp.install
+
+build() {
+ cd $srcdir
+ unzip -quo newlisp-mode.zip || return 1
+ cd $srcdir/newlisp-mode || return 1
+ install -d $pkgdir/usr/share/emacs/site-lisp/newlisp-mode
+ install -Dm644 *.el $pkgdir/usr/share/emacs/site-lisp/newlisp-mode
+}
diff --git a/pcr/emacs-newlisp/emacs-newlisp.install b/pcr/emacs-newlisp/emacs-newlisp.install
new file mode 100644
index 000000000..640e19d16
--- /dev/null
+++ b/pcr/emacs-newlisp/emacs-newlisp.install
@@ -0,0 +1,26 @@
+# vim: set ft=sh:
+post_install() {
+ echo "
+=> Autoloading:
+ ------------
+ In your .emacs or .init.el
+ (add-to-list 'load-path (expand-file-name \"/usr/share/emacs/site-lisp/newlisp-mode\"))
+ (add-to-list 'auto-mode-alist '(\"\\\\.lsp\\\\'\" . newlisp-mode))
+ (autoload 'newlisp-mode \"newlisp\" \"Turn on NewLisp mode\" t)
+ (turn-on-font-lock)
+
+=> Newlisp is started with the Emacs command M-x newlisp-mode."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/pcr/emacs-org-mode-ravel-git/PKGBUILD b/pcr/emacs-org-mode-ravel-git/PKGBUILD
new file mode 100644
index 000000000..66baa08b5
--- /dev/null
+++ b/pcr/emacs-org-mode-ravel-git/PKGBUILD
@@ -0,0 +1,52 @@
+# contributor: zhuqin <zhuqin83@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=emacs-org-mode-ravel-git
+pkgver=20120812
+pkgrel=1
+pkgdesc="R backends for Orgmode by Chas Berry"
+arch=('any')
+url="https://github.com/chasberry/orgmode-accessories"
+depends=(emacs emacs-org-mode)
+makedepends=('git')
+license=('GPL')
+source=()
+
+
+
+_gitroot="https://github.com/chasberry/orgmode-accessories.git"
+_gitname="master"
+
+build() {
+ cd $srcdir
+ msg "Connecting to the GIT server...."
+
+ if [[ -d $srcdir/$_gitname ]] ; then
+ cd $_gitname
+ git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gitroot $_gitname
+ fi
+
+ msg "GIT checkout done"
+ msg "Starting make..."
+
+ [[ -d $srcdir/$_gitname-build ]] && rm -rf $srcdir/$_gitname-build
+ git clone $srcdir/$_gitname $srcdir/$_gitname-build
+
+ cd $srcdir/$_gitname-build
+
+ emacs --batch --visit scratch --eval "(progn (require 'org) (require 'org-export) (require 'org-e-latex) (require 'org-e-html) (org-babel-load-file \"ravel.org\"))"
+}
+
+package() {
+ cd $srcdir/$_gitname-build
+
+ install -Dm 644 e-ravel.el $pkgdir/usr/share/emacs/site-lisp/e-ravel.el
+
+ mkdir -p $pkgdir/usr/share/doc/e-ravel/
+ cp *.org $pkgdir/usr/share/doc/e-ravel/
+}
+md5sums=()
diff --git a/pcr/emacs-org-mode/PKGBUILD b/pcr/emacs-org-mode/PKGBUILD
new file mode 100644
index 000000000..4b36a3e3b
--- /dev/null
+++ b/pcr/emacs-org-mode/PKGBUILD
@@ -0,0 +1,39 @@
+# Contributor: Jiyunatori <tori_LEAVETHISOUT_@0xc29.net>
+# Contributor: mdev
+# adopted by domanov <domanov_LEAVETHISOUT_@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=emacs-org-mode
+_srcname=org
+pkgver=7.9.2
+pkgrel=1
+pkgdesc="Emacs Org Mode"
+arch=('any')
+url="http://orgmode.org/"
+depends=(emacs)
+license=('GPL')
+install=emacs-org-mode.install
+source=(http://orgmode.org/$_srcname-$pkgver.tar.gz)
+md5sums=('e79441ff81c176e70230937e09f6042c')
+
+build() {
+ cd "${srcdir}/${_srcname}-${pkgver}"
+ make compile || return 1
+}
+
+package() {
+ cd "${srcdir}/${_srcname}-${pkgver}"
+ make prefix="${pkgdir}/usr/share" install || return 1
+
+ ## by default now we install also the contrib directory
+ install -d -m755 $pkgdir/usr/share/emacs/site-lisp/org_contrib || return 1
+ cp -r contrib/* $pkgdir/usr/share/emacs/site-lisp/org_contrib || return 1
+
+ ##! proper install of info files (thanks mdev)
+ ##! replace "orgmode" with "org" in the following lines if you want
+ ##! to replace emacs own org's info files. You also need to change the .install.
+ install -D -m644 doc/org $pkgdir/usr/share/info/orgmode || return 1
+ gzip -9 $pkgdir/usr/share/info/orgmode || return 1
+ rm $pkgdir/usr/share/info/org || return 1
+}
+md5sums=('e79441ff81c176e70230937e09f6042c')
diff --git a/pcr/emacs-org-mode/emacs-org-mode.install b/pcr/emacs-org-mode/emacs-org-mode.install
new file mode 100644
index 000000000..e8bd91185
--- /dev/null
+++ b/pcr/emacs-org-mode/emacs-org-mode.install
@@ -0,0 +1,62 @@
+## NOTE: the line commented with '##!' are needed
+## to REPLACE the info file shipped by emacs (currently at version 6.21)
+## with the info docs from this distribution (thanks mdev)
+
+# arg 1: the new package version
+# arg 2: the old package version
+
+INFODIR=/usr/share/info
+
+pre_install() {
+##! for file in {org,org-?.gz} ; do
+##! if [ -e $INFODIR/$file ] ; then
+##! echo "Removing $INFODIR/$file"
+##! install-info --delete $INFODIR/$file $INFODIR/dir 2> /dev/null
+##! rm -f $INFODIR/$file
+##! fi
+##! done
+ cat << EOM
+To enable this version of org-mode instead of the one shipped with emacs,
+add the line:
+ (require 'org-install)
+to your .emacs file.
+
+NOTE: info documentation for emacs-org-mode goes now as 'orgmode' in /usr/share/info,
+ It does NOT replace the 'org' info files shipped with emacs:
+ $ info orgmode ## this version
+ $ info org ## emacs' org version (currently 6.21)
+EOM
+}
+
+
+post_install() {
+##! mv $INFODIR/orgmode.gz $INFODIR/org.gz
+##! install-info $INFODIR/org.gz $INFODIR/dir 2> /dev/null
+##! and comment out the following line:
+ install-info --name='orgmode' --description='Org Mode provided by emacs-org-mode (AUR)' $INFODIR/orgmode.gz $INFODIR/dir 2> /dev/null
+}
+
+pre_upgrade() {
+ /bin/true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+pre_remove() {
+ install-info --delete $INFODIR/orgmode.gz $INFODIR/dir 2> /dev/null
+##! comment out the line above and uncomment the following:
+##! install-info --delete $INFODIR/org.gz $INFODIR/dir 2> /dev/null
+##! rm $INFODIR/org.gz 2> /dev/null
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/pcr/emacs-tuareg-mode/PKGBUILD b/pcr/emacs-tuareg-mode/PKGBUILD
new file mode 100644
index 000000000..eba2834e0
--- /dev/null
+++ b/pcr/emacs-tuareg-mode/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Limao Luo <luolimao+AUR@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=emacs-tuareg-mode
+pkgver=2.0.6
+pkgrel=2
+pkgdesc="Emacs tuareg mode for ocaml"
+arch=(any)
+url=https://forge.ocamlcore.org/projects/tuareg/
+license=(GPL)
+depends=(emacs)
+DLAGENTS=("https::/usr/bin/curl -fkLC - --retry 3 --retry-delay 3 -o %o %u")
+install=$pkgname.install
+source=(https://forge.ocamlcore.org/frs/download.php/882/tuareg-$pkgver.tar.gz)
+sha256sums=('ea79ac24623b82ab8047345f8504abca557a537e639d16ce1ac3e5b27f5b1189')
+sha512sums=('a7162daea30baa38bf1673b62ac545936a24b87b5e4d65329304ce5da68e151af1ef9f6e7720067f1f741614b3b6e1dfeab7080c4e9e7ebf14af594f3a0b0d46')
+
+build() {
+ cd "$srcdir"/tuareg-$pkgver/
+ make
+}
+
+package() {
+ cd "$srcdir"/tuareg-$pkgver/
+ for i in *.el{,c}; do
+ install -Dm644 $i "$pkgdir"/usr/share/emacs/site-lisp/tuareg/$i
+ done
+ install -Dm644 README "$pkgdir"/usr/share/doc/tuareg/README
+}
diff --git a/pcr/emacs-tuareg-mode/emacs-tuareg-mode.install b/pcr/emacs-tuareg-mode/emacs-tuareg-mode.install
new file mode 100644
index 000000000..f9ee9c970
--- /dev/null
+++ b/pcr/emacs-tuareg-mode/emacs-tuareg-mode.install
@@ -0,0 +1,17 @@
+post_install() {
+ cat <<__EOF__
+==> Put this in your $HOME/.emacs file to enable tuareg-mode autoloading
+==> and autorecognition of ocaml source files:
+
+ (setq auto-mode-alist (cons '("\\\\.ml[iylp]?\\\\'" . tuareg-mode) auto-mode-alist))
+ (autoload 'tuareg-mode "tuareg" "Major mode for editing Caml code" t)
+ (autoload 'ocamldebug "ocamldebug" "Run the Caml debugger" t)
+
+==> Note to users of previous versions: 'camldebug' is now known as 'ocamldebug'
+__EOF__
+}
+
+
+post_upgrade() {
+ post_install
+}
diff --git a/pcr/emhacks/PKGBUILD b/pcr/emhacks/PKGBUILD
new file mode 100644
index 000000000..66f0045e5
--- /dev/null
+++ b/pcr/emhacks/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Junmin Huang <junmin(dot)h(at)gmail(dot)com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=emhacks
+pkgver=20070920
+pkgrel=4
+pkgdesc="Useful Emacs Lisp libraries, including gdiff, jjar, jmaker, swbuff and tabbar, packaged from gentoo portage"
+arch=('any')
+url="http://emhacks.sourceforge.net/"
+license=('GPL2')
+depends=(emacs)
+install=emhacks.install
+source=(http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/distfiles/$pkgname-$pkgver.tar.bz2)
+md5sums=('d349c78d25ce91a6f9c3e6446b129fc8')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # remove files included in Emacs>=22 or not useful on GNU/Linux
+ rm -r findstr* overlay-fix* recentf* ruler-mode* tree-widget*
+ for _i in gdiff-setup jjar jmaker swbuff tabbar
+ do
+ [ -f ${_i}.el.gz ] && rm ${_i}.el.gz
+ emacs -batch -q -f batch-byte-compile ${_i}.el
+ gzip ${_i}.el
+ done
+}
+package() {
+ install -d $pkgdir/usr/share/emacs/site-lisp/$pkgname
+ install -Dm644 $srcdir/$pkgname-$pkgver/* \
+ $pkgdir/usr/share/emacs/site-lisp/$pkgname
+}
diff --git a/pcr/emhacks/emhacks.install b/pcr/emhacks/emhacks.install
new file mode 100644
index 000000000..7d2bdf2b6
--- /dev/null
+++ b/pcr/emhacks/emhacks.install
@@ -0,0 +1,21 @@
+post_install() {
+cat << EOM
+
+Don't forget to add the following code into your ~/.emacs file:
+---
+(add-to-list 'load-path "/usr/share/emacs/site-lisp/emhacks")
+---
+
+EOM
+}
+
+post_remove() {
+cat << EOM
+
+The following code in your ~/.emacs file can be removed:
+---
+(add-to-list 'load-path "/usr/share/emacs/site-lisp/emhacks")
+---
+
+EOM
+} \ No newline at end of file
diff --git a/pcr/etckeeper/PKGBUILD b/pcr/etckeeper/PKGBUILD
new file mode 100644
index 000000000..09a5d4d15
--- /dev/null
+++ b/pcr/etckeeper/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Buce <dmbuce@gmail.com>
+# Contributor: Danie Roux <accounts@danieroux.com>
+# Contributor: Diogo Leal <estranho@diogoleal.com>
+
+pkgname=etckeeper
+pkgver=1.4
+pkgdesc="Collection of tools to let /etc be stored in a git, hg, bzr or darcs repository."
+url="http://joeyh.name/code/etckeeper/"
+license=('GPL2')
+
+pkgrel=1
+arch=('any')
+depends=('inetutils' 'python2')
+makedepends=('bzr') # bzr must be there at compile time to have bzr support
+optdepends=('git' 'hg' 'bzr' 'darcs')
+backup=(etc/etckeeper/etckeeper.conf)
+source=("libre://$pkgname-$pkgver.tar.gz" $pkgname-pacman.patch $pkgname-archlinux.conf)
+
+mksource=("$pkgname-$pkgver::git://git.kitenet.net/$pkgname#tag=${pkgver}")
+mkmd5sums=('SKIP')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # add pacman support to `list-installed`
+ patch -p0 -i "${srcdir}/${pkgname}-pacman.patch"
+
+ # use python2
+ sed -i 's@^#!/usr/bin/python$@&2@' etckeeper-bzr/__init__.py
+ make CONFFILE="${srcdir}/${pkgname}-archlinux.conf" build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make CONFFILE="${srcdir}/${pkgname}-archlinux.conf" DESTDIR="$pkgdir" install
+}
+
+md5sums=('74be692fdb2d3352324e9332a270635d'
+ 'f1f00bf9331d1ef7f29b0ac29cdfcbda'
+ '99d8d2838f49fa0f2f21c9e37948100d')
diff --git a/pcr/etckeeper/etckeeper-archlinux.conf b/pcr/etckeeper/etckeeper-archlinux.conf
new file mode 100644
index 000000000..83e2c577d
--- /dev/null
+++ b/pcr/etckeeper/etckeeper-archlinux.conf
@@ -0,0 +1,38 @@
+# The VCS to use.
+#VCS="hg"
+VCS="git"
+#VCS="bzr"
+#VCS="darcs"
+
+# Options passed to git commit when run by etckeeper.
+GIT_COMMIT_OPTIONS=""
+
+# Options passed to hg commit when run by etckeeper.
+HG_COMMIT_OPTIONS=""
+
+# Options passed to bzr commit when run by etckeeper.
+BZR_COMMIT_OPTIONS=""
+
+# Options passed to darcs record when run by etckeeper.
+DARCS_COMMIT_OPTIONS="-a"
+
+# Uncomment to avoid etckeeper committing existing changes
+# to /etc automatically once per day.
+#AVOID_DAILY_AUTOCOMMITS=1
+
+# Uncomment the following to avoid special file warning
+# (the option is enabled automatically by cronjob regardless).
+#AVOID_SPECIAL_FILE_WARNING=1
+
+# Uncomment to avoid etckeeper committing existing changes to
+# /etc before installation. It will cancel the installation,
+# so you can commit the changes by hand.
+#AVOID_COMMIT_BEFORE_INSTALL=1
+
+# The high-level package manager that's being used.
+# (apt, pacman-g2, yum etc)
+HIGHLEVEL_PACKAGE_MANAGER=pacman
+
+# The low-level package manager that's being used.
+# (dpkg, rpm, pacman-g2, etc)
+LOWLEVEL_PACKAGE_MANAGER=pacman
diff --git a/pcr/etckeeper/etckeeper-pacman.patch b/pcr/etckeeper/etckeeper-pacman.patch
new file mode 100644
index 000000000..1fb4acb62
--- /dev/null
+++ b/pcr/etckeeper/etckeeper-pacman.patch
@@ -0,0 +1,9 @@
+--- list-installed.d/50list-installed.orig 2012-10-21 23:45:30.000000000 -0400
++++ list-installed.d/50list-installed 2012-10-21 23:45:39.000000000 -0400
+@@ -7,4 +7,6 @@
+ egrep '(ok installed|ok config-files)' | cut -f2,3
+ elif [ "$LOWLEVEL_PACKAGE_MANAGER" = rpm ]; then
+ rpm -qa --qf "%|epoch?{%{epoch}}:{0}|:%{name}-%{version}-%{release}.%{arch}\n" | sort
++elif [ "$LOWLEVEL_PACKAGE_MANAGER" = pacman ]; then
++ { pacman -Qd|sed 's/.*/& (dep)/'; pacman -Qe|sed 's/.*/& (explicit)/'; } |sort
+ fi
diff --git a/pcr/eterm/PKGBUILD b/pcr/eterm/PKGBUILD
new file mode 100644
index 000000000..00030e80a
--- /dev/null
+++ b/pcr/eterm/PKGBUILD
@@ -0,0 +1,39 @@
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Adam 'battlemidget' Stokes <adam.stokes@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=eterm
+pkgver=0.9.6
+pkgrel=1
+pkgdesc="A vt102 terminal emulator intended as a replacement for xterm."
+arch=('i686' 'x86_64')
+url="http://www.eterm.org/"
+license=('custom')
+depends=('freetype2>=2.3.5' 'libast>=0.7' 'libxmu' 'libxres')
+options=('!libtool')
+source=(http://www.eterm.org/download/Eterm-${pkgver}.tar.gz)
+md5sums=('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-multi-charset=utf-8 \
+ --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
+}
+
+md5sums=('90e424584c22d4050496874d14f78bb1')
diff --git a/pcr/evolution-mapi/PKGBUILD b/pcr/evolution-mapi/PKGBUILD
new file mode 100644
index 000000000..851bb3c4d
--- /dev/null
+++ b/pcr/evolution-mapi/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Heenry78 <henry78@gmx.at>
+# Contributor: ngoonee <ngoonee.talk@gmail.com>
+# Contributor: Marco A Rojas <marquicus@gmail.com>
+pkgname=evolution-mapi
+pkgver=3.6.2
+_gnomever=3.6
+pkgrel=1
+pkgdesc="MAPI plugin for evolution."
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL3')
+depends=('evolution>=3.6.2' 'openchange>=1.0-5')
+makedepends=('intltool')
+options=(!makeflags)
+source=(http://ftp.gnome.org/pub/gnome/sources/evolution-mapi/$_gnomever/${pkgname}-${pkgver}.tar.xz)
+_prefix="/opt/samba4"
+md5sums=('4b9eb953e499fca4e1bd7dbd9bf5c0c9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ export PKG_CONFIG_PATH=${_prefix}/samba/lib/pkgconfig:${_prefix}/lib/pkgconfig
+
+ export CFLAGS="-DHAVE_MEMCTX_ON_CAST_SPROPVALUE -DHAVE_MEMCTX_ON_CAST_MAPI_SPROPVALUE ${CFLAGS}"
+ ./configure --prefix=${_prefix}
+ unset CFLAGS
+
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/facter/PKGBUILD b/pcr/facter/PKGBUILD
new file mode 100644
index 000000000..956569001
--- /dev/null
+++ b/pcr/facter/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Greg Sutcliffe <facter_aur (at) emeraldreverie.orgr>
+# Contributor: Hyacinthe Cartiaux <hyacinthe.cartiaux@free.fr>
+# Contributor: Thomas S Hatch <thatch45 (at) Gmail.com>
+# Contributor: Dave Simons <miouhpi (at) Gmail (dot) com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres
+
+pkgname=facter
+pkgver=1.6.14
+pkgrel=1
+pkgdesc="A library for collecting facts about your system."
+arch=("any")
+url="http://puppetlabs.com/projects/facter/"
+license=("APACHE")
+depends=("ruby" "inetutils" "net-tools")
+options=(!emptydirs)
+source=(http://puppetlabs.com/downloads/facter/facter-$pkgver.tar.gz)
+md5sums=('b6c3df8ad1781c10d30785c58a4504ef')
+
+package() {
+ cd $srcdir/facter-$pkgver
+
+ ruby ./install.rb \
+ --destdir=$pkgdir \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m 644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+}
diff --git a/pcr/ffingerd/PKGBUILD b/pcr/ffingerd/PKGBUILD
new file mode 100644
index 000000000..5b43314d3
--- /dev/null
+++ b/pcr/ffingerd/PKGBUILD
@@ -0,0 +1,27 @@
+pkgname=ffingerd
+pkgver=1.28
+pkgrel=3
+pkgdesc="Secure finger daemon"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.fefe.de/ffingerd/"
+license=('GPL2')
+depends=('glibc' 'xinetd')
+backup=('etc/xinetd.d/finger')
+source=(http://www.fefe.de/$pkgname/$pkgname-$pkgver.tar.bz2 finger.xinetd)
+md5sums=('fe207448745da07b4e393d8b8694658b' '2ca1a6b3f442a5c0c81fa03d265a203e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ install -d $pkgdir/usr/sbin $pkgdir/usr/share/man/man8
+ ./configure --prefix=/usr
+
+ make
+}
+
+package(){
+ cd $srcdir/$pkgname-$pkgver
+
+ make SBINDIR=$pkgdir/usr/sbin MANDIR=$pkgdir/usr/share/man install
+
+ install -D -m644 $srcdir/finger.xinetd $pkgdir/etc/xinetd.d/ffinger
+}
diff --git a/pcr/ffingerd/finger.xinetd b/pcr/ffingerd/finger.xinetd
new file mode 100644
index 000000000..36cd303b4
--- /dev/null
+++ b/pcr/ffingerd/finger.xinetd
@@ -0,0 +1,8 @@
+service finger
+{
+ socket_type = stream
+ wait = no
+ user = nobody
+ server = /usr/sbin/ffingerd
+ disable = yes
+}
diff --git a/pcr/filemq/PKGBUILD b/pcr/filemq/PKGBUILD
new file mode 100644
index 000000000..57f5eb69d
--- /dev/null
+++ b/pcr/filemq/PKGBUILD
@@ -0,0 +1,34 @@
+pkgname=filemq
+pkgver=v1.0a.r124.gd2d6274
+pkgrel=1
+pkgdesc="Chunked, flow-controlled, restartable, cancellable, async, multicast file transfer ØMQ protocol"
+url="https://github.com/zeromq/filemq"
+license=('GPL3' 'LGPL3')
+depends=('zeromq' 'czmq')
+makedepends=('git')
+arch=('i686' 'x86_64')
+
+source=("git+https://github.com/zeromq/filemq#branch=master")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd "${srcdir}/${pkgname}"
+ git describe --always| sed -E 's/([^-]*-g)/r\1/;s/-/./g'
+}
+
+prepare() {
+ cd "${srcdir}/${pkgname}"
+
+ ./autogen.sh
+}
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ make prefix=${pkgdir}/usr install
+}
diff --git a/pcr/fpdns/PKGBUILD b/pcr/fpdns/PKGBUILD
new file mode 100644
index 000000000..b4cff364a
--- /dev/null
+++ b/pcr/fpdns/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Ermak <ermak@email.it>
+# Maintainer : Parabola GNU / Linux-libre Aurlien Desbrires <aurelien@cwb.io>
+
+pkgname=fpdns
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="Program that remotely determines DNS server versions"
+url="http://code.google.com/p/fpdns/"
+depends=('')
+license=('BSD')
+options=('!emptydirs')
+arch=('i686' 'x86_64')
+source=('http://fpdns.googlecode.com/files/Net-DNS-Fingerprint-0.9.3.tar.gz')
+md5sums=('16f1fbc9e5c8b935a0a48a509dc58899')
+
+build() {
+ cd ${srcdir}/Net-DNS-Fingerprint-0.9.3
+ eval `perl -V:archname`
+ /usr/bin/perl Makefile.PL \
+ INSTALLARCHLIB=/usr/lib/perl5/current/${archname} \
+ INSTALLSITELIB=/usr/lib/perl5/site_perl/current \
+ INSTALLSITEARCH=/usr/lib/perl5/site_perl/current/${archname}
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=${pkgdir} install
+ /usr/bin/find ${pkgdir} -name '.packlist' -delete
+ /usr/bin/find ${pkgdir} -name '*.pod' -delete
+}
+
diff --git a/pcr/frame/PKGBUILD b/pcr/frame/PKGBUILD
new file mode 100644
index 000000000..b67d776ac
--- /dev/null
+++ b/pcr/frame/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Nicolas Quiénot < niQo at aur >
+
+pkgname=frame
+pkgver=2.5.0
+pkgrel=1
+pkgdesc="Frame handles the buildup and synchronization of a set of simultaneous touches."
+arch=(i686 x86_64)
+url="https://launchpad.net/frame"
+license=(GPL)
+depends=('libxi' 'gcc-libs')
+makedepends=('xorg-server-devel' 'asciidoc')
+provides=('utouch-frame')
+conflicts=('utouch-frame')
+replaces=('utouch-frame')
+options=('!libtool')
+source=(http://launchpad.net/$pkgname/trunk/v$pkgver/+download/$pkgname-$pkgver.tar.gz)
+
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+md5sums=('02baa941091c5d198cd1623b3ad36e68')
diff --git a/pcr/freeipmi/PKGBUILD b/pcr/freeipmi/PKGBUILD
new file mode 100644
index 000000000..ff321ea02
--- /dev/null
+++ b/pcr/freeipmi/PKGBUILD
@@ -0,0 +1,49 @@
+# http://github.com/fukawi2/aur-packages
+# Contributor: Nathan Owe <ndowens04 at gmail>
+# Contributor: Phillip Smith <fukawi2@NO-SPAM.gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.IO>
+
+pkgname=freeipmi
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="sensor monitoring, system event monitoring, power control, and serial-over-LAN (SOL)"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/freeipmi/"
+license=('GPL')
+depends=('libgcrypt')
+options=('!libtool')
+source=("http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ --infodir=/usr/share/info
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir/ install
+
+ # Move init scripts and config to Arch paths
+ mv $pkgdir/etc/init.d $pkgdir/etc/rc.d
+ mv $pkgdir/etc/sysconfig $pkgdir/etc/conf.d
+
+ # Fix references to 'init.d' and 'sysconfig'
+ sed -e 's|/etc/init.d/|/etc/rc.d/|g' \
+ -e 's|/etc/rc.d/init.d/functions|/etc/rc.d/functions|g' \
+ -i $pkgdir/etc/rc.d/*
+ sed -e 's|CONFFILE=/etc/sysconfig/bmc-watchdog|CONFFILE=/etc/cond.f/bmc-watchdog|g' \
+ -i $pkgdir/etc/rc.d/bmc-watchdog
+
+ rm -Rf $pkgdir/usr/share/info/dir
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/freetuxtv/PKGBUILD b/pcr/freetuxtv/PKGBUILD
new file mode 100644
index 000000000..be9eb6759
--- /dev/null
+++ b/pcr/freetuxtv/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Bernard Baeyens (berbae) <berbae52 at sfr dot fr>
+pkgname=freetuxtv
+pkgver=0.6.5
+pkgrel=3
+pkgdesc="WebTV player to watch ADSL TV on the PC."
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/freetuxtv/"
+license=('GPL3')
+depends=('vlc' 'gtk2' 'sqlite' 'curl' 'libnotify' 'dbus-glib')
+makedepends=('intltool')
+conflicts=('freetuxtv-svn')
+
+source=("http://freetuxtv.googlecode.com/files/$pkgname-$pkgver.tar.gz")
+sha1sums=('f347a6fd107f9722f4f6be4ec8f530239ffe899a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-gtk=2.0
+ make
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/fsniper/PKGBUILD b/pcr/fsniper/PKGBUILD
new file mode 100644
index 000000000..bf7e3a6c3
--- /dev/null
+++ b/pcr/fsniper/PKGBUILD
@@ -0,0 +1,32 @@
+# Initial Contributor: andrewy
+# Actual Contributor: Luca Cesari <luca.cesari@bewq.org>
+
+arch=(i686 x86_64)
+pkgname=fsniper
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="Daemon to run scripts based on changes in files monitored by inotify"
+url="http://projects.l3ib.org/fsniper/"
+license="GPL3"
+depends=('pcre' 'file')
+source=(http://projects.l3ib.org/fsniper/files/$pkgname-$pkgver.tar.gz)
+md5sums=('62f30bb4b00f9499499d83a30281f10f')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+ install -m644 -D ${srcdir}/$pkgname-$pkgver/README \
+ ${pkgdir}/usr/share/${pkgname}/README
+ install -m644 -D ${srcdir}/$pkgname-$pkgver/example.conf \
+ ${pkgdir}/usr/share/${pkgname}/example.conf
+
+}
diff --git a/pcr/fwsnort/PKGBUILD b/pcr/fwsnort/PKGBUILD
new file mode 100644
index 000000000..37a863822
--- /dev/null
+++ b/pcr/fwsnort/PKGBUILD
@@ -0,0 +1,44 @@
+# Contributor: Colin Shea <colin@evaryont.me>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=fwsnort
+pkgver=1.6.2
+pkgrel=1
+pkgdesc="application layer IDS/IPS by translating snort rules into iptables"
+arch=('any')
+url="http://www.cipherdyne.org/fwsnort/"
+license=('GPL')
+depends=('perl' 'perl-net-ipv4addr' 'perl-iptables-parse' 'iptables' 'net-tools')
+makedepends=('wget')
+source=(http://www.cipherdyne.org/$pkgname/download/$pkgname-$pkgver.tar.bz2
+ 'install_pl.patch')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ mkdir -p $pkgdir/var/log/fwsnort \
+ $pkgdir/usr/lib/fwsnort \
+ $pkgdir/usr/share/man/man8 \
+ $pkgdir/usr/sbin \
+ $pkgdir/etc/fwsnort/snort_rules \
+ $pkgdir/etc/fwsnort/archive \
+ $pkgdir/etc/fwsnort/snort_rules_queue
+
+ patch -p0 -i $srcdir/install_pl.patch
+ sed -e "/mpath.*man8/s|/usr|$pkgdir&|" \
+ -e "/^my\\ \\\$sbin/s|/usr|$pkgdir&|" \
+ -i install.pl
+
+ cp fwsnort.conf fwsnort.conf.bak
+
+ sed -e "s|/var/log/fwsnort|$pkgdir&|" \
+ -e "s|/usr/lib/fwsnort|$pkgdir&|" \
+ -e "s|/etc/fwsnort|$pkgdir&|" \
+ ./fwsnort.conf -i
+ # -S skips installing the perl modules, which we did with packages
+ echo y | ./install.pl -S
+ mv -f fwsnort.conf.bak $pkgdir/etc/fwsnort/fwsnort.conf
+ chmod 755 $pkgdir/usr/sbin/fwsnort
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/fwsnort/install_pl.patch b/pcr/fwsnort/install_pl.patch
new file mode 100644
index 000000000..b9cfb4a33
--- /dev/null
+++ b/pcr/fwsnort/install_pl.patch
@@ -0,0 +1,27 @@
+--- install.pl 2011-02-05 05:02:38.845785881 -0700
++++ install2.pl 2011-02-05 05:03:21.350360881 -0700
+@@ -120,10 +120,6 @@
+ ### make sure the system binaries are where we think they are.
+ &check_commands();
+
+-### check to make sure we are running as root
+-$< == 0 && $> == 0 or die "You need to be root (or equivalent UID 0",
+- " account) to install/uninstall fwsnort!\n";
+-
+ if ($uninstall) {
+ &uninstall();
+ } else {
+--- install.pl 2011-01-02 18:38:51.000000000 -0700
++++ install2.pl 2011-02-05 04:59:01.653910881 -0700
+@@ -471,8 +471,11 @@
+ sub check_commands() {
+ my @path = qw(
+ /bin
++ /sbin
+ /usr/bin
++ /usr/sbin
+ /usr/local/bin
++ /usr/local/sbin
+ );
+ CMD: for my $cmd (keys %cmds) {
+ unless (-x $cmds{$cmd}) {
diff --git a/pcr/galera/PKGBUILD b/pcr/galera/PKGBUILD
new file mode 100644
index 000000000..b6ba8890c
--- /dev/null
+++ b/pcr/galera/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Rustam Tsurik <rustam.tsurik@gmail.com>
+# Contributor: Nico Suarez <nicodoggie@gmail.com>
+
+pkgname=galera
+pkgver=25.3.2
+pkgrel=1
+pkgdesc='Galera WSREP provider'
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('boost>=1.41' 'openssl')
+makedepends=('check' 'scons' 'patch')
+url='http://www.codership.com'
+options=('!libtool')
+source=(https://launchpad.net/galera/3.x/$pkgver/+download/galera-$pkgver-src.tar.gz)
+sha256sums=('5dd54364720f8854088590bdfea1e3a7f3e37fda3dfe8a5f58ebcc987cc6788d')
+
+build(){
+ cd "$srcdir"
+ cd "$pkgname-$pkgver-src"
+ scons
+}
+
+package(){
+ install -Dm0644 "$srcdir"/$pkgname-$pkgver-src/libgalera_smm.so "$pkgdir"/usr/lib/libgalera_smm.so
+ install -Dm0755 "$srcdir"/$pkgname-$pkgver-src/garb/garbd "$pkgdir"/usr/bin/garbd
+ install -Dm0644 "$srcdir"/$pkgname-$pkgver-src/scripts/packages/README "$pkgdir"/usr/share/doc/galera/README
+ install -m0644 "$srcdir"/$pkgname-$pkgver-src/scripts/packages/README-MySQL "$pkgdir"/usr/share/doc/galera/README-MySQL
+ install -m0644 "$srcdir"/$pkgname-$pkgver-src/COPYING "$pkgdir"/usr/share/doc/galera/COPYING
+}
diff --git a/pcr/ganglia/PKGBUILD b/pcr/ganglia/PKGBUILD
new file mode 100644
index 000000000..efa005071
--- /dev/null
+++ b/pcr/ganglia/PKGBUILD
@@ -0,0 +1,78 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=ganglia
+pkgver=3.6.0
+pkgrel=4
+pkgdesc='Scalable distributed monitoring system for high-performance computing systems such as clusters and Grids.'
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+url=http://$pkgname.sourceforge.net/
+license=BSD
+depends=(
+ apr
+ confuse
+ #php-embed
+ python2
+ rrdtool
+)
+install=$pkgname.install
+options=(!libtool)
+optdepends="$pkgname-web: Web frontend"
+backup=(
+ etc/ganglia/gmond.conf
+ etc/ganglia/gmetad.conf
+)
+source=(
+ http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ gmetad.service.in
+ gmond.service.in
+)
+sha512sums=(
+ 2a05d37787f1440c0c4aa91cdf0f4f4cb39c840b3b0fdcd6fe58cfb5892a75f81d36f6191c83c17558c37154298268df74fa255d2c940a8b84a7bf3ddb102394
+ a42b7dcb7dd81961cc9fef114f8c4c352375ed931dc2ae77b1139c6fde7cbd6544fcb5fe286ff6066ef37696821dc9f6fcab7c6b14d3ebaa59e895219cd89836
+ c362a383cbbaf5540b5d698f664534bd0da73bcc5ee4336c468844ed17706e05450f35e4f6cf969f1d2495c462883873b30e4575b9ee8ded74ab475afda608bb
+)
+
+prepare() {
+ cd $srcdir/$pkgname-$pkgver
+
+ #sed -i 's|sapi/embed/php_embed.h|php/sapi/embed/php_embed.h|' configure
+
+ sed -i 's|nobody|ganglia|' gmetad/gmetad.conf.in
+
+ # FIXME: Hopefully this will soon no longer be required?
+ msg2 'Copying systemd units into source as workaround for bug'
+ cp $srcdir/gmetad.service.in gmetad/gmetad.service.in
+ cp $srcdir/gmond.service.in gmond/gmond.service.in
+}
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ setarch $CARCH ./configure --prefix=/usr\
+ --enable-gexec\
+ --enable-perl\
+ --enable-setuid=ganglia\
+ --enable-status\
+ --disable-static\
+ --libdir=/usr/lib\
+ --with-gmetad\
+ --with-python=/usr/bin/python2\
+ --sbindir=/usr/bin\
+ --sysconfdir=/etc/ganglia
+# --enable-php\
+# --enable-setgid=ganglia\
+ setarch $CARCH make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ setarch $CARCH make DESTDIR=$pkgdir install
+
+ mkdir $pkgdir/usr/lib/$pkgname/python_modules
+
+ msg2 'Generating default gmond.conf'
+ ./gmond/gmond --default_config > $pkgdir/etc/ganglia/gmond.conf
+}
diff --git a/pcr/ganglia/ganglia.install b/pcr/ganglia/ganglia.install
new file mode 100644
index 000000000..6a196af1f
--- /dev/null
+++ b/pcr/ganglia/ganglia.install
@@ -0,0 +1,24 @@
+post_install() {
+ if [ "`vercmp $2 3.4.0`" -lt 0 ]; then
+ echo 'WARNING: The ganglia package has been split. If you use the' \
+ "web frontend, you'll need to install the ganglia-web package as well."
+ fi
+ id ganglia >& /dev/null
+ if [ $? -ne 0 ]; then
+ echo 'Adding ganglia system group and user...'
+ groupadd -r ganglia && useradd -r -d /var/lib/ganglia -g ganglia -s /bin/false ganglia
+ # Lock the account to prevent logging in
+ passwd -l ganglia &> /dev/null
+ fi
+ install -d -o ganglia -g ganglia /var/lib/ganglia && install -d -o ganglia -g ganglia /var/lib/ganglia/rrds
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ echo 'Removing ganglia system group and user...'
+ userdel ganglia
+ echo 'NOTE: Please remove /var/lib/ganglia manually if it is no longer required.'
+}
diff --git a/pcr/ganglia/gmetad.service.in b/pcr/ganglia/gmetad.service.in
new file mode 100644
index 000000000..a721c2b4c
--- /dev/null
+++ b/pcr/ganglia/gmetad.service.in
@@ -0,0 +1,11 @@
+[Unit]
+Description=Ganglia Meta Daemon
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/gmetad.pid
+ExecStart=/usr/bin/gmetad -p /run/gmetad.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/ganglia/gmond.service.in b/pcr/ganglia/gmond.service.in
new file mode 100644
index 000000000..5cbd31629
--- /dev/null
+++ b/pcr/ganglia/gmond.service.in
@@ -0,0 +1,9 @@
+[Unit]
+Description=Ganglia Monitor Daemon
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/gmond -f -p /run/gmond.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/gcc-gcj/PKGBUILD b/pcr/gcc-gcj/PKGBUILD
new file mode 100644
index 000000000..7ed03b889
--- /dev/null
+++ b/pcr/gcc-gcj/PKGBUILD
@@ -0,0 +1,83 @@
+# Contributor: Renan Manola <rmanola@gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Based on a modified version of the gcc PKGBUILD
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=gcc-gcj
+pkgver=4.7.2
+pkgrel=2
+pkgdesc="The GNU Compiler for Java"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+url="http://gcc.gnu.org"
+depends=("gcc=$pkgver" 'gtk2' 'file' 'zip' 'libsm' 'libxtst' 'alsa-lib' 'libart-lgpl')
+makedepends=('binutils>=2.20.1' 'mpfr>=2.4.2-2' 'cloog>=0.16.2-1' 'elfutils'
+ 'libmpc>=0.8.2-2' 'jack')
+options=('!libtool')
+install=$pkgname.install
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 libjava-sjlj.dpatch gcc_pure64.patch)
+md5sums=('cc308a0891e778cfda7a151ab8a6e762'
+ 'afe3541abf5ce163223f94ccdbc66e30'
+ 'ced48436c1b3c981d721a829f1094de1')
+
+build() {
+ cd ${srcdir}/gcc-${pkgver}
+
+ # 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
+
+ chmod +x ${srcdir}/*.dpatch
+ ${srcdir}/libjava-sjlj.dpatch -patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ [ -d build ] || mkdir build
+ if [ "${CARCH}" = "x86_64" ]; then
+ patch -p1 < $srcdir/gcc_pure64.patch
+ fi
+ cd build
+
+ ../configure --prefix=/usr --enable-shared --enable-languages=java \
+ --enable-threads=posix --mandir=/usr/share/man --infodir=/usr/share/info \
+ --enable-__cxa_atexit --disable-multilib --libdir=/usr/lib \
+ --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch \
+ --with-tune=generic --enable-java-awt=gtk --with-java-home="$JAVA_HOME" \
+ --enable-libgcj-multifile --disable-plugin --with-system-zlib
+ make
+}
+
+package() {
+ cd ${srcdir}/gcc-${pkgver}/build
+ make -j1 DESTDIR=${pkgdir} install-target-libjava
+
+ cd gcc
+ make -j1 DESTDIR=${pkgdir} java.install-common java.install-man
+
+ install -m755 jc1 ${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/
+ install -m755 jvgenmain ${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/
+
+ # Remove files which belong to the base gcc package
+ rm -f ${pkgdir}/usr/bin/{c,g}++
+ if [ "${CARCH}" = "x86_64" ]; then
+ rm -f ${pkgdir}/usr/bin/x86_64-unknown-linux-gnu-{c,g}++
+ else
+ rm -f ${pkgdir}/usr/bin/i686-pc-linux-gnu-{c,g}++
+ fi
+ rm -f ${pkgdir}/usr/man/man1/g++.*
+ # Rename two files to not conflict to classpath
+ mv ${pkgdir}/usr/share/info/cp-tools.info ${pkgdir}/usr/share/info/cp-tools-gcj.info
+ rm ${pkgdir}/usr/share/info/dir
+ mv ${pkgdir}/usr/share/man/man1/gjdoc.1 ${pkgdir}/usr/share/man/man1/gjdoc.gcj.1
+
+ find ${pkgdir}/usr/lib -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
+
+ linkdir=`basename $pkgdir/usr/lib/gcj-${pkgver}*`
+ ln -sf $linkdir ${pkgdir}/usr/lib/gcj-${pkgver%.?}
+ ln -sf libgcj-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-${pkgver%.?}.jar
+ ln -sf libgcj-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj.jar
+ ln -sf libgcj-tools-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-tools-${pkgver%.?}.jar
+ ln -sf libgcj-tools-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-tools.jar
+}
diff --git a/pcr/gcc-gcj/gcc-gcj.install b/pcr/gcc-gcj/gcc-gcj.install
new file mode 100644
index 000000000..916aa6a17
--- /dev/null
+++ b/pcr/gcc-gcj/gcc-gcj.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(cp-tools-gcj.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
+} \ No newline at end of file
diff --git a/pcr/gcc-gcj/gcc_pure64.patch b/pcr/gcc-gcj/gcc_pure64.patch
new file mode 100644
index 000000000..a9b09bbcf
--- /dev/null
+++ b/pcr/gcc-gcj/gcc_pure64.patch
@@ -0,0 +1,26 @@
+diff -Naur gcc-orig/gcc/config/i386/linux64.h gcc/gcc/config/i386/linux64.h
+--- gcc-orig/gcc/config/i386/linux64.h 2011-07-08 01:38:34.000000000 +1000
++++ gcc/gcc/config/i386/linux64.h 2011-07-24 19:48:05.000000000 +1000
+@@ -28,6 +28,6 @@
+ #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
+ #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
+
+-#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"
+ #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
+diff -Naur gcc-orig/gcc/config/i386/t-linux64 gcc/gcc/config/i386/t-linux64
+--- gcc-orig/gcc/config/i386/t-linux64 2011-07-08 01:38:34.000000000 +1000
++++ gcc/gcc/config/i386/t-linux64 2011-07-24 19:49:41.000000000 +1000
+@@ -34,8 +34,8 @@
+ comma=,
+ MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
+ MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
+-MULTILIB_OSDIRNAMES = m64=../lib64
+-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = m64=../lib
++MULTILIB_OSDIRNAMES+= m32=../lib32
+ MULTILIB_OSDIRNAMES+= mx32=../libx32
+
+ LIBGCC = stmp-multilib
diff --git a/pcr/gcc-gcj/libjava-sjlj.dpatch b/pcr/gcc-gcj/libjava-sjlj.dpatch
new file mode 100755
index 000000000..95b4673b3
--- /dev/null
+++ b/pcr/gcc-gcj/libjava-sjlj.dpatch
@@ -0,0 +1,65 @@
+#! /bin/sh -e
+
+# DP: Don't try to use _Unwind_Backtrace on SJLJ targets.
+# DP: See bug #387875, #388505, GCC PR 29206.
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p1 < $0
+ #cd ${dir}gcc && autoconf
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p1 < $0
+ #rm ${dir}gcc/configure
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+---
+ libjava/sysdep/generic/backtrace.h | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+Index: src/libjava/sysdep/generic/backtrace.h
+===================================================================
+--- src.orig/libjava/sysdep/generic/backtrace.h 2006-11-06 14:00:32.000000000 -0500
++++ src/libjava/sysdep/generic/backtrace.h 2006-11-06 14:04:38.000000000 -0500
+@@ -13,6 +13,20 @@ details. */
+
+ #include <java-stack.h>
+
++#ifdef SJLJ_EXCEPTIONS
++
++#undef _Unwind_GetIPInfo
++#define _Unwind_GetIPInfo(ctx,ip_before_insn) \
++ (abort (), (void) (ctx), *ip_before_insn = 1, 0)
++
++#undef _Unwind_GetRegionStart
++#define _Unwind_GetRegionStart(ctx) \
++ (abort (), (void) (ctx), 0)
++
++#undef _Unwind_Backtrace
++#define _Unwind_Backtrace(trace_fn,state_ptr) \
++ (fallback_backtrace (trace_fn, state_ptr))
++
+ /* Unwind through the call stack calling TRACE_FN with STATE for every stack
+ frame. Returns the reason why the unwinding was stopped. */
+ _Unwind_Reason_Code
+@@ -20,4 +34,7 @@ fallback_backtrace (_Unwind_Trace_Fn, _J
+ {
+ return _URC_NO_REASON;
+ }
++
++#endif /* SJLJ_EXCEPTIONS */
++
+ #endif
diff --git a/pcr/gcc-lts/PKGBUILD b/pcr/gcc-lts/PKGBUILD
new file mode 100644
index 000000000..b4ad7137d
--- /dev/null
+++ b/pcr/gcc-lts/PKGBUILD
@@ -0,0 +1,299 @@
+# $Id: PKGBUILD 186915 2013-05-31 23:25:14Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+#pkgname=('gcc-lts' 'gcc-lts-libs' 'gcc-lts-fortran' 'gcc-lts-objc' 'gcc-lts-ada' 'gcc-lts-go')
+pkgname=('gcc-lts' 'gcc-lts-libs' 'gcc-lts-fortran' 'gcc-lts-objc' 'gcc-lts-go')
+pkgver=4.7.3
+pkgrel=4
+pkgdesc="The GNU Compiler Collection"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+#makedepends=('binutils>=2.23' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'doxygen')
+makedepends=('binutils>=2.23' 'libmpc' 'cloog' 'ppl' 'doxygen')
+checkdepends=('dejagnu' 'inetutils')
+options=('!libtool' '!emptydirs')
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2)
+md5sums=('86f428a30379bdee0224e353ee2f999e')
+_basedir=gcc-${pkgver}
+
+prepare() {
+ cd ${srcdir}/${_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
+
+ # Parabola installs x86_64 libraries /lib
+ [[ $CARCH == "x86_64" ]] && sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ # hack! - some configure tests for header files using "$CPP $CPPFLAGS"
+ sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
+
+ # fix texinfo "@itemx" and "@item"
+ sed -i "s|[@]itemx|@item|;
+ " gcc/doc/{cppopts,generic,invoke,sourcebuild}.texi
+
+ mkdir ${srcdir}/gcc-build
+}
+
+build() {
+ cd ${srcdir}/gcc-build
+
+ # using -pipe causes spurious test-suite failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
+ CFLAGS=${CFLAGS/-pipe/}
+ CXXFLAGS=${CXXFLAGS/-pipe/}
+
+ ${srcdir}/${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://labs.parabola.nu/ \
+ --enable-languages=c,c++,fortran,go,lto,objc,obj-c++ \
+ --enable-shared --enable-threads=posix \
+ --with-system-zlib --enable-__cxa_atexit \
+ --disable-libunwind-exceptions --enable-clocale=gnu \
+ --disable-libstdcxx-pch --enable-libstdcxx-time \
+ --enable-gnu-unique-object --enable-linker-build-id \
+ --with-ppl --enable-cloog-backend=isl \
+ --disable-ppl-version-check --disable-cloog-version-check \
+ --enable-lto --enable-gold --enable-ld=default \
+ --enable-plugin --with-plugin-ld=ld.gold \
+ --with-linker-hash-style=gnu \
+ --disable-multilib --disable-libssp \
+ --disable-build-with-cxx --disable-build-poststage1-with-cxx \
+ --disable-install-libiberty \
+ --disable-werror \
+ --enable-checking=release
+ #--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
+ make
+
+ # make documentation
+ cd $CHOST/libstdc++-v3
+ make doc-man-doxygen
+}
+
+check() {
+ cd ${srcdir}/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
+ ${srcdir}/${_basedir}/contrib/test_summary
+}
+
+package_gcc-lts-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC"
+ groups=('lts')
+ depends=('glibc>=2.17')
+ provides=("gcc-libs=$pkgver")
+ conflicts=('gcc-libs')
+ install=gcc-libs.install
+
+ cd ${srcdir}/gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ #for lib in libmudflap libgomp libstdc++-v3/src libitm libsanitizer/asan; do
+ for lib in libmudflap libgomp libstdc++-v3/src libitm; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+
+ #[[ $CARCH == "x86_64" ]] && \
+ # make -j1 -C $CHOST/libsanitizer/tsan DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+ make -j1 -C $CHOST/libitm 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 -r ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-lts()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends"
+ depends=("gcc-lts-libs=$pkgver" 'binutils>=2.23' 'libmpc' 'cloog' 'ppl')
+ provides=("gcc=$pkgver")
+ conflicts=('gcc')
+ groups=('lts-devel')
+ install=gcc.install
+
+ cd ${srcdir}/gcc-build
+
+ make -j1 DESTDIR=${pkgdir} install
+
+ install -d $pkgdir/usr/share/gdb/auto-load/usr/lib
+ mv $pkgdir{,/usr/share/gdb/auto-load}/usr/lib/libstdc++.so.6.0.17-gdb.py
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ #rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo}
+ rm $pkgdir/usr/lib/*.so*
+ #rm $pkgdir/usr/lib/lib{atomic,gfortran,go{,begin},iberty,objc}.a
+ rm $pkgdir/usr/lib/lib{ffi,gfortran,go{,begin},iberty,objc}.a
+ rm $pkgdir/usr/lib/libgfortran.spec
+ #rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/ffi{,target}.h
+ #rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,go1}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{libcaf_single,libgfortranbegin}.a
+ rm -r $pkgdir/usr/lib/go
+ #rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath,libitm}.info
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,libgomp,libquadmath,libitm}.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 expect this symlinks
+ ln -s gcc ${pkgdir}/usr/bin/cc
+
+ # 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 -t ${pkgdir}/usr/share/man/man3 \
+ ${CHOST}/libstdc++-v3/doc/doxygen/man/man3/*.3
+
+ # Install Runtime Library Exception
+ install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-lts-fortran()
+{
+ pkgdesc="Fortran front-end for GCC"
+ depends=("gcc-lts=$pkgver")
+ provides=("gcc-fortran=$pkgver")
+ conflicts=('gcc-fortran')
+ install=gcc-fortran.install
+
+ cd ${srcdir}/gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ ln -s gfortran ${pkgdir}/usr/bin/f95
+
+ # remove files included in gcc-libs or gcc
+ #rm ${pkgdir}/usr/lib/lib{gfortran,gcc_s}.so*
+ rm ${pkgdir}/usr/lib/libgfortran.so*
+ #rm ${pkgdir}/usr/lib/libquadmath.{a,so*}
+ #rm ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}/{*.o,libgc*}
+ #rm ${pkgdir}/usr/share/info/libquadmath.info
+ #rm -r ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}/include
+
+ # Install Runtime Library Exception
+ install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-lts-objc()
+{
+ pkgdesc="Objective-C front-end for GCC"
+ depends=("gcc-lts=$pkgver")
+ provides=("gcc-objc=$pkgver")
+ conflicts=('gcc-objc')
+
+ cd ${srcdir}/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 files included in gcc-libs or gcc
+ #rm ${pkgdir}/usr/lib/lib{gcc_s,objc}.so*
+ rm ${pkgdir}/usr/lib/libobjc.so*
+ #rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{*.o,lib*}
+ #rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/unwind.h
+
+ # Install Runtime Library Exception
+ install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-lts-ada()
+{
+ pkgdesc="Ada front-end for GCC (GNAT)"
+ depends=("gcc-lts=$pkgver")
+ provides=("gcc-ada=$pkgver")
+ conflicts=('gcc-ada')
+ install=gcc-ada.install
+
+ cd ${srcdir}/gcc-build/gcc
+ make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+
+ ln -s gcc ${pkgdir}/usr/bin/gnatgcc
+
+ # Install Runtime Library Exception
+ install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-lts-go()
+{
+ pkgdesc="Go front-end for GCC"
+ depends=("gcc-lts=$pkgver")
+ provides=("gcc-go=$pkgver")
+ conflicts=('gcc-go')
+ install=gcc-go.install
+
+ cd ${srcdir}/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 ${srcdir}/${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
+}
diff --git a/pcr/gcc-lts/gcc-ada.install b/pcr/gcc-lts/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/pcr/gcc-lts/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/pcr/gcc-lts/gcc-fortran.install b/pcr/gcc-lts/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/pcr/gcc-lts/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/pcr/gcc-lts/gcc-go.install b/pcr/gcc-lts/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/pcr/gcc-lts/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/pcr/gcc-lts/gcc-libs.install b/pcr/gcc-lts/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/pcr/gcc-lts/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/pcr/gcc-lts/gcc.install b/pcr/gcc-lts/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/pcr/gcc-lts/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/pcr/geis/PKGBUILD b/pcr/geis/PKGBUILD
new file mode 100644
index 000000000..629cb9d12
--- /dev/null
+++ b/pcr/geis/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Nicolas Quiénot <niQo @ AUR >
+# Contributor: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
+
+pkgname=geis
+pkgver=2.2.15
+pkgrel=3
+pkgdesc="Implementation of the GEIS (Gesture Engine Interface and Support) interface."
+arch=('i686' 'x86_64')
+url="https://launchpad.net/geis"
+license=('GPL' 'LGPL')
+depends=('grail' 'dbus' 'python-gobject')
+makedepends=('xorg-server-devel')
+provides=('utouch-geis')
+conflicts=('utouch-geis')
+replaces=('utouch-geis')
+options=('!emptydirs' '!libtool')
+source=("http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ## add -Wno-format in CFLAGS see FS#34658
+ CFLAGS="$CFLAGS -Wno-format" ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="${pkgdir}/" install
+}
+
+md5sums=('94c8a08497f5fc22061fb0573ca1e220')
diff --git a/pcr/gens-gs/PKGBUILD b/pcr/gens-gs/PKGBUILD
new file mode 100644
index 000000000..316c0af9c
--- /dev/null
+++ b/pcr/gens-gs/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: trya <tryagainprod@gmail.com>
+
+pkgname=gens-gs
+pkgver=r7
+pkgrel=5
+pkgdesc="An emulator of Sega Genesis, Sega CD and 32X, combining features from various forks of Gens"
+url="http://segaretro.org/Gens/GS"
+arch=('i686' 'x86_64')
+license=('GPL')
+if [[ $CARCH == "x86_64" ]]; then
+ depends=('lib32-gtk2' 'lib32-sdl' 'lib32-libgl')
+ makedepends=('nasm' 'gcc-multilib')
+ optdepends=('lib32-alsa-plugins: sound with Gens/GS for Pulseaudio users'
+ 'lib32-libpulse: sound with Gens/GS for Pulseaudio users')
+else
+ depends=('gtk2' 'sdl' 'libgl')
+ makedepends=('nasm' 'gcc')
+fi
+replaces=('bin32-gens-gs')
+conflicts=('gens' 'gens-gs-git' 'bin32-gens-gs' 'bin32-gens')
+options=('!libtool')
+source=("http://segaretro.org/images/6/6d/Gens-gs-r7.tar.gz"
+ gens-gtk.patch)
+md5sums=('bcb17b49774aa318a224c741028aabc3'
+ '94a8ea744dee8caea73db1223ac67dcd')
+
+build() {
+ if [ $CARCH == "x86_64" ]; then
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ fi
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 < ../gens-gtk.patch
+ if [ $CARCH == "x86_64" ]; then
+ i386 ./configure --prefix=/usr
+ else
+ ./configure --prefix=/usr LIBS="-ldl -lX11"
+ fi
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ rm -f "$pkgdir/usr/lib/mdp/*.a"
+}
diff --git a/pcr/gens-gs/gens-gtk.patch b/pcr/gens-gs/gens-gtk.patch
new file mode 100644
index 000000000..0bc6fd0ee
--- /dev/null
+++ b/pcr/gens-gs/gens-gtk.patch
@@ -0,0 +1,187 @@
+diff -ru gens/src/gens/ui/gtk/about/about_window.cpp gens-build/src/gens/ui/gtk/about/about_window.cpp
+--- gens/src/gens/ui/gtk/about/about_window.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/about/about_window.cpp 2010-10-11 15:46:25.000000000 +0000
+@@ -84,7 +84,7 @@
+ gtk_window_set_position(GTK_WINDOW(about_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(about_window), FALSE);
+ gtk_window_set_type_hint(GTK_WINDOW(about_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(about_window), FALSE);
++ g_object_set(GTK_DIALOG(about_window), "has-separator", FALSE, NULL);
+
+ // Callbacks for if the window is closed.
+ g_signal_connect((gpointer)about_window, "delete_event",
+diff -ru gens/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp gens-build/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp
+--- gens/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp 2010-10-11 15:33:03.000000000 +0000
+@@ -84,7 +84,7 @@
+ gtk_window_set_position(GTK_WINDOW(bmf_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(bmf_window), FALSE);
+ gtk_window_set_type_hint(GTK_WINDOW(bmf_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(bmf_window), FALSE);
++ g_object_set(GTK_DIALOG(bmf_window), "has-separator", FALSE, NULL);
+
+ // Callbacks for if the window is closed.
+ g_signal_connect((gpointer)bmf_window, "delete_event",
+diff -ru gens/src/gens/ui/gtk/directory_config/dir_window.cpp gens-build/src/gens/ui/gtk/directory_config/dir_window.cpp
+--- gens/src/gens/ui/gtk/directory_config/dir_window.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/directory_config/dir_window.cpp 2010-10-11 15:34:21.000000000 +0000
+@@ -109,7 +109,7 @@
+ gtk_window_set_position(GTK_WINDOW(dir_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(dir_window), FALSE);
+ gtk_window_set_type_hint(GTK_WINDOW(dir_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(dir_window), FALSE);
++ g_object_set(GTK_DIALOG(dir_window), "has-separator", FALSE, NULL);
+
+ // Callbacks for if the window is closed.
+ g_signal_connect((gpointer)(dir_window), "delete_event",
+diff -ru gens/src/gens/ui/gtk/general_options/genopt_window.cpp gens-build/src/gens/ui/gtk/general_options/genopt_window.cpp
+--- gens/src/gens/ui/gtk/general_options/genopt_window.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/general_options/genopt_window.cpp 2010-10-11 15:36:00.000000000 +0000
+@@ -140,7 +140,7 @@
+ gtk_window_set_position(GTK_WINDOW(genopt_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(genopt_window), false);
+ gtk_window_set_type_hint(GTK_WINDOW(genopt_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(genopt_window), false);
++ g_object_set(GTK_DIALOG(genopt_window), "has-separator", false, NULL);
+
+ // Callbacks for if the window is closed.
+ g_signal_connect((gpointer)genopt_window, "delete_event",
+@@ -458,11 +458,11 @@
+ gtk_box_pack_start(GTK_BOX(vboxIntroEffect), lblIntroEffect, false, false, 0);
+
+ // Dropdown for intro effect.
+- cboIntroEffect = gtk_combo_box_new_text();
+- gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "None");
+- gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "Gens Logo Effect");
+- gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "\"Crazy\" Effect");
+- //gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "Genesis TMSS"); // TODO: Broken.
++ cboIntroEffect = gtk_combo_box_text_new();
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "None");
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "Gens Logo Effect");
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "\"Crazy\" Effect");
++ //gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "Genesis TMSS"); // TODO: Broken.
+ gtk_widget_show(cboIntroEffect);
+ gtk_box_pack_start(GTK_BOX(vboxIntroEffect), cboIntroEffect, false, false, 0);
+ g_signal_connect((gpointer)(cboIntroEffect), "changed",
+diff -ru gens/src/gens/ui/gtk/gens/gens_window_callbacks.cpp gens-build/src/gens/ui/gtk/gens/gens_window_callbacks.cpp
+--- gens/src/gens/ui/gtk/gens/gens_window_callbacks.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/gens/gens_window_callbacks.cpp 2010-10-11 15:21:28.000000000 +0000
+@@ -154,9 +154,9 @@
+ GSFT_UNUSED_PARAMETER(y);
+ GSFT_UNUSED_PARAMETER(user_data);
+
+- if (context->targets)
++ if (gdk_drag_context_list_targets(context))
+ {
+- GdkAtom target_type = GDK_POINTER_TO_ATOM(g_list_nth_data(context->targets, 0));
++ GdkAtom target_type = GDK_POINTER_TO_ATOM(g_list_nth_data(gdk_drag_context_list_targets(context), 0));
+ gtk_drag_get_data(widget, context, target_type, time);
+ return true;
+ }
+diff -ru gens/src/gens/ui/gtk/opengl_resolution/glres_window.cpp gens-build/src/gens/ui/gtk/opengl_resolution/glres_window.cpp
+--- gens/src/gens/ui/gtk/opengl_resolution/glres_window.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/opengl_resolution/glres_window.cpp 2010-10-11 15:46:21.000000000 +0000
+@@ -75,7 +75,7 @@
+ gtk_window_set_position(GTK_WINDOW(glres_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(glres_window), FALSE);
+ gtk_window_set_type_hint(GTK_WINDOW(glres_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(glres_window), FALSE);
++ g_object_set(GTK_DIALOG(glres_window), "has-separator", FALSE, NULL);
+
+ // Callbacks for if the window is closed.
+ g_signal_connect((gpointer)(glres_window), "delete_event",
+diff -ru gens/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp gens-build/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp
+--- gens/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp 2010-10-11 15:46:29.000000000 +0000
+@@ -80,8 +80,7 @@
+ // Callbacks.
+ static gboolean pmgr_window_callback_close(GtkWidget *widget, GdkEvent *event, gpointer user_data);
+ static void pmgr_window_callback_response(GtkDialog *dialog, gint response_id, gpointer user_data);
+-static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, GtkNotebookPage *page,
+- guint page_num, gpointer user_data);
++static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, guint page_num, gpointer user_data);
+ static void pmgr_window_callback_lstPluginList_cursor_changed(GtkTreeView *tree_view, gpointer user_data);
+ static void pmgr_window_callback_fraPluginDesc_size_allocate(GtkWidget *widget, GtkAllocation *allocation, gpointer user_data);
+
+@@ -119,7 +118,7 @@
+ gtk_window_set_position(GTK_WINDOW(pmgr_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(pmgr_window), FALSE);
+ gtk_window_set_type_hint(GTK_WINDOW(pmgr_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(pmgr_window), FALSE);
++ g_object_set(GTK_DIALOG(pmgr_window), "has-separator", FALSE, NULL);
+
+ // Callbacks for if the window is closed.
+ g_signal_connect((gpointer)pmgr_window, "delete_event",
+@@ -559,11 +558,9 @@
+ * @param page_num New notebook page index.
+ * @param user_data User data.
+ */
+-static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, GtkNotebookPage *page,
+- guint page_num, gpointer user_data)
++static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, guint page_num, gpointer user_data)
+ {
+ GSFT_UNUSED_PARAMETER(notebook);
+- GSFT_UNUSED_PARAMETER(page);
+ GSFT_UNUSED_PARAMETER(user_data);
+
+ // Activate the "cursor-changed" callback for the page.
+diff -ru gens/src/gens/ui/gtk/select_cdrom/selcd_window.cpp gens-build/src/gens/ui/gtk/select_cdrom/selcd_window.cpp
+--- gens/src/gens/ui/gtk/select_cdrom/selcd_window.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/gens/ui/gtk/select_cdrom/selcd_window.cpp 2010-10-11 15:46:16.000000000 +0000
+@@ -94,7 +94,7 @@
+ gtk_window_set_position(GTK_WINDOW(selcd_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(selcd_window), FALSE);
+ gtk_window_set_type_hint(GTK_WINDOW(selcd_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(selcd_window), FALSE);
++ g_object_set(GTK_DIALOG(selcd_window), "has-separator", FALSE, NULL);
+
+ // Callbacks for if the window is closed.
+ g_signal_connect((gpointer)(selcd_window), "delete_event",
+@@ -128,7 +128,7 @@
+ gtk_box_pack_start(GTK_BOX(hboxDeviceName), lblDeviceName, false, false, 0);
+
+ // Create the dropdown for the CD-ROM device name.
+- cboDeviceName = gtk_combo_box_entry_new_text();
++ cboDeviceName = gtk_combo_box_text_new_with_entry();
+ gtk_entry_set_max_length(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(cboDeviceName))), 63);
+ gtk_label_set_mnemonic_widget(GTK_LABEL(lblDeviceName), cboDeviceName);
+ gtk_widget_show(cboDeviceName);
+@@ -156,7 +156,7 @@
+ gtk_box_pack_start(GTK_BOX(hboxDriveSpeed), vboxDriveSpeedDropdown, true, true, 0);
+
+ // Create the dropdown for the CD-ROM drive speed selection.
+- cboDriveSpeed = gtk_combo_box_new_text();
++ cboDriveSpeed = gtk_combo_box_text_new();
+ char tmpSpeed[16];
+ for (unsigned int i = 0; i < ((sizeof(CD_DriveSpeed) / sizeof(CD_DriveSpeed[0])) - 1); i++)
+ {
+@@ -167,7 +167,7 @@
+ else
+ szprintf(tmpSpeed, sizeof(tmpSpeed), "%dx", CD_DriveSpeed[i]);
+
+- gtk_combo_box_append_text(GTK_COMBO_BOX(cboDriveSpeed), tmpSpeed);
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboDriveSpeed), tmpSpeed);
+ }
+ gtk_widget_show(cboDriveSpeed);
+ gtk_box_pack_start(GTK_BOX(vboxDriveSpeedDropdown), cboDriveSpeed, true, false, 0);
+@@ -252,7 +252,7 @@
+ continue;
+
+ // Add the device file.
+- gtk_combo_box_append_text(GTK_COMBO_BOX(cboDeviceName), tmpDeviceName);
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboDeviceName), tmpDeviceName);
+ }
+ }
+
+diff -ru gens/src/mdp/misc/game_genie/gg_window_gtk2.cpp gens-build/src/mdp/misc/game_genie/gg_window_gtk2.cpp
+--- gens/src/mdp/misc/game_genie/gg_window_gtk2.cpp 2010-10-11 16:32:29.000000000 +0000
++++ gens-build/src/mdp/misc/game_genie/gg_window_gtk2.cpp 2010-10-11 15:52:05.000000000 +0000
+@@ -111,7 +111,7 @@
+ gtk_window_set_position(GTK_WINDOW(gg_window), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable(GTK_WINDOW(gg_window), TRUE);
+ gtk_window_set_type_hint(GTK_WINDOW(gg_window), GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_dialog_set_has_separator(GTK_DIALOG(gg_window), FALSE);
++ g_object_set(GTK_DIALOG(gg_window), "has-separator", FALSE, NULL);
+
+ // Add the window icon.
+ GList *icon_list = NULL;
diff --git a/pcr/gimp-art/PKGBUILD b/pcr/gimp-art/PKGBUILD
new file mode 100644
index 000000000..cd38b329d
--- /dev/null
+++ b/pcr/gimp-art/PKGBUILD
@@ -0,0 +1,105 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=gimp-art
+pkgver=2.8.2
+pkgrel=2
+pkgdesc='GNU Image Manipulation Program (changed splash artwork)'
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+url=http://www.${pkgname%-art}.org/
+license=(
+ GPL
+ LGPL
+)
+depends=(
+ babl
+ dbus-glib
+ desktop-file-utils
+ gegl
+ hicolor-icon-theme
+ jasper
+ lcms
+ libexif
+ libmng
+ librsvg
+ libxmu
+ libxpm
+ libwmf
+ pygtk
+)
+makedepends=(
+ alsa-lib
+ curl
+ ghostscript
+ intltool
+ iso-codes
+ libwebkit
+ poppler-glib
+)
+optdepends=(
+ 'alsa-lib: for MIDI event controller module'
+ 'curl: for URI support'
+ 'ghostscript: for postscript support'
+ 'gutenprint: for sophisticated printing only as gimp has built-in cups print support'
+ 'libwebkit: for the help browser'
+ 'poppler-glib: for pdf support'
+)
+options=(
+ !libtool
+ !makeflags
+)
+conflicts=(
+ ${pkgname%-art}
+ ${pkgname%-art}-devel
+)
+provides=(
+ ${pkgname%-art}=$pkgver
+)
+install=${pkgname%-art}.install
+source=(
+ ftp://ftp.${pkgname%-art}.org/pub/${pkgname%-art}/v${pkgver%.*}/${pkgname%-art}-$pkgver.tar.bz2
+ ${pkgname%-art}-splash-artwork.png
+ ${pkgname%-art}-splash-artwork.license
+)
+sha512sums=(
+ 82a15072aba97d41a7dd74920f5db4e89442ff83841ac614f6fadfd964bdb8d3ae478ac0ba2e906bcf4569c8de00a1616fd6d626032f093060f28df3655d9111
+ 1a2930e612b339f49aa85f98275c24202e056f2fff5c1fda94e662bfd45ed5b6226e6ab1947f3daf758f4e5106fd3f7e4f286d63b258f008b6a5d9e5cd6f0611
+ d3f055ce278f25b33a6b11f3b031ae801206390fa1f62e3383daf35570e5f68b98ddfac30dea71d89d4916eaf3263e642ad06805c3175f620412e546784335ac
+)
+
+build() {
+ cd $srcdir/${pkgname%-art}-$pkgver
+
+ ## Add artwork splash image ##
+ install -Dm644 $srcdir/${pkgname%-art}-splash-artwork.png \
+ $srcdir/${pkgname%-art}-$pkgver/data/images/${pkgname%-art}-splash.png
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --enable-${pkgname%-art}-console \
+ --enable-mp \
+ --enable-python \
+ --sysconfdir=/etc \
+ --with-gif-compression=lzw \
+ --with-libcurl \
+ --without-aa \
+ --without-gvfs
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname%-art}-$pkgver
+ make DESTDIR=$pkgdir install
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' $pkgdir/usr/lib/${pkgname%-art}/${pkgver::2}0/plug-ins/*.py
+
+ ## Add artwork splash license ##
+ install -Dm644 $srcdir/${pkgname%-art}-splash-artwork.license \
+ $pkgdir/usr/share/licenses/${pkgname%-art}/${pkgname%-art}-splash-artwork.license
+
+ rm $pkgdir/usr/share/man/man1/$_pkgname-console.1
+ ln -s ${pkgname%-art}-console-${pkgver%.*}.1.gz $pkgdir/usr/share/man/man1/${pkgname%-art}-console.1.gz
+ ln -s ${pkgname%-art}tool-${pkgver::2}0 $pkgdir/usr/bin/${pkgname%-art}tool
+ ln -sf ${pkgname%-art}tool-${pkgver::2}0.1.gz $pkgdir/usr/share/man/man1/${pkgname%-art}tool.1.gz
+}
diff --git a/pcr/gimp-art/gimp-splash-artwork.license b/pcr/gimp-art/gimp-splash-artwork.license
new file mode 100644
index 000000000..22b83f32c
--- /dev/null
+++ b/pcr/gimp-art/gimp-splash-artwork.license
@@ -0,0 +1,13 @@
+GIMP LIBRE SPLASH LICENSE
+
+Logo and Effects is created by Zé Lara <ze.miguel.lara@gmail.com> and Márcio Silva <coadde@lavabit.com>
+Idea by André Silva <emulatorman@parabola.nu>
+
+The GIMP LIBRE splash screen is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
+To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send aletter to Creative Commons, 444 Castro Street,
+Suite 900, Mountain View, California, 94041, USA.
+
+Sangeno Waterfall Picture is created by Abedinali from Wikimedia Commons under the Creative Commons CC0 1.0 Universal license (Public Domain).
+To the extent possible under law, Abedinali from Wikimedia Commons has waived all copyright and related or neighboring rights to Sangeno Waterfall.
+This work is published from: United States.
+https://upload.wikimedia.org/wikipedia/commons/8/8b/Sangeno.jpg
diff --git a/pcr/gimp-art/gimp-splash-artwork.png b/pcr/gimp-art/gimp-splash-artwork.png
new file mode 100644
index 000000000..76c9e8c94
--- /dev/null
+++ b/pcr/gimp-art/gimp-splash-artwork.png
Binary files differ
diff --git a/pcr/gimp-art/gimp.install b/pcr/gimp-art/gimp.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/pcr/gimp-art/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/pcr/gimp-pcr/PKGBUILD b/pcr/gimp-pcr/PKGBUILD
new file mode 100644
index 000000000..75b54f27a
--- /dev/null
+++ b/pcr/gimp-pcr/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 198811 2013-11-05 16:40:29Z bpiotrowski $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+_pkgname=gimp
+pkgname=$_pkgname-pcr
+pkgver=2.8.10
+pkgrel=1
+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' 'jasper' 'desktop-file-utils' 'hicolor-icon-theme' 'babl')
+makedepends=('intltool' 'webkitgtk2' 'poppler-glib' 'alsa-lib' 'iso-codes' 'curl' 'ghostscript')
+optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
+ 'webkitgtk2: for the help browser'
+ 'poppler-glib: for pdf support'
+ 'alsa-lib: for MIDI event controller module'
+ 'curl: for URI support'
+ 'ghostscript: for postscript support')
+options=('!makeflags')
+provides=("$_pkgname")
+conflicts=('gimp-devel' "$_pkgname")
+install=gimp.install
+source=(ftp://ftp.gimp.org/pub/gimp/v${pkgver%.*}/${_pkgname}-${pkgver}.tar.bz2 gnu.gpl
+ uri-backend-libcurl.patch)
+md5sums=('84c964aab7044489af69f7319bb59b47'
+ '2d823a7e7cd7f99b681943e42bfb7d40'
+ 'e894f4b2ffa92c71448fdd350e9b78c6')
+
+prepare() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ # fixing freetype header path file
+ sed -i "s|freetype/tttables[.]h|freetype2/tttables.h|" app/text/${_pkgname}font.c
+}
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ #patch -p1 < ../uri-backend-libcurl.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}/gnu.gpl" "${pkgdir}/usr/share/gimp/2.0/palettes/GNU.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/pcr/gimp-pcr/gimp.install b/pcr/gimp-pcr/gimp.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/pcr/gimp-pcr/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/pcr/gimp-pcr/gnu.gpl b/pcr/gimp-pcr/gnu.gpl
new file mode 100644
index 000000000..e7ce2b288
--- /dev/null
+++ b/pcr/gimp-pcr/gnu.gpl
@@ -0,0 +1,19 @@
+GIMP Palette
+Name: gnu
+#
+ 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/pcr/gimp-pcr/uri-backend-libcurl.patch b/pcr/gimp-pcr/uri-backend-libcurl.patch
new file mode 100644
index 000000000..85da2fc7f
--- /dev/null
+++ b/pcr/gimp-pcr/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/pcr/ginn/PKGBUILD b/pcr/ginn/PKGBUILD
new file mode 100644
index 000000000..013fc8642
--- /dev/null
+++ b/pcr/ginn/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Nicolas Quiénot <niQo @ aur>
+
+pkgname=ginn
+pkgver=0.2.6
+pkgrel=2
+pkgdesc="A deamon with jinn-like wish-granting capabilities"
+url="http://launchpad.net/ginn"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('geis' 'bamf2' 'libxtst' 'libwnck')
+source=(http://launchpad.net/ginn/0.x/${pkgver}/+download/ginn-${pkgver}.tar.gz)
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
+
+md5sums=('008854147f0809877b3e7ccf5af5337f')
diff --git a/pcr/git-remote-mediawiki/PKGBUILD b/pcr/git-remote-mediawiki/PKGBUILD
new file mode 100644
index 000000000..8fb47724a
--- /dev/null
+++ b/pcr/git-remote-mediawiki/PKGBUILD
@@ -0,0 +1,31 @@
+pkgname=git-remote-mediawiki
+url=https://github.com/moy/Git-Mediawiki/wiki
+license=('GPL') # GPLv2+
+pkgdesc="Support for MediaWiki remotes in git"
+
+pkgver=1.8.5.1
+pkgrel=2
+arch=('any')
+depends=(
+ git
+ perl-datetime-format-iso8601
+ perl-html-tree
+ perl-lwp-protocol-https
+ perl-mediawiki-api
+)
+
+_symlink() {
+ local src=$1
+ local dst=$2
+ mkdir -p "${pkgdir}/${dst%/*}"
+ ln -s "$(realpath "$src" --relative-to="${dst%/*}")" "${pkgdir}/${dst}"
+}
+
+package() {
+ _mwdir=/usr/share/git/mw-to-git
+ _perldir=/usr/share/perl5/vendor_perl
+ _gitdir=/usr/lib/git-core
+ _symlink ${_mwdir}/Git/Mediawiki.pm ${_perldir}/Git/Mediawiki.pm
+ _symlink ${_mwdir}/git-mw.perl ${_gitdir}/git-mw
+ _symlink ${_mwdir}/git-remote-mediawiki.perl ${_gitdir}/git-remote-mediawiki
+}
diff --git a/pcr/gitflow/PKGBUILD b/pcr/gitflow/PKGBUILD
new file mode 100644
index 000000000..b62042262
--- /dev/null
+++ b/pcr/gitflow/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Techlive Zheng <techlivezheng@gmail.com>
+# Contributor: Ernie Brodeur <ebrodeur@ujami.net>
+
+pkgname=gitflow
+pkgver=0.4.1
+pkgrel=3
+pkgdesc='Extend git with the Gitflow branching model.'
+arch=('any')
+url='https://github.com/nvie/gitflow'
+license=('BSD')
+depends=('git' 'shflags')
+source=("https://github.com/nvie/gitflow/tarball/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('adc7a52512052938a9b42ac8bd7d91dd')
+
+prepare() {
+ cd $srcdir/`find . -maxdepth 1 -type d -name nvie\*`
+ sed -i "s:\$GITFLOW_DIR/gitflow-shFlags:/usr/share/lib/shflags/shflags.sh:" git-flow
+}
+
+package() {
+ cd $srcdir/`find . -maxdepth 1 -type d -name nvie\*`
+
+ install -d -m 0755 $pkgdir/usr/lib/git-core
+ install -m 0755 git-flow $pkgdir/usr/lib/git-core
+ install -m 0644 git-flow-feature \
+ git-flow-hotfix \
+ git-flow-release \
+ git-flow-support \
+ git-flow-version \
+ git-flow-init \
+ gitflow-common \
+ $pkgdir/usr/lib/git-core/
+}
+md5sums=('adc7a52512052938a9b42ac8bd7d91dd')
diff --git a/pcr/glance/PKGBUILD b/pcr/glance/PKGBUILD
new file mode 100644
index 000000000..a05e66686
--- /dev/null
+++ b/pcr/glance/PKGBUILD
@@ -0,0 +1,62 @@
+# Contributor: Josh Chase <jcjoshuachase@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=glance
+pkgver=2012.1.2
+pkgrel=1
+_ostackver=essex
+_clientname=python-glanceclient
+_clientver=0.5.1
+pkgdesc="OpenStack image service"
+arch=('any')
+license=('custom')
+url="https://launchpad.net/$pkgname"
+depends=('python2'
+ 'python2-httplib2'
+ 'python2-webob'
+ 'python2-eventlet'
+ 'python2-greenlet'
+ 'python-paste'
+ 'python-paste-deploy'
+ 'python-routes'
+ 'python2-sqlalchemy'
+ 'python2-migrate'
+ 'python2-passlib'
+ 'python2-lxml'
+ 'python-anyjson'
+ 'python-wsgiref'
+ 'python2-argparse'
+ 'python2-boto'
+ 'python-xattr'
+ 'python2-kombu'
+ 'python2-crypto'
+ 'python2-sendfile'
+ 'python2-iso8601')
+makedepends=('python2-distribute')
+source=("https://launchpad.net/$pkgname/$_ostackver/$pkgver/+download/$pkgname-$pkgver.tar.gz"
+ "http://pypi.python.org/packages/source/${_clientname:0:1}/$_clientname/$_clientname-$_clientver.tar.gz")
+
+build() {
+ cd $srcdir
+
+ find . -type f -exec sed -i -e 's|^#!/usr/bin/python$|#!/usr/bin/python2|' \
+ -e 's|^#!/usr/bin/env python$|#!/usr/bin/env python2|' {} +
+
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py build
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py install --root=$pkgdir
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ install -dm600 "$pkgdir"/etc/$pkgname
+ install -Dm600 etc/* "$pkgdir"/etc/$pkgname/
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/gloobus-preview-bzr/PKGBUILD b/pcr/gloobus-preview-bzr/PKGBUILD
new file mode 100644
index 000000000..ae8a2fd87
--- /dev/null
+++ b/pcr/gloobus-preview-bzr/PKGBUILD
@@ -0,0 +1,73 @@
+# Contributor: Alessio Sergi <asergi at archlinux dot us>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=gloobus-preview-bzr
+_pkgname=gloobus-preview
+pkgver=290
+pkgrel=1
+pkgdesc="A quicklook for GNU/Linux"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/gloobus-preview"
+license=('GPL3')
+depends=('desktop-file-utils' 'djvulibre' 'gstreamer0.10-base' \
+ 'gtksourceview3' 'libspectre' 'poppler-glib' \
+ 'python2-gconf' 'taglib')
+makedepends=('boost' 'bzr' 'intltool')
+optdepends=('gdk-pixbuf-psd: PSD images support'
+ 'gdk-pixbuf-xcf: XCF images support'
+ 'gloobus-sushi-bzr: nautilus 3.x support'
+ 'libicns: ICNS files support'
+ 'marlin-bzr: file manager integration support'
+ 'nautilus-actions: nautilus menu integration'
+ 'nautilus-elementary-bzr: file manager integration support'
+ 'unoconv: LibO files support')
+provides=($_pkgname)
+conflicts=($_pkgname)
+options=('!libtool')
+install=$pkgname.install
+
+_bzrtrunk="https://code.launchpad.net/~gloobus-dev/$_pkgname/last_working_branch"
+_bzrmod="$pkgname"
+
+build() {
+ cd "$srcdir"
+
+ msg "Connecting to Bazaar server...."
+
+ if [[ -d "$_bzrmod" ]]; then
+ cd "$_bzrmod" && bzr --no-plugins pull "$_bzrtrunk" -r "$pkgver"
+ msg "The local files are updated."
+ else
+ bzr --no-plugins branch "$_bzrtrunk" "$_bzrmod" -q -r "$pkgver"
+ fi
+
+ msg "Bazaar checkout done or server timeout"
+ msg "Starting build..."
+
+ rm -rf "$srcdir/$_bzrmod-build"
+ cp -r "$srcdir/$_bzrmod" "$srcdir/$_bzrmod-build"
+ cd "$srcdir/$_bzrmod-build"
+
+ # no psd and xcf loaders
+ sed -i '/loaders/d' src/Makefile.am
+ sed -i '/src\/loaders/d' configure.ac
+
+ # automake 1.12.1 fix
+ sed -i 's/-Werror//' configure.ac
+
+ # python2 fix
+ sed -i 's_python_&2_' src/"$_pkgname"-configuration
+
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$_bzrmod-build"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
+md5sums=()
diff --git a/pcr/gloobus-preview-bzr/gloobus-preview-bzr.install b/pcr/gloobus-preview-bzr/gloobus-preview-bzr.install
new file mode 100644
index 000000000..63031e5be
--- /dev/null
+++ b/pcr/gloobus-preview-bzr/gloobus-preview-bzr.install
@@ -0,0 +1,28 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+
+ echo ">>> To use GP instead of GNOME Sushi with Nautilus 3.x install gloobus-sushi-bzr."
+ echo ""
+ echo ">>> To use GP with marlin:"
+ echo '>>> $ gsettings set org.gnome.marlin.preferences previewer-path "'gloobus-preview'"'
+ echo ""
+ echo ">>> To use GP with nautilus-actions:"
+ echo ">>> Label: Quicklook"
+ echo ">>> Path: gloobus-preview"
+ echo ">>> Parameters: %f"
+ echo ""
+ echo ">>> For more info: http://gloobus.net/"
+ echo ">>> IRC channel: #gloobus @ irc.freenode.net"
+}
+
+post_upgrade() {
+ post_install "$1"
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/gmqcc-git/PKGBUILD b/pcr/gmqcc-git/PKGBUILD
new file mode 100644
index 000000000..ab08b36ef
--- /dev/null
+++ b/pcr/gmqcc-git/PKGBUILD
@@ -0,0 +1,53 @@
+# Contributor: matthiaskrgr <matthiaskrgr _strange_curverd_character_ freedroid D0T org>
+
+pkgname=gmqcc-git
+pkgver=20130214
+pkgrel=1
+pkgdesc="An Improved Quake C Compiler"
+arch=('i686' 'x86_64')
+depends=('glibc')
+conflicts=('gmqcc')
+provides=('gmqcc=0.2.4')
+makedepends=('git')
+url="https://github.com/graphitemaster/gmqcc.git"
+license=('MIT')
+
+_gitroot="git://github.com/graphitemaster/gmqcc.git"
+_gitname="gmqcc"
+
+build() {
+ cd $srcdir
+ msg "Connecting to the GIT server..."
+ if [[ -d $srcdir/$_gitname ]] ; then
+ cd $_gitname
+ msg "Removing build files..."
+ git clean -dfx
+ msg "Updating..."
+ git pull --no-tags
+ msg "The local files are updated."
+ else
+ msg "Cloning..."
+ git clone $_gitroot $_gitname --depth 1
+ msg "Clone done."
+ fi
+
+ msg "Starting compilation..."
+ cd "$srcdir"/"$_gitname"
+
+ msg "Compiling..."
+ make
+}
+
+check() {
+ cd "$srcdir"/"$_gitname"
+ make check
+}
+
+package() {
+ cd "$srcdir"/"$_gitname"
+ msg "Compiling and installing to pkgdir this time..."
+ make install DESTDIR=$pkgdir PREFIX=/usr
+ msg "Compiling done."
+
+ install -D LICENSE ${pkgdir}/usr/share/licenses/gmqcc/LICENSE
+}
diff --git a/pcr/gmusicbrowser/PKGBUILD b/pcr/gmusicbrowser/PKGBUILD
new file mode 100644
index 000000000..e8cec3c76
--- /dev/null
+++ b/pcr/gmusicbrowser/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Spike29 <leguen.yannick@gmail.com>
+# Contributor: jsteel <mail at jsteel dot org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=gmusicbrowser
+pkgver=1.1.10
+pkgrel=3
+pkgdesc="A jukebox for large collections of mp3/ogg/flac files, written in perl"
+arch=('any')
+url="http://gmusicbrowser.org"
+license=('GPL3')
+depends=('gtk2-perl' 'hicolor-icon-theme')
+optdepends=('alsa-utils: enables the ALSA backend'
+ 'flac123: flac support for the ALSA backend'
+ 'mpg321: mp3 support for the ALSA backend'
+ 'vorbis-tools: vorbis support for the ALSA backend'
+ 'mplayer: enables the mplayer backend'
+ 'perl-gstreamer: enables the gstreamer backend'
+ 'gstreamer0.10-base: vorbis support for the gstreamer backend'
+ 'gstreamer0.10-good-plugins: flac support for the gstreamer backend'
+ 'gstreamer0.10-bad-plugins: mpc support for the gstreamer backend'
+ 'gstreamer0.10-ugly-plugins: mp3 support for the gstreamer backend'
+ 'perl-gtk2-mozembed: web-based plugins support'
+ 'perl-gtk2-webkit: alternative web-based plugin support'
+ 'perl-html-parser: support for accented characters in lyrics plugin'
+ 'perl-locale-gettext: localization support'
+ 'perl-net-dbus: control gmusicbrowser through dbus and gnome hotkeys'
+ 'perl-gtk2-notify: show notifications using libnotify' )
+conflicts=('gmusicbrowser-devel' 'gmusicbrowser-development' 'gmusicbrowser-git' 'gmusicbrowser-shimmer-git')
+options=('!libtool')
+install=$pkgname.install
+source=(https://github.com/shimmerproject/${pkgname}/archive/v${pkgver}.tar.gz)
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir/" DOCS="AUTHORS COPYING README NEWS INSTALL" install
+
+ # put some images in sane locations
+ install -Dm644 pix/trayicon.png "$pkgdir"/usr/share/icons/hicolor/16x16/apps/gmusicbrowser.png
+ install -Dm644 pix/gmusicbrowser32x32.png "$pkgdir"/usr/share/icons/hicolor/32x32/apps/gmusicbrowser.png
+ install -Dm644 pix/gmusicbrowser.png "$pkgdir"/usr/share/icons/hicolor/48x48/apps/gmusicbrowser.png
+ install -Dm644 pix/gmusicbrowser.png "$pkgdir"/usr/share/pixmaps/gmusicbrowser.png
+}
+md5sums=('25cbef3bd7c6666a036dcc337adcb387')
diff --git a/pcr/gmusicbrowser/gmusicbrowser.install b/pcr/gmusicbrowser/gmusicbrowser.install
new file mode 100644
index 000000000..f917ebdff
--- /dev/null
+++ b/pcr/gmusicbrowser/gmusicbrowser.install
@@ -0,0 +1,18 @@
+post_install() {
+ cat << _EOF
+
+==> In order to play your music with gmusicbrowser, you need to install
+ gstreamer and its perl bindings OR mpg321/vorbis-tools/flac123/alsa-utils OR mplayer
+ (look at optdepends for details)
+
+_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/pcr/gnome-boxes-libre/PKGBUILD b/pcr/gnome-boxes-libre/PKGBUILD
new file mode 100644
index 000000000..91a3b41be
--- /dev/null
+++ b/pcr/gnome-boxes-libre/PKGBUILD
@@ -0,0 +1,44 @@
+# Contributor: Daniel Milewski <niitotantei@gmail.com>
+
+_pkgname='gnome-boxes'
+pkgname="$_pkgname-libre"
+pkgver='3.10.2'
+pkgrel='1'
+pkgdesc='A simple GNOME 3 application to access remote or virtual systems, without nonfree system logos'
+arch=('i686' 'x86_64')
+url='https://wiki.gnome.org/Apps/Boxes'
+license=('LGPL')
+depends=('clutter-gtk' 'desktop-file-utils' 'gtk-vnc' 'libosinfo' 'libsoup' 'libtracker-sparql' 'libvirt-glib'
+ 'spice-gtk3')
+makedepends=('gobject-introspection' 'intltool' 'itstool' 'spice-protocol' 'vala')
+optdepends=('qemu-usbredir: virtual machines support')
+provides=("$_pkgname=$pkgver")
+conflicts=("$_pkgname")
+replaces=("$_pkgname")
+install='gnome-boxes.install'
+source=("http://ftp.gnome.org/pub/GNOME/sources/$_pkgname/${pkgver:0:4}/$_pkgname-$pkgver.tar.xz" 'logos.patch'
+ 'free-distros.patch')
+sha256sums=('9e055627cff5f59323bc95ad65ab361fc26328854d5a421bd09c899c466f2ec4'
+ '63d8a7fb5e0d6260d56bd92e9d11f39e9f37c323a261bc822a589b85f760b254'
+ '025e56fff5ae3659abc867ef1b5739a4632c91fa7f10d54d0853e9905355a15f')
+
+prepare() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/logos.patch"
+
+ patch -Np1 -i "$srcdir/free-distros.patch"
+}
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/gnome-boxes-libre/free-distros.patch b/pcr/gnome-boxes-libre/free-distros.patch
new file mode 100644
index 000000000..d83d2ca4b
--- /dev/null
+++ b/pcr/gnome-boxes-libre/free-distros.patch
@@ -0,0 +1,11 @@
+--- gnome-boxes-3.10.0/data/gnome-boxes-logos-db.xml.original 2013-11-23 13:26:20.013010981 +0100
++++ gnome-boxes-3.10.0/data/gnome-boxes-logos-db.xml 2013-11-23 14:29:33.237567173 +0100
+@@ -2,4 +2,8 @@
+
+ <!-- Please read README.logos for any questions about usage of product logos in Boxes. !-->
+
++ <os id="https://parabolagnulinux.org">
++ <logo>https://projects.parabolagnulinux.org/artwork.git/plain/official-2013/optimized-text/logo.svg</logo>
++ </os>
++
+ </libosinfo>
diff --git a/pcr/gnome-boxes-libre/gnome-boxes.install b/pcr/gnome-boxes-libre/gnome-boxes.install
new file mode 100644
index 000000000..2ceb2ac08
--- /dev/null
+++ b/pcr/gnome-boxes-libre/gnome-boxes.install
@@ -0,0 +1,17 @@
+update() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_install() {
+ update
+}
+
+post_upgrade() {
+ update
+}
+
+post_remove() {
+ update
+}
diff --git a/pcr/gnome-boxes-libre/logos.patch b/pcr/gnome-boxes-libre/logos.patch
new file mode 100644
index 000000000..6fe80a2eb
--- /dev/null
+++ b/pcr/gnome-boxes-libre/logos.patch
@@ -0,0 +1,39 @@
+--- gnome-boxes-3.10.0/data/gnome-boxes-logos-db.xml.original 2013-11-16 22:30:08.198540527 +0100
++++ gnome-boxes-3.10.0/data/gnome-boxes-logos-db.xml 2013-11-16 22:30:12.135269885 +0100
+@@ -2,36 +2,4 @@
+
+ <!-- Please read README.logos for any questions about usage of product logos in Boxes. !-->
+
+- <os id="http://debian.org/debian/1.0">
+- <logo>http://www.debian.org/logos/openlogo-nd.svg</logo>
+- </os>
+-
+- <os id="http://fedoraproject.org/fedora/1">
+- <logo>http://people.gnome.org/~zeeshanak/logos/fedora.svg</logo>
+- </os>
+-
+- <os id="http://opensuse.org/opensuse/10.2">
+- <logo>http://people.gnome.org/~zeeshanak/logos/opensuse.svg</logo>
+- </os>
+-
+- <os id="http://ubuntu.com/ubuntu/4.10">
+- <logo>http://people.gnome.org/~zeeshanak/logos/ubuntu.svg</logo>
+- </os>
+-
+- <os id="http://gnome.org/3.6">
+- <logo>http://people.gnome.org/~zeeshanak/logos/gnome-logo.svg</logo>
+- </os>
+-
+- <os id="http://redhat.com/rhel/4.0">
+- <logo>http://people.gnome.org/~zeeshanak/logos/shadownman-pill.svg</logo>
+- </os>
+-
+- <os id="http://redhat.com/rhel/5.0">
+- <logo>http://people.gnome.org/~zeeshanak/logos/shadownman-pill.svg</logo>
+- </os>
+-
+- <os id="http://redhat.com/rhel/6.0">
+- <logo>http://people.gnome.org/~zeeshanak/logos/shadownman-pill.svg</logo>
+- </os>
+-
+ </libosinfo>
diff --git a/pcr/gnome-rdp/PKGBUILD b/pcr/gnome-rdp/PKGBUILD
new file mode 100644
index 000000000..67a96bb7f
--- /dev/null
+++ b/pcr/gnome-rdp/PKGBUILD
@@ -0,0 +1,46 @@
+# Contributor: György Balló <ballogy@freestart.hu>
+# Contributor: Hyperair <hyperair@gmail.com>
+# Contributor: kumico <norrian@gmail.com>
+# Contributor: adamruss <mail@russ.co.il>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=gnome-rdp
+pkgver=0.3.1.0
+pkgrel=1
+pkgdesc="Remote desktop client for the GNOME Desktop with RDP/VNC/SSH capabilities, written in C Sharp"
+arch=('any')
+url="http://sourceforge.net/projects/gnome-rdp/"
+license=('GPL' 'LGPL')
+depends=('gtk-sharp-2' 'gnome-keyring-sharp')
+optdepends=('openssh: SSH client'
+ 'gnome-terminal: required for the SSH client'
+ 'rdesktop: RDP client'
+ 'tightvnc: VNC client')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ appindicator.patch)
+md5sums=('3c1329702914f8b1c213c0bb00d078cf'
+ '7bbe98eadfe199c5664fd69a4531fb3d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's/tight-vncviewer/vncviewer/' Sessions/SessionCollection.cs
+ patch -R -Np3 -i "$srcdir/appindicator.patch"
+ sed -i 's/pkglib_SCRIPTS/programfiles_SCRIPTS/' Makefile.include
+ sed -i 's|@expanded_libdir@|@prefix@/@libdir@|' gnome-rdp.in
+
+ autoreconf -fi
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # Install desktop and icon files
+ install -Dm644 Menu/$pkgname.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
+ install -Dm644 Menu/$pkgname.png "$pkgdir/usr/share/pixmaps/$pkgname.png"
+}
+md5sums=('3c1329702914f8b1c213c0bb00d078cf'
+ '7bbe98eadfe199c5664fd69a4531fb3d')
diff --git a/pcr/gnome-rdp/appindicator.patch b/pcr/gnome-rdp/appindicator.patch
new file mode 100644
index 000000000..4cb4d7a65
--- /dev/null
+++ b/pcr/gnome-rdp/appindicator.patch
@@ -0,0 +1,249 @@
+Index: /trunk/gnome-rdp/configure.ac
+===================================================================
+--- /trunk/gnome-rdp/configure.ac (revision 263)
++++ /trunk/gnome-rdp/configure.ac (revision 264)
+@@ -50,6 +50,7 @@
+ PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0])
+ PKG_CHECK_MODULES([GLADE_SHARP_20], [glade-sharp-2.0])
+ PKG_CHECK_MODULES([GNOME_KEYRING_SHARP_10], [gnome-keyring-sharp-1.0])
++PKG_CHECK_MODULES([APPINDICATOR_SHARP_01], [appindicator-sharp-0.1])
+
+ dnl package checks, per config
+
+Index: /trunk/gnome-rdp/MainWindow.cs
+===================================================================
+--- /trunk/gnome-rdp/MainWindow.cs (revision 257)
++++ /trunk/gnome-rdp/MainWindow.cs (revision 264)
+@@ -31,14 +31,18 @@
+ using GnomeRDP.Vnc;
+
++using AppIndicator;
++
+ namespace GnomeRDP
+ {
+ public partial class MainWindow: Gtk.Window
+ {
+- private StatusIcon statusIcon;
++ private ApplicationIndicator applicationIndicator;
+ private Gtk.Action actionQuit;
++ private Gtk.Action actionToggleVisible;
++ private bool hideOnDelete = false;
+
+ private const string sessionKey = "Session";
+
+- public MainWindow(): base (Gtk.WindowType.Toplevel)
++ public MainWindow (): base (Gtk.WindowType.Toplevel)
+ {
+ Build ();
+@@ -46,72 +50,80 @@
+ this.DeleteEvent += (s, e) =>
+ {
+- Visible = false;
+- e.RetVal = true;
++ if (hideOnDelete)
++ {
++ Visible = false;
++ e.RetVal = true;
++ }
+ };
+
+- this.actionQuit = new Gtk.Action("QuitAction", "Quit");
+- this.actionQuit.Activated+= (s, e) => Application.Quit();
++ this.actionQuit = new Gtk.Action ("QuitAction", "Quit");
++ this.actionQuit.Activated += (s, e) => Application.Quit ();
++
++ this.actionToggleVisible = new Gtk.Action("ToggleVisibleAction", "Show/Hide");
++ this.actionToggleVisible.Activated += (s, e) => { this.Visible = !this.Visible; };
++
++ this.applicationIndicator = new ApplicationIndicator ("gnome-rdp", "gnome-rdp", Category.ApplicationStatus);
++ this.applicationIndicator.ConnectionChanged += (s, e) => { hideOnDelete = this.applicationIndicator.Connected; };
+
+- this.statusIcon = new StatusIcon(ResourceLoader.Find(ResourceLoader.Icons.gnomeRdp));
+- this.statusIcon.Visible = true;
+- this.statusIcon.Tooltip = "GnomeRDP";
+- this.statusIcon.Activate += OnStatusIcon_Activate;
+- this.statusIcon.PopupMenu += OnStatusIcon_PopupMenu;
+-
++ this.applicationIndicator.Menu = CreateMenu();
++ this.applicationIndicator.Status = Status.Active;
++
+ this.Icon = ResourceLoader.Find(ResourceLoader.Icons.gnomeRdp);
+ }
+-
+- private void OnStatusIcon_Activate(object sender, EventArgs e)
++
++ public void UpdateMenu()
+ {
+- Visible = !Visible;
++ Menu oldMenu = this.applicationIndicator.Menu;
++
++ this.applicationIndicator.Menu = CreateMenu();
++
++ oldMenu.Dispose();
+ }
+-
+- private void OnStatusIcon_PopupMenu(object sender, PopupMenuArgs e)
++
++ private Menu CreateMenu()
+ {
+- try
+- {
+- Menu topMenu = new Menu();
+- topMenu.Popup();
++ Menu topMenu = new Menu();
++
++ topMenu.Append(actionToggleVisible.CreateMenuItem());
++ topMenu.Append(new SeparatorMenuItem());
+
+- foreach (var group in Program.SessionCollection.Groups)
+- {
+- MenuItem groupMenu = new MenuItem(group);
+- topMenu.Append(groupMenu);
+-
+- Menu subMenu = new Menu();
+- foreach(var session in Program.SessionCollection.Items.Where(s => s.Group == group).OrderBy(s => s.Server))
+- {
+- MenuItem menuItem = new MenuItem(session.MenuFormat);
+- menuItem.TooltipText = session.Tooltip;
+- menuItem.Activated += PopupMenuItem_Activated;
+- menuItem.Data[sessionKey] = session;
+-
+- subMenu.Append(menuItem);
+- }
+- groupMenu.Submenu = subMenu;
+- }
+-
+- topMenu.Append(new SeparatorMenuItem());
+-
+- foreach (var session in Program.SessionCollection.Items.Where(s => string.IsNullOrEmpty(s.Group)).OrderBy(s => s.Server))
++ foreach (var group in Program.SessionCollection.Groups)
++ {
++ MenuItem groupMenu = new MenuItem(group);
++
++ Menu subMenu = new Menu();
++ foreach(var session in Program.SessionCollection.Items.Where(s => s.Group == group).OrderBy(s => s.Server))
+ {
+ MenuItem menuItem = new MenuItem(session.MenuFormat);
+ menuItem.TooltipText = session.Tooltip;
+ menuItem.Activated += PopupMenuItem_Activated;
+- menuItem.Data[sessionKey] = session;
+-
+- topMenu.Append(menuItem);
++ menuItem.Data[sessionKey] = session;
++
++ subMenu.Append(menuItem);
+ }
++ groupMenu.Submenu = subMenu;
++
++ topMenu.Append(groupMenu);
++ }
++
++ topMenu.Append(new SeparatorMenuItem());
++
++ foreach (var session in Program.SessionCollection.Items.Where(s => string.IsNullOrEmpty(s.Group)).OrderBy(s => s.Server))
++ {
++ MenuItem menuItem = new MenuItem(session.MenuFormat);
++ menuItem.TooltipText = session.Tooltip;
++ menuItem.Activated += PopupMenuItem_Activated;
++ menuItem.Data[sessionKey] = session;
+
+- topMenu.Append(new SeparatorMenuItem());
+- topMenu.Append(actionQuit.CreateMenuItem());
+- topMenu.ShowAll();
+-// topMenu.Popup();
++ topMenu.Append(menuItem);
+ }
+- catch
+- {
+- }
+- }
+-
++
++ topMenu.Append(new SeparatorMenuItem());
++ topMenu.Append(actionQuit.CreateMenuItem());
++
++ topMenu.ShowAll();
++ return topMenu;
++ }
++
+ private void PopupMenuItem_Activated(object sender, EventArgs e)
+ {
+@@ -126,20 +138,4 @@
+ }
+ }
+-
+- protected virtual void OnNewRdpActionActivated (object sender, System.EventArgs e)
+- {
+- }
+-
+- protected virtual void OnNewVncActionActivated (object sender, System.EventArgs e)
+- {
+- }
+-
+- protected virtual void OnNewSshActionActivated (object sender, System.EventArgs e)
+- {
+- }
+-
+-
+-
+-
+ }
+ }
+Index: /trunk/gnome-rdp/ChangeLog
+===================================================================
+--- /trunk/gnome-rdp/ChangeLog (revision 262)
++++ /trunk/gnome-rdp/ChangeLog (revision 264)
+@@ -1,2 +1,11 @@
++2011-11-02 James P Michels III <jmichels@bluefintrading.com>
++
++ * Program.cs:
++ * gnome-rdp.sln:
++ * MainWindow.cs:
++ * gnome-rdp.csproj:
++ * gui.stetic:
++ * SessionsWidget.cs: Changes to support AppIndicator
++
+ 2011-05-22 James P Michels III <james.p.michels@gmail.com>
+
+Index: /trunk/gnome-rdp/Sessions/SessionsWidget.cs
+===================================================================
+--- /trunk/gnome-rdp/Sessions/SessionsWidget.cs (revision 257)
++++ /trunk/gnome-rdp/Sessions/SessionsWidget.cs (revision 264)
+@@ -205,4 +205,5 @@
+ }
+
++ Program.UpdateMainWindowMenu();
+ }
+ catch (Exception ex)
+Index: /trunk/gnome-rdp/gtk-gui/gui.stetic
+===================================================================
+--- /trunk/gnome-rdp/gtk-gui/gui.stetic (revision 261)
++++ /trunk/gnome-rdp/gtk-gui/gui.stetic (revision 264)
+@@ -7,5 +7,6 @@
+ <import>
+ <widget-library name="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+- <widget-library name="../bin/Debug/gnome-rdp.exe" internal="true" />
++ <widget-library name="appindicator-sharp, Version=0.2.0.0, Culture=neutral, PublicKeyToken=bcae265d1c7ab4c2" />
++ <widget-library name="../bin/Release/gnome-rdp.exe" internal="true" />
+ </import>
+ <widget class="Gtk.Window" id="GnomeRDP.MainWindow" design-size="798 565">
+Index: /trunk/gnome-rdp/Program.cs
+===================================================================
+--- /trunk/gnome-rdp/Program.cs (revision 261)
++++ /trunk/gnome-rdp/Program.cs (revision 264)
+@@ -196,5 +196,14 @@
+ });
+ }
+-
++
++ public static void UpdateMainWindowMenu()
++ {
++ GLib.Timeout.Add(0, () =>
++ {
++ mainWindow.UpdateMenu();
++ return false;
++ });
++ }
++
+ public static void SetMainWindowVisible(bool visible)
+ {
diff --git a/pcr/gnomeradio/PKGBUILD b/pcr/gnomeradio/PKGBUILD
new file mode 100644
index 000000000..1fa76de08
--- /dev/null
+++ b/pcr/gnomeradio/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: none
+# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): tritonas00 <tritonas00@gmail.com>
+# Contributor: Ivan Rojas <kirdux@gmail.com>
+
+# Because gnomeradio is written against ancient libraries, we must patch it to
+# compile and work on a modern system. Let's just grab the patch series that
+# Debian uses.
+_debver=1.8-2 # which patches to grab from Debian
+_debrepo=http://ftp.debian.org/debian/pool/main
+_debfile() { echo "${_debrepo}/${1:0:1}/${1}/${1}_${2}"; }
+
+pkgname=gnomeradio
+pkgver=1.8
+pkgrel=6.1
+pkgdesc="An FM-radio tuner for the GNOME desktop"
+url="https://projects.gnome.org/gnomeradio/"
+license=('GPL')
+arch=('i686' 'x86_64')
+install=gnomeradio.install
+depends=(libgnome-media-profiles lirc-utils hicolor-icon-theme)
+makedepends=(gnome-doc-utils intltool gnome-vfs libgnomeui v4l-utils)
+source=(https://launchpad.net/$pkgname/stable/$pkgver/+download/$pkgname-$pkgver.tar.gz
+ $(_debfile "$pkgname" "$_debver").debian.tar.gz)
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver"
+ while read -r patchfile; do
+ patch -p1 -i "$srcdir/debian/patches/$patchfile"
+ done <"$srcdir/debian/patches/series"
+ autoconf
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ LIBS=-lm ./configure --prefix=/usr --sysconfdir=/etc --disable-scrollkeeper \
+ --disable-install-schemas
+ make
+}
+
+package () {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ mkdir "$pkgdir"/usr/share/pixmaps
+ install data/icons/scalable/gnomeradio.svg "$pkgdir"/usr/share/pixmaps/gnomeradio.svg
+}
+
+md5sums=('26f07c432dffeebec3cc904f99295427'
+ '019ce748f8463d3eaebbb3e88d18d3e0')
diff --git a/pcr/gnomeradio/gnomeradio.install b/pcr/gnomeradio/gnomeradio.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/pcr/gnomeradio/gnomeradio.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/pcr/gnucash-docs/PKGBUIDL b/pcr/gnucash-docs/PKGBUIDL
new file mode 100644
index 000000000..94c5d62d0
--- /dev/null
+++ b/pcr/gnucash-docs/PKGBUIDL
@@ -0,0 +1 @@
+md5sums=('38daeb3b15f296726ee8124122040f08')
diff --git a/pcr/gnucash-docs/PKGBUILD b/pcr/gnucash-docs/PKGBUILD
new file mode 100644
index 000000000..0895692f2
--- /dev/null
+++ b/pcr/gnucash-docs/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Mark Schneider <queueRAM@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=gnucash-docs
+pkgver=2.4.1
+pkgrel=1
+pkgdesc="User documentation for gnucash"
+arch=('i686' 'x86_64')
+url="http://www.gnucash.org"
+license=('GPL')
+depends=('gnucash' 'docbook-xml' 'rarian' 'yelp')
+source=(http://downloads.sourceforge.net/gnucash/${pkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('38daeb3b15f296726ee8124122040f08')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+md5sums=('38daeb3b15f296726ee8124122040f08')
+md5sums=('38daeb3b15f296726ee8124122040f08')
diff --git a/pcr/gnucash-docs/gnucash-docs.install b/pcr/gnucash-docs/gnucash-docs.install
new file mode 100644
index 000000000..e82d4b10b
--- /dev/null
+++ b/pcr/gnucash-docs/gnucash-docs.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo "updating scrollkeeper catalogue ..."
+ scrollkeeper-update -q -p /var/lib/scrollkeeper
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ echo "updating scrollkeeper catalogue ..."
+ update-desktop-database -q
+ scrollkeeper-update -q -p /var/lib/scrollkeeper
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/pcr/gnuhealth/PKGBUILD b/pcr/gnuhealth/PKGBUILD
new file mode 100644
index 000000000..c10b4e7c9
--- /dev/null
+++ b/pcr/gnuhealth/PKGBUILD
@@ -0,0 +1,77 @@
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=gnuhealth
+pkgver=2.4.0
+pkgrel=1
+pkgdesc="A free Health and Hospital Information System"
+arch=any
+url=http://health.gnu.org/
+license=GPL3
+depends=(
+ postgresql
+ pygtk
+ python2-dateutil
+ python2-ldap
+ python2-pillow
+ python2-pip
+ python2-psycopg2
+ python2-pytz
+ python2-pywebdav
+ python2-qrcode
+ python2-vobject
+ "trytond>=3.0"
+ "trytond-account-invoice>=3.0"
+ "trytond-calendar>=3.0"
+ "trytond-country>=3.0"
+ "trytond-stock-lot>=3.0"
+)
+source=http://ftp.gnu.org/gnu/health/$pkgname-$pkgver.tar.gz
+sha512sums=ee33b3efd731a7dc688e20c09a0aff58001e5e9b24d01420da20021e13ac3ca90c4fb141c4ca49d7d27144d1ef0255d09fd4eab83c86b782052c2244a57ba36d
+
+package() {
+ MODULES=(
+ health
+ health_calendar
+ health_genetics
+ health_gyneco
+ health_history
+ health_icd10
+ health_icd10pcs
+ health_icu
+ health_imaging
+ health_inpatient
+ health_inpatient_calendar
+ health_lab
+ health_lifestyle
+ health_mdg6
+ health_ntd
+ health_ntd_chagas
+ health_ntd_dengue
+ health_nursing
+ health_pediatrics
+ health_pediatrics_growth_charts
+ health_pediatrics_growth_charts_who
+ health_profile
+ health_qrcodes
+ health_reporting
+ health_services
+ health_socioeconomics
+ health_stock
+ health_surgery
+ health_who_essential_medicines
+ )
+
+ # build gnuhealth modules
+ for module in ${MODULES[@]}
+ do
+ cd $srcdir/$pkgname-$pkgver/$module
+ python2 setup.py install --root=$pkgdir
+ done
+
+ # put gnuhealth manual to man folder
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -Dm644 health/man/$pkgname.1 \
+ $pkgdir/usr/share/man/man1/$pkgname.1
+}
diff --git a/pcr/gnuit/PKGBUILD b/pcr/gnuit/PKGBUILD
new file mode 100644
index 000000000..6c1983e32
--- /dev/null
+++ b/pcr/gnuit/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: James Reed <supplantr at archlinux dot info>
+# Contributor: Leslie P. Polzer <polzer at stardawn dot org>
+# Maintainer : Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.io>
+
+pkgname=gnuit
+pkgver=4.9.5
+pkgrel=1
+pkgdesc="A set of interactive text-mode tools."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gnuit/"
+license=('GPL3')
+depends=('bash')
+install=${pkgname}.install
+source=(http://ftp.gnu.org/gnu/gnuit/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-transition
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/gnuit/gnuit.install b/pcr/gnuit/gnuit.install
new file mode 100644
index 000000000..e26e79dae
--- /dev/null
+++ b/pcr/gnuit/gnuit.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file=gnuit.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/pcr/gnun/PKGBUILD b/pcr/gnun/PKGBUILD
new file mode 100644
index 000000000..2f1cbf40f
--- /dev/null
+++ b/pcr/gnun/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+#
+
+pkgname=gnun
+pkgver=0.4
+pkgrel=2
+arch=('any')
+license=('GPL3')
+pkgdesc="Build system for gnu.org translations"
+url="http://www.gnu.org/software/gnun/"
+depends=('guile' 'po4a' 'libxml2')
+makedepends=('heirloom-mailx' 'cvs' 'svn')
+optdepends=('cvs: for CVS support'
+ 'subversion: for Subversion support')
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig})
+md5sums=('3baf8a16cc017e6335e65975c7223ac8'
+ '9bd1bada0b07154cf3e1c1cf937194e7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install install-info
+}
diff --git a/pcr/gnuplot-py/PKGBUILD b/pcr/gnuplot-py/PKGBUILD
new file mode 100644
index 000000000..315c7b695
--- /dev/null
+++ b/pcr/gnuplot-py/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Michael Krauss <hippodriver@gmx.net>
+# Contributor : Baptiste Jonglez <zerstorer at free dot fr>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=gnuplot-py
+pkgver=1.8
+pkgrel=3
+pkgdesc="Gnuplot.py is a Python package that interfaces to gnuplot."
+arch=('any')
+url="http://$pkgname.sourceforge.net/"
+license=('LGPL')
+depends=('python2-numpy' 'gnuplot')
+#options=(!emptydirs)
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('abd6f571e7aec68ae7db90a5217cd5b1')
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --prefix=/usr --root=$pkgdir/ --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
+md5sums=('abd6f571e7aec68ae7db90a5217cd5b1')
diff --git a/pcr/grail/PKGBUILD b/pcr/grail/PKGBUILD
new file mode 100644
index 000000000..c76d2214f
--- /dev/null
+++ b/pcr/grail/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Nicolas Quiénot <niQo @ aur>
+# Contributor: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
+# Contributor: thn81 <root@scrat>
+
+pkgname=grail
+pkgver=3.1.0
+pkgrel=1
+pkgdesc="Gesture Recognition And Instantiation Library"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/grail"
+license=('GPL')
+depends=('frame>=2.5.0' 'libxi')
+makedepends=('inputproto')
+conflicts=('utouch-grail')
+replaces=('utouch-grail')
+options=('!libtool')
+source=("http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Static library needed for tests
+ ./configure --prefix=/usr # --disable-static
+ MAKEFLAGS="-j1"
+ make ${MAKEFLAGS}
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}/" install
+}
+
+md5sums=('f0f8c56430ee3717778dec6452201c33')
diff --git a/pcr/grass/PKGBUILD b/pcr/grass/PKGBUILD
new file mode 100644
index 000000000..aa32f8ca8
--- /dev/null
+++ b/pcr/grass/PKGBUILD
@@ -0,0 +1,138 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: Emiliano Vavassori <syntaxerrormmm(at)gmail.com>
+
+pkgname=grass
+pkgver=6.4.2
+pkgrel=5
+pkgdesc='Geographic Information System (GIS) used for geospatial data management and analysis, image processing, graphics/maps production, spatial modeling, and visualization.'
+arch=('i686' 'x86_64')
+url='http://grass.osgeo.org/'
+license=('GPL')
+depends=('cfitsio' 'fftw' 'gdal' 'glu' 'libjpeg' 'libpng' 'libtiff' 'libxmu' 'mesa' 'python2' 'postgresql' 'proj' 'tcl' 'tk' 'wxpython' 'xorg-server')
+makedepends=('freetype2')
+optdepends=('sqlite3: sqlite3 database interface'
+ 'mysql: mysql database interface'
+ 'r: R language interface'
+ 'blas: required for GMATH library'
+ 'lapack: required for GMATH library'
+ 'cairo: cairo support'
+ 'ffmpeg: ffmpeg support'
+ 'lesstif: motif support')
+options=('!libtool' '!makeflags')
+install='grass.install'
+source=("http://grass.osgeo.org/grass64/source/${pkgname}-${pkgver}.tar.gz"
+ "grass.sh"
+ "grass.conf"
+ "grass-python2.patch"
+ "grass-tk86-fix.patch")
+md5sums=('d3398d6b1e3a2ef19cfb6e39a5ae9919'
+ '23da2e9399b3c5504851dec37821abe1'
+ '6103480c2a1adc19a50b9e925e5e6d4c'
+ '8717c73e7d262b1cff44d35ce80c50bb'
+ 'b7cb69248a387f70dabd5ce20b8297dc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Replacing previous python2 fixes with a patch.
+ # Thanks to Gunther Schulz to have reported a possible bug in the patching.
+ patch -p1 -i "${srcdir}/grass-python2.patch"
+
+ # Solves build issue reported here:
+ # http://trac.osgeo.org/grass/ticket/1843
+ patch -p1 -i "${srcdir}/grass-tk86-fix.patch"
+
+ # the following exports are probably not needed
+ export PYTHON=python2
+ export DOXNAME=python2
+ export GRASS_python=python2
+
+ # Enabling 64bit support - EGV
+ if [ "$CARCH" = "x86_64" ]; then
+ ENABLE64BIT="--enable-64bit"
+ else
+ ENABLE64BIT="--disable-64bit"
+ fi
+
+ # see ${srcdir}/grass-6.4.0/REQUIREMENTS.html for options
+ # GLw is hard disabled, since no package in Archlinux can provide it - EGV
+ ./configure ${ENABLE64BIT} \
+ --prefix=/opt \
+ --enable-64bit \
+ --enable-W11 \
+ --with-jpeg \
+ --with-tiff \
+ --with-png \
+ --with-tcltk \
+ --with-opengl \
+ --with-fftw \
+ --with-postgres \
+ --with-freetype \
+ --with-freetype-includes=/usr/include/freetype2 \
+ --without-glw \
+ --with-nls \
+ --with-gdal \
+ --with-geos \
+ --with-proj-includes=/usr/include \
+ --with-proj-libs=/usr/lib \
+ --with-proj-share=/usr/share/proj \
+ --with-python=/usr/bin/python2-config \
+ --with-wxwidgets=/usr/bin/wx-config
+
+ # sqlite3 support
+ # --with-sqlite \
+
+ # mysql support
+ # --with-mysql \
+ # --with-mysql-includes=/usr/include/mysql \
+
+ # blas support
+ # --with-blas \
+
+ # lapack support
+ # --with-lapack \
+
+ 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 "${srcdir}/${pkgname}-${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
+
+ 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/${pkgname}-${pkgver}/tools
+}
diff --git a/pcr/grass/grass-python2.patch b/pcr/grass/grass-python2.patch
new file mode 100644
index 000000000..ee35949b5
--- /dev/null
+++ b/pcr/grass/grass-python2.patch
@@ -0,0 +1,327 @@
+diff -ur grass-6.4.2/doc/python/example_ctypes.py grass-6.4.2-new/doc/python/example_ctypes.py
+--- grass-6.4.2/doc/python/example_ctypes.py 2010-04-17 14:15:26.000000000 +0200
++++ grass-6.4.2-new/doc/python/example_ctypes.py 2012-08-16 09:33:01.480497320 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ import os, sys, subprocess
+ from ctypes import *
+ grass = CDLL("libgrass_gis.so")
+diff -ur grass-6.4.2/general/g.parser/test.py grass-6.4.2-new/general/g.parser/test.py
+--- grass-6.4.2/general/g.parser/test.py 2009-07-23 23:08:41.000000000 +0200
++++ grass-6.4.2-new/general/g.parser/test.py 2012-08-16 09:33:01.513831191 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ # g.parser demo script for python programing
+
+diff -ur grass-6.4.2/gui/scripts/g.change.gui.py grass-6.4.2-new/gui/scripts/g.change.gui.py
+--- grass-6.4.2/gui/scripts/g.change.gui.py 2009-05-30 07:36:32.000000000 +0200
++++ grass-6.4.2-new/gui/scripts/g.change.gui.py 2012-08-16 09:33:04.353875090 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ ############################################################################
+ #
+diff -ur grass-6.4.2/gui/scripts/g.extension.py grass-6.4.2-new/gui/scripts/g.extension.py
+--- grass-6.4.2/gui/scripts/g.extension.py 2012-02-18 18:28:29.000000000 +0100
++++ grass-6.4.2-new/gui/scripts/g.extension.py 2012-08-16 09:33:04.393875703 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ ############################################################################
+ #
+diff -ur grass-6.4.2/gui/scripts/g.extension.rebuild.all.py grass-6.4.2-new/gui/scripts/g.extension.rebuild.all.py
+--- grass-6.4.2/gui/scripts/g.extension.rebuild.all.py 2012-02-01 10:26:11.000000000 +0100
++++ grass-6.4.2-new/gui/scripts/g.extension.rebuild.all.py 2012-08-16 09:33:04.320541242 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ ############################################################################
+ #
+diff -ur grass-6.4.2/gui/scripts/v.type_wrapper.py grass-6.4.2-new/gui/scripts/v.type_wrapper.py
+--- grass-6.4.2/gui/scripts/v.type_wrapper.py 2009-05-30 07:36:32.000000000 +0200
++++ grass-6.4.2-new/gui/scripts/v.type_wrapper.py 2012-08-16 09:33:04.287207393 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ ############################################################################
+ #
+ # MODULE: v.type_wrapper.py (v.type wrapper script)
+diff -ur grass-6.4.2/gui/wxpython/gui_modules/menuform.py grass-6.4.2-new/gui/wxpython/gui_modules/menuform.py
+--- grass-6.4.2/gui/wxpython/gui_modules/menuform.py 2012-01-04 10:55:50.000000000 +0100
++++ grass-6.4.2-new/gui/wxpython/gui_modules/menuform.py 2012-08-16 09:33:03.000520822 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ """
+ @brief Construct simple wx.Python GUI from a GRASS command interface
+ description.
+diff -ur grass-6.4.2/gui/wxpython/scripts/d.rast3d.py grass-6.4.2-new/gui/wxpython/scripts/d.rast3d.py
+--- grass-6.4.2/gui/wxpython/scripts/d.rast3d.py 2010-10-17 19:15:32.000000000 +0200
++++ grass-6.4.2-new/gui/wxpython/scripts/d.rast3d.py 2012-08-16 09:33:04.083870925 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ #
+ ############################################################################
+ #
+diff -ur grass-6.4.2/gui/wxpython/scripts/p.cmd.py grass-6.4.2-new/gui/wxpython/scripts/p.cmd.py
+--- grass-6.4.2/gui/wxpython/scripts/p.cmd.py 2010-10-17 19:15:32.000000000 +0200
++++ grass-6.4.2-new/gui/wxpython/scripts/p.cmd.py 2012-08-16 09:33:03.870534267 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ ############################################################################
+ #
+ # MODULE: p.cmd
+diff -ur grass-6.4.2/gui/wxpython/scripts/p.db.py grass-6.4.2-new/gui/wxpython/scripts/p.db.py
+--- grass-6.4.2/gui/wxpython/scripts/p.db.py 2010-10-17 19:15:32.000000000 +0200
++++ grass-6.4.2-new/gui/wxpython/scripts/p.db.py 2012-08-16 09:33:04.047203667 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ ############################################################################
+ #
+ # MODULE: p.db
+diff -ur grass-6.4.2/gui/wxpython/scripts/p.mon.py grass-6.4.2-new/gui/wxpython/scripts/p.mon.py
+--- grass-6.4.2/gui/wxpython/scripts/p.mon.py 2010-10-17 19:15:32.000000000 +0200
++++ grass-6.4.2-new/gui/wxpython/scripts/p.mon.py 2012-08-16 09:33:03.940535364 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ ############################################################################
+ #
+ # MODULE: p.mon
+diff -ur grass-6.4.2/gui/wxpython/scripts/p.rast.py grass-6.4.2-new/gui/wxpython/scripts/p.rast.py
+--- grass-6.4.2/gui/wxpython/scripts/p.rast.py 2010-10-17 19:15:32.000000000 +0200
++++ grass-6.4.2-new/gui/wxpython/scripts/p.rast.py 2012-08-16 09:33:04.013869835 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ ############################################################################
+ #
+ # MODULE: p.rast
+diff -ur grass-6.4.2/gui/wxpython/scripts/p.vect.py grass-6.4.2-new/gui/wxpython/scripts/p.vect.py
+--- grass-6.4.2/gui/wxpython/scripts/p.vect.py 2010-10-17 19:15:32.000000000 +0200
++++ grass-6.4.2-new/gui/wxpython/scripts/p.vect.py 2012-08-16 09:33:03.980535999 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ ############################################################################
+ #
+ # MODULE: p.vect
+diff -ur grass-6.4.2/imagery/i.atcorr/create_iwave.py grass-6.4.2-new/imagery/i.atcorr/create_iwave.py
+--- grass-6.4.2/imagery/i.atcorr/create_iwave.py 2010-12-22 12:09:24.000000000 +0100
++++ grass-6.4.2-new/imagery/i.atcorr/create_iwave.py 2012-08-16 09:33:04.430542943 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ """
+ Created on Sat Mar 27 11:35:32 2010
+
+diff -ur grass-6.4.2/include/Make/Platform.make.in grass-6.4.2-new/include/Make/Platform.make.in
+--- grass-6.4.2/include/Make/Platform.make.in 2010-11-08 08:23:48.000000000 +0100
++++ grass-6.4.2-new/include/Make/Platform.make.in 2012-08-16 09:33:35.484354613 +0200
+@@ -217,7 +217,7 @@
+ USE_CAIRO = @USE_CAIRO@
+
+ #Python
+-PYTHON = python
++PYTHON = python2
+ PYTHONINC = @PYTHONINC@
+ PYTHONCFLAGS = @PYTHONCFLAGS@
+ PYTHONLDFLAGS = @PYTHONLDFLAGS@
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/ctypedescs.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/ctypedescs.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/ctypedescs.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/ctypedescs.py 2012-08-16 09:33:04.987218247 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''
+ ctypesgencore.ctypedescs contains classes to represent a C type. All of them
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/descriptions.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/descriptions.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/descriptions.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/descriptions.py 2012-08-16 09:33:04.883883291 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ ctypesgencore.descriptions contains classes to represent a description of a
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/expressions.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/expressions.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/expressions.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/expressions.py 2012-08-16 09:33:05.023885450 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''
+ The expressions module contains classes to represent an expression. The main
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/__init__.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/__init__.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/__init__.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/__init__.py 2012-08-16 09:33:04.920550527 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ Ctypesgencore is the module that contains the main body of ctypesgen - in fact,
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/messages.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/messages.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/messages.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/messages.py 2012-08-16 09:33:04.503877428 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ ctypesgencore.messages contains functions to display status, error, or warning
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/options.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/options.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/options.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/options.py 2012-08-16 09:33:04.707213885 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ All of the components of ctypegencore require an argument called "options".
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/cdeclarations.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/cdeclarations.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/cdeclarations.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/cdeclarations.py 2012-08-16 09:33:05.393891162 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''
+ This file contains classes that represent C declarations. cparser produces
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/cgrammar.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/cgrammar.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/cgrammar.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/cgrammar.py 2012-08-16 09:33:05.433891816 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''This is a yacc grammar for C.
+
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/cparser.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/cparser.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/cparser.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/cparser.py 2012-08-16 09:33:05.213888390 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''
+ Parse a C source file.
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/ctypesparser.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/ctypesparser.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/ctypesparser.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/ctypesparser.py 2012-08-16 09:33:05.093886533 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''
+ ctypesgencore.parser.ctypesparser contains a class, CtypesParser, which is a
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/datacollectingparser.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/datacollectingparser.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/datacollectingparser.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/datacollectingparser.py 2012-08-16 09:33:05.473892425 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ DataCollectingParser subclasses ctypesparser.CtypesParser and builds Description
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/__init__.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/__init__.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/__init__.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/__init__.py 2012-08-16 09:33:05.283889499 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ This package parses C header files and generates lists of functions, typedefs,
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/pplexer.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/pplexer.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/pplexer.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/pplexer.py 2012-08-16 09:33:05.180554533 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''Preprocess a C source file using gcc and convert the result into
+ a token stream
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/preprocessor.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/preprocessor.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/parser/preprocessor.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/parser/preprocessor.py 2012-08-16 09:33:05.250555640 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ '''Preprocess a C source file using gcc and convert the result into
+ a token stream
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/printer/__init__.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/printer/__init__.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/printer/__init__.py 2011-04-13 14:57:45.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/printer/__init__.py 2012-08-16 09:33:04.640546189 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ This module is the backend to ctypesgen; it contains classes to
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/printer/printer.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/printer/printer.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/printer/printer.py 2011-04-13 14:57:45.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/printer/printer.py 2012-08-16 09:33:04.537211279 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ import os, sys, time
+ from ctypesgencore.descriptions import *
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/dependencies.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/dependencies.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/dependencies.py 2011-04-13 14:57:45.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/dependencies.py 2012-08-16 09:33:04.743881125 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ The dependencies module determines which descriptions depend on which other
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/__init__.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/__init__.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/__init__.py 2011-04-13 14:57:45.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/__init__.py 2012-08-16 09:33:04.810548840 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ This module contains functions to operate on the DeclarationCollection produced
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/operations.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/operations.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/operations.py 2011-04-13 14:57:45.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/operations.py 2012-08-16 09:33:04.847216053 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ """
+ The operations module contains various functions to process the
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/pipeline.py grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/pipeline.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgencore/processor/pipeline.py 2011-04-13 14:57:45.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgencore/processor/pipeline.py 2012-08-16 09:33:04.777214964 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ import ctypes, re, os
+ from ctypesgencore.processor.operations import *
+diff -ur grass-6.4.2/lib/python/ctypes/ctypesgen.py grass-6.4.2-new/lib/python/ctypes/ctypesgen.py
+--- grass-6.4.2/lib/python/ctypes/ctypesgen.py 2011-04-13 14:57:46.000000000 +0200
++++ grass-6.4.2-new/lib/python/ctypes/ctypesgen.py 2012-08-16 09:33:05.573893972 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+
+ def find_names_in_modules(modules):
+ names = set()
diff --git a/pcr/grass/grass-tk86-fix.patch b/pcr/grass/grass-tk86-fix.patch
new file mode 100644
index 000000000..f0dbb7c2b
--- /dev/null
+++ b/pcr/grass/grass-tk86-fix.patch
@@ -0,0 +1,11 @@
+--- grass-6.4.2/visualization/nviz/src/draw.c 2008-12-19 21:29:59.000000000 +0100
++++ grass-6.4.2/visualization/nviz/src/draw_new.c 2013-01-21 22:22:09.819456565 +0100
+@@ -32,7 +32,7 @@
+ void CancelFunc_Hook(void)
+ {
+ if (cancel_script != NULL) {
+- TkCopyAndGlobalEval(cancel_interp, cancel_script);
++ Tcl_EvalEx(cancel_interp, cancel_script, -1, TCL_EVAL_GLOBAL);
+ }
+ }
+
diff --git a/pcr/grass/grass.conf b/pcr/grass/grass.conf
new file mode 100644
index 000000000..bb4964d93
--- /dev/null
+++ b/pcr/grass/grass.conf
@@ -0,0 +1 @@
+/opt/grass/lib
diff --git a/pcr/grass/grass.install b/pcr/grass/grass.install
new file mode 100644
index 000000000..878ea0186
--- /dev/null
+++ b/pcr/grass/grass.install
@@ -0,0 +1,26 @@
+## arg 1: the new package version
+post_install() {
+ pkgver=${1%-*}
+
+ # Create symlink for version workaround.
+ ln -sf /opt/grass-${pkgver} /opt/grass
+
+ echo 'Please relogin for required variables to be set from /etc/profile.d/grass.sh'
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ pkgver=${1%-*}
+
+ # Updating symlink for new version
+ ln -sf /opt/grass-${pkgver} /opt/grass
+}
+
+## arg 1: the old package version
+pre_remove() {
+ # Removing cruft symlink
+ rm -f /opt/grass
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/grass/grass.sh b/pcr/grass/grass.sh
new file mode 100644
index 000000000..e36980c16
--- /dev/null
+++ b/pcr/grass/grass.sh
@@ -0,0 +1,4 @@
+export GISBASE=/opt/grass
+export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts
+export MANPATH=$MANPATH:$GISBASE/man
+export GRASS_PYTHON=python2
diff --git a/pcr/gstreamer-hplugins/PKGBUILD b/pcr/gstreamer-hplugins/PKGBUILD
new file mode 100644
index 000000000..c8ec92cd2
--- /dev/null
+++ b/pcr/gstreamer-hplugins/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=gstreamer-hplugins
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="Gstreamer cairo image overlay plugin"
+arch=(i686 x86_64)
+url="http://landell.holoscopio.com/"
+license=('GPL3')
+depends=('cairo' 'gstreamer0.10-base-plugins')
+options=('!libtool')
+source=("$url$pkgname-$pkgver.tar.gz")
+md5sums=('3129cfe6d59ad7bcf20000d2965d8652')
+
+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/pcr/gtk-theme-numix/PKGBUILD b/pcr/gtk-theme-numix/PKGBUILD
new file mode 100644
index 000000000..4c4c10b20
--- /dev/null
+++ b/pcr/gtk-theme-numix/PKGBUILD
@@ -0,0 +1,21 @@
+# Mantainer: Diego
+# Contributor: Aleessio Sergi
+
+pkgname=gtk-theme-numix
+_theme=Numix
+pkgver=1.4
+pkgrel=1
+pkgdesc="A flat and light theme with a modern look"
+arch=('any')
+url="http://satya164.deviantart.com/art/Numix-GTK3-theme-360223962"
+license=('GPL3')
+depends=('gtk-engine-murrine')
+source=(https://github.com/shimmerproject/${_theme}/archive/v${pkgver}.tar.gz)
+md5sums=('323ce459ebf9ee30bf920d18fab3645a')
+
+package() {
+ install -d "$pkgdir/usr/share/themes/${_theme}"
+ cp -rv ${srcdir}/${_theme}-${pkgver}/* "$pkgdir/usr/share/themes/${_theme}/"
+}
+
+md5sums=('323ce459ebf9ee30bf920d18fab3645a')
diff --git a/pcr/gtkmm-utils/PKGBUILD b/pcr/gtkmm-utils/PKGBUILD
new file mode 100644
index 000000000..e3fdfd4a0
--- /dev/null
+++ b/pcr/gtkmm-utils/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Michele Vascellari <michele.vascellari@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=gtkmm-utils
+pkgver=0.4.1
+pkgrel=2
+pkgdesc="High level utility functions/classes/widgets for gtkmm and glibmm"
+arch=('i686' 'x86_64')
+url="http://gtkmm-utils.googlecode.com/"
+license=('GPL')
+depends=('gtkmm')
+makedepends=('pkgconfig>=0.9.0')
+source=(http://$pkgname.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ $pkgname-glib.diff)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/$pkgname-glib.diff"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/gtkmm-utils/gtkmm-utils-glib.diff b/pcr/gtkmm-utils/gtkmm-utils-glib.diff
new file mode 100644
index 000000000..fbe21bb3f
--- /dev/null
+++ b/pcr/gtkmm-utils/gtkmm-utils-glib.diff
@@ -0,0 +1,25 @@
+diff -Naur gtkmm-utils-0.4.1~/glibmm-utils/date.cc gtkmm-utils-0.4.1/glibmm-utils/date.cc
+--- gtkmm-utils-0.4.1~/glibmm-utils/date.cc 2012-11-21 11:43:42.726346909 -0600
++++ gtkmm-utils-0.4.1/glibmm-utils/date.cc 2012-11-21 11:44:27.172760954 -0600
+@@ -25,7 +25,7 @@
+
+ #include <sys/time.h>
+
+-#include <glib/gmessages.h>
++#include <glib.h>
+
+ #include <glibmm/convert.h>
+ #include <glibmm/date.h>
+diff -Naur gtkmm-utils-0.4.1~/glibmm-utils/ustring.cc gtkmm-utils-0.4.1/glibmm-utils/ustring.cc
+--- gtkmm-utils-0.4.1~/glibmm-utils/ustring.cc 2012-11-21 11:43:42.726346909 -0600
++++ gtkmm-utils-0.4.1/glibmm-utils/ustring.cc 2012-11-21 11:44:55.645930936 -0600
+@@ -20,8 +20,7 @@
+ */
+
+ #include <cstring> // for g++ 4.3
+-#include <glib/gmem.h>
+-#include <glib/gmessages.h>
++#include <glib.h>
+ #include "ustring.h"
+
+ namespace Glib {
diff --git a/pcr/gtkpacman/PKGBUILD b/pcr/gtkpacman/PKGBUILD
new file mode 100644
index 000000000..0e66e33e5
--- /dev/null
+++ b/pcr/gtkpacman/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Tetsumaki <http://goo.gl/YMBdA>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Stefano Esposito <ragnarok@email.it>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=gtkpacman
+pkgver=2.3.1
+pkgrel=4
+pkgdesc="GTK package manager for archlinux based on pacman"
+arch=('any')
+url="http://gtkpacman.berlios.de/"
+license=('GPL')
+depends=('pygtk' 'vte')
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+sha256sums=('0ee571a5b1efcf5d8594a6eb04456a598c6354301ee6300c6508999c1eb87b88')
+
+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
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+}
diff --git a/pcr/h264enc/PKGBUILD b/pcr/h264enc/PKGBUILD
new file mode 100644
index 000000000..9f47c3640
--- /dev/null
+++ b/pcr/h264enc/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: AlexanderR <rvacheva at nxt dot ru>
+# Contributor: Markus Heuser <markus.heuser@web.de>
+# Contributor: Stefan Clarke <fm0nk3y@yahoo.co.uk>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=h264enc
+pkgver=9.4.8
+pkgrel=1
+pkgdesc="Advanced shell script for encoding DVDs or video files to the H.264 format using the encoding utility MEncoder from MPlayer."
+arch=('any')
+url='http://h264enc.sourceforge.net/'
+license=('GPL')
+depends=('x264' 'lsdvd' 'lame' 'bc' 'mencoder')
+optdepends=('mkvtoolnix' 'gpac' 'ogmtools' 'mplayer' 'pv' 'neroaacenc' 'aacplusenc' 'tsmuxer' 'vorbis-tools' 'dcaenc')
+options=(!strip)
+install="${pkgname}.install"
+source=("http://sf.net/projects/h264enc/files/$pkgname/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -i -e "s|/usr/local|$pkgdir/usr|g" \
+ -e 's|usr/local/|usr/|g' \
+ -e 's|/man/man1|/share/man/man1|g' install
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./install
+ rm ${pkgdir}/usr/share/doc/h264enc/{uninstall,LICENSE}
+}
+
+sha1sums=('3d8b713c831a152994ce124a3fd4aebafcd4fd6d')
+sha1sums=('3d8b713c831a152994ce124a3fd4aebafcd4fd6d')
diff --git a/pcr/h264enc/h264enc.install b/pcr/h264enc/h264enc.install
new file mode 100644
index 000000000..3c17e8130
--- /dev/null
+++ b/pcr/h264enc/h264enc.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo "Hint: run 'h264enc -r' after installation of optional packages."
+}
+
+post_upgrade() {
+ if [[ "$2" < "9.4.3" ]]; then
+ echo "~/.h264enc/config syntax changed since version 9.4.2. Update it by hands.";
+ fi
+}
diff --git a/pcr/hexter/PKGBUILD b/pcr/hexter/PKGBUILD
new file mode 100644
index 000000000..e0ccbb848
--- /dev/null
+++ b/pcr/hexter/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+# file 'hexter' taken from https://aur.archlinux.org/packages/hexter/
+pkgname=hexter
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="A DSSI software synthesizer that models the sound generation of a Yamaha DX7"
+arch=('i686')
+url="http://dssi.sourceforge.net/hexter.html"
+license=('GPL')
+depends=('alsa-lib' 'liblo' 'gtk2' 'dssi')
+makedepends=('ladspa')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/dssi/hexter/${pkgver}/${pkgname}-${pkgver}.tar.gz hexter)
+md5sums=('a61765a649fcab05811c226fb5c9415b' 'ce72d4f996c17ffd72eb02af76c4dd9b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m755 ${srcdir}/hexter ${pkgdir}/usr/bin/hexter
+}
diff --git a/pcr/hexter/hexter b/pcr/hexter/hexter
new file mode 100644
index 000000000..8338bfdc5
--- /dev/null
+++ b/pcr/hexter/hexter
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+export DSSI_PATH=/usr/lib/dssi
+exec jack-dssi-host hexter.so
diff --git a/pcr/hiawatha/PKGBUILD b/pcr/hiawatha/PKGBUILD
new file mode 100644
index 000000000..1ea4d6435
--- /dev/null
+++ b/pcr/hiawatha/PKGBUILD
@@ -0,0 +1,117 @@
+# Maintainer: Kurt Marasco <celilo _at_ lavabit _dot_ com>
+# Contributor: Pascal Ernster <aur at hardfalcon dot net>
+
+pkgname=hiawatha
+pkgver=9.2
+pkgrel=1
+pkgdesc="Secure and advanced webserver"
+url="https://www.hiawatha-webserver.org/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libxslt' 'polarssl')
+optdepends=('php-fpm: Provides modern PHP fast cgi support (Recommended) ')
+makedepends=('cmake')
+install=$pkgname.install
+backup=(
+ usr/lib/systemd/system/hiawatha.service
+ etc/hiawatha/hiawatha.conf
+ etc/hiawatha/hiawatha.conf.sample
+ etc/hiawatha/cgi-wrapper.conf
+ etc/hiawatha/mimetype.conf
+ srv/http/hiawatha/cdcatalog.xml
+ srv/http/hiawatha/cdcatalog.xslt
+)
+
+source=(
+ "http://hiawatha-webserver.org/files/${pkgname}-${pkgver}.tar.gz"
+ 'hiawatha.conf.sample'
+ 'cdcatalog.xml'
+ 'cdcatalog.xslt'
+ 'hiawatha.service'
+ 'hiawatha.install'
+)
+sha256sums=(
+ '5d9cdec51c618bb3efab747030e593d9bd49dfaf3236254c8e0cb60715716dbf'
+ '4671d2586cbe3cd6497b16ff422c6143cdab40641ef3c9c4988c478351a8f5e7'
+ '7757d6e5fe363b917a2823ba8b5194509ed6914e7c088d04ae72f9bd73efcb58'
+ 'f28aa336da6f0fb124a1092039e695d233569cb32632223f786603ffb6ed5471'
+ 'fb789b12bb6246237b15a9244f58317abdd53e5ca4eb55880e40a498b2237155'
+ '3b60a884102a6212a4963c041dd2a5a32fb18833f758e9be5d021bbc630ed627'
+)
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ cmake . -DCMAKE_INSTALL_PREFIX="/" \
+ -DCMAKE_INSTALL_BINDIR="/usr/bin" \
+ -DCMAKE_INSTALL_SBINDIR="/usr/bin" \
+ -DCMAKE_INSTALL_SYSCONFDIR="/etc/hiawatha" \
+ -DCMAKE_INSTALL_LIBDIR="/usr/lib" \
+ -DCMAKE_INSTALL_MANDIR="/usr/share/man" \
+ -DCONFIG_DIR="/etc/hiawatha" \
+ -DLOG_DIR="/var/log/hiawatha" \
+ -DPID_DIR="/run" \
+ -DENABLE_SSL=ON \
+ -DUSE_SYSTEM_POLARSSL=on \
+ -DWEBROOT_DIR="/srv/http" \
+ -DWORK_DIR="/var/lib/hiawatha"
+ make
+
+ # The default capabilities are installed by this PKGBUILD
+ # The following build options are available to customize your installation:
+ # modify the above cmake command to customize
+ #option description required libraries when feature enabled
+ # cmake options
+ # -DENABLE_CACHE=ON|off Enable internal cache support.
+ # -DENABLE_DEBUG=on|OFF Enable debug information (for development only).
+ # -DENABLE_IPV6=ON|off Enable IPv6 support.
+ # -DENABLE_MONITOR=on|OFF Enable support for the Hiawatha Monitor.
+ # -DENABLE_RPROXY=ON|off Enable reverse proxy support.
+ # -DENABLE_SSL=ON|off Enable SSL (PolarSSL) support.
+ # -DENABLE_TOMAHAWK=on|OFF Enable Tomahawk, Hiawatha command shell.
+ # -DENABLE_TOOLKIT=ON|off Enable the URL Toolkit.
+ # -DENABLE_XSLT=ON|off Enable XSLT support. libxml2, libxslt1
+ # -DUSE_SYSTEM_POLARSSL=on|OFF Compile Hiawatha against the system's PolarSSL library (>=1.2.0).
+
+ # The following path settings are available for CMake.
+ # -DCMAKE_INSTALL_PREFIX=<path> The prefix for all other CMAKE_INSTALL directories.
+ # -DCMAKE_INSTALL_BINDIR=<path> Location of the ssi-cgi binary.
+ # -DCMAKE_INSTALL_SBINDIR=<path> Location of the other Hiawatha binaries.
+ # -DCMAKE_INSTALL_SYSCONFDIR=<path> The configuration files will be installed in /hiawatha.
+ # -DCMAKE_INSTALL_LIBDIR=<path> The PolarSSL shared library will be installed in /hiawatha.
+ # -DCMAKE_INSTALL_MANDIR=<path> Manual pages will be installed in /man1.
+ # -DCONFIG_DIR=<path> Location of the Hiawatha configuration files.
+ # -DLOG_DIR=<path> Log directory used in the default hiawatha.conf.
+ # -DPID_DIR=<path> Location of the Hiawatha and php-fcgi PID files.
+ # -DWEBROOT_DIR=<path> Webroot directory used in the default hiawatha.conf.
+ # -DWORK_DIR=<path> Path of directory where Hiawatha can write temporary files.
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ # Fix hiawatha.conf (formerly httpd.conf)
+ sed -e 's|#ServerId = www-data|ServerId = http|' \
+ -e 's|/var/www/|/srv/http/|g' \
+ -e 's|//|/|g' \
+ -e 's|#CGIextension = cgi|&\n#TriggerOnCGIstatus = yes|g' \
+ -e 's|ConnectTo = 127.0.0.1:2005|ConnectTo = 127.0.0.1:9000|g' \
+ -e 's|# Extension = php|&\n# SessionTimeout = 30|g' \
+ -e 's|#ErrorHandler = 404:/error.cgi|&\n#UseGZfile = yes|g' \
+ -i "$pkgdir/etc/hiawatha/hiawatha.conf"
+
+ # Fix hiawatha logrotate file (/etc/logrotate.d/hiawatha)
+ sed -e 's|www-data|http|g' -i "$srcdir/$pkgname-$pkgver/logrotate.d/hiawatha"
+ mkdir "$pkgdir/etc/logrotate.d"
+ install -m644 "$srcdir/$pkgname-$pkgver/logrotate.d/hiawatha" "$pkgdir/etc/logrotate.d/hiawatha"
+
+ # Add startup scripts
+ install -D -m755 "$srcdir/hiawatha.service" "$pkgdir/usr/lib/systemd/system/hiawatha.service"
+
+ # Install sample configuration implementing a virtual server for phpmyadmin, php-fpm, and a default website on localhost
+ install -m644 "$srcdir/hiawatha.conf.sample" "$pkgdir/etc/hiawatha/"
+ # Install sample XSLT transformation on default website on localhost
+ install -m644 "$srcdir/cdcatalog.xml" "$pkgdir/srv/http"
+ install -m644 "$srcdir/cdcatalog.xslt" "$pkgdir/srv/http"
+}
diff --git a/pcr/hiawatha/cdcatalog.xml b/pcr/hiawatha/cdcatalog.xml
new file mode 100644
index 000000000..efc35f9ff
--- /dev/null
+++ b/pcr/hiawatha/cdcatalog.xml
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Edited with XML Spy v4.2 -->
+<catalog>
+ <cd>
+ <title>Empire Burlesque</title>
+ <artist>Bob Dylan</artist>
+ <country>USA</country>
+ <company>Columbia</company>
+ <price>10.90</price>
+ <year>1985</year>
+ </cd>
+ <cd>
+ <title>Hide your heart</title>
+ <artist>Bonnie Tyler</artist>
+ <country>UK</country>
+ <company>CBS Records</company>
+ <price>9.90</price>
+ <year>1988</year>
+ </cd>
+ <cd>
+ <title>Greatest Hits</title>
+ <artist>Dolly Parton</artist>
+ <country>USA</country>
+ <company>RCA</company>
+ <price>9.90</price>
+ <year>1982</year>
+ </cd>
+ <cd>
+ <title>Still got the blues</title>
+ <artist>Gary Moore</artist>
+ <country>UK</country>
+ <company>Virgin records</company>
+ <price>10.20</price>
+ <year>1990</year>
+ </cd>
+ <cd>
+ <title>Eros</title>
+ <artist>Eros Ramazzotti</artist>
+ <country>EU</country>
+ <company>BMG</company>
+ <price>9.90</price>
+ <year>1997</year>
+ </cd>
+ <cd>
+ <title>One night only</title>
+ <artist>Bee Gees</artist>
+ <country>UK</country>
+ <company>Polydor</company>
+ <price>10.90</price>
+ <year>1998</year>
+ </cd>
+ <cd>
+ <title>Sylvias Mother</title>
+ <artist>Dr.Hook</artist>
+ <country>UK</country>
+ <company>CBS</company>
+ <price>8.10</price>
+ <year>1973</year>
+ </cd>
+ <cd>
+ <title>Maggie May</title>
+ <artist>Rod Stewart</artist>
+ <country>UK</country>
+ <company>Pickwick</company>
+ <price>8.50</price>
+ <year>1990</year>
+ </cd>
+ <cd>
+ <title>Romanza</title>
+ <artist>Andrea Bocelli</artist>
+ <country>EU</country>
+ <company>Polydor</company>
+ <price>10.80</price>
+ <year>1996</year>
+ </cd>
+ <cd>
+ <title>When a man loves a woman</title>
+ <artist>Percy Sledge</artist>
+ <country>USA</country>
+ <company>Atlantic</company>
+ <price>8.70</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Black angel</title>
+ <artist>Savage Rose</artist>
+ <country>EU</country>
+ <company>Mega</company>
+ <price>10.90</price>
+ <year>1995</year>
+ </cd>
+ <cd>
+ <title>1999 Grammy Nominees</title>
+ <artist>Many</artist>
+ <country>USA</country>
+ <company>Grammy</company>
+ <price>10.20</price>
+ <year>1999</year>
+ </cd>
+ <cd>
+ <title>For the good times</title>
+ <artist>Kenny Rogers</artist>
+ <country>UK</country>
+ <company>Mucik Master</company>
+ <price>8.70</price>
+ <year>1995</year>
+ </cd>
+ <cd>
+ <title>Big Willie style</title>
+ <artist>Will Smith</artist>
+ <country>USA</country>
+ <company>Columbia</company>
+ <price>9.90</price>
+ <year>1997</year>
+ </cd>
+ <cd>
+ <title>Tupelo Honey</title>
+ <artist>Van Morrison</artist>
+ <country>UK</country>
+ <company>Polydor</company>
+ <price>8.20</price>
+ <year>1971</year>
+ </cd>
+ <cd>
+ <title>Soulsville</title>
+ <artist>Jorn Hoel</artist>
+ <country>Norway</country>
+ <company>WEA</company>
+ <price>7.90</price>
+ <year>1996</year>
+ </cd>
+ <cd>
+ <title>The very best of</title>
+ <artist>Cat Stevens</artist>
+ <country>UK</country>
+ <company>Island</company>
+ <price>8.90</price>
+ <year>1990</year>
+ </cd>
+ <cd>
+ <title>Stop</title>
+ <artist>Sam Brown</artist>
+ <country>UK</country>
+ <company>A and M</company>
+ <price>8.90</price>
+ <year>1988</year>
+ </cd>
+ <cd>
+ <title>Bridge of Spies</title>
+ <artist>T`Pau</artist>
+ <country>UK</country>
+ <company>Siren</company>
+ <price>7.90</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Private Dancer</title>
+ <artist>Tina Turner</artist>
+ <country>UK</country>
+ <company>Capitol</company>
+ <price>8.90</price>
+ <year>1983</year>
+ </cd>
+ <cd>
+ <title>Midt om natten</title>
+ <artist>Kim Larsen</artist>
+ <country>EU</country>
+ <company>Medley</company>
+ <price>7.80</price>
+ <year>1983</year>
+ </cd>
+ <cd>
+ <title>Pavarotti Gala Concert</title>
+ <artist>Luciano Pavarotti</artist>
+ <country>UK</country>
+ <company>DECCA</company>
+ <price>9.90</price>
+ <year>1991</year>
+ </cd>
+ <cd>
+ <title>The dock of the bay</title>
+ <artist>Otis Redding</artist>
+ <country>USA</country>
+ <company>Atlantic</company>
+ <price>7.90</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Picture book</title>
+ <artist>Simply Red</artist>
+ <country>EU</country>
+ <company>Elektra</company>
+ <price>7.20</price>
+ <year>1985</year>
+ </cd>
+ <cd>
+ <title>Red</title>
+ <artist>The Communards</artist>
+ <country>UK</country>
+ <company>London</company>
+ <price>7.80</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Unchain my heart</title>
+ <artist>Joe Cocker</artist>
+ <country>USA</country>
+ <company>EMI</company>
+ <price>8.20</price>
+ <year>1987</year>
+ </cd>
+</catalog>
diff --git a/pcr/hiawatha/cdcatalog.xslt b/pcr/hiawatha/cdcatalog.xslt
new file mode 100644
index 000000000..db9cc35bc
--- /dev/null
+++ b/pcr/hiawatha/cdcatalog.xslt
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Edited with XML Spy v4.2 -->
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+ <html>
+ <body>
+ <h2>My CD Collection</h2>
+ <table border="1">
+ <tr bgcolor="#9acd32">
+ <th align="left">Title</th>
+ <th align="left">Artist</th>
+ </tr>
+ <xsl:for-each select="catalog/cd">
+ <tr>
+ <td><xsl:value-of select="title"/></td>
+ <td><xsl:value-of select="artist"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/pcr/hiawatha/hiawatha.conf.sample b/pcr/hiawatha/hiawatha.conf.sample
new file mode 100644
index 000000000..1c1d62450
--- /dev/null
+++ b/pcr/hiawatha/hiawatha.conf.sample
@@ -0,0 +1,114 @@
+# Hiawatha main configuration file
+# This is a basic sample configuration file that sets up a:
+# 1) Default web site at /srv/http/hiawatha (Note: fast CGI is not active on default site)
+# 2) Virtual host for phpmyadmin at /srv/http/phpMyAdmin
+# note: you must install phpmyadmin, mysql, php-mcrypt, and php-cgi separately. Be sure that extensions
+# mcrypt.so and mysql.so are enabled in your php.ini.
+# Also add phpmyadmin to your hosts file
+# 3) FastCGI server
+
+
+# GENERAL SETTINGS
+ServerId = http
+ConnectionsTotal = 150
+ConnectionsPerIP = 10
+SystemLogfile = /var/log/hiawatha/system.log
+GarbageLogfile = /var/log/hiawatha/garbage.log
+
+
+# BINDING SETTINGS
+# A binding is where a client can connect to.
+#
+Binding {
+ Port = 80
+}
+
+
+
+### The following fast CGI daemons require php-fpm using a UNIX socket and TCP port, respectively.
+# ACTIVATE a FastCGI server for php (using UNIX socket)
+FastCGIserver {
+ FastCGIid = PHP5
+ ConnectTo = /run/php-fpm/php-fpm.sock
+ Extension = php
+ SessionTimeout = 30
+}
+
+# ACTIVATE a FastCGI server for php (using IP-address and TCP port)
+#FastCGIserver {
+# FastCGIid = PHP5
+# ConnectTo = 127.0.0.1:9000
+# Extension = php
+# SessionTimeout = 30
+#}
+
+
+# DEFAULT WEBSITE
+# It is wise to use your IP address as the hostname of the default website
+# and give it a blank webpage. By doing so, automated webscanners won't find
+# your possible vulnerable website.
+#
+Hostname = 127.0.0.1
+WebsiteRoot = /srv/http/hiawatha
+StartFile = index.html
+AccessLogfile = /var/log/hiawatha/access.log
+ErrorLogfile = /var/log/hiawatha/error.log
+#ErrorHandler = 404:/error.cgi
+UseXSLT = yes
+
+
+# VIRTUAL HOSTS
+VirtualHost {
+
+ # If you set WebsiteRoot to /usr/share/webapps/phpMyAdmin you don't need followsymlinks
+ # I symlinked the phpMyAdmin folder to '/srv/http/phpMyAdmin' so that I can easily remember where it's located but
+ # still set 'WebsiteRoot' to the real source directory. You could point WebsiteRoot to the
+ # symlinked directory, but you will have to set 'FollowSymlinks = yes' for that to function properly
+
+ #FollowSymlinks = yes
+ #WebsiteRoot = /srv/http/phpMyAdmin
+ WebsiteRoot = /usr/share/webapps/phpMyAdmin
+ Hostname = phpmyadmin
+ AccessLogfile = /var/log/hiawatha/phpmyadmin/access.log
+ ErrorLogfile = /var/log/hiawatha/phpmyadmin/error.log
+ StartFile = index.php
+ UseFastCGI = PHP5
+
+}
+
+# Add some more
+
+#VirtualHost {
+# Hostname = www.my-domain.com
+# WebsiteRoot = /svr/http/my-domain/public
+# StartFile = index.php
+# AccessLogfile = /svr/http/my-domain/log/access.log
+# ErrorLogfile = /svr/http/my-domain/log/error.log
+# TimeForCGI = 5
+# UseFastCGI = PHP5
+# UseToolkit = banshee
+#}
+
+
+#Additional settings for monitoring
+
+UrlToolkit {
+ ToolkitID = banshee
+ RequestURI isfile Return
+ Match ^/(css|files|images|js)/ Return
+ Match ^/(favicon.ico|robots.txt|sitemap.xml)$ Return
+ Match .*\?(.*) Rewrite /index.php?$1
+ Match .* Rewrite /index.php
+}
+
+VirtualHost {
+ Hostname = monitor.domain.com
+ WebsiteRoot = /svr/http/monitor/public
+ AccessLogfile = /svr/http/monitor/logfiles/access.log
+ ErrorLogfile = /svr/http/monitor/logfiles/error.log
+ StartFile = index.php
+# ExecuteCGI = yes
+ UseFastCGI = PHP5 # Use if you use PHP as a FastCGI daemon
+ TimeForCGI = 15
+ UseToolkit = banshee
+}
diff --git a/pcr/hiawatha/hiawatha.install b/pcr/hiawatha/hiawatha.install
new file mode 100644
index 000000000..0ea96ec65
--- /dev/null
+++ b/pcr/hiawatha/hiawatha.install
@@ -0,0 +1,37 @@
+pre_install() {
+ /bin/cat <<THEENDPOSTINSTALL
+NOTE
+----
+If you are new to Hiawatha, please refer to http://www.hiawatha-webserver.org/howto
+
+!!!!! This PKGBUILD compiles against the system's PolarSSL library. You will need to install PolarSSL from the AUR.!!!!
+
+THEENDPOSTINSTALL
+}
+
+pre_upgrade() {
+ /bin/cat <<THEENDPOSTINSTALL
+NOTE
+----
+If you are new to Hiawatha, please refer to http://www.hiawatha-webserver.org/howto
+
+!!!!! This PKGBUILD compiles against the system's PolarSSL library. You will need to install PolarSSL from the AUR.!!!!
+
+THEENDPOSTINSTALL
+}
+
+post_install() {
+ /bin/cat <<THEENDPOSTINSTALL
+NOTE
+----
+If you are new to Hiawatha, please refer to http://www.hiawatha-webserver.org/howto
+
+PHP-FPM is the prefered fastcgi server. To install.
+ pacman -Sy php-fpm
+ systemctl enable php-fpm
+
+The file hiawatha.conf.sample demonstrates syntax appropriate for use with the php-fpm fast cgi daemon.
+THEENDPOSTINSTALL
+}
+
+
diff --git a/pcr/hiawatha/hiawatha.service b/pcr/hiawatha/hiawatha.service
new file mode 100644
index 000000000..f7daeb8c7
--- /dev/null
+++ b/pcr/hiawatha/hiawatha.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Hiawatha Web Server
+After=network.target remote-fs.target nss-lookup.target
+
+[Service]
+Type=simple
+SyslogIdentifier=hiawatha
+ExecStartPre=/usr/bin/hiawatha -k ; /usr/bin/wigwam
+ExecStart= /usr/bin/hiawatha -d
+TimeoutSec=10
+#(doesn't like this setting. Can't find files) PrivateTmp=true
+LimitNOFILE=infinity
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER CAP_FSETID CAP_SETGID CAP_SETUID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/higan-gtk/PKGBUILD b/pcr/higan-gtk/PKGBUILD
new file mode 100755
index 000000000..17d7469a6
--- /dev/null
+++ b/pcr/higan-gtk/PKGBUILD
@@ -0,0 +1,73 @@
+# Maintainer : Alucryd <alucryd at gmail dot com>
+
+pkgname=higan-gtk
+pkgver=092
+pkgrel=2
+pkgdesc="Nintendo multi-system emulator - GTK version"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/higan/"
+license=('GPL3')
+depends=('xdialog' 'libpulse' 'libao' 'libgl' 'libxv' 'openal' 'sdl')
+makedepends=('mesa')
+optdepends=('beat: Delta patcher')
+conflicts=('higan-qt')
+source=("http://higan.googlecode.com/files/higan_v${pkgver}-source.tar.xz" "http://higan.googlecode.com/files/purify_v03-source.tar.xz" 'higan' 'higan.desktop' 'purify.desktop')
+sha1sums=('a205005f118f6e138065af6e0d14ed990b8f1ce1'
+ '2aa16f492c879d2cc1d4ffa28f4729a5ed5bb1c3'
+ '931baedc3bbdd343d2decda72c13b7d0efdcba3c'
+ '55f4de0a65d6428840d013f9b003d88158c131c7'
+ '093643998a2fb676d795c316e35d49cf6293ce86')
+
+# Profiles (remove as needed)
+_profiles="accuracy balanced performance"
+
+build() {
+# Compile libananke
+ cd "${srcdir}"/purify_v03-source/ananke
+ make compiler=gcc platform=x phoenix=gtk
+
+# Compile purify
+ cd "${srcdir}"/purify_v03-source/purify
+ make compiler=gcc platform=x link='-s -lX11 -ldl -Wl,-export-dynamic' phoenix=gtk
+
+# Compile higan
+ cd "${srcdir}"/higan_v${pkgver}-source/higan
+ for _profile in ${_profiles} ; do
+ make compiler=gcc platform=x target=ethos phoenix=gtk profile=${_profile}
+ mv out/higan out/higan-${_profile}
+ make clean
+ done
+}
+
+package() {
+# Install common files
+ cd "${srcdir}"/higan_v${pkgver}-source
+ install -dm 755 "${pkgdir}"/usr/{bin,lib,share/{applications,pixmaps,higan}}
+ install -m 755 "${srcdir}"/higan "${pkgdir}"/usr/bin/higan
+ install -m 644 "${srcdir}"/higan.desktop "${pkgdir}"/usr/share/applications/higan.desktop
+ install -m 644 higan/data/higan.png "${pkgdir}"/usr/share/pixmaps/higan.png
+ cp -dr --no-preserve=ownership higan/{profile/*,data/cheats.bml} "${pkgdir}"/usr/share/higan/
+ cp -dr --no-preserve=ownership shaders "${pkgdir}/usr/share/higan/Video Shaders"
+
+# Fix some permissions
+ find "${pkgdir}"/usr/share/higan/ -type d -exec chmod 755 {} +
+ find "${pkgdir}"/usr/share/higan/ -type f -exec chmod 644 {} +
+
+# Install libananke
+ cd "${srcdir}"/purify_v03-source/ananke
+ install -m 644 libananke.so "${pkgdir}"/usr/lib/libananke.so.1
+ ln -s /usr/lib/libananke.so.1 "${pkgdir}"/usr/lib/libananke.so
+
+# Install purify
+ cd "${srcdir}"/purify_v03-source/purify
+ install -m 755 purify "${pkgdir}"/usr/bin/purify
+ install -m 644 "${srcdir}"/purify.desktop "${pkgdir}"/usr/share/applications/purify.desktop
+
+# Install higan
+ cd "${srcdir}"/higan_v${pkgver}-source/higan
+ for _profile in ${_profiles} ; do
+ install -m 755 out/higan-${_profile} "${pkgdir}"/usr/bin/higan-${_profile}
+ done
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/pcr/higan-gtk/higan b/pcr/higan-gtk/higan
new file mode 100755
index 000000000..29fc0b7bb
--- /dev/null
+++ b/pcr/higan-gtk/higan
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Shared folders workaround
+cp -ru /usr/share/higan ~/.config/
+
+# Check for profiles and prompt user with a GUI
+[ -e /usr/bin/higan-accuracy ] && tag1=accuracy
+[ -e /usr/bin/higan-balanced ] && tag2=balanced
+[ -e /usr/bin/higan-performance ] && tag3=performance
+profile="$(Xdialog --stdout --no-tags --title "higan" --radiolist "Choose a profile" 0 0 0 "$tag1" "Accuracy" off "$tag2" "Balanced" off "$tag3" "Performance" off)"
+
+# Launch selected profile
+exec higan-$profile "$@"
diff --git a/pcr/higan-gtk/higan.desktop b/pcr/higan-gtk/higan.desktop
new file mode 100755
index 000000000..c9cd3c14b
--- /dev/null
+++ b/pcr/higan-gtk/higan.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=higan
+Comment=Nintendo multi-system emulator
+Exec=higan %u
+Icon=higan
+Terminal=false
+Type=Application
+Categories=Game;Emulator;
diff --git a/pcr/higan-gtk/purify.desktop b/pcr/higan-gtk/purify.desktop
new file mode 100755
index 000000000..354dc2849
--- /dev/null
+++ b/pcr/higan-gtk/purify.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=purify
+Comment=ROM purifier
+Exec=/usr/bin/purify
+Icon=higan
+Terminal=false
+Type=Application
+Categories=Game;Emulator;
diff --git a/pcr/higan-qt/PKGBUILD b/pcr/higan-qt/PKGBUILD
new file mode 100755
index 000000000..42f7dd813
--- /dev/null
+++ b/pcr/higan-qt/PKGBUILD
@@ -0,0 +1,79 @@
+# Maintainer : Alucryd <alucryd at gmail dot com>
+
+pkgname=higan-qt
+pkgver=092
+pkgrel=2
+pkgdesc="Nintendo multi-system emulator - QT version"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/higan/"
+license=('GPL3')
+depends=('qt>=4.7.0' 'xdialog' 'libpulse' 'libao' 'libgl' 'libxv' 'openal' 'sdl')
+makedepends=('mesa')
+optdepends=('beat: Delta patcher')
+conflicts=('higan-gtk')
+source=("http://higan.googlecode.com/files/higan_v${pkgver}-source.tar.xz" "http://higan.googlecode.com/files/purify_v03-source.tar.xz" 'higan' 'higan.desktop' 'purify.desktop')
+sha1sums=('a205005f118f6e138065af6e0d14ed990b8f1ce1'
+ '2aa16f492c879d2cc1d4ffa28f4729a5ed5bb1c3'
+ '931baedc3bbdd343d2decda72c13b7d0efdcba3c'
+ '55f4de0a65d6428840d013f9b003d88158c131c7'
+ '093643998a2fb676d795c316e35d49cf6293ce86')
+
+# Profiles (remove as needed)
+_profiles="accuracy balanced performance"
+
+build() {
+# QT 4.8.0 fix
+ cd "${srcdir}"
+ moc -i -Ipurify_v03-source/ananke/phoenix/qt/ -o purify_v03-source/ananke/phoenix/qt/platform.moc purify_v03-source/ananke/phoenix/qt/platform.moc.hpp
+ moc -i -Ipurify_v03-source/purify/phoenix/qt/ -o purify_v03-source/purify/phoenix/qt/platform.moc purify_v03-source/purify/phoenix/qt/platform.moc.hpp
+ moc -i -Ihigan_v${pkgver}-source/higan/phoenix/qt/ -o higan_v${pkgver}-source/higan/phoenix/qt/platform.moc higan_v${pkgver}-source/higan/phoenix/qt/platform.moc.hpp
+
+# Compile libananke
+ cd "${srcdir}"/purify_v03-source/ananke
+ make compiler=gcc platform=x phoenix=qt
+
+# Compile purify
+ cd "${srcdir}"/purify_v03-source/purify
+ make compiler=gcc platform=x link='-s -lX11 -ldl -Wl,-export-dynamic' phoenix=qt
+
+# Compile higan
+ cd "${srcdir}"/higan_v${pkgver}-source/higan
+ for _profile in ${_profiles} ; do
+ make compiler=gcc platform=x target=ethos phoenix=qt profile=${_profile}
+ mv out/higan out/higan-${_profile}
+ make clean
+ done
+}
+
+package() {
+# Install common files
+ cd "${srcdir}"/higan_v${pkgver}-source
+ install -dm 755 "${pkgdir}"/usr/{bin,lib,share/{applications,pixmaps,higan}}
+ install -m 755 "${srcdir}"/higan "${pkgdir}"/usr/bin/higan
+ install -m 644 "${srcdir}"/higan.desktop "${pkgdir}"/usr/share/applications/higan.desktop
+ install -m 644 higan/data/higan.png "${pkgdir}"/usr/share/pixmaps/higan.png
+ cp -dr --no-preserve=ownership higan/{profile/*,data/cheats.bml} "${pkgdir}"/usr/share/higan/
+ cp -dr --no-preserve=ownership shaders "${pkgdir}/usr/share/higan/Video Shader"s
+
+# Fix some permissions
+ find "${pkgdir}"/usr/share/higan -type d -exec chmod 755 {} +
+ find "${pkgdir}"/usr/share/higan -type f -exec chmod 644 {} +
+
+# Install libananke
+ cd "${srcdir}"/purify_v03-source/ananke
+ install -m 644 libananke.so "${pkgdir}"/usr/lib/libananke.so.1
+ ln -s /usr/lib/libananke.so.1 "${pkgdir}"/usr/lib/libananke.so
+
+# Install purify
+ cd "${srcdir}"/purify_v03-source/purify
+ install -m 755 purify "${pkgdir}"/usr/bin/purify
+ install -m 644 "${srcdir}"/purify.desktop "${pkgdir}"/usr/share/applications/purify.desktop
+
+# Install higan
+ cd "${srcdir}"/higan_v${pkgver}-source/higan
+ for _profile in ${_profiles} ; do
+ install -m 755 out/higan-${_profile} "${pkgdir}"/usr/bin/higan-${_profile}
+ done
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/pcr/higan-qt/higan b/pcr/higan-qt/higan
new file mode 100755
index 000000000..29fc0b7bb
--- /dev/null
+++ b/pcr/higan-qt/higan
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Shared folders workaround
+cp -ru /usr/share/higan ~/.config/
+
+# Check for profiles and prompt user with a GUI
+[ -e /usr/bin/higan-accuracy ] && tag1=accuracy
+[ -e /usr/bin/higan-balanced ] && tag2=balanced
+[ -e /usr/bin/higan-performance ] && tag3=performance
+profile="$(Xdialog --stdout --no-tags --title "higan" --radiolist "Choose a profile" 0 0 0 "$tag1" "Accuracy" off "$tag2" "Balanced" off "$tag3" "Performance" off)"
+
+# Launch selected profile
+exec higan-$profile "$@"
diff --git a/pcr/higan-qt/higan.desktop b/pcr/higan-qt/higan.desktop
new file mode 100755
index 000000000..c9cd3c14b
--- /dev/null
+++ b/pcr/higan-qt/higan.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=higan
+Comment=Nintendo multi-system emulator
+Exec=higan %u
+Icon=higan
+Terminal=false
+Type=Application
+Categories=Game;Emulator;
diff --git a/pcr/higan-qt/purify.desktop b/pcr/higan-qt/purify.desktop
new file mode 100755
index 000000000..354dc2849
--- /dev/null
+++ b/pcr/higan-qt/purify.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=purify
+Comment=ROM purifier
+Exec=/usr/bin/purify
+Icon=higan
+Terminal=false
+Type=Application
+Categories=Game;Emulator;
diff --git a/pcr/hiredis/ChangeLog b/pcr/hiredis/ChangeLog
new file mode 100644
index 000000000..fbe55643a
--- /dev/null
+++ b/pcr/hiredis/ChangeLog
@@ -0,0 +1,4 @@
+2013-06-07 Vladimir Tsanev <tsachev@gamil.com>
+
+ * 0.11.0-1 :
+ Initial PKGBUILD.
diff --git a/pcr/hiredis/PKGBUILD b/pcr/hiredis/PKGBUILD
new file mode 100644
index 000000000..29762e87e
--- /dev/null
+++ b/pcr/hiredis/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Vladimir Tsanev <tsachev@gmail.com>
+
+pkgname=hiredis
+pkgver=0.11.0
+pkgrel=1
+pkgdesc='minimalistic C client library for Redis'
+arch=('x86_64' 'i686')
+url="https://github.com/redis/hiredis/"
+license=('BSD')
+depends=('glibc')
+changelog='ChangeLog'
+source=(https://codeload.github.com/redis/${pkgname}/tar.gz/v${pkgver})
+md5sums=('e2ac29509823ccc96990b6fe765b5d46')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+#
+#check() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# make test check c
+#}
+
+package() {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX="$pkgdir/usr" clean dep install
+
+ install -Dm 644 COPYING "$pkgdir/usr/share/licenses/${pkgname}/COPYING"
+
+}
diff --git a/pcr/ibus-bogo/PKGBUILD b/pcr/ibus-bogo/PKGBUILD
new file mode 100644
index 000000000..44652b204
--- /dev/null
+++ b/pcr/ibus-bogo/PKGBUILD
@@ -0,0 +1,55 @@
+# Contributor: Nguyen Ha Duong <cmpitg@gmail.com>
+# Contributor: Ngo Trung <ndtrung4419@gmail.com>
+# Contributor: Dam Tien Long <longdt90@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname="ibus-bogo"
+pkgver=0.1.0
+pkgrel=1
+pkgdesc=" Bogo Engine for Ibus"
+
+arch=('i686' 'x86_64')
+url="https://github.com/BoGoEngine"
+license=('GPLv3')
+depends=('ibus' 'python2' 'glibmm' 'python2-gobject')
+makedepends=('git' 'cmake' 'gcc' 'python2')
+provides=('ibus-bogo')
+
+_gitpython="https://github.com/BoGoEngine/ibus-bogo-python.git"
+_gitpythonname="ibus-bogo-python"
+
+install=install
+
+build() {
+ cd ${srcdir}
+
+ if [ -d ${_gitpythonname} ] ; then
+ cd ${srcdir}/${_gitpythonname} && git pull
+ msg "Local ${srcdir}/${_gitpythonname} updated"
+
+ else
+ git clone ${_gitpython} ${_gitpythonname}
+
+ fi
+
+
+
+ msg "Starting make..."
+
+ mkdir ${pkgdir}/usr/
+
+
+ # Building ibus-bogo-python
+ cd ${srcdir}/${_gitpythonname}
+ if [ -d build ]; then
+ cd build
+ else
+ mkdir build
+ cd build
+ fi
+ cmake -DCMAKE_INSTALL_PREFIX:PATH="${pkgdir}/usr" ..
+ make
+ make install
+ rm ${pkgdir}/usr/share/glib-2.0/schemas/gschemas.compiled
+
+ }
diff --git a/pcr/ibus-bogo/install b/pcr/ibus-bogo/install
new file mode 100644
index 000000000..0ed8986d0
--- /dev/null
+++ b/pcr/ibus-bogo/install
@@ -0,0 +1,40 @@
+post_install () {
+
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+
+ }
+
+pre_upgrade () {
+
+ cd /usr/share
+ if [ -d ibus-bogo ]; then
+ rm -rf ibus-bogo/*
+ fi
+
+ cd /usr/share/ibus/component/
+ if [ -f bogo.xml ]; then
+ rm bogo.xml
+ fi
+
+ cd /usr/lib/python2.7/site-packages/
+ if [ -d BoGo ]; then
+ rm -rf BoGo/*
+ fi
+
+ for i in `ls /usr/lib | grep bogo`; do
+ rm -rf /usr/lib/$i
+ done
+
+ }
+
+post_upgrade () {
+
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+
+ }
+
+post_remove () {
+
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+
+ }
diff --git a/pcr/idjc/PKGBUILD b/pcr/idjc/PKGBUILD
new file mode 100644
index 000000000..6834d64a6
--- /dev/null
+++ b/pcr/idjc/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: M0Rf30
+# Contributor: Tobias Luther <tobias [at] tonstrom [dot] de>
+# Contributor: GraveDigger
+# Contributor: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=idjc
+pkgver=0.8.9
+pkgrel=2
+pkgdesc='Powerful yet easy-to-use source-client for individuals interested in streaming live radio shows over the Internet'
+url='http://idjc.sourceforge.net/'
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('desktop-file-utils' 'python2' 'dbus-python' 'mutagen' 'jack' 'pygtk' 'vorbis-tools' 'libsndfile' 'libsamplerate' 'glib2' 'lame' 'libmad' 'ffmpeg-compat' 'flac' 'speex' 'libshout-idjc')
+optdepends=('patchage' 'qjackctl')
+makedepends=('pkgconfig')
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export PYTHON=/usr/bin/python2
+ PKG_CONFIG_PATH+="/usr/lib/ffmpeg-compat/pkgconfig"
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --disable-static
+# --disable-libav
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ sed -i 's|#! /usr/bin/python22.7|#! /usr/bin/python2|' ${pkgdir}/usr/bin/idjc
+}
+
+md5sums=('99abfe98f13170ab6b1ed17a8f1632e1')
diff --git a/pcr/idjc/idjc.install b/pcr/idjc/idjc.install
new file mode 100644
index 000000000..9834cb7dd
--- /dev/null
+++ b/pcr/idjc/idjc.install
@@ -0,0 +1,11 @@
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
diff --git a/pcr/idjc/idjc_0.8.4_configure.patch b/pcr/idjc/idjc_0.8.4_configure.patch
new file mode 100644
index 000000000..9f1b3c5f0
--- /dev/null
+++ b/pcr/idjc/idjc_0.8.4_configure.patch
@@ -0,0 +1,12 @@
+diff -Naur idjc-0.8.4/configure idjc-0.8.4.new/configure
+--- idjc-0.8.4/configure 2010-10-07 15:00:07.000000000 +0200
++++ idjc-0.8.4.new/configure 2010-10-20 19:30:48.000000000 +0200
+@@ -5349,7 +5349,7 @@
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mutagen" >&5
+ $as_echo_n "checking for mutagen... " >&6; }
+-python -c "import mutagen" &>/dev/null
++$PYTHON -c "import mutagen" &>/dev/null
+ if test $? -ne 0 ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
diff --git a/pcr/ii/PKGBUILD b/pcr/ii/PKGBUILD
new file mode 100644
index 000000000..b17cc2d18
--- /dev/null
+++ b/pcr/ii/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Evan Gates <evan.gates@gmail.com>
+# Contributor: Dag Odenhall <dag.odenhall@gmail.com>
+# Contributor: Chris Brannon <cmbrannon@cox.net>
+# Contributor: William Giokas <1007380@gmail.com>
+pkgname=ii
+pkgver=1.7
+pkgrel=2
+pkgdesc="A minimalist FIFO and filesystem-based IRC client"
+license=(MIT)
+arch=(i686 x86_64)
+url=http://tools.suckless.org/ii
+depends=(glibc)
+source=("http://dl.suckless.org/tools/${pkgname}-${pkgver}.tar.gz")
+
+md5sums=('6191008ca09770873d84f40270493d0e')
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i "s/CFLAGS = /CFLAGS = ${CFLAGS} /" config.mk
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make PREFIX=/usr MANDIR=/usr/share/man DESTDIR="$pkgdir" install
+}
diff --git a/pcr/imagemagick-srv/PKGBUILD b/pcr/imagemagick-srv/PKGBUILD
new file mode 100644
index 000000000..d9d553531
--- /dev/null
+++ b/pcr/imagemagick-srv/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id$
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgbase=imagemagick
+pkgname=imagemagick-srv
+pkgver=6.8.6.8
+pkgrel=1.1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.imagemagick.org/"
+license=('custom')
+provides=("$pkgbase=$pkgver")
+conflicts=$pkgbase
+replaces=$pkgbase
+makedepends=('libltdl' 'lcms2' 'libxt' 'fontconfig' 'libxext' 'ghostscript' \
+ 'openexr' 'libwmf' 'librsvg' 'libxml2' 'jasper' 'liblqr' \
+ 'libwebp') # libcl opencl-headers
+#source=(http://www.imagemagick.org/download/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \
+source=(ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \
+ perlmagick.rpath.patch)
+sha1sums=('fe298492c6be08eb887d02b75efeb609fa6c4d61'
+ 'e143cf9d530fabf3b58023899b5cc544ba93daec')
+
+prepare() {
+ cd ImageMagick-${pkgver%.*}-${pkgver##*.}
+ sed '/AC_PATH_XTRA/d' -i configure.ac
+ autoreconf --force --install
+ patch -p0 -i "${srcdir}/perlmagick.rpath.patch"
+}
+
+build() {
+ cd ImageMagick-${pkgver%.*}-${pkgver##*.}
+ ./configure --prefix=/usr --sysconfdir=/etc --with-modules --disable-static \
+ --disable-hdri --with-wmf --with-openexr --with-xml --with-lcms2 --with-jp2 \
+ --with-webp --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \
+ --with-perl --with-perl-options="INSTALLDIRS=vendor" --with-lqr --with-rsvg \
+ --disable-opencl --without-gvc --without-djvu --without-autotrace \
+ --without-jbig --without-fpx --without-dps --without-fftw
+ make
+}
+
+check() {
+ cd ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make check
+}
+
+package_imagemagick-srv() {
+ pkgdesc="An image viewing/manipulation program (for web servers)"
+ depends=('perl' 'libltdl' 'lcms2' 'libxt' 'fontconfig' 'libxext' 'liblqr') # 'libcl')
+ 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'
+ 'libwebp: for WEBP support')
+ backup=("etc/ImageMagick-${pkgver%%.*}/coder.xml"
+ "etc/ImageMagick-${pkgver%%.*}/colors.xml"
+ "etc/ImageMagick-${pkgver%%.*}/delegates.xml"
+ "etc/ImageMagick-${pkgver%%.*}/log.xml"
+ "etc/ImageMagick-${pkgver%%.*}/magic.xml"
+ "etc/ImageMagick-${pkgver%%.*}/mime.xml"
+ "etc/ImageMagick-${pkgver%%.*}/policy.xml"
+ "etc/ImageMagick-${pkgver%%.*}/quantization-table.xml"
+ "etc/ImageMagick-${pkgver%%.*}/thresholds.xml"
+ "etc/ImageMagick-${pkgver%%.*}/type.xml"
+ "etc/ImageMagick-${pkgver%%.*}/type-dejavu.xml"
+ "etc/ImageMagick-${pkgver%%.*}/type-ghostscript.xml"
+ "etc/ImageMagick-${pkgver%%.*}/type-windows.xml")
+ options=('!docs' 'libtool' '!emptydirs')
+
+ cd ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make -j1 DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick/LICENSE"
+ install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick/NOTICE"
+
+#Cleaning
+ rm -f "${pkgdir}"/usr/lib/*.la
+}
diff --git a/pcr/imagemagick-srv/perlmagick.rpath.patch b/pcr/imagemagick-srv/perlmagick.rpath.patch
new file mode 100644
index 000000000..a5b1a82e2
--- /dev/null
+++ b/pcr/imagemagick-srv/perlmagick.rpath.patch
@@ -0,0 +1,11 @@
+--- Makefile.in.orig 2013-02-21 03:26:56.785156600 -0500
++++ Makefile.in 2013-02-21 03:39:03.102411457 -0500
+@@ -10469,6 +10469,8 @@
+
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@$(PERLMAKEFILE): perl-sources $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(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@ cd $(PERLMAGICK) && @SED@ -i 's|LD_RUN_PATH|DIE_LD_RUN_PATH_DIE|g' quantum/Makefile
+
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@install-exec-perl: $(PERLMAKEFILE)
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ ( cd $(PERLMAGICK) && $(MAKE) CC='@CC@' && \
diff --git a/pcr/inadyn-opendns/PKGBUILD b/pcr/inadyn-opendns/PKGBUILD
new file mode 100644
index 000000000..37c13d49a
--- /dev/null
+++ b/pcr/inadyn-opendns/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Bug <Bug2000@gmail.com>
+# Maintainer: Bug <Bug2000@gmail.com>
+pkgname=inadyn-opendns
+pkgver=1.99
+pkgrel=4
+pkgdesc="Simple dynamic DNS client with SSL support"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.opendns.com/account/dynamic_dns/downloads"
+license=('GPL')
+makedepends=('unzip')
+depends=('curl')
+conflicts=('inadyn')
+provides=('inadyn')
+backup=('etc/inadyn.conf')
+install='inadyn-opendns.install'
+source=("http://www.opendns.com/support/ddns_files/inadyn.source.v$pkgver.zip"
+ 'inadyn.rc-script')
+md5sums=('0f2cf9c3ea3482c03e1c42f8480f1c55'
+ '73c61f9939546c28119242a1e12ffcff')
+
+build() {
+ cd "$srcdir/inadyn.source.v$pkgver"
+
+ make || return 1
+
+ install -Dm755 bin/linux/inadyn $pkgdir/usr/sbin/inadyn
+ install -Dm644 man/inadyn.8 $pkgdir/usr/share/man/man8/inadyn.8
+ install -Dm644 man/inadyn.conf.5 $pkgdir/usr/share/man/man5/inadyn.conf.5
+ install -Dm644 readme.html $pkgdir/usr/share/doc/inadyn/readme.html
+ install -Dm755 $srcdir/inadyn.rc-script $pkgdir/etc/rc.d/inadyn
+ install -Dm644 inadyn.conf $pkgdir/etc/inadyn.conf
+}
diff --git a/pcr/inadyn-opendns/inadyn-opendns.install b/pcr/inadyn-opendns/inadyn-opendns.install
new file mode 100644
index 000000000..e1a842430
--- /dev/null
+++ b/pcr/inadyn-opendns/inadyn-opendns.install
@@ -0,0 +1,17 @@
+post_install() {
+/bin/true
+echo Please remember to change the /etc/inadyn.conf file for your settings.
+}
+
+post_upgrade() {
+/bin/true
+}
+
+pre_remove() {
+/bin/true
+}
+
+op=$1
+shift
+
+$op "$@" \ No newline at end of file
diff --git a/pcr/inadyn-opendns/inadyn.rc-script b/pcr/inadyn-opendns/inadyn.rc-script
new file mode 100644
index 000000000..2ee29d59e
--- /dev/null
+++ b/pcr/inadyn-opendns/inadyn.rc-script
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/inadyn`
+case "$1" in
+ start)
+ stat_busy "Starting INADYN Daemon"
+ [ -z "$PID" ] && /usr/sbin/inadyn --background --input_file /etc/inadyn.conf >>/var/log/inadyn 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/inadyn`
+ echo $PID >/var/run/inadyn.pid
+ add_daemon inadyn
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping INADYN Daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon inadyn
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/pcr/initng-git/PKGBUILD b/pcr/initng-git/PKGBUILD
new file mode 100644
index 000000000..38279ad89
--- /dev/null
+++ b/pcr/initng-git/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Jens Staal <staal1978@gmail.com>
+
+_pkgname=initng
+pkgname=initng-git
+pkgver=20120517.1043
+pkgdesc="A full replacement for the old System V Init system"
+url="http://initng.org/"
+license=('GPL3')
+
+pkgrel=1
+arch=('i686' 'x86_64')
+provides=('init')
+depends=('dbus')
+makedepends=('git' 'acr' 'ftjam' 'makepkg-git')
+optdepends=('ncurses')
+options=(!strip)
+source=('git://github.com/initng/initng.git' fixes.patch)
+backup=(etc/initng/killall5-ignore)
+
+pkgver() {
+ cd "$srcdir/$_pkgname"
+ date -u +%Y%m%d.%H%M -d "$(git log -n1 --date=iso --format=format:'%cd')"
+}
+
+build() {
+ cd "$srcdir/$_pkgname"
+ patch -Np1 -i "$srcdir/fixes.patch"
+ acr
+ ./configure --prefix="/usr" --sbindir=/sbin --sysconfdir=/etc
+ jam
+}
+
+package() {
+ cd "$srcdir/$_pkgname"
+
+ jam install DESTDIR="$pkgdir"
+ find "$pkgdir"/usr/lib -type f -name '*.so*' -exec chmod 755 {} +
+ find "$pkgdir"/sbin -type f -exec chmod 755 {} +
+ pushd "$pkgdir"/usr/lib
+ ln -s libngeclient.so.* libngeclient.so.0
+ ln -s libngcclient.so.* libngcclient.so.0
+ popd
+
+ install -d "$pkgdir"/usr/share/licenses/initng
+ install -m644 COPYING "$pkgdir"/usr/share/licenses/initng/
+ install -m644 AUTHORS "$pkgdir"/usr/share/licenses/initng/
+}
+
+md5sums=('SKIP'
+ 'bf6d17e00c5f0d85d99b7184980528ad')
diff --git a/pcr/initng-git/fixes.patch b/pcr/initng-git/fixes.patch
new file mode 100644
index 000000000..397965e38
--- /dev/null
+++ b/pcr/initng-git/fixes.patch
@@ -0,0 +1,31 @@
+diff -ru initng.orig/include/initng/io.h initng/include/initng/io.h
+--- initng.orig/include/initng/io.h 2012-12-11 03:45:20.000000000 -0500
++++ initng/include/initng/io.h 2012-12-11 03:44:30.000000000 -0500
+@@ -21,6 +21,7 @@
+ #define INITNG_IO_H
+
+ #include <unistd.h>
++#include <stdbool.h>
+ #include <fcntl.h>
+
+ #include <initng/active_db.h>
+@@ -43,6 +44,6 @@
+ pipe_h * pipe);
+ void initng_io_module_poll(int timeout);
+
+-int initng_io_set_cloexec(int fd);
++/* int initng_io_set_cloexec(int fd); */
+
+ #endif /* !defined(INITNG_IO_H) */
+diff -ru initng.orig/src/main/io/open.c initng/src/main/io/open.c
+--- initng.orig/src/main/io/open.c 2012-12-11 03:45:20.000000000 -0500
++++ initng/src/main/io/open.c 2012-12-11 03:44:30.000000000 -0500
+@@ -26,8 +26,5 @@
+ int fd;
+
+ fd = open(path, flags);
+- if (fd != -1) {
+- initng_io_fdtrack(fd);
+- }
+ return fd;
+ }
diff --git a/pcr/inspircd/PKGBUILD b/pcr/inspircd/PKGBUILD
new file mode 100644
index 000000000..3de3d5e57
--- /dev/null
+++ b/pcr/inspircd/PKGBUILD
@@ -0,0 +1,68 @@
+pkgname=inspircd
+pkgver=2.0.8
+pkgrel=2
+pkgdesc='A lightweight IRC daemon'
+arch=('x86_64' 'i686' 'mips64el')
+url='http://www.inspircd.org/'
+license=('GPL2')
+depends=('perl')
+makedepends=('pkg-config' 'libmysqlclient' 'postgresql' 'sqlite3' 'libldap' 'geoip'
+ 'tre' 'gnutls' 'openssl' 'libgcrypt')
+optdepends=('gnutls: m_ssl_gnutls'
+ 'libgcrypt: m_ssl_gnutls'
+ 'openssl: m_ssl_openssl'
+ 'libmysqlclient: m_mysql'
+ 'pcre: m_regex_pcre'
+ 'postgresql: m_pgsql'
+ 'sqlite3: m_sqlite3'
+ 'libldap: m_ldapoper and m_ldapauth'
+ 'geoip: m_geoip'
+ 'tre: m_regex_tre')
+install=inspircd.install
+
+source=(https://github.com/downloads/inspircd/inspircd/InspIRCd-$pkgver.tar.bz2
+ inspircd.rcd inspircd.service)
+sha1sums=('c8bcbc222df40bc8110cefdb4a1fee91ad7c73d1'
+ '59c4aa6929732fb076ca2be96a01385cae9e8484'
+ '667b28d0d086be6daad7a0c2f110c68e6526264e')
+
+build() {
+ cd "${srcdir}/inspircd"
+
+ ./configure \
+ --enable-extras=m_geoip.cpp \
+ --enable-extras=m_ldapauth.cpp \
+ --enable-extras=m_ldapoper.cpp \
+ --enable-extras=m_mysql.cpp \
+ --enable-extras=m_pgsql.cpp \
+ --enable-extras=m_regex_pcre.cpp \
+ --enable-extras=m_regex_posix.cpp \
+ --enable-extras=m_regex_tre.cpp \
+ --enable-extras=m_sqlite3.cpp
+
+ ./configure \
+ --prefix=/usr/lib/inspircd \
+ --binary-dir=/usr/sbin \
+ --module-dir=/usr/lib/inspircd/modules \
+ --config-dir=/etc/inspircd \
+ --enable-gnutls \
+ --enable-openssl \
+ --enable-epoll
+
+ make
+}
+
+package() {
+ install -Dm755 "${srcdir}"/inspircd.rcd "${pkgdir}"/etc/rc.d/inspircd
+ install -Dm644 "${srcdir}"/inspircd.service "${pkgdir}"/usr/lib/systemd/system/inspircd.service
+ install -o141 -g141 -dm750 "${pkgdir}/var/log/inspircd"
+
+ cd "${srcdir}/inspircd"
+ make DESTDIR="$pkgdir" INSTUID=141 install
+
+ mkdir -p "${pkgdir}"/usr/share/inspircd
+ mv "${pkgdir}"/etc/inspircd/examples "${pkgdir}"/usr/share/inspircd/examples
+
+ rm -rf "${pkgdir}"/usr/lib/inspircd/logs
+ rm -rf "${pkgdir}"/usr/lib/inspircd/data
+}
diff --git a/pcr/inspircd/inspircd.install b/pcr/inspircd/inspircd.install
new file mode 100644
index 000000000..ec97113f5
--- /dev/null
+++ b/pcr/inspircd/inspircd.install
@@ -0,0 +1,15 @@
+post_install() {
+ getent group inspircd &>/dev/null || groupadd -r -g 141 inspircd >/dev/null
+ getent passwd inspircd &>/dev/null || useradd -r -u 141 -g inspircd -d /var/lib/inspircd -s /bin/false -c inspircd inspircd >/dev/null
+
+ echo '==> You will need to create a config file for inspircd'
+ echo '==> cp /etc/inspircd/inspircd.conf.example /etc/inspircd/inspircd.conf'
+ echo '==> You will need to change the pidfile. To do this you can insert the following into your config.'
+ echo '==> <pid file="/var/run/inspircd/inspircd.pid">'
+ echo '==> Remember to use absolute paths in your config directory and not relative paths like you would do with a user-based inspircd install.'
+}
+
+post_remove() {
+ getent passwd inspircd &>/dev/null && userdel inspircd >/dev/null
+ getent group inspircd &>/dev/null && groupdel inspircd >/dev/null
+}
diff --git a/pcr/inspircd/inspircd.rcd b/pcr/inspircd/inspircd.rcd
new file mode 100644
index 000000000..5dbd8198e
--- /dev/null
+++ b/pcr/inspircd/inspircd.rcd
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof /usr/sbin/inspircd
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting inspircd"
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ su -s /bin/sh -c '/usr/sbin/inspircd --logfile /var/log/inspircd/startup.log --config /etc/inspircd/inspircd.conf' 'inspircd' > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon inspircd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping inspircd"
+ PID=$(get_pid)
+ [ ! -z "$PID" ] && kill $PID
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon inspircd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+
+ rehash|reload)
+ kill -HUP $(get_pid)
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/pcr/inspircd/inspircd.service b/pcr/inspircd/inspircd.service
new file mode 100644
index 000000000..83230b65c
--- /dev/null
+++ b/pcr/inspircd/inspircd.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=InspIRCd IRC daemon
+Requires=network.target
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/var/lib/inspircd/inspircd.pid
+ExecStart=/usr/lib/inspircd/inspircd start
+ExecReload=/usr/lib/inspircd/inspircd rehash
+ExecStop=/usr/lib/inspircd/inspircd stop
+Restart=on-failure
+User=inspircd
+Group=inspircd
+
+[Install]
+Alias=ircd.service
diff --git a/pcr/ipmitool/PKGBUILD b/pcr/ipmitool/PKGBUILD
new file mode 100644
index 000000000..38d4eb237
--- /dev/null
+++ b/pcr/ipmitool/PKGBUILD
@@ -0,0 +1,18 @@
+# Maintainer : Parabola GNU / Linux-libre Aurélien DESBRIÈRES <aurelien@cwb.IO>
+
+pkgname=ipmitool
+pkgver=1.8.11
+pkgrel=1
+pkgdesc="Command-line interface to IPMI-enabled devices"
+arch=(i686 x86_64)
+url="http://ipmitool.sourceforge.net"
+depends=('glibc' 'bash' 'openssl')
+license=("BSD")
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-kerneldir
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/pcr/ipmiutil/PKGBUILD b/pcr/ipmiutil/PKGBUILD
new file mode 100644
index 000000000..132ea7c59
--- /dev/null
+++ b/pcr/ipmiutil/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: goodmen <goodmenlinux@gmail.com>
+# Contributor: Gergely Imreh <imrehgATgmailDOTcom>
+# Contributors: champus, madeye, Ranguvar and ninja_pt
+# Maintainer : Parabola GNU / Linux-libre Aurélien DESBRIÈRES <aurelien@cwb.IO>
+
+pkgname=ipmiutil
+pkgver=2.7.5
+pkgrel=1
+pkgdesc="A simple program that lists results from the hardware detection library."
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/ipmiutil/"
+license=('BSD2.0')
+depends=('')
+makedepends=('openssl')
+options=('!emptydirs')
+source=("http://prdownloads.sourceforge.net/ipmiutil/ipmiutil-${pkgver}.tar.gz")
+
+build() {
+ cd ${srcdir}
+ tar -xf ${pkgname}-${pkgver}.tar.gz
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --enable-gpl
+ make -j1 || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/pcr/ipycli-git/PKGBUILD b/pcr/ipycli-git/PKGBUILD
new file mode 100644
index 000000000..86f6289d1
--- /dev/null
+++ b/pcr/ipycli-git/PKGBUILD
@@ -0,0 +1,56 @@
+# Contributor: Francois Boulogne <fboulogne at april dot org>
+# Maintainer: Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.io>
+
+pkgname=ipycli-git
+pkgver=20121109
+pkgrel=2
+pkgdesc="IPython subapp that supports adding arbitrary notebooks from the command line"
+arch=('i686' 'x86_64')
+url="https://github.com/dalejung/ipycli/"
+license=('UNKNOWN')
+depends=('python2' 'ipython2')
+optdepends=()
+makedepends=('git' 'python2')
+install=
+provides=()
+conflicts=()
+source=()
+
+
+_gitroot="git://github.com/dalejung/ipycli.git"
+_gitname="ipycli"
+
+build() {
+
+ cd "$srcdir"
+ msg "Connecting to GIT server...."
+
+ if [ -d $_gitname ] ; then
+ cd $_gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gitroot $_gitname
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+ cd "$srcdir/$_gitname-build"
+
+ #lib
+ python2 setup.py install --root="${pkgdir}"
+
+ #bin
+ mkdir "${pkgdir}/usr/bin"
+ cp "bin/nb" "${pkgdir}/usr/bin"
+ sed -i -e "s|#!/usr/bin/env python$|#!/usr/bin/env python2|" "${pkgdir}/usr/bin/nb"
+ cp "bin/ipycli" "${pkgdir}/usr/bin"
+ sed -i -e "s|#!/usr/bin/env python$|#!/usr/bin/env python2|" "${pkgdir}/usr/bin/ipycli"
+
+ #templates/statics
+ cp -r "ipycli/static" "${pkgdir}/usr/lib/python2.7/site-packages/ipycli/"
+ cp -r "ipycli/templates" "${pkgdir}/usr/lib/python2.7/site-packages/ipycli/"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/irssi-xmpp/PKGBUILD b/pcr/irssi-xmpp/PKGBUILD
new file mode 100644
index 000000000..fa5d445c6
--- /dev/null
+++ b/pcr/irssi-xmpp/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Yogesh Powar <yogesh.powar@gmail.com>
+pkgname=irssi-xmpp
+pkgver=0.52
+pkgrel=1
+pkgdesc="An irssi plugin to connect to the Jabber network."
+url="http://cybione.org/~irssi-xmpp"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=('loudmouth>=1.4.0' 'irssi>=0.8.13')
+source=("http://cybione.org/~irssi-xmpp/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('f48d66ddf6a6d8e4d04bfc44b83dc3c7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ export PREFIX=/usr/
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/jack-rack/PKGBUILD b/pcr/jack-rack/PKGBUILD
new file mode 100644
index 000000000..26330bb2b
--- /dev/null
+++ b/pcr/jack-rack/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: DonVla <donvla@users.sourceforge.net>
+# Contributor: Patrick Leslie Polzer <leslie.polzer@gmx.net>
+# Contributor: Berkus <berkus@madfire.net>
+# Contributor: Daniele Paolella <danielepaolella@email.it>
+pkgname=jack-rack
+pkgver=1.4.7
+pkgrel=4
+pkgdesc="Effects rack for JACK"
+url="http://jack-rack.sourceforge.net"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('jack' 'gtk2' 'libxml2' 'ladspa')
+optdepends=('lash: LASH support'
+ 'raptor1: LRDF support'
+ 'liblrdf: LRDF support'
+ 'python2: ecarack')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+
+md5sums=('a29ef4001ee2916a1b758952c936adca')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./autogen.sh
+ ./configure --prefix=/usr --enable-lash --disable-gnome
+ make LDFLAGS='-ldl -lm'
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+ sed -i 's/#!\/usr\/bin\/python/#!\/usr\/bin\/python2/' "${pkgdir}/usr/bin/ecarack"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/jdee/PKGBUILD b/pcr/jdee/PKGBUILD
new file mode 100644
index 000000000..41cddfb08
--- /dev/null
+++ b/pcr/jdee/PKGBUILD
@@ -0,0 +1,49 @@
+# PKGBUILD for JDEE 2.4.0.1
+# Contributor: Brandon Ednes <brandon@as220.org>
+# $Id$
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=jdee
+_pkgname=jde
+pkgver=2.4.0.1
+pkgrel=1
+pkgdesc="The Java Development Environment for Emacs"
+arch=('i686' 'x86_64')
+url="http://jdee.sourceforge.net/"
+license="GPL"
+depends=('emacs' 'cedet' 'emacs-elib')
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+install="$pkgname.install"
+source=(http://downloads.sourceforge.net/project/jdee/jdee/2.4.0.1/jdee-bin-2.4.0.1.zip)
+md5sums=('8e1d3e764f01c6dc1e337f9c6882ec85')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ mkdir -p $startdir/pkg/usr/share/emacs/site-lisp/$_pkgname
+
+ # Fix up permissions for package files. This is nice but not required.
+ find . -type f | xargs chmod 644
+
+ # Because of the way JDEE builds, it assumes the jde directory has its
+ # dependencies in sibling directories. We set up some symlinks to fake
+ # this.
+ ln -sf /usr/share/emacs/site-lisp/elib ../elib
+ ln -sf /usr/share/emacs/site-lisp/cedet ../cedet
+ # Byte-compile everything.
+ emacs -q --no-site-file -batch -l $startdir/jdee-build.el -f jde-compile-jde
+
+ # There is no install per se, just copy everything into the pkg directory.
+ cp -R $startdir/src/$pkgname-$pkgver/* \
+ $startdir/pkg/usr/share/emacs/site-lisp/$_pkgname
+
+ # Clean up the symlinks.
+ rm ../elib
+ rm ../cedet
+}
+
+# Local Variables:
+# mode: shell-script
+# End:
diff --git a/pcr/jdee/jdee-build.el b/pcr/jdee/jdee-build.el
new file mode 100644
index 000000000..a8ec13358
--- /dev/null
+++ b/pcr/jdee/jdee-build.el
@@ -0,0 +1,8 @@
+;;; jde-build.el
+;;; Set up the Emacs environment to byte-compile JDEE
+;;; $Id: jdee-build.el,v 99d30c485449 2008/06/23 05:38:36 jbromley $
+(add-to-list 'load-path "../elib")
+(add-to-list 'load-path "../cedet")
+(add-to-list 'load-path "./lisp")
+(load-file (expand-file-name "../cedet/common/cedet.el"))
+(require 'jde)
diff --git a/pcr/jdee/jdee.install b/pcr/jdee/jdee.install
new file mode 100644
index 000000000..08b6501a4
--- /dev/null
+++ b/pcr/jdee/jdee.install
@@ -0,0 +1,54 @@
+# jdee.install
+# Show Emacs configuration instructions.
+# $Id: jdee.install,v 99d30c485449 2008/06/23 05:38:36 jbromley $
+post_install () {
+echo ""
+echo "==> You may need to update your .emacs file. The following shows"
+echo "==> the minimal configuration needed. Note that it shows what is"
+echo "==> needed to configure JDEE's dependencies elib and cedet."
+echo ""
+echo "==> ;; This .emacs file illustrates the minimal setup"
+echo "==> ;; required to run the JDE."
+echo "==>"
+echo "==> ;; Update the Emacs load-path to include the path to"
+echo "==> ;; the JDE and its require packages. This code assumes"
+echo "==> ;; that you have installed the packages in the emacs/site"
+echo "==> ;; subdirectory of your home directory."
+echo "==> (add-to-list 'load-path (expand-file-name \"~/emacs/site/jde/lisp\"))"
+echo "==> (add-to-list 'load-path (expand-file-name \"~/emacs/site/cedet/common\"))"
+echo "==> (add-to-list 'load-path (expand-file-name \"~/emacs/site/elib\"))"
+echo "==>"
+echo "==> ;; Initialize CEDET."
+echo "==> (load-file (expand-file-name \"~/emacs/site/cedet/common/cedet.el\"))"
+echo "==>"
+echo "==>"
+echo "==> ;; If you want Emacs to defer loading the JDE until you open a"
+echo "==> ;; Java file, edit the following line"
+echo "==> (setq defer-loading-jde nil)"
+echo "==> ;; to read:"
+echo "==> ;;"
+echo "==> ;; (setq defer-loading-jde t)"
+echo "==> ;;"
+echo "==>"
+echo "==> (if defer-loading-jde"
+echo "==> (progn"
+echo "==> (autoload 'jde-mode \"jde\" \"JDE mode.\" t)"
+echo "==> (setq auto-mode-alist"
+echo "==> (append"
+echo "==> '((\"\\\\.java\\\\'\" . jde-mode))"
+echo "==> auto-mode-alist)))"
+echo "==> (require 'jde))"
+echo ""
+}
+
+post_upgrade () {
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
+
+# Local Variables:
+# mode: shell-script
+# End:
diff --git a/pcr/jitsi/drop-open-term-on-index-jn-html.patch b/pcr/jitsi/drop-open-term-on-index-jn-html.patch
new file mode 100644
index 000000000..8d4012a05
--- /dev/null
+++ b/pcr/jitsi/drop-open-term-on-index-jn-html.patch
@@ -0,0 +1,6 @@
+--- www/index-jn.html 2011-01-29 08:36:48.000000000 -0200
++++ www/index-jn.html-new 2013-05-29 01:05:48.942716248 -0300
+@@ -1,2 +1,2 @@
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <table width="100%" cellpadding="0" bordercolor="#111111" border="0" style="border-collapse: collapse" id="AutoNumber2"> <tbody><tr> <td valign="middle" style="width: 20%"> <p align="center"> <a href="http://sip-communicator.org"><img border="0" alt="sip-communicator.org" src="images/sip-communicator.logo.png" /></a><br /> SIP Communicator <br />Open Source VoIP &amp; IM </p> <br /> </td> <td style="width: 90%"> <p align="justify"> SIP Communicator is an audio/video Internet phone and instant messenger that support some of the most popular instant messaging and telephony protocols such as SIP, Jabber, AIM/ICQ, MSN and soon others like Yahoo and IRC. </p> <p align="justify"> SIP Communicator is completely <a href="http://www.opensource.org/">Open Source</a> / <a href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a>, and is freely available under the terms of the <a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a>. </p> <table width="100%" cellspacing="2" cellpadding="2" border="0" style="background-color: white"> <tbody><tr><td style="background-color: lightgray"> <p> RESOURCES: The SIP Communicator <a class="wikilink" href="http://www.sip-communicator.org/index.php/Documentation/FAQ">FAQ</a> can usually answer most questions. You can also ask on the <a class="wikilink" href="http://www.sip-communicator.org/index.php/Development/MailingLists#users">users</a> mailing list, or at the <a class="urllink" rel="nofollow" href="http://www.sip-communicator.org/irc/irc.cgi">irc channel</a> #sip-communicator at irc.freenode.net. </p> </td></tr> </tbody></table> <p><em> <strong>Note:</strong> Right now SIP Communicator is still a work in progress and as such is still unstable. If you would like to help or follow project progress check the <a class="wikilink" href="http://www.sip-communicator.org/index.php/Development/Roadmap">Project Roadmap</a> or join our <a class="wikilink" href="http://www.sip-communicator.org/index.php/Development/MailingLists">Mailing Lists</a>. You can also have a look at the SIP Communicator <a class="wikilink" href="http://www.sip-communicator.org/index.php/Main/Screenshots">screenshots</a> </em> </p> <p> <strong> Thanks for your patience and continuing support! <br /> <a href="https://sip-communicator.org/wiki/index.php/Development/TeamAndContributors"> The SIP Communicator team</a></strong></p> </td> </tr> </tbody></table>
++<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <table width="100%" cellpadding="0" bordercolor="#111111" border="0" style="border-collapse: collapse" id="AutoNumber2"> <tbody><tr> <td valign="middle" style="width: 20%"> <p align="center"> <a href="http://sip-communicator.org"><img border="0" alt="sip-communicator.org" src="images/sip-communicator.logo.png" /></a><br /> SIP Communicator <br />Free Software VoIP &amp; IM </p> <br /> </td> <td style="width: 90%"> <p align="justify"> SIP Communicator is an audio/video Internet phone and instant messenger that support some of the most popular instant messaging and telephony protocols such as SIP, Jabber, AIM/ICQ, MSN and soon others like Yahoo and IRC. </p> <p align="justify"> SIP Communicator is completely <a href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a>, and is freely available under the terms of the <a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a>. </p> <table width="100%" cellspacing="2" cellpadding="2" border="0" style="background-color: white"> <tbody><tr><td style="background-color: lightgray"> <p> RESOURCES: The SIP Communicator <a class="wikilink" href="http://www.sip-communicator.org/index.php/Documentation/FAQ">FAQ</a> can usually answer most questions. You can also ask on the <a class="wikilink" href="http://www.sip-communicator.org/index.php/Development/MailingLists#users">users</a> mailing list, or at the <a class="urllink" rel="nofollow" href="http://www.sip-communicator.org/irc/irc.cgi">irc channel</a> #sip-communicator at irc.freenode.net. </p> </td></tr> </tbody></table> <p><em> <strong>Note:</strong> Right now SIP Communicator is still a work in progress and as such is still unstable. If you would like to help or follow project progress check the <a class="wikilink" href="http://www.sip-communicator.org/index.php/Development/Roadmap">Project Roadmap</a> or join our <a class="wikilink" href="http://www.sip-communicator.org/index.php/Development/MailingLists">Mailing Lists</a>. You can also have a look at the SIP Communicator <a class="wikilink" href="http://www.sip-communicator.org/index.php/Main/Screenshots">screenshots</a> </em> </p> <p> <strong> Thanks for your patience and continuing support! <br /> <a href="https://sip-communicator.org/wiki/index.php/Development/TeamAndContributors"> The SIP Communicator team</a></strong></p> </td> </tr> </tbody></table>
diff --git a/pcr/jitsi/jitsi.desktop b/pcr/jitsi/jitsi.desktop
new file mode 100644
index 000000000..dd4de82a6
--- /dev/null
+++ b/pcr/jitsi/jitsi.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Jitsi
+GenericName=jitsi
+Comment=VoIP and Instant Messaging client
+Icon=/usr/share/pixmaps/jitsi.svg
+Type=Application
+Categories=Network
+Exec=/usr/bin/jitsi
+Terminal=false
diff --git a/pcr/jitsi/jitsi.sh b/pcr/jitsi/jitsi.sh
new file mode 100644
index 000000000..6e53cdbf5
--- /dev/null
+++ b/pcr/jitsi/jitsi.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+CLIENTARGS=""
+uname -m | grep i686 && CLIENTARGS="-client -Xmx256m"
+
+SCDIR=/usr/lib/jitsi
+LIBPATH="$SCDIR/lib"
+CLASSPATH="$LIBPATH/jdic_stub.jar:$LIBPATH/jdic-all.jar:$LIBPATH/felix.jar:$LIBPATH/bcprovider.jar:$SCDIR/sc-bundles/sc-launcher.jar:$SCDIR/sc-bundles/util.jar"
+FELIX_CONFIG="$LIBPATH/felix.client.run.properties"
+LOG_CONFIG="$LIBPATH/logging.properties"
+COMMAND=("$JAVA_HOME/bin/java" $CLIENTARGS -classpath "$CLASSPATH" -Djna.library.path="$LIBPATH/native" -Dfelix.config.properties="file:$FELIX_CONFIG" -Djava.util.logging.config.file="$LOG_CONFIG" net.java.sip.communicator.launcher.SIPCommunicator)
+
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIBPATH/native"
+
+cd "$SCDIR"
+
+exec "${COMMAND[@]}" "$@"
diff --git a/pcr/kamailio/PKGBUILD b/pcr/kamailio/PKGBUILD
new file mode 100644
index 000000000..3e040a495
--- /dev/null
+++ b/pcr/kamailio/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Xavier Devlamynck <magicrhesus@ouranos.be>
+
+pkgname=kamailio
+pkgver=4.0.1
+pkgrel=1
+pkgdesc="Rock solid SIP server"
+url="http://www.kamailio.org/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+makedepends=('flex' 'bison' 'docbook2x' 'mariadb' 'postgresql' 'libxml2'
+ 'radiusclient-ng' 'lua51' 'mono' 'hiredis' 'libpurple' 'net-snmp'
+ 'libunistring' 'python2')
+optdepends=('mariadb: mysql support'
+ 'expat: xmpp/jabber support'
+ 'libxml2: cpl and presence modules support'
+ 'radiusclient-ng: radius support'
+ 'postgresql: postgresql backend')
+source=(http://www.kamailio.org/pub/kamailio/$pkgver/src/kamailio-${pkgver}_src.tar.gz)
+sha256sums=('dd8652f47a572c0b0e1e45bdd0f6f838a14e50f2dbbeed77726ec0c7076e1769')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make cfg prefix=/usr cfg_prefix=/ bin_dir=/usr/bin
+ make PYTHON="python2" all
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix=${pkgdir}/usr \
+ PYTHON="python2" \
+ cfg_prefix=${pkgdir} \
+ bind_dir=${pkgdir}/usr/bin \
+ bingroup_include="standard standard-dep stable experimental" \
+ skip_modules="iptrtpproxy osp dbtext oracle" \
+ install
+}
diff --git a/pcr/knot/PKGBUILD b/pcr/knot/PKGBUILD
new file mode 100644
index 000000000..4f785493a
--- /dev/null
+++ b/pcr/knot/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Otto Sabart <seberm[at]gmail[dot]com>
+# Maintainer : Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.io>
+
+pkgname=knot
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="high-performance authoritative-only DNS server"
+url="http://www.knot-dns.cz/setlang/?language=en"
+arch=('i686' 'x86_64')
+license=('GPLv3')
+depends=('liburcu>=0.5.4' 'flex>=2.5.3' 'libtool' 'bison>=2.3')
+optdepends=('libcap')
+makedepends=('autoconf>=2.65')
+conflicts=()
+replaces=()
+backup=()
+#install='foo.install'
+source=("http://public.nic.cz/files/knot-dns/${pkgname}-${pkgver}.tar.gz")
+
+md5sums=('b2d4a53d8e98565ebb389531c2b66690')
+
+build() {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ #autoreconf -if
+ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc/knot
+
+ make && make install DESTDIR="${pkgdir}" || return 1
+ #ldconfig
+}
diff --git a/pcr/kompozer/NS_IMETHOD_i686.patch b/pcr/kompozer/NS_IMETHOD_i686.patch
new file mode 100644
index 000000000..79abc50de
--- /dev/null
+++ b/pcr/kompozer/NS_IMETHOD_i686.patch
@@ -0,0 +1,11 @@
+--- xpcom/base/nscore.h 2009-05-02 17:43:48.000000000 +0100
++++ xpcom/base/nscore.h 2012-08-10 23:08:07.168628118 +0100
+@@ -182,7 +182,7 @@
+ #define NS_IMPORT_(type) NS_EXTERNAL_VIS_(type)
+ #define NS_EXPORT NS_EXTERNAL_VIS
+ #define NS_EXPORT_(type) NS_EXTERNAL_VIS_(type)
+-#define NS_IMETHOD_(type) virtual IMETHOD_VISIBILITY type NS_DEFCALL
++#define NS_IMETHOD_(type) virtual type
+ #define NS_IMETHODIMP_(type) type
+ #define NS_METHOD_(type) type
+ #define NS_CALLBACK_(_type, _name) _type (* _name)
diff --git a/pcr/kompozer/PKGBUILD b/pcr/kompozer/PKGBUILD
new file mode 100644
index 000000000..a65fb3e3b
--- /dev/null
+++ b/pcr/kompozer/PKGBUILD
@@ -0,0 +1,69 @@
+# Maintainer: Muflone <webreg@vbsimple.net>
+# Contributor: ingamedeo <ingamedeo at gmail dot com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+# thanks to tadzio, and techlive for the investigation
+# work and fix included as the NS_IMETHOD_i686.patch
+
+# Sorry for not honouring makepkg.conf (!buildflags)
+# but the source doesn't compile with makepkg's default C/CXXFLAGS
+
+pkgname=kompozer
+pkgver=0.8b3
+pkgrel=12
+pkgdesc="A Dreamweaver style WYSIWYG web editor; Nvu unofficial bug-fix release"
+arch=('x86_64' 'i686')
+license=('GPL')
+url="http://www.kompozer.net"
+depends=('gtk2' 'glib2' 'pango' 'pangox-compat' 'nss' 'libxt' 'libidl2' 'gnome-vfs')
+makedepends=('zip' 'pkgconfig')
+options=('!buildflags')
+source=("http://downloads.sourceforge.net/kompozer/${pkgname}-${pkgver}-src.tar.bz2"
+ 'kompozer.desktop'
+ 'mozconfig.patch'
+ 'kompozer-libpng15.patch'
+ 'kompozer-libpng14.patch'
+ 'gcc46_default_ctors.patch'
+ 'kompozer_gcc_4.7.patch'
+ 'any_kernel_26_plus.patch'
+ 'NS_IMETHOD_i686.patch')
+md5sums=('cd4664ecda908666b19ef0607010c627'
+ 'ed8edf6817892a38b8b181fc9b2caaea'
+ '4778f967307cf569089daca843de1df9'
+ '4852034f99e7943071946e7eedc6c2f5'
+ 'd5ba90f7fbaed76f77a6d9717e86f3a5'
+ 'ad3ec5cbc6677dd712b140148398f58f'
+ '75b0e1cad65dbeb8feedac5d4f52be32'
+ '58a294356b3e17ad070e4c93180bf0ad'
+ '186c47586bebf83b9b76d339e3a38c95')
+
+build() {
+ cd "${srcdir}/mozilla"
+ patch -Np0 -i "${srcdir}/mozconfig.patch"
+ patch -Np0 -i "${srcdir}/kompozer-libpng14.patch"
+ patch -Np0 -i "${srcdir}/kompozer-libpng15.patch"
+ patch -Np0 -i "${srcdir}/gcc46_default_ctors.patch"
+ patch -Np0 -i "${srcdir}/kompozer_gcc_4.7.patch"
+ patch -Np0 -i "${srcdir}/any_kernel_26_plus.patch"
+ patch -Np0 -i "${srcdir}/NS_IMETHOD_i686.patch"
+
+ #make -f client.mk build #If is causing a lot of problem...try to build the package as normally
+ ./configure
+ make
+}
+
+package() {
+ cd "${srcdir}/mozilla"
+
+ make DESTDIR=${pkgdir} install
+ # Remove nspr.m4 because it's now provided by nspr package
+ rm "${pkgdir}/usr/share/aclocal/nspr.m4"
+ rmdir "${pkgdir}/usr/share/aclocal"
+
+ install -m755 -dD "${pkgdir}/usr/share/applications/"
+ install -m644 "${srcdir}/kompozer.desktop" "${pkgdir}/usr/share/applications/"
+
+ install -d -m755 "${pkgdir}/usr/share/pixmaps/"
+ ln -s "/usr/lib/kompozer/icons/mozicon256.png" "${pkgdir}/usr/share/pixmaps/kompozer.png"
+ ln -s "/usr/lib/kompozer/icons/mozicon50.xpm" "${pkgdir}/usr/share/pixmaps/kompozer.xpm"
+}
diff --git a/pcr/kompozer/any_kernel_26_plus.patch b/pcr/kompozer/any_kernel_26_plus.patch
new file mode 100644
index 000000000..69610ef3f
--- /dev/null
+++ b/pcr/kompozer/any_kernel_26_plus.patch
@@ -0,0 +1,31 @@
+--- security/coreconf/config.mk 2009-05-02 17:42:18.000000000 +0100
++++ security/coreconf/config.mk 2012-05-22 00:08:39.000000000 +0100
+@@ -63,7 +63,7 @@
+ #######################################################################
+
+ TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \
+- OpenVMS AIX
++ OpenVMS AIX Linux
+
+ ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET)))
+ include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk
+--- security/coreconf/Linux.mk 2009-05-02 17:42:18.000000000 +0100
++++ security/coreconf/Linux.mk 2012-05-22 00:36:03.533374797 +0100
+@@ -176,3 +176,17 @@
+ # Always set CPU_TAG on Linux, OpenVMS, WINCE.
+ #
+ CPU_TAG = _$(CPU_ARCH)
++
++#
++#Try to compile with any kernel version 2.6 and above.
++#
++DSO_LDOPTS += -Wl,-z,defs
++
++OS_REL_CFLAGS += -DLINUX2_1
++MKSHLIB = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
++
++ifdef MAPFILE
++ MKSHLIB += -Wl,--version-script,$(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';-' $< | \
++ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
diff --git a/pcr/kompozer/gcc46_default_ctors.patch b/pcr/kompozer/gcc46_default_ctors.patch
new file mode 100644
index 000000000..7f3fa7810
--- /dev/null
+++ b/pcr/kompozer/gcc46_default_ctors.patch
@@ -0,0 +1,22 @@
+--- intl/unicharutil/util/nsUnicharUtils.h 2011-05-10 17:02:12.472642196 +0200
++++ intl/unicharutil/util/nsUnicharUtils.h 2011-05-10 17:02:50.656034735 +0200
+@@ -64,6 +64,9 @@
+ : public nsStringComparator
+ {
+ public:
++ nsCaseInsensitiveStringComparator()
++ {
++ }
+ virtual int operator()( const PRUnichar*, const PRUnichar*, PRUint32 aLength ) const;
+ virtual int operator()( PRUnichar, PRUnichar ) const;
+ };
+--- toolkit/xre/nsAppRunner.cpp 2011-05-10 17:26:05.853608464 +0200
++++ toolkit/xre/nsAppRunner.cpp 2011-05-10 17:26:15.079221177 +0200
+@@ -491,6 +491,7 @@
+
+ {
+ public:
++ nsXULAppInfo() {}
+ NS_DECL_ISUPPORTS_INHERITED
+ NS_DECL_NSIXULAPPINFO
+ NS_DECL_NSIXULRUNTIME
diff --git a/pcr/kompozer/kompozer-libpng14.patch b/pcr/kompozer/kompozer-libpng14.patch
new file mode 100644
index 000000000..224bc7f61
--- /dev/null
+++ b/pcr/kompozer/kompozer-libpng14.patch
@@ -0,0 +1,17 @@
+diff -Naur mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp{-,}
+--- mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp- 2010-06-10 19:34:09.000000000 -0700
++++ modules/libpr0n/encoders/png/nsPNGEncoder.cpp 2010-06-10 19:35:13.000000000 -0700
+@@ -111,9 +111,9 @@
+
+ // initialize
+ png_struct* png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,
+- png_voidp_NULL,
+- png_error_ptr_NULL,
+- png_error_ptr_NULL);
++ NULL,
++ NULL,
++ NULL);
+ if (! png_ptr)
+ return NS_ERROR_OUT_OF_MEMORY;
+ png_info* info_ptr = png_create_info_struct(png_ptr);
+
diff --git a/pcr/kompozer/kompozer-libpng15.patch b/pcr/kompozer/kompozer-libpng15.patch
new file mode 100644
index 000000000..f236e402a
--- /dev/null
+++ b/pcr/kompozer/kompozer-libpng15.patch
@@ -0,0 +1,64 @@
+diff -urp mozilla.orig/modules/libpr0n/decoders/png/nsPNGDecoder.cpp mozilla/modules/libpr0n/decoders/png/nsPNGDecoder.cpp
+--- mozilla.orig/modules/libpr0n/decoders/png/nsPNGDecoder.cpp 2011-11-14 21:55:42.513856274 +0000
++++ modules/libpr0n/decoders/png/nsPNGDecoder.cpp 2011-11-14 22:15:35.899962674 +0000
+@@ -171,7 +171,7 @@ static NS_METHOD ReadDataOut(nsIInputStr
+ }
+
+ // we need to do the setjmp here otherwise bad things will happen
+- if (setjmp(decoder->mPNG->jmpbuf)) {
++ if (setjmp (png_jmpbuf(decoder->mPNG))) {
+ png_destroy_read_struct(&decoder->mPNG, &decoder->mInfo, NULL);
+
+ decoder->mError = PR_TRUE;
+@@ -227,7 +227,7 @@ info_callback(png_structp png_ptr, png_i
+ if (width > MOZ_PNG_MAX_DIMENSION || height > MOZ_PNG_MAX_DIMENSION) {
+ nsPNGDecoder *decoder = NS_STATIC_CAST(nsPNGDecoder*,
+ png_get_progressive_ptr(png_ptr));
+- longjmp(decoder->mPNG->jmpbuf, 1);
++ longjmp(png_jmpbuf(decoder->mPNG), 1);
+ }
+ #undef MOZ_PNG_MAX_DIMENSION
+
+@@ -307,7 +307,7 @@ info_callback(png_structp png_ptr, png_i
+
+ decoder->mImage = do_CreateInstance("@mozilla.org/image/container;1");
+ if (!decoder->mImage)
+- longjmp(decoder->mPNG->jmpbuf, 5); // NS_ERROR_OUT_OF_MEMORY
++ longjmp(png_jmpbuf(decoder->mPNG), 5); // NS_ERROR_OUT_OF_MEMORY
+
+ decoder->mImageLoad->SetImage(decoder->mImage);
+
+@@ -319,7 +319,7 @@ info_callback(png_structp png_ptr, png_i
+
+ decoder->mFrame = do_CreateInstance("@mozilla.org/gfx/image/frame;2");
+ if (!decoder->mFrame)
+- longjmp(decoder->mPNG->jmpbuf, 5); // NS_ERROR_OUT_OF_MEMORY
++ longjmp(png_jmpbuf(decoder->mPNG), 5); // NS_ERROR_OUT_OF_MEMORY
+
+ gfx_format format;
+
+@@ -341,7 +341,7 @@ info_callback(png_structp png_ptr, png_i
+ // then initalize the frame and append it to the container
+ nsresult rv = decoder->mFrame->Init(0, 0, width, height, format, 24);
+ if (NS_FAILED(rv))
+- longjmp(decoder->mPNG->jmpbuf, 5); // NS_ERROR_OUT_OF_MEMORY
++ longjmp(png_jmpbuf(decoder->mPNG), 5); // NS_ERROR_OUT_OF_MEMORY
+
+ decoder->mImage->AppendFrame(decoder->mFrame);
+
+@@ -362,7 +362,7 @@ info_callback(png_structp png_ptr, png_i
+ decoder->ibpr = bpr;
+ decoder->interlacebuf = (PRUint8 *)nsMemory::Alloc(decoder->ibpr*height);
+ if (!decoder->interlacebuf) {
+- longjmp(decoder->mPNG->jmpbuf, 5); // NS_ERROR_OUT_OF_MEMORY
++ longjmp(png_jmpbuf(decoder->mPNG), 5); // NS_ERROR_OUT_OF_MEMORY
+ }
+ }
+
+@@ -555,7 +555,7 @@ void
+ error_callback(png_structp png_ptr, png_const_charp error_msg)
+ {
+ PR_LOG(gPNGLog, PR_LOG_ERROR, ("libpng error: %s\n", error_msg));
+- longjmp(png_ptr->jmpbuf, 1);
++ longjmp(png_jmpbuf(png_ptr), 1);
+ }
diff --git a/pcr/kompozer/kompozer.desktop b/pcr/kompozer/kompozer.desktop
new file mode 100644
index 000000000..c395f9af7
--- /dev/null
+++ b/pcr/kompozer/kompozer.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Exec=kompozer
+Icon=kompozer
+Type=Application
+Terminal=false
+Name=KompoZer
+GenericName=Web Authoring System
+Comment=WYSIWYG Web Editor
+MimeType=text/html;text/xml;text/css;text/x-javascript;text/javascript;application/xhtml+xml;
+Categories=Development;WebDevelopment;Network;
+
diff --git a/pcr/kompozer/kompozer_gcc_4.7.patch b/pcr/kompozer/kompozer_gcc_4.7.patch
new file mode 100644
index 000000000..196609fce
--- /dev/null
+++ b/pcr/kompozer/kompozer_gcc_4.7.patch
@@ -0,0 +1,107 @@
+--- xpcom/glue/nsBaseHashtable.h 2009-05-02 17:43:39.000000000 +0100
++++ xpcom/glue/nsBaseHashtable.h 2012-07-27 13:43:55.000000000 +0100
+@@ -123,7 +123,7 @@
+ */
+ PRBool Get(KeyType aKey, UserDataType* pData) const
+ {
+- EntryType* ent = GetEntry(aKey);
++ EntryType* ent = this->GetEntry(aKey);
+
+ if (!ent)
+ return PR_FALSE;
+@@ -142,7 +142,7 @@
+ */
+ PRBool Put(KeyType aKey, UserDataType aData)
+ {
+- EntryType* ent = PutEntry(aKey);
++ EntryType* ent = this->PutEntry(aKey);
+
+ if (!ent)
+ return PR_FALSE;
+@@ -156,7 +156,7 @@
+ * remove the data for the associated key
+ * @param aKey the key to remove from the hashtable
+ */
+- void Remove(KeyType aKey) { RemoveEntry(aKey); }
++ void Remove(KeyType aKey) { this->RemoveEntry(aKey); }
+
+ /**
+ * function type provided by the application for enumeration.
+--- xpcom/glue/nsClassHashtable.h 2009-05-02 17:43:39.000000000 +0100
++++ xpcom/glue/nsClassHashtable.h 2012-07-27 13:15:10.000000000 +0100
+@@ -98,7 +98,7 @@
+ nsClassHashtable<KeyClass,T>::Get(KeyType aKey, T** retVal) const
+ {
+ typename nsBaseHashtable<KeyClass,nsAutoPtr<T>,T*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -126,7 +126,7 @@
+ PR_Lock(this->mLock);
+
+ typename nsBaseHashtableMT<KeyClass,nsAutoPtr<T>,T*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+--- xpcom/glue/nsInterfaceHashtable.h 2009-05-02 17:43:39.000000000 +0100
++++ xpcom/glue/nsInterfaceHashtable.h 2012-07-27 13:30:08.000000000 +0100
+@@ -111,7 +111,7 @@
+ (KeyType aKey, UserDataType* pInterface) const
+ {
+ typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -139,7 +139,7 @@
+ (KeyType aKey, PRBool* aFound) const
+ {
+ typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -167,7 +167,7 @@
+ PR_Lock(this->mLock);
+
+ typename nsBaseHashtableMT<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+--- xpcom/glue/nsRefPtrHashtable.h 2009-05-02 17:43:39.000000000 +0100
++++ xpcom/glue/nsRefPtrHashtable.h 2012-07-27 13:52:48.000000000 +0100
+@@ -112,7 +112,7 @@
+ (KeyType aKey, UserDataType* pRefPtr) const
+ {
+ typename nsBaseHashtable<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -140,7 +140,7 @@
+ (KeyType aKey, PRBool* aFound) const
+ {
+ typename nsBaseHashtable<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -168,7 +168,7 @@
+ PR_Lock(this->mLock);
+
+ typename nsBaseHashtableMT<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
diff --git a/pcr/kompozer/mozconfig.patch b/pcr/kompozer/mozconfig.patch
new file mode 100644
index 000000000..bebad1d20
--- /dev/null
+++ b/pcr/kompozer/mozconfig.patch
@@ -0,0 +1,142 @@
+--- .mozconfig 2009-04-26 16:19:33.000000000 +0100
++++ .mozconfig 1970-01-01 10:14:21.000000000 +0100
+@@ -1,85 +1,80 @@
+-# Pulling Composer from the 1.8 Mozilla branch (cvs)
+-#$ cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH mozilla/client.mk
+-#$ cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r FIREFOX_2_0_0_20_RELEASE mozilla/client.mk
+-#$ cd mozilla
+-#$ make -f client.mk checkout MOZ_CO_PROJECT=composer
+-#$ find . -name CVS -prune -exec rm -rf {} \;
+-#$ find . -name .cvsignore -prune -exec rm -rf {} \;
+-
+-# Building Composer on the 1.8 Mozilla branch
+-# Note: on Ubuntu 8.04, requires libgtk2-dev, libxt-dev, libidl-dev
+-# + dbus-glib-1-dev, curl (for Mozilla 1.9+)
+-#$ make -f client.mk build
+-#
++# Build configuration script for Debian
++
++# build in a separate directory (optional)
++#mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@
+
+-export BUILD_OFFICIAL=1
+ export MOZILLA_OFFICIAL=1
++export BUILD_OFFICIAL=1
++
++export MOZ_STANDALONE_COMPOSER=1
++mk_add_options MOZ_STANDALONE_COMPOSER=1
++
++# if you want don't want to use gcc and g or want to use
++# a specific version of the compilers, specify it in the
++# two following lines and uncomment them
++#export CC="gcc-3.0"
++#export CXX="g-3.0"
++
++# Uncomment the 3 following lines on Debian
++#export OS_LIBS="-lc -lpthread"
++#export CFLAGS="-DDEBIAN"
++#export CXXFLAGS="-DDEBIAN"
++mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-kompozer
+
+-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@
+-#mk_add_options MOZ_CO_PROJECT=composer
++# build the standalone composer, obviously
++mk_add_options MOZ_CO_PROJECT=composer
+ ac_add_options --enable-application=composer
+
++# change these two line to build in debug mode
+ ac_add_options --enable-optimize
++ac_add_options --with-pthreads
+ ac_add_options --disable-debug
+-#ac_add_options --disable-optimize
+-#ac_add_options --enable-debug
+-
+-#ac_add_options --disable-shared
+-#ac_add_options --enable-static
+-#ac_add_options --disable-libxul
+-#ac_add_options --disable-xpfe-components
+-ac_add_options --enable-xpfe-components
+-ac_add_options --disable-tests
+-ac_add_options --disable-installer
+-
+-#ac_add_options --disable-libxul
+
+-#ac_add_options --disable-crashreporter
++# adapt the following lines according to your distribution
+
+-#ac_add_options --enable-optimize
+-#ac_add_options --enable-default-toolkit=gtk2
+-##ac_add_options --enable-default-toolkit=cairo-gtk2
+-#ac_add_options --enable-xft
+-#ac_add_options --disable-canvas
+-##ac_add_options --disable-cairo
+-
+-#ac_add_options --enable-extensions="default inspector venkman"
+-ac_add_options --enable-extensions="default spellcheck"
+-#ac_add_options --enable-inspector-apis
+-
+-##ac_add_options --enable-extensions=wallet,xml-rpc,xmlextras,pref,universalchardet,spellcheck
+-##ac_add_options --enable-extensions=xml-rpc,xmlextras,pref,universalchardet
+-#ac_add_options --disable-extensions
+-## (now by default) ac_add_options --enable-necko-protocols=http,ftp,file,jar,viewsource,res,data
+-ac_add_options --enable-necko-protocols=http,ftp,file,jar,viewsource,res,data
+-##ac_add_options --enable-mathml
+-#ac_add_options --enable-svg
+-
+-#ac_add_options --disable-installer
+-#ac_add_options --disable-javaxpcom
+-#ac_add_options --disable-activex
+-#ac_add_options --disable-activex-scripting
++ac_add_options --prefix=/usr
++ac_add_options --libdir=/usr/lib
++ac_add_options --disable-tests
++ac_add_options --enable-necko-protocols=http,ftp,file,jar,viewsource,res,data
+
+-# Ubuntu 7.10 default flags: https://wiki.mozilla.org/Linux/Compiler_Options
+ ac_add_options --enable-default-toolkit=gtk2
+ ac_add_options --enable-xft
+ ac_add_options --enable-pango
+ ac_add_options --enable-postscript
+ ac_add_options --disable-xprint
+
+-ac_add_options --enable-mathml
++#ac_add_options --enable-mathml
+ ac_add_options --enable-svg
+-ac_add_options --enable-svg-renderer=cairo
++#ac_add_options --enable-svg-renderer=cairo
+ ac_add_options --enable-system-cairo
+ ac_add_options --enable-canvas
+
+-ac_add_options --with-system-png=/usr
+-ac_add_options --with-system-jpeg=/usr
+-ac_add_options --with-system-zlib=/usr
++ac_add_options --with-system-png
++ac_add_options --with-system-jpeg
++ac_add_options --with-system-zlib
+
+ ac_add_options --enable-gnomevfs
+-ac_add_options --enable-xinerama
+ ac_add_options --enable-single-profile
+ ac_add_options --disable-profilesharing
+ ac_add_options --enable-system-myspell
+
++ac_add_options --disable-installer
++ac_add_options --disable-xpfe-components
++ac_add_options --with-default-mozilla-five-home=/usr/lib/kompozer
++ac_add_options --with-distribution-id=aur.archlinux.org
++ac_add_options --without-system-nspr
++ac_add_options --without-system-nss
++
++#ac_add_options --disable-elf-dynstr-gc
++#ac_add_options --disable-gtktest
++ac_add_options --enable-strip
++#ac_add_options --disable-strip-lib
++ac_add_options --disable-updater
++
++ac_add_options --enable-xinerama
++ac_add_options --enable-xpcom-fastload
++
++ac_cv_visibility_pragma=no
++
++
++
diff --git a/pcr/lcmc/PKGBUILD b/pcr/lcmc/PKGBUILD
new file mode 100644
index 000000000..6b27ff5f4
--- /dev/null
+++ b/pcr/lcmc/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=lcmc
+pkgver=1.5.1
+pkgrel=1
+pkgdesc='Linux Cluster Management Console'
+arch=any
+url=http://$pkgname.sourceforge.net/
+license=GPL
+depends=(
+ java-runtime
+ libxtst
+)
+source=(
+ http://downloads.sourceforge.net/$pkgname/${pkgname^^*}-$pkgver.jar
+ $pkgname.desktop
+)
+sha512sums=(
+ 7f8c68ef45078bda1bf6a811affb782e1ae440fd7d9aceca6a73fb315ffb37a4483d0a8fa80fb058c6522d2053088dd9bcfcb9a9f09b8660ab200594cb38d7af
+ 232866f1fbb806edc8d2844527bb44ba5c568fa57da308e7457e1d1140113ad173c2c7c40f29eac6712e1e2601db85cfecdcca525eecda355b32f8a370f9f87e
+)
+
+package() {
+ cd $srcdir
+ install -d $pkgdir/usr/bin
+ echo "#!/bin/bash\njava -jar /usr/lib/$pkgname/${pkgname^^}-$pkgver.jar" > $pkgdir/usr/bin/lcmc
+ install -d $pkgdir/usr/lib/$pkgname
+ install -t $pkgdir/usr/lib/$pkgname ${pkgname^^}-$pkgver.jar
+ for i in 16x16 32x32 48x48 64x64 128x128 256x256; do
+ install -d $pkgdir/usr/share/icons/hicolor/$i/apps
+ install -t $pkgdir/usr/share/icons/hicolor/$i/apps\
+ $srcdir/images/Icons/$i/$pkgname.png
+ done
+ install -d $pkgdir/usr/share/applications
+ install -t $pkgdir/usr/share/applications $pkgname.desktop
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/pcr/lcmc/lcmc.desktop b/pcr/lcmc/lcmc.desktop
new file mode 100644
index 000000000..2bcd93de6
--- /dev/null
+++ b/pcr/lcmc/lcmc.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.5.1
+Encoding=UTF-8
+Name=Linux Cluster Management Console
+Comment=Linux Cluster Management Console
+Exec=/usr/bin/lcmc
+Icon=/usr/share/icons/hicolor/256x256/apps/lcmc.png
+Terminal=false
+Type=Application
+Categories=Java;Network;
diff --git a/pcr/lessc/PKGBUILD b/pcr/lessc/PKGBUILD
new file mode 100644
index 000000000..ec9f8cf90
--- /dev/null
+++ b/pcr/lessc/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=lessc
+pkgver=1.3.1
+pkgrel=1
+_commit=9a46f67f44ca908f7da36036c5b3ae83ef8188dc
+pkgdesc="A standalone compiler for the LESS CSS language."
+arch=('any')
+url="http://lesscss.org/"
+license=('Apache')
+depends=('nodejs')
+source=($pkgname-$pkgver.tar.gz::https://github.com/cloudhead/less.js/archive/$_commit.tar.gz)
+
+build() {
+ cd "$srcdir/less.js-$_commit"
+ make less
+}
+
+package() {
+ cd "$srcdir/less.js-$_commit"
+ install -d "$pkgdir/usr/lib/node"
+ install -d "$pkgdir/usr/bin"
+ cp -r lib/less "$pkgdir/usr/lib/node/less"
+ ln -s "node/less" "$pkgdir/usr/lib/less"
+ install -Dm755 "bin/lessc" "$pkgdir/usr/bin/lessc"
+}
+
+sha256sums=('43a2df3466c08e6d30ae0cd847febf981ef5d15d4d9d6ce86c1b1901154bb22a')
diff --git a/pcr/libast/LICENSE.txt b/pcr/libast/LICENSE.txt
new file mode 100644
index 000000000..67c75f783
--- /dev/null
+++ b/pcr/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/pcr/libast/PKGBUILD b/pcr/libast/PKGBUILD
new file mode 100644
index 000000000..ede9ab2ce
--- /dev/null
+++ b/pcr/libast/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 40906 2011-03-01 14:45:04Z andrea $
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Adam 'battlemidget' Stokes <adam.stokes@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=libast
+pkgver=0.7
+pkgrel=3
+pkgdesc="The Library of Assorted Spiffy Things."
+arch=('i686' 'x86_64')
+url="http://eterm.sourceforge.net"
+license=('BSD')
+depends=('imlib2' 'pcre' 'libsm')
+options=('!libtool')
+source=(http://www.eterm.org/download/${pkgname}-${pkgver}.tar.gz LICENSE.txt)
+md5sums=('a9ec3b2da317f35869316e6d9571d296'
+ '97071898559acc4f900ceb6cb9579492')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --with-x
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make prefix=${pkgdir}/usr install
+ install -Dm644 ${srcdir}/LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+md5sums=('a9ec3b2da317f35869316e6d9571d296'
+ '97071898559acc4f900ceb6cb9579492')
diff --git a/pcr/libav/PKGBUILD b/pcr/libav/PKGBUILD
new file mode 100644
index 000000000..2d5c09ec0
--- /dev/null
+++ b/pcr/libav/PKGBUILD
@@ -0,0 +1,110 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=libav
+pkgver=9.10
+pkgrel=1
+pkgdesc="Complete and free Internet live audio and video broadcasting solution for GNU/Linux"
+arch=(
+ mips64el
+ x86_64
+ i686
+)
+url=http://$pkgname.org/
+license=GPL3
+depends=(
+ alsa-lib
+ bzip2
+ freetype2
+ gnutls
+ gsm
+ lame
+ libpulse
+ libtheora
+ libva
+ libvorbis
+ libvpx
+ opencore-amr
+ #openjpeg
+ opus
+ rtmpdump
+ schroedinger
+ sdl
+ speex
+ x264
+ xvidcore
+ zlib
+)
+makedepends=(
+ yasm
+ libvdpau
+)
+source=http://$pkgname.org/releases/$pkgname-$pkgver.tar.gz
+sha512sums=88bbe82fc3edfde17339cbd5fbae5ab074e750ad750fafcabc2c1fa408f352e38f32d8c0df0ff6c926d449bff29c725fc2c219d8b6e0398e3b93d43f086c9f10
+
+build() {
+ cd $pkgname-$pkgver
+ if [[ $CARCH == x86_64 ]]; then
+ _asm='--disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vis --disable-altivec\
+ --enable-amd3dnow --enable-mmx --enable-mmxext --enable-amd3dnow --enable-amd3dnowext --enable-sse --enable-sse2 --enable-sse3\
+ --enable-avx --enable-fma4 --enable-sse3 --enable-ssse3 --enable-sse4 --enable-sse42'
+ elif [[ $CARCH == i686 ]]; then
+ _asm='--disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vis --disable-altivec\
+ --enable-amd3dnow --enable-mmx --enable-mmxext --enable-amd3dnow --enable-amd3dnowext --enable-sse --enable-sse2 --enable-sse3\
+ --disable-avx --disable-fma4 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42'
+ else
+ _asm='--disable-asm'
+ fi
+ ./configure\
+ $_asm\
+ --prefix=/usr\
+ --bindir=/opt/$pkgname/bin\
+ --incdir=/opt/$pkgname/include\
+ --libdir=/opt/$pkgname/lib\
+ --shlibdir=/opt/$pkgname/lib\
+ --disable-avserver\
+ --disable-debug\
+ --disable-static\
+ --enable-avresample\
+ --enable-dxva2\
+ --enable-gnutls\
+ --enable-gpl\
+ --enable-libfreetype\
+ --enable-libgsm\
+ --enable-libmp3lame\
+ --enable-libopencore-amrnb\
+ --enable-libopencore-amrwb\
+ --disable-libopenjpeg\
+ --enable-libopus\
+ --enable-libpulse\
+ --enable-librtmp\
+ --enable-libschroedinger\
+ --enable-libspeex\
+ --enable-libtheora\
+ --enable-libvorbis\
+ --enable-libvpx\
+ --enable-libx264\
+ --enable-libxvid\
+ --enable-pic\
+ --enable-runtime-cpudetect\
+ --enable-shared\
+ --enable-vdpau\
+ --enable-version3\
+ --enable-x11grab
+ make
+ make tools/qt-faststart
+ make doc/av{conv,play}.1
+}
+
+package() {
+ cd $pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install install-man
+ install -vD tools/qt-faststart $pkgdir/usr/bin/qt-faststart-$pkgname
+
+ for _bin in conv play probe; do
+ echo -e "#!/usr/bin/env bash\nLD_LIBRARY_PATH=/opt/$pkgname/lib /opt/$pkgname/bin/av$_bin \$@" > $pkgdir/usr/bin/av$_bin
+ done
+ chmod -v +x $pkgdir/usr/bin/*
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/libcacard/PKGBUILD b/pcr/libcacard/PKGBUILD
new file mode 100644
index 000000000..0886b9847
--- /dev/null
+++ b/pcr/libcacard/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Jameson Pugh <imntreal@gmail.com>
+# Maintainer : Parabola / GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=libcacard
+pkgver=0.1.2
+pkgrel=3
+pkgdesc="Virtual Smart Card Emulator"
+arch=('x86_64' 'i686')
+url="http://spice-space.org"
+license=('GPL')
+options=('!libtool')
+depends=('nss')
+source=(http://spice-space.org/download/libcacard/$pkgname-$pkgver.tar.bz2)
+md5sums=('ca61fd1d7feaa09e37011daac95c0168')
+
+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:
+md5sums=('ca61fd1d7feaa09e37011daac95c0168')
diff --git a/pcr/libcgroup/PKGBUILD b/pcr/libcgroup/PKGBUILD
new file mode 100644
index 000000000..849a5c128
--- /dev/null
+++ b/pcr/libcgroup/PKGBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Christian Hesse <mail@eworm.de>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=libcgroup
+pkgver=0.40rc1
+pkgrel=1
+pkgdesc="Library that abstracts the control group file system in Linux"
+arch=('i686' 'x86_64')
+url="http://libcg.sourceforge.net"
+license=(LGPL)
+backup=('etc/cgconfig.conf'
+ 'etc/cgrules.conf'
+ 'etc/cgsnapshot_blacklist.conf')
+options=('!emptydirs' '!libtool')
+install=libcgroup.install
+source=("http://downloads.sourceforge.net/libcg/${pkgname}-${pkgver/rc/.rc}.tar.bz2"
+ 'cgconfig.service'
+ 'cgrules.service')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver/rc/.rc}"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --sbindir=/usr/bin \
+ --enable-opaque-hierarchy=name=systemd
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver/rc/.rc}"
+
+ make DESTDIR="${pkgdir}" pkgconfigdir="/usr/lib/pkgconfig" install
+
+ install -D -m0644 samples/cgconfig.conf "${pkgdir}/etc/cgconfig.conf"
+ install -D -m0644 samples/cgrules.conf "${pkgdir}/etc/cgrules.conf"
+ install -D -m0644 samples/cgsnapshot_blacklist.conf "${pkgdir}/etc/cgsnapshot_blacklist.conf"
+
+ install -D -m0644 ${srcdir}/cgconfig.service "${pkgdir}/usr/lib/systemd/system/cgconfig.service"
+ install -D -m0644 ${srcdir}/cgrules.service "${pkgdir}/usr/lib/systemd/system/cgrules.service"
+
+ rm -f ${pkgdir}/usr/lib/security/pam_cgroup.{la,so,so.0}
+ mv ${pkgdir}/usr/lib/security/pam_cgroup.so.0.0.0 ${pkgdir}/usr/lib/security/pam_cgroup.so
+
+ rm -rf ${pkgdir}/etc/rc.d
+
+ # Make cgexec setgid cgred
+ chown root:160 ${pkgdir}/usr/bin/cgexec
+ chmod 2755 ${pkgdir}/usr/bin/cgexec
+}
+
+sha256sums=('c2fa2cfdfd1023093afb6de456fc3ac000f92a2f01b905bcdda1c3e36ad44072'
+ '808fc354abf36d7b6673dad790be275309ac57a2606d1be3732b9b3aeb5885eb'
+ '6b1340ff6717f55e5e57dacc72accc0bfaed7e50ef31439271b6ddc893cbf671')
diff --git a/pcr/libcgroup/cgconfig.service b/pcr/libcgroup/cgconfig.service
new file mode 100644
index 000000000..3e6689d77
--- /dev/null
+++ b/pcr/libcgroup/cgconfig.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Control Group configuration service
+
+# The service should be able to start as soon as possible,
+# before any 'normal' services:
+DefaultDependencies=no
+Conflicts=shutdown.target
+Before=basic.target shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/cgconfigparser -l /etc/cgconfig.conf -s 1664
+ExecStop=/usr/bin/cgclear -l /etc/cgconfig.conf -e
+
+[Install]
+WantedBy=sysinit.target
diff --git a/pcr/libcgroup/cgrules.service b/pcr/libcgroup/cgrules.service
new file mode 100644
index 000000000..cd0bf34fb
--- /dev/null
+++ b/pcr/libcgroup/cgrules.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Control Group rules service
+
+# The service should be able to start as soon as possible,
+# before any 'normal' services:
+DefaultDependencies=no
+Conflicts=shutdown.target
+Before=basic.target shutdown.target
+After=cgconfig.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/cgrulesengd -n -f -
+
+[Install]
+WantedBy=sysinit.target
diff --git a/pcr/libcgroup/libcgroup.install b/pcr/libcgroup/libcgroup.install
new file mode 100644
index 000000000..a78216add
--- /dev/null
+++ b/pcr/libcgroup/libcgroup.install
@@ -0,0 +1,11 @@
+post_install() {
+ getent group cgred &>/dev/null || groupadd -r -g 160 cgred >/dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ getent group cgred &>/dev/null && groupdel cgred >/dev/null
+}
diff --git a/pcr/libdrm-nvfx/COPYING b/pcr/libdrm-nvfx/COPYING
new file mode 100644
index 000000000..6e74c337c
--- /dev/null
+++ b/pcr/libdrm-nvfx/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/pcr/libdrm-nvfx/PKGBUILD b/pcr/libdrm-nvfx/PKGBUILD
new file mode 100644
index 000000000..c8a08bea4
--- /dev/null
+++ b/pcr/libdrm-nvfx/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 198149 2013-10-30 13:05:35Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+
+_pkgname=libdrm
+pkgname=libdrm-nvfx
+pkgver=2.4.33
+pkgrel=4
+pkgdesc="Userspace interface to kernel DRM services for Nouveau NVFX [NV30 and NV40] (GeForce FX - 7000 series card) video card family"
+arch=(i686 x86_64 mips64el)
+license=('custom')
+depends=('glibc' 'libpciaccess')
+makedepends=('valgrind' 'clang')
+provides=('libdrm')
+conflicts=('libdrm')
+checkdepends=('cairo')
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/$_pkgname/$_pkgname-$pkgver.tar.bz2
+ COPYING)
+sha256sums=('2d7b9d94ada0e3a6ede6243509883df2ded01c2983e24322759a366283898fea'
+ '9631d4f694952e3e6ae5a05534c2e93e994e47d3413677a3a00e45c8cef6db93')
+
+build() {
+ cd $_pkgname-$pkgver
+
+ # pthread is useless in Linux
+ sed -i "/pthread-stubs/d" configure.ac
+ autoreconf --force --install
+
+ # gcc 4.8 introduces graphic corruption and X crashes with nouveau cards (nv44)
+ # http://gcc.gnu.org/ml/gcc-help/2013-07/msg00103.html
+ # we use clang compiler meanwhile
+ export CC=clang
+
+ ./configure --prefix=/usr --enable-udev \
+ --enable-nouveau-experimental-api \
+ --enable-libkms --disable-intel --disable-radeon
+
+ make
+}
+
+check() {
+ cd $_pkgname-$pkgver
+ make -k check
+}
+
+package() {
+ cd $_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/pcr/libdshconfig/PKGBUILD b/pcr/libdshconfig/PKGBUILD
new file mode 100644
index 000000000..adf9d18b2
--- /dev/null
+++ b/pcr/libdshconfig/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: SkiltZ <skiltz@free.fr>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=libdshconfig
+pkgver=0.20.9
+pkgrel=2
+pkgdesc="Library for parsing dsh-style configuration files. Required by dsh and other applications."
+arch=(i686 x86_64)
+url="http://www.netfort.gr.jp/~dancer/software/dsh.html.en"
+license=('GPL')
+depends=('glibc')
+source=(http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-$pkgver.tar.gz)
+
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+ }
diff --git a/pcr/libfreexl/PKGBUILD b/pcr/libfreexl/PKGBUILD
new file mode 100644
index 000000000..69d94ce99
--- /dev/null
+++ b/pcr/libfreexl/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Bruno Gola <brunogola at gmail dot com>
+pkgname=libfreexl
+pkgver=1.0.0e
+pkgrel=1
+pkgdesc="Library to extract valid data from within an Excel (.xls) spreadsheet."
+arch=('i686' 'x86_64')
+url="https://www.gaia-gis.it/fossil/freexl/index"
+license=('MPL')
+source=("http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/freexl-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/freexl-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+md5sums=('9b494d42a079e63afbb9dc0915e8fb56')
diff --git a/pcr/libglu-git/PKGBUILD b/pcr/libglu-git/PKGBUILD
new file mode 100644
index 000000000..46ff7a358
--- /dev/null
+++ b/pcr/libglu-git/PKGBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=libglu-git
+pkgver=20120908
+pkgrel=1
+pkgdesc='Mesa GLU utility library'
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+url=http://mesa.freedesktop.org/
+license=(
+ LGPL
+)
+depends=(
+ libgl-git
+)
+makedepends=(
+ git
+ mesa-git
+)
+
+_gitroot=git://cgit.freedesktop.org/mesa/glu/
+_gitname=glu
+
+build() {
+ msg 'Connecting to git.freedesktop.org GIT server....'
+ if [ -d $_gitname ] ; then
+ cd $_gitname && git pull origin
+ else
+ git clone $_gitroot --depth 1
+ fi
+ msg 'GIT checkout done or server timeout'
+ msg 'Starting make...'
+
+ cd $srcdir
+
+ # Cleanup and prepare the build dir
+ [ -d build ] && rm -rf build
+ cp -r $_gitname build
+ cd build
+
+ autoreconf -vfi
+ ./autogen.sh --prefix=/usr
+ make V=0
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/pcr/libibus/PKGBUILD b/pcr/libibus/PKGBUILD
new file mode 100644
index 000000000..1a934121a
--- /dev/null
+++ b/pcr/libibus/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id$
+# Contributor: Felix Yan <felixonmars@gmail.com>
+# Contributor: Rainy <rainylau(at)gmail(dot)com>
+# Contributor: Lee.MaRS <leemars at gmail dot com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Brad Fanella <bradfanella@archlinux.us>
+# Maintainer : Parabola GNU / Linux-libre Aurlien Desbrires <aurelien@cwb.io>
+
+_pkgbase=ibus
+pkgname=lib$_pkgbase
+pkgver=1.4.99.20121109
+pkgrel=1
+pkgdesc="Library for Next Generation Input Bus for Linux"
+arch=('i686' 'x86_64')
+url="http://ibus.googlecode.com"
+license=('LGPL')
+depends=('glib2')
+makedepends=('gobject-introspection' 'dconf' 'iso-codes' 'intltool' 'gtk2' 'gtk3')
+options=('!libtool')
+provides=("$_pkgbase=$pkgver")
+conflicts=('ibus')
+source=(http://ibus.googlecode.com/files/${_pkgbase}-${pkgver}.tar.gz)
+
+build() {
+ cd "$srcdir/${_pkgbase}-${pkgver}"
+ export PYTHON=python2
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus \
+ --sysconfdir=/etc \
+ --disable-gconf \
+ --enable-dconf \
+ --disable-memconf \
+ --enable-ui
+ make
+}
+
+package() {
+ cd "$srcdir/${_pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-pkgconfigDATA
+ cd src
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('be482479357210283e91a47f43a0a0fe')
diff --git a/pcr/libixp-hg/PKGBUILD b/pcr/libixp-hg/PKGBUILD
new file mode 100644
index 000000000..3642535d1
--- /dev/null
+++ b/pcr/libixp-hg/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+pkgname="libixp-hg"
+pkgver=148
+pkgdesc="A 9p client/server library"
+url="http://libs.suckless.org/libixp"
+license=("MIT")
+
+provides=("libixp")
+conflicts=("libixp")
+
+pkgrel=1
+arch=("i686" "x86_64")
+makedepends=("txt2tags")
+options=(staticlibs)
+
+source=("libre://${pkgname}-${pkgver}.tar.gz")
+md5sums=('5a2fd075108558b39988610d2bb184d9')
+
+mkdepends=("mercurial")
+mksource=("$pkgname-$pkgver::hg+https://code.google.com/p/libixp/#revision=${pkgver}")
+mkmd5sums=('SKIP')
+mksource() {
+ # don't include this precompiled binary (probably included by accident)
+ rm "${srcdir}/${pkgname}-${pkgver}/test/o.client"
+}
+
+_makeflags=("PREFIX=/usr" "ETC=/etc")
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make "${_makeflags[@]}"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make "${_makeflags[@]}" DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/pcr/libnatpmp-from-social-repo/PKGBUILD b/pcr/libnatpmp-from-social-repo/PKGBUILD
new file mode 100644
index 000000000..ded1e6ca5
--- /dev/null
+++ b/pcr/libnatpmp-from-social-repo/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Pierre Bourdon <delroth@gmail.com>
+
+pkgname=libnatpmp
+pkgver=20120821
+pkgrel=1
+pkgdesc="A portable and fully compliant implementation of the NAT-PMP protocol"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://miniupnp.free.fr/libnatpmp.html"
+license=('BSD')
+depends=('glibc')
+makedepends=()
+source=(libnatpmp-$pkgver.tar.gz::http://miniupnp.free.fr/files/download.php?file=libnatpmp-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALLPREFIX="$pkgdir/usr" \
+ INSTALLDIRINC="$pkgdir/usr/include/libnatpmp" install
+
+ # Needed by some packages
+ install -m 644 getgateway.h declspec.h "$pkgdir/usr/include/libnatpmp"
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+md5sums=('d2b9c2dedba3a00deb0e7589982ceced')
diff --git a/pcr/libnatpmp/PKGBUILD b/pcr/libnatpmp/PKGBUILD
new file mode 100644
index 000000000..f3306e87d
--- /dev/null
+++ b/pcr/libnatpmp/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Pierre Bourdon <delroth@gmail.com>
+# Maintainer: Parabola Gnu / Linux-libre Aurélien Desbrières
+
+pkgname=libnatpmp
+pkgver=20120821
+pkgrel=2
+pkgdesc="A portable and fully compliant implementation of the NAT-PMP protocol"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://miniupnp.free.fr/libnatpmp.html"
+license=('custom:BSD')
+depends=('glibc')
+makedepends=()
+source=(http://miniupnp.free.fr/files/download.php?file=libnatpmp-$pkgver.tar.gz)
+md5sums=('d2b9c2dedba3a00deb0e7589982ceced')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALLPREFIX="$pkgdir/usr" \
+ INSTALLDIRINC="$pkgdir/usr/include/libnatpmp" install
+
+ # Needed by some packages
+ install -m 644 getgateway.h declspec.h "$pkgdir/usr/include/libnatpmp"
+
+ install -Dm 644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/pcr/libosinfo-libre/PKGBUILD b/pcr/libosinfo-libre/PKGBUILD
new file mode 100644
index 000000000..8400558c0
--- /dev/null
+++ b/pcr/libosinfo-libre/PKGBUILD
@@ -0,0 +1,63 @@
+# Contributor: Daniel Milewski <niitotantei@gmail.com>
+
+_pkgname='libosinfo'
+pkgname="$_pkgname-libre"
+pkgver='0.2.8'
+pkgrel='1'
+pkgdesc='A GObject based library API for managing information about operating systems, hypervisors and the (virtual) hardware devices they can support, without support for nonfree systems'
+arch=('i686' 'x86_64')
+url='http://libosinfo.org'
+license=('LGPL')
+depends=('glib2' 'libxslt')
+makedepends=('intltool' 'libsoup')
+checkdepends=('check')
+provides=("$_pkgname=$pkgver")
+conflicts=("$_pkgname")
+replaces=("$_pkgname")
+source=("https://fedorahosted.org/releases/l/i/$_pkgname/$_pkgname-$pkgver.tar.gz" 'data.patch' 'po.patch' 'test.patch'
+ 'free-distros.patch')
+sha256sums=('50cbfcff4548f37b5b7d3328cbc6e96fe6c2a48696e31eec0c819d161e38c643'
+ 'fdfb0753a7cf7865ac2ea5b17145f90d27d70e18c69fba0d60dfb43629ea0dac'
+ 'aab885d2b3a7f91a79efd7ab6f12fe1d4b264afa0fbc200268838b353600b338'
+ 'c4b328f36973931abd71a10a62ec590ef3ba1177486179bc96aa47a22a6d0a42'
+ 'f4b79c44ae4a39325480c2b0af4aa7ed086cc1cab7c9ba1119f50967a9a5f4ca')
+
+prepare() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ rm data/datamaps/windows-lang.xml \
+ data/hypervisors/rhel-xen.xml{,.in} \
+ data/install-scripts/*.xml \
+ data/oses/*.xml{,.in}
+ rm -r test/isodata/*
+
+ patch -Np1 -i "$srcdir/data.patch"
+ patch -Np1 -i "$srcdir/po.patch"
+ patch -Np1 -i "$srcdir/test.patch"
+
+ cd "$srcdir/$_pkgname-$pkgver/po"
+ intltool-update pl
+ intltool-update uk
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/free-distros.patch"
+}
+
+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/pcr/libosinfo-libre/data.patch b/pcr/libosinfo-libre/data.patch
new file mode 100644
index 000000000..d37d30671
--- /dev/null
+++ b/pcr/libosinfo-libre/data.patch
@@ -0,0 +1,137 @@
+diff -ruN libosinfo-0.2.8/data/datamaps/Makefile.am libosinfo-0.2.8-libre/data/datamaps/Makefile.am
+--- libosinfo-0.2.8/data/datamaps/Makefile.am 2013-01-09 00:01:25.000000000 +0100
++++ libosinfo-0.2.8-libre/data/datamaps/Makefile.am 2013-12-01 12:15:00.261131308 +0100
+@@ -1,7 +1,6 @@
+
+ datamapdir = $(pkgdatadir)/db/datamaps/
+ datamap_DATA = \
+- windows-lang.xml \
+ x11-keyboard.xml \
+ $(NULL)
+
+diff -ruN libosinfo-0.2.8/data/datamaps/Makefile.in libosinfo-0.2.8-libre/data/datamaps/Makefile.in
+--- libosinfo-0.2.8/data/datamaps/Makefile.in 2013-09-16 18:45:26.000000000 +0200
++++ libosinfo-0.2.8-libre/data/datamaps/Makefile.in 2013-12-01 12:15:07.561496625 +0100
+@@ -326,7 +326,6 @@
+ top_srcdir = @top_srcdir@
+ datamapdir = $(pkgdatadir)/db/datamaps/
+ datamap_DATA = \
+- windows-lang.xml \
+ x11-keyboard.xml \
+ $(NULL)
+
+diff -ruN libosinfo-0.2.8/data/hypervisors/Makefile.am libosinfo-0.2.8-libre/data/hypervisors/Makefile.am
+--- libosinfo-0.2.8/data/hypervisors/Makefile.am 2013-02-14 02:39:37.000000000 +0100
++++ libosinfo-0.2.8-libre/data/hypervisors/Makefile.am 2013-12-01 12:18:54.718635301 +0100
+@@ -1,6 +1,6 @@
+
+ databasedir = $(pkgdatadir)/db/hypervisors/
+-database_in_files = kvm.xml.in qemu.xml.in rhel-xen.xml.in xen.xml.in
++database_in_files = kvm.xml.in qemu.xml.in xen.xml.in
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
+
+diff -ruN libosinfo-0.2.8/data/hypervisors/Makefile.in libosinfo-0.2.8-libre/data/hypervisors/Makefile.in
+--- libosinfo-0.2.8/data/hypervisors/Makefile.in 2013-09-16 18:45:26.000000000 +0200
++++ libosinfo-0.2.8-libre/data/hypervisors/Makefile.in 2013-12-01 12:20:01.822560286 +0100
+@@ -325,7 +325,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ databasedir = $(pkgdatadir)/db/hypervisors/
+-database_in_files = kvm.xml.in qemu.xml.in rhel-xen.xml.in xen.xml.in
++database_in_files = kvm.xml.in qemu.xml.in xen.xml.in
+ database_DATA = $(database_in_files:.xml.in=.xml)
+ EXTRA_DIST = $(database_in_files) $(database_DATA)
+ all: all-am
+diff -ruN libosinfo-0.2.8/data/install-scripts/Makefile.am libosinfo-0.2.8-libre/data/install-scripts/Makefile.am
+--- libosinfo-0.2.8/data/install-scripts/Makefile.am 2013-03-27 23:03:14.000000000 +0100
++++ libosinfo-0.2.8-libre/data/install-scripts/Makefile.am 2013-12-01 12:24:10.160616083 +0100
+@@ -1,12 +1,6 @@
+
+ databasedir = $(pkgdatadir)/db/install-scripts/
+ database_DATA = \
+- fedora.xml \
+- rhel.xml \
+- windows-sif.xml \
+- windows-cmd.xml \
+- windows-reg.xml \
+- windows-unattend.xml \
+ $(NULL)
+
+ EXTRA_DIST = $(database_DATA)
+diff -ruN libosinfo-0.2.8/data/install-scripts/Makefile.in libosinfo-0.2.8-libre/data/install-scripts/Makefile.in
+--- libosinfo-0.2.8/data/install-scripts/Makefile.in 2013-09-16 18:45:26.000000000 +0200
++++ libosinfo-0.2.8-libre/data/install-scripts/Makefile.in 2013-12-01 12:24:20.500882542 +0100
+@@ -326,12 +326,6 @@
+ top_srcdir = @top_srcdir@
+ databasedir = $(pkgdatadir)/db/install-scripts/
+ database_DATA = \
+- fedora.xml \
+- rhel.xml \
+- windows-sif.xml \
+- windows-cmd.xml \
+- windows-reg.xml \
+- windows-unattend.xml \
+ $(NULL)
+
+ EXTRA_DIST = $(database_DATA)
+diff -ruN libosinfo-0.2.8/data/oses/Makefile.am libosinfo-0.2.8-libre/data/oses/Makefile.am
+--- libosinfo-0.2.8/data/oses/Makefile.am 2013-09-10 15:22:50.000000000 +0200
++++ libosinfo-0.2.8-libre/data/oses/Makefile.am 2013-12-01 12:26:24.797757509 +0100
+@@ -1,26 +1,6 @@
+
+ databasedir = $(pkgdatadir)/db/oses/
+ database_in_files = \
+- altlinux.xml.in \
+- centos.xml.in \
+- debian.xml.in \
+- dos.xml.in \
+- fedora.xml.in \
+- freebsd.xml.in \
+- gnome.xml.in \
+- mandriva.xml.in \
+- mandrake.xml.in \
+- netbsd.xml.in \
+- netware.xml.in \
+- macos.xml.in \
+- openbsd.xml.in \
+- opensuse.xml.in \
+- rhl.xml.in \
+- rhel.xml.in \
+- solaris.xml.in \
+- suse.xml.in \
+- ubuntu.xml.in \
+- windows.xml.in \
+ $(NULL)
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
+diff -ruN libosinfo-0.2.8/data/oses/Makefile.in libosinfo-0.2.8-libre/data/oses/Makefile.in
+--- libosinfo-0.2.8/data/oses/Makefile.in 2013-09-16 18:45:26.000000000 +0200
++++ libosinfo-0.2.8-libre/data/oses/Makefile.in 2013-12-01 12:26:32.557686417 +0100
+@@ -326,26 +326,6 @@
+ top_srcdir = @top_srcdir@
+ databasedir = $(pkgdatadir)/db/oses/
+ database_in_files = \
+- altlinux.xml.in \
+- centos.xml.in \
+- debian.xml.in \
+- dos.xml.in \
+- fedora.xml.in \
+- freebsd.xml.in \
+- gnome.xml.in \
+- mandriva.xml.in \
+- mandrake.xml.in \
+- netbsd.xml.in \
+- netware.xml.in \
+- macos.xml.in \
+- openbsd.xml.in \
+- opensuse.xml.in \
+- rhl.xml.in \
+- rhel.xml.in \
+- solaris.xml.in \
+- suse.xml.in \
+- ubuntu.xml.in \
+- windows.xml.in \
+ $(NULL)
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
diff --git a/pcr/libosinfo-libre/free-distros.patch b/pcr/libosinfo-libre/free-distros.patch
new file mode 100644
index 000000000..c69cd3fed
--- /dev/null
+++ b/pcr/libosinfo-libre/free-distros.patch
@@ -0,0 +1,123 @@
+diff -ruN libosinfo-0.2.8-libre/data/oses/Makefile.am libosinfo-0.2.8-libre-free-distros/data/oses/Makefile.am
+--- libosinfo-0.2.8-libre/data/oses/Makefile.am 2013-12-01 13:14:07.267023100 +0100
++++ libosinfo-0.2.8-libre-free-distros/data/oses/Makefile.am 2013-12-01 13:18:29.183029813 +0100
+@@ -1,6 +1,7 @@
+
+ databasedir = $(pkgdatadir)/db/oses/
+ database_in_files = \
++ parabola.xml.in \
+ $(NULL)
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
+diff -ruN libosinfo-0.2.8-libre/data/oses/Makefile.in libosinfo-0.2.8-libre-free-distros/data/oses/Makefile.in
+--- libosinfo-0.2.8-libre/data/oses/Makefile.in 2013-12-01 13:14:07.267023100 +0100
++++ libosinfo-0.2.8-libre-free-distros/data/oses/Makefile.in 2013-12-01 13:18:48.053708302 +0100
+@@ -326,6 +326,7 @@
+ top_srcdir = @top_srcdir@
+ databasedir = $(pkgdatadir)/db/oses/
+ database_in_files = \
++ parabola.xml.in \
+ $(NULL)
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
+diff -ruN libosinfo-0.2.8-libre/data/oses/parabola.xml libosinfo-0.2.8-libre-free-distros/data/oses/parabola.xml
+--- libosinfo-0.2.8-libre/data/oses/parabola.xml 1970-01-01 01:00:00.000000000 +0100
++++ libosinfo-0.2.8-libre-free-distros/data/oses/parabola.xml 2013-12-01 13:26:26.128660679 +0100
+@@ -0,0 +1,42 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<libosinfo version="0.0.1">
++
++ <os id="https://parabolagnulinux.org">
++ <short-id>parabola</short-id>
++ <name>Parabola GNU/Linux-libre</name>
++ <vendor>Parabola Project</vendor>
++ <family>gnu/linux</family>
++
++ <resources arch="all">
++ <minimum>
++ <cpu>1000000000</cpu>
++ <n-cpus>1</n-cpus>
++ <ram>67108864</ram>
++ <storage>524288000</storage>
++ </minimum>
++ <recommended>
++ <cpu>1000000000</cpu>
++ <ram>67108864</ram>
++ <storage>524288000</storage>
++ </recommended>
++ </resources>
++
++ <media arch="x86_64">
++ <url>https://repo.parabolagnulinux.org/iso/2013.09.01/parabola-2013.09.01-dual.iso</url>
++ <iso>
++ <volume-id>PARA_201309</volume-id>
++ </iso>
++ <kernel>parabola/boot/x86_64/vmlinuz</kernel>
++ <initrd>parabola/boot/x86_64/parabolaiso.img</initrd>
++ </media>
++ <media arch="i686">
++ <url>https://repo.parabolagnulinux.org/iso/2013.09.01/parabola-2013.09.01-dual.iso</url>
++ <iso>
++ <volume-id>PARA_201309</volume-id>
++ </iso>
++ <kernel>parabola/boot/i686/vmlinuz</kernel>
++ <initrd>parabola/boot/i686/parabolaiso.img</initrd>
++ </media>
++ </os>
++
++</libosinfo>
+\ No newline at end of file
+diff -ruN libosinfo-0.2.8-libre/data/oses/parabola.xml.in libosinfo-0.2.8-libre-free-distros/data/oses/parabola.xml.in
+--- libosinfo-0.2.8-libre/data/oses/parabola.xml.in 1970-01-01 01:00:00.000000000 +0100
++++ libosinfo-0.2.8-libre-free-distros/data/oses/parabola.xml.in 2013-12-01 13:17:12.086931332 +0100
+@@ -0,0 +1,42 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<libosinfo version="0.0.1">
++
++ <os id="https://parabolagnulinux.org">
++ <short-id>parabola</short-id>
++ <_name>Parabola GNU/Linux-libre</_name>
++ <_vendor>Parabola Project</_vendor>
++ <family>gnu/linux</family>
++
++ <resources arch="all">
++ <minimum>
++ <cpu>1000000000</cpu>
++ <n-cpus>1</n-cpus>
++ <ram>67108864</ram>
++ <storage>524288000</storage>
++ </minimum>
++ <recommended>
++ <cpu>1000000000</cpu>
++ <ram>67108864</ram>
++ <storage>524288000</storage>
++ </recommended>
++ </resources>
++
++ <media arch="x86_64">
++ <url>https://repo.parabolagnulinux.org/iso/2013.09.01/parabola-2013.09.01-dual.iso</url>
++ <iso>
++ <volume-id>PARA_201309</volume-id>
++ </iso>
++ <kernel>parabola/boot/x86_64/vmlinuz</kernel>
++ <initrd>parabola/boot/x86_64/parabolaiso.img</initrd>
++ </media>
++ <media arch="i686">
++ <url>https://repo.parabolagnulinux.org/iso/2013.09.01/parabola-2013.09.01-dual.iso</url>
++ <iso>
++ <volume-id>PARA_201309</volume-id>
++ </iso>
++ <kernel>parabola/boot/i686/vmlinuz</kernel>
++ <initrd>parabola/boot/i686/parabolaiso.img</initrd>
++ </media>
++ </os>
++
++</libosinfo>
+diff -ruN libosinfo-0.2.8-libre/po/POTFILES.in libosinfo-0.2.8-libre-free-distros/po/POTFILES.in
+--- libosinfo-0.2.8-libre/po/POTFILES.in 2013-12-01 13:14:10.297130169 +0100
++++ libosinfo-0.2.8-libre-free-distros/po/POTFILES.in 2013-12-01 13:23:01.616209485 +0100
+@@ -1,3 +1,4 @@
++data/oses/parabola.xml.in
+ data/devices/qemu-ps2.xml.in
+ data/devices/qemu-pci.xml.in
+ data/devices/virtio-pci.xml.in
diff --git a/pcr/libosinfo-libre/po.patch b/pcr/libosinfo-libre/po.patch
new file mode 100644
index 000000000..abd11cb71
--- /dev/null
+++ b/pcr/libosinfo-libre/po.patch
@@ -0,0 +1,34 @@
+diff -ruN libosinfo-0.2.8/po/POTFILES.in libosinfo-0.2.8-libre/po/POTFILES.in
+--- libosinfo-0.2.8/po/POTFILES.in 2013-09-10 15:22:50.000000000 +0200
++++ libosinfo-0.2.8-libre/po/POTFILES.in 2013-12-01 11:54:50.441912252 +0100
+@@ -1,30 +1,9 @@
+-data/oses/netware.xml.in
+-data/oses/solaris.xml.in
+-data/oses/dos.xml.in
+-data/oses/mandrake.xml.in
+-data/oses/mandriva.xml.in
+-data/oses/suse.xml.in
+-data/oses/gnome.xml.in
+-data/oses/rhel.xml.in
+-data/oses/fedora.xml.in
+-data/oses/windows.xml.in
+-data/oses/opensuse.xml.in
+-data/oses/macos.xml.in
+-data/oses/debian.xml.in
+-data/oses/ubuntu.xml.in
+-data/oses/centos.xml.in
+-data/oses/openbsd.xml.in
+-data/oses/freebsd.xml.in
+-data/oses/rhl.xml.in
+-data/oses/netbsd.xml.in
+-data/oses/altlinux.xml.in
+ data/devices/qemu-ps2.xml.in
+ data/devices/qemu-pci.xml.in
+ data/devices/virtio-pci.xml.in
+ data/devices/qemu-usb.xml.in
+ data/hypervisors/kvm.xml.in
+ data/hypervisors/qemu.xml.in
+-data/hypervisors/rhel-xen.xml.in
+ data/hypervisors/xen.xml.in
+ osinfo/osinfo_avatar_format.c
+ osinfo/osinfo_deployment.c
diff --git a/pcr/libosinfo-libre/test.patch b/pcr/libosinfo-libre/test.patch
new file mode 100644
index 000000000..413deb1c0
--- /dev/null
+++ b/pcr/libosinfo-libre/test.patch
@@ -0,0 +1,87 @@
+diff -ruN libosinfo-0.2.8/test/test-isodetect.c libosinfo-0.2.8-libre/test/test-isodetect.c
+--- libosinfo-0.2.8/test/test-isodetect.c 2013-09-10 15:22:50.000000000 +0200
++++ libosinfo-0.2.8-libre/test/test-isodetect.c 2013-12-01 11:44:32.830411240 +0100
+@@ -342,66 +342,6 @@
+ g_object_unref(loader);
+ }
+
+-START_TEST(test_fedora)
+-{
+- test_one("fedora");
+-}
+-END_TEST
+-
+-START_TEST(test_rhel)
+-{
+- test_one("rhel");
+-}
+-END_TEST
+-
+-START_TEST(test_ubuntu)
+-{
+- test_one("ubuntu");
+-}
+-END_TEST
+-
+-START_TEST(test_debian)
+-{
+- test_one("debian");
+-}
+-END_TEST
+-
+-START_TEST(test_windows)
+-{
+- test_one("windows");
+-}
+-END_TEST
+-
+-START_TEST(test_openbsd)
+-{
+- test_one("openbsd");
+-}
+-END_TEST
+-
+-START_TEST(test_opensuse)
+-{
+- test_one("opensuse");
+-}
+-END_TEST
+-
+-START_TEST(test_centos)
+-{
+- test_one("centos");
+-}
+-END_TEST
+-
+-START_TEST(test_gnome)
+-{
+- test_one("gnome");
+-}
+-END_TEST
+-
+-START_TEST(test_altlinux)
+-{
+- test_one("altlinux");
+-}
+-END_TEST
+-
+ static Suite *
+ list_suite(void)
+ {
+@@ -409,16 +349,6 @@
+ TCase *tc = tcase_create("Core");
+ tcase_set_timeout(tc, 20);
+
+- tcase_add_test(tc, test_fedora);
+- tcase_add_test(tc, test_rhel);
+- tcase_add_test(tc, test_ubuntu);
+- tcase_add_test(tc, test_debian);
+- tcase_add_test(tc, test_windows);
+- tcase_add_test(tc, test_openbsd);
+- tcase_add_test(tc, test_opensuse);
+- tcase_add_test(tc, test_centos);
+- tcase_add_test(tc, test_gnome);
+- tcase_add_test(tc, test_altlinux);
+ suite_add_tcase(s, tc);
+ return s;
+ }
diff --git a/pcr/libowfat/PKGBUILD b/pcr/libowfat/PKGBUILD
new file mode 100644
index 000000000..a51638450
--- /dev/null
+++ b/pcr/libowfat/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributors:
+# Alexander Ulrich <a.ulrich@student.uni-tuebingen.de>
+# Mildred <silkensedai@online.fr>
+# henning mueller <henning@orgizm.net>
+
+pkgname=libowfat
+pkgver=0.29
+pkgrel=3
+pkgdesc='GPL reimplementation of libdjb'
+arch=(i686 x86_64 mips64el)
+url=http://www.fefe.de/libowfat/
+depends=()
+license=(GPL)
+install=libowfat.install
+source=(http://dl.fefe.de/$pkgname-$pkgver.tar.bz2)
+md5sums=(6bbee9a86506419657d87123b7a6f2c1)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr/ LIBDIR=$pkgdir/usr/lib MAN3DIR=$pkgdir/usr/share/man/man3 install
+
+ cd $pkgdir/usr/share/man/man3
+ mv buffer.3 buffer-libowfat.3
+}
+md5sums=('1187c6acf11429e7adb9ebe180f644bb')
diff --git a/pcr/libowfat/libowfat.install b/pcr/libowfat/libowfat.install
new file mode 100644
index 000000000..a08aef10c
--- /dev/null
+++ b/pcr/libowfat/libowfat.install
@@ -0,0 +1,39 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ echo "The manpage buffer(3) was moved to buffer-libowfat(3) because
+ it conflicts with package openssl"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/pcr/libpng12/PKGBUILD b/pcr/libpng12/PKGBUILD
new file mode 100644
index 000000000..df75ddeaa
--- /dev/null
+++ b/pcr/libpng12/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 58551 2009-11-08 22:37:12Z eric $
+# Contributor: dorphell <archlinux.org: dorphell>
+# Contributor: Travis Willard <archlinux.org: travis>
+# Contributor: Douglas Soares de Andrade <archlinux.org: douglas>
+# Maintainer: Jesse Jaara <gmail.com: jesse.jaara>
+
+pkgname=libpng12
+_realname=libpng
+pkgver=1.2.50
+pkgrel=1
+pkgdesc="A collection of routines used to create PNG format graphics files"
+arch=('i686' 'x86_64')
+url="http://www.libpng.org/pub/png/libpng.html"
+license=('custom')
+depends=('zlib')
+options=('!libtool')
+source=("http://sourceforge.net/projects/libpng/files/libpng-${pkgver}.tar.xz"
+ "http://sourceforge.net/projects/apng/files/libpng/libpng12/libpng-${pkgver}-apng.patch.gz")
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ patch -Np0 -i "${srcdir}/libpng-${pkgver}-apng.patch"
+
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ automake --add-missing
+
+ ./configure --prefix=/usr
+
+ make ECHO=echo
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ make ECHO=echo DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/share"
+ rm -rf "${pkgdir}/usr/bin/libpng-config"
+ rm -rf "${pkgdir}/usr/lib/"{libpng.so,libpng.a}
+ rm -fr "${pkgdir}/usr/lib/pkgconfig/libpng.pc"
+ rm -rf "${pkgdir}/usr/include/"{pngconf.h,png.h}
+}
+
+md5sums=('a3e00fccbfe356174ab515b5c00641c7'
+ 'b06ac3f6a6f982abc2036359665e82a9')
diff --git a/pcr/libpurple-minimal/PKGBUILD b/pcr/libpurple-minimal/PKGBUILD
new file mode 100644
index 000000000..5526879d1
--- /dev/null
+++ b/pcr/libpurple-minimal/PKGBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Magicking <syllaur@gmail.com>
+# Contributors: wzff BluePeppers n0nsense
+pkgname=libpurple-minimal
+pkgver=2.10.0
+pkgrel=3
+pkgdesc="minimal build of the pidgin IM library (no gstreamer, perl and X11 dependencies)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://developer.pidgin.im/wiki/WhatIsLibpurple"
+license=('GPL')
+depends=('glib2' 'gnutls' 'libxml2' 'libidn' 'nss' 'avahi')
+makedepends=('make' 'intltool')
+conflicts=('libpurple')
+provides=("libpurple=${pkgver}")
+source="http://downloads.sourceforge.net/pidgin/pidgin-${pkgver}.tar.gz"
+md5sums=('b92f83f6f075d9cd814d3ccff9fd6cac')
+
+build(){
+ cd $srcdir/pidgin-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-perl \
+ --disable-gtkui \
+ --disable-consoleui \
+ --disable-sm \
+ --disable-gestures \
+ --disable-screensaver \
+ --disable-startup-notification \
+ --disable-schemas-install \
+ --disable-tcl \
+ --disable-tk \
+ --disable-nls \
+ --without-x \
+ --disable-vv \
+ --disable-gstreamer \
+ --disable-meanwhile \
+ --disable-dbus \
+ --disable-doxygen \
+ --with-system-ssl-certs=/etc/ssl/certs
+ make -C libpurple
+}
+
+package() {
+ cd $srcdir/pidgin-${pkgver}
+ make -C libpurple DESTDIR=$pkgdir install
+}
+
diff --git a/pcr/libqb/PKGBUILD b/pcr/libqb/PKGBUILD
new file mode 100644
index 000000000..85b3ff082
--- /dev/null
+++ b/pcr/libqb/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=libqb
+pkgver=0.14.4
+pkgrel=3
+pkgdesc='Library with the primary purpose of providing high performance client server reusable features'
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+makedepends=(
+ doxygen
+ splint
+)
+license=LGPL2.1
+options=(!libtool)
+url=https://github.com/asalkeld/$pkgname/wiki
+source=https://github.com/asalkeld/$pkgname/archive/v$pkgver.tar.gz
+sha512sums=1377e38d5547eb516b255c0aa0972e858048053202692d7d5ef1c746d79dee2c78eddc29e797215376990f2c776b34261f765858606b59d77f9218fb0dac5977
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ setarch $CARCH ./autogen.sh
+ setarch $CARCH ./configure --prefix=/usr\
+ --disable-fatal-warnings\
+ --disable-static\
+ --libdir=/usr/lib\
+ --sbindir=/usr/bin
+ setarch $CARCH make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ setarch $CARCH make DESTDIR=$pkgdir install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/libqinfinity/PKGBUILD b/pcr/libqinfinity/PKGBUILD
new file mode 100644
index 000000000..fdd7ed0c4
--- /dev/null
+++ b/pcr/libqinfinity/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Antonio Rojas <nqn1976 @ gmail.com>
+# Maintainer: parabola Aurélien Desbrières <aurelien@replicant.io>
+
+pkgname=libqinfinity
+pkgver=0.5.1
+pkgrel=1
+pkgdesc="Qt wrapper around libinfinity, a library for collaborative editing"
+arch=('i686' 'x86_64')
+url='https://projects.kde.org/projects/playground/libs/libqinfinity'
+license=('LGPL')
+depends=('libinfinity' 'qt4')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/$pkgname/$pkgver/src/$pkgname-v$pkgver.tar.xz")
+
+
+build() {
+ cd "$pkgname-v$pkgver"
+ mkdir build
+ cd build
+ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4
+ make
+}
+
+package() {
+ cd "$pkgname-v$pkgver/build"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/libquvi-scripts-current/PKGBUILD b/pcr/libquvi-scripts-current/PKGBUILD
new file mode 100644
index 000000000..b03b2935e
--- /dev/null
+++ b/pcr/libquvi-scripts-current/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 196118 2013-10-07 11:53:00Z jgc $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=libquvi-scripts-current
+_pkgname=libquvi-scripts
+provides=(libquvi-scripts)
+pkgver=0.9.20131130
+pkgrel=1
+pkgdesc='Library for parsing video download links.'
+arch=('any')
+url='http://quvi.sourceforge.net/'
+license=('AGPL3')
+options=('!libtool')
+depends=('lua51-socket' 'lua51-bitop' 'lua51-expat')
+source=("http://downloads.sourceforge.net/sourceforge/quvi/${_pkgname}-${pkgver}.tar.xz"{,.sig})
+
+build() {
+ cd "${_pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-nsfw --with-geoblocked
+ make
+}
+
+package() {
+ cd "${_pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('46ddfd887260a515199c2e1ba8c46d8a'
+ 'SKIP')
diff --git a/pcr/librevpn-git/PKGBUILD b/pcr/librevpn-git/PKGBUILD
new file mode 100644
index 000000000..551a984e2
--- /dev/null
+++ b/pcr/librevpn-git/PKGBUILD
@@ -0,0 +1,145 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+ _branch=master
+#_branch=feature/empaquetable
+
+if [[ $_branch == master ]]; then
+ # committer Nicolás Reynolds <fauno@endefensadelsl.org> 2013-07-30 17:16:33 (GMT)
+ _srcver=20130730
+ _commit=fb7d07789398d7b68ed437db75c68a24b0c17905
+ _sha512sums=4dc77346fe6294d3bcfc47ead15f722bee628daf2a28d3fef9a15960038395140ee98918a4502ed1ed186bedbe2a83d9e68a202323523c8461476776bd3fdb2b
+fi
+
+if [[ $_branch == feature/empaquetable ]]; then
+ # committer Nicolás Reynolds <fauno@endefensadelsl.org> 2013-07-29 02:41:53 (GMT)
+ _srcver=20130729
+ _commit=5ee3d723da187d85f8b789998f98c8aebec843f7
+ _sha512sums=f4c62b6bda67ce97eff9b35223f6c8d03c813e0151e81289006d8303e3296ed6346c2fb2b3835309d0902d9ea2ea73d4536636f544039ada5ae3d737600b0ebc
+fi
+
+_srcname=lvpn
+_pkgname=librevpn
+pkgname=$_pkgname-git
+pkgver=$_srcver
+pkgrel=3
+pkgdesc='Free Virtual Network with tinc2dot and generate-ipv6-address'
+url=http://$_pkgname.org.ar/
+license=('AGPL3:(lvpn, tinc2dot)' 'MIT:(generate-ipv6-address)')
+arch=(mips64el x86_64 i686)
+depends=(avahi bash tinc)
+optdepends=(
+ 'graphviz: for graph and tinc2dot'
+ 'libnatpmp: (AUR)'
+ miniupnpc
+ 'python2: for avahi-publish-alias'
+ python2-bottle
+ 'ruby: for graph'
+ sudo
+)
+provides=($_pkgname)
+conflicts=$_pkgname
+source=$_srcname-$_commit.tar.xz::http://repo.hackcoop.com.ar/$_pkgname.git/snapshot/$_commit.tar.xz
+sha512sums=$_sha512sums
+
+build() {
+ cd $srcdir/$_commit
+
+ if [[ $_branch == feature/empaquetable ]]; then
+ sed -i '\|generate-ipv6-address|d;\|natpmp|d;\|upnpc|d' Makefile
+ sed -i '\|LVPN_DIR=| s|${PWD}|/usr/share/lvpn|' $_srcname.in
+ sed -i 's|${LVPN_DIR}/bin|/usr/bin|;
+ s|$(uname -m)-||;
+ ' lib/common
+ make PREFIX=/usr
+ fi
+
+ cd $srcdir/$_commit/etc/generate-ipv6-address-0.1
+ sed -i 's|`uname -m`-||;s|/man/man8|/share/man/man8|' Makefile
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$_commit
+
+ if [[ $_branch == feature/empaquetable ]]; then
+ make PREFIX=$pkgdir/usr TEXTDOMAINDIR=$pkgdir/usr/share/locale install
+
+ msg 'Installing scripts files'
+ install -vm755 bin/avahi-publish-alias $pkgdir/usr/share/$_srcname
+ install -vm755 bin/graph $pkgdir/usr/share/$_srcname # conflicts with plotutils on /usr/bin
+ install -vm755 bin/tinc2dot $pkgdir/usr/share/$_srcname # tinc2dot 0.2.1 script
+ install -vm755 bin/cronjob $pkgdir/usr/share/$_srcname/fauno-cronjob # fauno script
+
+ msg 'Removing dirs'
+ rmdir -v $pkgdir/usr/share/locale/pacman-scripts
+
+ msg 'Fixing beagle patch'
+ rmdir -v $pkgdir/usr/share/$_srcname/beadle
+ ln -vs hosts $pkgdir/usr/share/$_srcname/beadle
+
+ msg 'Adding doc patch'
+ install -vd $pkgdir/usr/share/doc
+ ln -vs ../$_srcname $pkgdir/usr/share/doc/$_srcname
+
+ msg 'Installing locale files'
+ _locales=(en)
+ for _po in ${_locales[@]}; do
+ install -vd $pkgdir/usr/share/locale/$_po/LC_MESSAGES
+ msgfmt -o $pkgdir/usr/share/locale/$_po/LC_MESSAGES/$_srcname.mo locale/$_po.po
+ done
+ fi
+
+ if [[ $_branch == master ]]; then
+ cd $srcdir/$_commit
+
+ msg 'Fixing patchs with sed'
+ sed -i '\|LVPN=| s|$(readlink -f $0)|lvpn|;
+ \|LVPN_DIR=| s|$(dirname "$LVPN")|/usr/share/lvpn|;
+ \|LVPN_BIN=| s|${LVPN_DIR}|/usr|;
+ \|LVPN_LIBDIR=| s|${LVPN_DIR}/lib|/usr/lib/lvpn|;
+ ' $_srcname
+ sed -i 's|${LVPN_DIR}/bin|/usr/bin|;
+ s|$(uname -m)-||;
+ ' lib/{common,lvpn-init}
+
+ msg 'Copying doc, hosts and lib dirs'
+ install -vd $pkgdir/usr/{lib,share/$_srcname}
+ cp -va doc $pkgdir/usr/share/$_srcname
+ cp -va hosts $pkgdir/usr/share/$_srcname
+ cp -va lib $pkgdir/usr/lib/$_srcname
+
+ msg 'Installing scripts files'
+ install -vd $pkgdir/usr/bin
+ install -vm755 $_srcname $pkgdir/usr/bin
+ install -vm755 bin/avahi-publish-alias $pkgdir/usr/share/$_srcname
+ install -vm755 bin/graph $pkgdir/usr/share/$_srcname # conflicts with plotutils on /usr/bin
+ install -vm755 bin/tinc2dot $pkgdir/usr/share/$_srcname # tinc2dot 0.2.1 script
+ install -vm755 bin/cronjob $pkgdir/usr/share/$_srcname/fauno-cronjob # fauno script
+
+ msg 'Fixing beagle patch'
+ ln -vs hosts $pkgdir/usr/share/$_srcname/beadle
+
+ msg 'Adding doc patch'
+ install -vd $pkgdir/usr/share/doc
+ ln -vs ../$_srcname $pkgdir/usr/share/doc/$_srcname
+
+ msg 'Installing locale files'
+ _locales=(en)
+ for _po in ${_locales[@]}; do
+ install -vd $pkgdir/usr/share/locale/$_po/LC_MESSAGES
+ msgfmt -o $pkgdir/usr/share/locale/$_po/LC_MESSAGES/$_srcname.mo locale/$_po.po
+ done
+ fi
+
+ msg 'Creating dirs'
+ install -d $pkgdir/{usr/share/$_srcname/nodos,etc/{logrotate.d,NetworkManager/dispatcher.d}}
+
+ msg 'Installing license files'
+ install -vDm644 LICENSE $pkgdir/usr/share/licenses/$_srcname/COPYING
+
+ msg 'Installing "generate-ipv6-address" files'
+ cd etc/generate-ipv6-address-0.1
+ make PREFIX=$pkgdir/usr TEXTDOMAINDIR=$pkgdir/usr/share/locale install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/librevpn/PKGBUILD b/pcr/librevpn/PKGBUILD
new file mode 100644
index 000000000..71a3a2f7c
--- /dev/null
+++ b/pcr/librevpn/PKGBUILD
@@ -0,0 +1,86 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+_pkgname=lvpn
+pkgname=librevpn
+pkgver=0.0.3
+pkgrel=1
+pkgdesc='Free Virtual Network with tinc2dot and generate-ipv6-address'
+url=http://$pkgname.org.ar/
+license=("AGPL3:($_pkgname, tinc2dot)" 'MIT:(generate-ipv6-address)')
+arch=(mips64el x86_64 i686)
+depends=(avahi bash tinc)
+optdepends=(
+ 'graphviz: for graph and tinc2dot'
+ 'libnatpmp: (AUR)'
+ miniupnpc
+ networkmanager
+ 'python2: for avahi-publish-alias'
+ python2-bottle
+ 'ruby: for graph'
+ sudo
+)
+source=http://repo.hackcoop.com.ar/$pkgname.git/snapshot/$pkgname-$pkgver.tar.xz
+sha512sums=96a0de4e35d1fd45652c4b7ee25d7335d9b3816065b48e978274845c328b68a03623abf812119af34f1856bd05170cac8ad59f233fc3dcd63ea6c84c89a80968
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ msg "BUGFIX: Fixing Makefile with sed:"
+ msg " * Removing generate-ipv6-address, natpmp and upnpc build softwares"
+ msg " * Fixing wrong man-pages patch"
+ msg " * Removing useless pacman-scripts (or lvpn) patch (TEXTDOMAIN)"
+ sed -i '\|generate-ipv6-address|d;\|natpmp|d;\|upnpc|d;
+ s|/share/man1|/share/man/man1|;
+ s|$(TARGET)$(TEXTDOMAINDIR)/$(TEXTDOMAIN)|$(TARGET)$(TEXTDOMAINDIR)|;
+ ' Makefile
+
+ msg "Building '$pkgname'"
+ make PREFIX=/usr NETWORK=lvpn
+
+ msg "Building 'generate-ipv6-address'"
+ cd etc/generate-ipv6-address-0.1
+ sed -i 's|`uname -m`-||;s|/man/man8|/share/man/man8|' Makefile
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=$pkgdir/usr TEXTDOMAINDIR=$pkgdir/usr/share/locale install
+
+ msg 'Installing scripts files'
+ msg 'Note: graph scrip conflicts with plotutils on /usr/bin'
+ install -vm755 bin/avahi-publish-alias $pkgdir/usr/bin
+ install -vm755 bin/graph $pkgdir/usr/bin/$_pkgname-graph
+ install -vm755 bin/tinc2dot $pkgdir/usr/bin # tinc2dot 0.2.1 script
+ install -vm755 bin/cronjob $pkgdir/usr/bin/fauno-cronjob # fauno script
+
+ msg 'BUGFIX: Installing doc files'
+ _doc=(es)
+ for _md in ${_doc[@]};do
+ install -vd $pkgdir/usr/share/{doc,$_pkgname/doc/$_md}
+ install -vm644 doc/$_md/*.markdown $pkgdir/usr/share/$_pkgname/doc/$_md
+ ln -vs ../$_pkgname/doc $pkgdir/usr/share/doc/$_pkgname
+ done
+
+ msg 'BUGFIX: Installing locale files'
+ _locales=(en)
+ for _po in ${_locales[@]}; do
+ install -vd $pkgdir/usr/share/locale/$_po/LC_MESSAGES
+ msgfmt -o $pkgdir/usr/share/locale/$_po/LC_MESSAGES/$_pkgname.mo locale/$_po.po
+ done
+
+ #msg 'BUGFIX: Removing useless pacman-scripts dir'
+ #rmdir -v $pkgdir/usr/share/locale/pacman-scripts
+
+ msg 'BUGFIX: Creating NetworkManager dir, due which fail without NetworkManager software'
+ install -d $pkgdir/etc/NetworkManager/dispatcher.d
+
+ msg 'Installing license files'
+ install -vDm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ msg 'Installing "generate-ipv6-address" files'
+ cd etc/generate-ipv6-address-0.1
+ make PREFIX=$pkgdir/usr TEXTDOMAINDIR=$pkgdir/usr/share/locale install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/libshout-idjc/PKGBUILD b/pcr/libshout-idjc/PKGBUILD
new file mode 100644
index 000000000..51578c420
--- /dev/null
+++ b/pcr/libshout-idjc/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: fauno, based on the git version from
+# Mantainer: M0Rf30
+pkgname=libshout-idjc
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="Libshout-idjc is libshout plus some extensions for IDJC."
+arch=(i686 x86_64)
+url="http://idjc.sourceforge.net/"
+depends=('libvorbis' 'libtheora' 'speex')
+options=('!libtool' '!emptydirs')
+source=("http://downloads.sourceforge.net/project/idjc/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+license=('LGPL')
+md5sums=('1b92ee05f42a957169a74a911cd94afc')
+
+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/pcr/libspatialite/PKGBUILD b/pcr/libspatialite/PKGBUILD
new file mode 100644
index 000000000..24c775fd8
--- /dev/null
+++ b/pcr/libspatialite/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Brian Galey <bkgaley at gmail dot com>
+# Contributor: Pietro Zambelli <peter.zamb at gmail dot com>
+pkgname=libspatialite
+pkgver=4.0.0
+pkgrel=1
+pkgdesc="SQLite extension to support spatial data types and operations"
+arch=('i686' 'x86_64')
+url="https://www.gaia-gis.it/fossil/libspatialite/index"
+license=('MPL')
+depends=('geos' 'proj' 'sqlite3' 'libfreexl')
+options=('!libtool')
+source=("http://www.gaia-gis.it/gaia-sins/$pkgname-$pkgver.tar.gz")
+md5sums=('8040ce4e39913e7d284675c0f15d270d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/libspnav/Makefile.in.diff b/pcr/libspnav/Makefile.in.diff
new file mode 100644
index 000000000..4c93b9cb6
--- /dev/null
+++ b/pcr/libspnav/Makefile.in.diff
@@ -0,0 +1,19 @@
+--- Makefile.in.orig 2009-04-18 00:12:45.000000000 +0200
++++ Makefile.in 2009-04-18 00:16:06.000000000 +0200
+@@ -4,6 +4,7 @@
+ lib_a = libspnav.a
+ soname = libspnav.so.0
+ lib_so = $(soname).1
++linkname = libspnav.so
+
+ CC = gcc
+ AR = ar
+@@ -34,6 +35,8 @@
+ install: $(lib_a) $(lib_so)
+ cp $(lib_a) $(PREFIX)/$(libdir)/$(lib_a)
+ cp $(lib_so) $(PREFIX)/$(libdir)/$(lib_so)
++ ln -s $(lib_so) $(linkname)
++ cp -d $(linkname) $(PREFIX)/$(libdir)/$(linkname)
+ for h in $(hdr); do cp -p $(srcdir)/$$h $(PREFIX)/include/; done
+
+ .PHONY: uninstall
diff --git a/pcr/libspnav/PKGBUILD b/pcr/libspnav/PKGBUILD
new file mode 100644
index 000000000..da0272ed7
--- /dev/null
+++ b/pcr/libspnav/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Jan Hambrecht <jaham at gmx dot net>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname=libspnav
+pkgver=0.2.2
+pkgrel=3
+pkgdesc="The spacenav project provides a free, compatible alternative, to the proprietary 3Dconnexion device driver and SDK, for their 3D input devices (called 'space navigator', 'space pilot', 'space traveller', etc)."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://spacenav.sourceforge.net/"
+license=('GPL')
+depends=('libx11')
+source=(http://downloads.sourceforge.net/spacenav/$pkgname-$pkgver.tar.gz Makefile.in.diff)
+md5sums=('b85a0f4ab711e2d4f73a40e2e371f5ae'
+ 'f9122ad4ca823e45bfa0538187df6270')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p0 < $srcdir/Makefile.in.diff
+ ./configure --prefix=$pkgdir/usr --disable-debug
+ make || return 1
+ install -d $pkgdir/usr/lib
+ install -d $pkgdir/usr/include
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/pcr/libsquish-svn/LICENSE b/pcr/libsquish-svn/LICENSE
new file mode 100644
index 000000000..dd0f22eb9
--- /dev/null
+++ b/pcr/libsquish-svn/LICENSE
@@ -0,0 +1,24 @@
+/* -----------------------------------------------------------------------------
+
+ Copyright (c) 2006 Simon Brown si@sjbrown.co.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/pcr/libsquish-svn/PKGBUILD b/pcr/libsquish-svn/PKGBUILD
new file mode 100644
index 000000000..17af64a96
--- /dev/null
+++ b/pcr/libsquish-svn/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Jorge Araya Navarro <jorgean@lavabit.com>
+# Contributor: F0ruD<fzerorubigd{AT}gmail{DOT}com>
+pkgname=libsquish-svn
+pkgver=48
+pkgrel=5
+pkgdesc="DXT compression library - svn build"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/libsquish"
+makedepends=('subversion' )
+license=('MIT')
+provides=('libsquish')
+conflicts=('libsquish' 'kervalasquish-hg' 'kervala_libsquish-hg')
+mksource=("$pkgname-$pkgver"::svn+http://libsquish.googlecode.com/svn/trunk/#revision=$pkgver)
+mkmd5sums=('SKIP')
+
+source=("libre://$pkgname-$pkgver.tar.gz"
+ LICENSE)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # make install
+ mkdir -p $pkgdir/usr/local/{include,lib}
+
+ install -Dm 644 squish.h $pkgdir/usr/local/include/squish.h
+ install -Dm 644 libsquish.so.0.0 $pkgdir/usr/local/lib/libsquish.so.0.0
+ install -Dm 644 $srcdir/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha256sums=('d1c057bf105872f50f504584fd7b31fb980ed5e235b14a92c6cb0aa7d7758e8f'
+ 'ed13029728a637f599833a68be22f3cc356a7f13be8d79284b2c415e172efd75')
diff --git a/pcr/libtool-lts/PKGBUILD b/pcr/libtool-lts/PKGBUILD
new file mode 100644
index 000000000..66bcc547c
--- /dev/null
+++ b/pcr/libtool-lts/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 196866 2013-10-20 14:29:14Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+
+# NOTE: requires rebuilt with each new gcc version
+
+_pkgname=libtool
+pkgname=libtool-lts
+pkgver=2.4.2
+_gccver=4.7.3
+pkgrel=1
+pkgdesc="A generic library support script,"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+depends=('sh' "libltdl=$pkgver" 'tar' "gcc-lts=${_gccver}")
+makedepends=("gcc-lts=${_gccver}")
+groups=('lts-devel')
+provides=("$_pkgname=$pkgver")
+conflicts=("$_pkgname")
+install=libtool.install
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/${_pkgname}-${pkgver}.tar.xz{,.sig})
+md5sums=('2ec8997e0c07249eb4cbd072417d70fe'
+ '1e6ba57420c82c663c85e745d11c7eed')
+
+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-binSCRIPTS install-man install-info \
+ install-data-local
+ rm -r ${pkgdir}/usr/share/libtool/libltdl/
+}
diff --git a/pcr/libtool-lts/libtool.install b/pcr/libtool-lts/libtool.install
new file mode 100644
index 000000000..73cf56422
--- /dev/null
+++ b/pcr/libtool-lts/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/pcr/libtxc_dxtn/PKGBUILD b/pcr/libtxc_dxtn/PKGBUILD
new file mode 100644
index 000000000..d491ed6fb
--- /dev/null
+++ b/pcr/libtxc_dxtn/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=libtxc_dxtn
+pkgver=1.0.1
+pkgrel=2
+arch=(i686 x86_64)
+pkgdesc="Texture compression library for Mesa"
+url="http://dri.freedesktop.org/wiki/S3TC"
+license=(custom:BSD)
+depends=(mesa)
+options=(!libtool)
+source=(http://people.freedesktop.org/~cbrill/$pkgname/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # License
+ mkdir -p "$pkgdir/usr/share/licenses/$pkgname"
+ sed -n '5,22{s|^ \* \?||;p}' txc_dxtn.h \
+ > "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/pcr/libubox/PKGBUILD b/pcr/libubox/PKGBUILD
new file mode 100644
index 000000000..577eecd24
--- /dev/null
+++ b/pcr/libubox/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+pkgname=libubox
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="OpenWRT's Basic Utility Library"
+arch=('i686' 'mips64el')
+url="https://openwrt.org"
+license=('BSD')
+depends=('json-c')
+makedepends=('git' 'cmake' 'lua51')
+source=(git://nbd.name/luci2/libubox.git)
+md5sums=(SKIP)
+
+pkgver() {
+ cd ${srcdir}/${pkgname}
+ local ver="$(git describe --long --tags)"
+ printf "%s" "${ver//-/.}"
+}
+
+build() {
+ cd ${srcdir}/${pkgname}
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ make DESTDIR=${pkgdir}/ install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/liburcu/PKGBUILD b/pcr/liburcu/PKGBUILD
new file mode 100644
index 000000000..ced12e005
--- /dev/null
+++ b/pcr/liburcu/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer : Parabola GNU / Linux-libre Aurlien Desbrires <aurelien@cwb.io>
+
+pkgname=liburcu
+pkgver=0.7.5
+pkgrel=1
+pkgdesc="LGPLv2.1 userspace RCU (read-copy-update) library"
+arch=('i686' 'x86_64')
+url="http://lttng.org/urcu"
+license=('LGPL2.1')
+source=(http://lttng.org/files/urcu/userspace-rcu-${pkgver}.tar.bz2)
+md5sums=('2c5083fac662ecd38d6076dffa86259b')
+
+build() {
+ cd ${srcdir}/userspace-rcu-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/userspace-rcu-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/pcr/libwww-hg/PKGBUILD b/pcr/libwww-hg/PKGBUILD
new file mode 100644
index 000000000..9fc91e231
--- /dev/null
+++ b/pcr/libwww-hg/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Jorge Araya Navarro <jorgean@lavabit.com>
+# Maintainer (Archlinux): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Buharev Vasilij <buharev.v.p@gmail.com>
+
+pkgname=libwww-hg
+pkgver=20130730
+_changeset=facbea79943a
+pkgrel=11
+pkgdesc="A general-purpose client side WEB API"
+arch=('i686' 'x86_64')
+url="http://hg.kervala.net/packaging/"
+license=('W3C')
+depends=()
+conflicts=("libwww")
+provides=("libwww")
+makedepends=('gcc' 'pkgconfig' 'perl' 'zlib')
+options=('!libtool')
+source=("http://hg.kervala.net/packaging/archive/${_changeset}.tar.gz")
+sha256sums=('26adbb77c4ecb3df3a074597a8dfc45b7215879fbc0447cb086199c17ae8ba8d')
+
+
+build() {
+ cd "$srcdir/packaging-${_changeset}/libwww"
+ ./autogen.sh
+ ./configure --prefix=/usr/ \
+ --with-ssl=no --with-zlib --with-expat --with-gnu-ld \
+ --enable-shared --enable-static
+ #sed -i 's#Examples##' Library/Makefile
+ make
+}
+
+package() {
+ cd "$srcdir/packaging-${_changeset}/libwww"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/lightspark/PKGBUILD b/pcr/lightspark/PKGBUILD
new file mode 100644
index 000000000..bab26aceb
--- /dev/null
+++ b/pcr/lightspark/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer : speps <speps at aur dot archlinux dot org>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=lightspark
+pkgver=0.7.2
+pkgrel=1
+pkgdesc='An alternative Flash Player for GNU/Linux.'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://lightspark.sourceforge.net'
+license=('GPL3' 'LGPL3')
+depends=('gtk2' 'ffmpeg' 'glew' 'curl' 'boost-libs' 'libxml++' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('cmake' 'nasm' 'xulrunner' 'llvm' 'glproto' 'boost' 'fontconfig')
+optdepends=('gnash-gtk: fallback support')
+install="$pkgname.install"
+source=(http://launchpad.net/lightspark/trunk/lightspark-$pkgver/+download/lightspark-$pkgver.tar.gz{,.asc})
+md5sums=('f078d505a354fb66dc5b68ad09a2aa81'
+ 'SKIP')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ [ -d bld ] || mkdir bld && cd bld
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DGNASH_EXE_PATH=/usr/bin/gtk-gnash
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/bld"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/lightspark/lightspark.install b/pcr/lightspark/lightspark.install
new file mode 100644
index 000000000..bce670aff
--- /dev/null
+++ b/pcr/lightspark/lightspark.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/pcr/lilo/PKGBUILD b/pcr/lilo/PKGBUILD
new file mode 100644
index 000000000..bd2446fd4
--- /dev/null
+++ b/pcr/lilo/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Connor Behan <connor.behan@gmail.com>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+pkgname=lilo
+pkgver=24.0
+pkgrel=1
+pkgdesc="A bootloader for GNU/Linux (Parabola rebranded)"
+arch=('i686' 'x86_64')
+url="https://alioth.debian.org/projects/lilo/"
+license=('BSD')
+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')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export LC_ALL=C
+
+ sed -i -e 's/strip lilo.static/strip lilo.static || true/' src/Makefile
+ 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
+
+ # All binaries in /usr/bin
+ mkdir "${pkgdir}"/usr/bin
+ mv "${pkgdir}"/sbin/lilo "${pkgdir}"/usr/bin/
+ mv "${pkgdir}"/usr/sbin/* "${pkgdir}"/usr/bin/
+ rm -rf "${pkgdir}"/sbin
+ rm -rf "${pkgdir}"/usr/sbin
+
+ # Avoid conflict with syslinux
+ mv "${pkgdir}"/usr/bin/keytab-lilo "${pkgdir}"/usr/bin/keytab-lilo.pl
+}
+md5sums=('03d7090835a5675314082847f1ac7910' 'd06b3c4655577ed01fea79ec5743b4b0')
diff --git a/pcr/lilo/lilo.conf b/pcr/lilo/lilo.conf
new file mode 100644
index 000000000..479390df5
--- /dev/null
+++ b/pcr/lilo/lilo.conf
@@ -0,0 +1,25 @@
+#
+# /etc/lilo.conf
+#
+
+boot=/dev/sda
+# This line often fixes L40 errors on bootup
+# disk=/dev/sda bios=0x80
+
+default=parabola
+timeout=50
+lba32
+prompt
+
+image=/boot/vmlinuz-linux-libre
+ label=parabola
+ root=/dev/sda3
+ initrd=/boot/initramfs-linux-libre.img
+ read-only
+
+image=/boot/vmlinuz-linux-libre
+ label=parabola-fallback
+ root=/dev/sda3
+ initrd=/boot/initramfs-linux-libre-fallback.img
+ read-only
+
diff --git a/pcr/lilo/lilo.install b/pcr/lilo/lilo.install
new file mode 100644
index 000000000..7375fddf8
--- /dev/null
+++ b/pcr/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/pcr/litecoin-qt/PKGBUILD b/pcr/litecoin-qt/PKGBUILD
new file mode 100644
index 000000000..28aaf2c0c
--- /dev/null
+++ b/pcr/litecoin-qt/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Loïc Guitaut <flink at belfalas dot eu>
+
+pkgname='litecoin-qt'
+pkgver=0.8.6.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.litecoin.org/"
+makedepends=('boost' 'automoc4' 'qrencode' 'miniupnpc')
+license=('MIT')
+pkgdesc="Peer-to-peer network based digital currency (QT)"
+depends=(boost-libs qt4 miniupnpc qrencode)
+conflicts=(litecoin)
+install=litecoin-qt.install
+source=("https://github.com/litecoin-project/litecoin/archive/v$pkgver.tar.gz"
+ "$pkgname.desktop")
+sha256sums=('8aef9e936b57b90d506c5dd2e350c3d0673640b69beb9975d172136eec1d8b34'
+ 'cfc53dc9028745358235698ddd562d3e6b4a3ea9f896f5efc1aa8cd81f595559')
+
+build() {
+ cd "$srcdir/litecoin-$pkgver"
+
+ # and make qt gui
+ qmake-qt4 USE_QRCODE=1 USE_UPNP=1
+ make
+}
+
+
+package() {
+ install -Dm644 litecoin-qt.desktop "$pkgdir"/usr/share/applications/litecoin.desktop
+ cd "$srcdir/litecoin-$pkgver"
+ install -Dm755 litecoin-qt "$pkgdir"/usr/bin/litecoin-qt
+ install -Dm644 share/pixmaps/bitcoin128.png "$pkgdir"/usr/share/pixmaps/litecoin128.png
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
diff --git a/pcr/litecoin-qt/litecoin-qt.desktop b/pcr/litecoin-qt/litecoin-qt.desktop
new file mode 100644
index 000000000..d3b9b365f
--- /dev/null
+++ b/pcr/litecoin-qt/litecoin-qt.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Litecoin
+Comment=Litecoin P2P Cryptocurrency
+Comment[fr]=Litecoin, monnaie virtuelle cryptographique pair à pair
+Comment[tr]=Litecoin, eşten eşe kriptografik sanal para birimi
+Exec=/usr/bin/litecoin-qt
+Terminal=false
+Type=Application
+Icon=/usr/share/pixmaps/litecoin128.png
+MimeType=x-scheme-handler/litecoin;
+Categories=Office;
diff --git a/pcr/litecoin-qt/litecoin-qt.install b/pcr/litecoin-qt/litecoin-qt.install
new file mode 100644
index 000000000..f98ba7338
--- /dev/null
+++ b/pcr/litecoin-qt/litecoin-qt.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/pcr/log4c/PKGBUILD b/pcr/log4c/PKGBUILD
new file mode 100644
index 000000000..bfcb6bb53
--- /dev/null
+++ b/pcr/log4c/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: rockerzz <rockerzz@gmail.com>
+#
+pkgname=log4c
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Logging FrameWork for C, as Log4j or Log4Cpp"
+url="http://log4c.sourceforge.net/"
+arch=('i686' 'x86_64')
+license="LGPL"
+depends=('gcc-libs')
+makedepends=( 'bash' 'make' 'gcc' )
+source=(http://prdownloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ca5412b7515d8901714ab7892323adb6')
+options=('!libtool')
+
+build() {
+ cd $startdir/src/log4c-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+
diff --git a/pcr/log4cxx/PKGBUILD b/pcr/log4cxx/PKGBUILD
new file mode 100644
index 000000000..c77813e56
--- /dev/null
+++ b/pcr/log4cxx/PKGBUILD
@@ -0,0 +1,24 @@
+pkgname=log4cxx
+pkgver=0.10.0
+pkgrel=2
+pkgdesc="A C++ port of Log4j"
+url="http://logging.apache.org/log4cxx"
+license="APACHE"
+depends=('apr-util' 'libxml2')
+arch=('i686' 'x86_64')
+makedepends=('autoconf' 'automake' 'libtool' 'patch' 'zip' 'gzip' 'sed')
+
+source=(http://archive.apache.org/dist/logging/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz
+ log4cxx-0.10.0-missing_includes.patch)
+md5sums=('b30ffb8da3665178e68940ff7a61084c'
+ 'dfa17719a57b19f12cbef94419a2aac8')
+
+build() {
+ cd $startdir/src/apache-$pkgname-$pkgver
+
+ patch -p1 < $startdir/log4cxx-0.10.0-missing_includes.patch
+
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch b/pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch
new file mode 100644
index 000000000..9f3534ccc
--- /dev/null
+++ b/pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch
@@ -0,0 +1,38 @@
+diff -Naur apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp apache-log4cxx-0.10.0/src/examples/cpp/console.cpp
+--- apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp 2008-04-01 00:34:52.000000000 +0200
++++ apache-log4cxx-0.10.0/src/examples/cpp/console.cpp 2008-05-06 05:40:52.000000000 +0200
+@@ -15,7 +15,10 @@
+ * limitations under the License.
+ */
+
+-#include <stdlib.h>
++#include <cstdio>
++#include <cstdlib>
++#include <cstring>
++#include <stdint.h>
+ #include <log4cxx/logger.h>
+ #include <log4cxx/consoleappender.h>
+ #include <log4cxx/simplelayout.h>
+diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp
+--- apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp 2008-04-01 00:34:09.000000000 +0200
++++ apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp 2008-05-06 05:32:31.000000000 +0200
+@@ -21,6 +21,8 @@
+ #include <log4cxx/helpers/pool.h>
+ #include <log4cxx/helpers/bytebuffer.h>
+
++#include <cstring>
++
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
+
+diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp
+--- apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp 2008-04-01 00:34:09.000000000 +0200
++++ apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp 2008-05-06 05:35:55.000000000 +0200
+@@ -20,6 +20,8 @@
+ #include <log4cxx/helpers/socket.h>
+ #include <log4cxx/helpers/bytebuffer.h>
+
++#include <cstring>
++
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
diff --git a/pcr/lostfiles/PKGBUILD b/pcr/lostfiles/PKGBUILD
new file mode 100644
index 000000000..acc8ddd64
--- /dev/null
+++ b/pcr/lostfiles/PKGBUILD
@@ -0,0 +1,17 @@
+# Contributor: graysky <graysky AT archlinux dot us>
+
+pkgname=lostfiles
+pkgver=3.07
+pkgrel=1
+pkgdesc='Find orphan files - those not owned by any Arch packages.'
+arch=('any')
+license=('GPL2')
+depends=('bash')
+url="https://github.com/graysky2/lostfiles"
+source=("https://github.com/graysky2/$pkgname/archive/v$pkgver.tar.gz")
+sha256sums=('970d35a619043471067d58a6702443d5e7b9ab9ead96c37ae0811ecb11d2424d')
+
+package() {
+ cd "$pkgname-$pkgver"
+ install -Dm755 $pkgname "$pkgdir/usr/bin/$pkgname"
+}
diff --git a/pcr/lprof/PKGBUILD b/pcr/lprof/PKGBUILD
new file mode 100644
index 000000000..b25927937
--- /dev/null
+++ b/pcr/lprof/PKGBUILD
@@ -0,0 +1,44 @@
+# Contributor: Branko Vukelic <bg.branko@gmail.com>
+# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+pkgname=lprof
+pkgver=1.11.4.1
+pkgrel=3
+arch=(i686 x86_64 mips64el)
+pkgdesc="Imaging device calibration tool"
+url="http://lprof.sourceforge.net/"
+license="GPL"
+depends=('qt3' 'lcms>=1.12' 'vigra>=1.3')
+makedepends=('python>=1.53' 'scons')
+source=(http://downloads.sourceforge.net/lprof/${pkgname}-${pkgver}.tar.gz
+ lcms-117.patch)
+md5sums=('2177c77c24aa10db9b7681d264735ea9'
+ '5ce946c711462428a10116065647c823')
+
+prepare() {
+ cd ${pkgname}-${pkgver}
+ patch -p0<../lcms-117.patch
+ sed -i "s/'tiff'/'tiff','png'/" SConstruct || return 1
+ sed -i "s|'moc'|'moc-qt3'|" SConstruct || return 1
+ sed -i "s|'uic'|'uic-qt3'|" SConstruct || return 1
+ sed -i "s|qtdir, 'lib'|qtdir, 'lib', 'qt3'|
+ s|qtdir, 'include'|qtdir, 'include', 'qt3'|
+ " SConstruct || return 1
+ sed -i "s|qmake|qmake-qt3|
+ s|lrelease|lrelease-qt3|
+ s|lupdate|lupdate-qt3|
+ " {createtrans,comptrans}.sh
+ rm -rf scons*
+}
+
+build() {
+ cd ${pkgname}-${pkgver}
+ scons PREFIX=/usr qt_directory=/usr || return 1
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ install -d ${pkgdir}/usr
+ scons PREFIX=${pkgdir}/usr install
+}
diff --git a/pcr/lprof/lcms-117.patch b/pcr/lprof/lcms-117.patch
new file mode 100644
index 000000000..55afdfbb8
--- /dev/null
+++ b/pcr/lprof/lcms-117.patch
@@ -0,0 +1,12 @@
+--- src/liblprof/lcmsprf.h.bak 2007-08-31 15:36:20.000000000 -0700
++++ src/liblprof/lcmsprf.h 2007-08-31 15:37:39.000000000 -0700
+@@ -67,6 +67,9 @@
+ #define mmax(a,b) ((a) > (b)?(a):(b))
+ #endif
+
++#if LCMS_VERSION > 116
++typedef int BOOL;
++#endif
+
+ /* Misc operations ------------------------------------------------------------------------ */
+
diff --git a/pcr/lua-cyrussasl/PKGBUILD b/pcr/lua-cyrussasl/PKGBUILD
new file mode 100644
index 000000000..bc2fa8a32
--- /dev/null
+++ b/pcr/lua-cyrussasl/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Dwayne Bent <dbb.1@liqd.org>
+
+pkgname=lua-cyrussasl
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="Lua bindings for Cyrus SASL library."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://github.com/JorjBauer/lua-cyrussasl"
+license=('BSD')
+makedepends=('lua51' 'libsasl')
+source=(
+ "lua-cyrussasl-$pkgver.tar.gz::https://github.com/JorjBauer/lua-cyrussasl/tarball/v$pkgver"
+ "lua-cyrussasl.patch"
+)
+md5sums=('40c94c06441e1e47640d81b125742969'
+ '838d383edc30f059ddae44cd564e0b82')
+
+build() {
+ cd $srcdir/*-lua-cyrussasl-*
+ patch -Np1 -i ${srcdir}/lua-cyrussasl.patch
+ make
+}
+
+package() {
+ mkdir -p "$pkgdir/usr/lib/lua/5.1"
+ mkdir -p "$pkgdir/usr/share/licenses/lua-cyrussasl"
+
+ cd $srcdir/*-lua-cyrussasl-*
+
+ make DESTDIR=${pkgdir} install
+ install -m644 "LICENSE" "$pkgdir/usr/share/licenses/lua-cyrussasl/LICENSE"
+}
+
diff --git a/pcr/lua-cyrussasl/lua-cyrussasl.patch b/pcr/lua-cyrussasl/lua-cyrussasl.patch
new file mode 100644
index 000000000..e119ccb3b
--- /dev/null
+++ b/pcr/lua-cyrussasl/lua-cyrussasl.patch
@@ -0,0 +1,35 @@
+--- lua-cyrussasl.orig/Makefile 2010-07-06 12:01:15.000000000 -0500
++++ lua-cyrussasl/Makefile 2013-02-17 17:07:33.896240233 -0500
+@@ -4,12 +4,18 @@
+ #LUAPATH=/usr/share/lua/5.1
+ #CPATH=/usr/lib/lua/5.1
+
++# Linux (Arch Linux)
++CFLAGS=-g -O2 -fpic -I/usr/include/lua5.1
++LDFLAGS=-O -shared -fpic -lsasl2
++LUAPATH=/usr/share/lua/5.1
++CPATH=/usr/lib/lua/5.1
++
+ # MacOS
+-CFLAGS=-g -Wall -O2
+-LDFLAGS=-bundle -undefined dynamic_lookup -lsasl2
+-MACOSX_VERSION=10.5
+-LUAPATH=/usr/local/share/lua/5.1
+-CPATH=/usr/local/lib/lua/5.1
++#CFLAGS=-g -Wall -O2
++#LDFLAGS=-bundle -undefined dynamic_lookup -lsasl2
++#MACOSX_VERSION=10.5
++#LUAPATH=/usr/local/share/lua/5.1
++#CPATH=/usr/local/lib/lua/5.1
+
+ #########################################################
+ #
+@@ -28,7 +34,7 @@
+ all: $(TARGET)
+
+ install: $(TARGET)
+- cp $(TARGET) $(CPATH)
++ cp $(TARGET) $(DESTDIR)$(CPATH)
+
+ clean:
+ rm -f *.o *.so *~
diff --git a/pcr/lua-ldap/PKGBUILD b/pcr/lua-ldap/PKGBUILD
new file mode 100644
index 000000000..5443f20ab
--- /dev/null
+++ b/pcr/lua-ldap/PKGBUILD
@@ -0,0 +1,28 @@
+pkgname=lua-ldap
+_pkgname=lualdap
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Simple interface from Lua to an LDAP client"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.keplerproject.org/lualdap"
+license=('BSD')
+makedepends=('lua51' 'libldap')
+source=(http://files.luaforge.net/releases/$_pkgname/$_pkgname/LuaLDAP$pkgver/$_pkgname-$pkgver.tar.gz
+ lualdap-1.1.0-lua51.patch)
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ patch -Np1 -i ${srcdir}/lualdap-1.1.0-lua51.patch
+ make LUA_INC=/usr/include/lua5.1
+
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ make LUA_LIBDIR=${pkgdir}/usr/lib/lua/5.1 \
+ LUA_VERSION_NUM=510 \
+ install
+}
+
+md5sums=('5e104520c3f1333f38817a9fa1e76681'
+ 'a7583456b721584ef222d97e49823a81')
diff --git a/pcr/lua-ldap/lualdap-1.1.0-lua51.patch b/pcr/lua-ldap/lualdap-1.1.0-lua51.patch
new file mode 100644
index 000000000..07059ae08
--- /dev/null
+++ b/pcr/lua-ldap/lualdap-1.1.0-lua51.patch
@@ -0,0 +1,25 @@
+--- lualdap-1.1.0.orig/config 2006-07-23 20:42:06.000000000 -0500
++++ lualdap-1.1.0/config 2013-02-17 16:00:45.947143554 -0500
+@@ -1,10 +1,10 @@
+ # Installation directories
+ # System's libraries directory (where binary libraries are installed)
+-LUA_LIBDIR= /usr/local/lib/lua/5.0
++LUA_LIBDIR= /usr/lib/lua/5.1
+ # Lua includes directory
+-LUA_INC= /usr/local/include
++LUA_INC= /usr/include
+ # OpenLDAP includes directory
+-OPENLDAP_INC= /usr/local/include
++OPENLDAP_INC= /usr/include
+ # OpenLDAP library (an optional directory can be specified with -L<dir>)
+ OPENLDAP_LIB= -lldap
+
+@@ -13,7 +13,7 @@
+ #LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X
+
+ # Lua version number (first and second digits of target version)
+-LUA_VERSION_NUM= 500
++LUA_VERSION_NUM= 510
+ LIBNAME= $T.so.$V
+ COMPAT_DIR= ../compat/src
+
diff --git a/pcr/lua51-sql-mysql/PKGBUILD b/pcr/lua51-sql-mysql/PKGBUILD
new file mode 100644
index 000000000..04ffee934
--- /dev/null
+++ b/pcr/lua51-sql-mysql/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sébastien Luttringer <seblu@archlinux.org>
+# Contributor: Anders Bergh <anders1@gmail.com>
+
+pkgname=lua51-sql-mysql
+pkgdesc='MySQL module for Lua 5.1'
+pkgver=2.2.0
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://www.keplerproject.org/luasql/'
+license=('MIT')
+depends=('lua51' 'libmariadbclient')
+source=("https://github.com/downloads/keplerproject/luasql/luasql-$pkgver.tar.gz")
+md5sums=('59d72db444c6369c936d4f03694db6b7')
+
+build() {
+ cd luasql-$pkgver
+ sed -i '24s,$,/lua5.1,' config
+ msg2 'Building MySQL support'
+ make T=mysql PREFIX=/usr DRIVER_LIBS="$(mysql_config --libs)" \
+ DRIVER_INCS="$(mysql_config --include) -fPIC"
+}
+
+package() {
+ cd luasql-$pkgver
+ 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"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/luabind/PKGBUILD b/pcr/luabind/PKGBUILD
new file mode 100644
index 000000000..da47f927b
--- /dev/null
+++ b/pcr/luabind/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 78820 2012-10-25 06:47:28Z foutrelis $
+# Maintainer: Jakob Gruber <jakob.gruber@gmail.com>
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: rayte <rabyte.at.gmail.dot.com>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname=luabind
+pkgver=0.9.1
+pkgrel=3
+pkgdesc='A library that helps you create bindings between C++ and Lua'
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+url="http://www.rasterbar.com/products/$pkgname.html"
+license=MIT
+makedepends=(
+ boost
+ boost-build
+ unzip
+)
+depends=(
+ gcc-libs
+ lua51
+)
+source=(
+ "http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ ${pkgname}_boost.patch
+)
+md5sums=(
+ 8a323fb51d07dad5cfdb12c432793d55
+ d62ae6fc635300bc659df9dbb587ac53
+)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i $srcdir/${pkgname}_boost.patch
+
+ # build luabind
+ setarch $CARCH bjam release --prefix=$pkgdir/usr link=static,shared
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ setarch $CARCH bjam release --prefix=$pkgdir/usr link=static,shared install
+
+ # copy license
+ install -Dm644 $srcdir/$pkgname-$pkgver/LICENSE \
+ $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/luabind/luabind_boost.patch b/pcr/luabind/luabind_boost.patch
new file mode 100644
index 000000000..92e32828a
--- /dev/null
+++ b/pcr/luabind/luabind_boost.patch
@@ -0,0 +1,59 @@
+diff --git luabind-0.9.1/luabind/detail/call_function.hpp luabind-0.9.1-fixed/luabind/detail/call_function.hpp
+index 1b45ec1..8f5afff 100644
+--- luabind-0.9.1/luabind/detail/call_function.hpp
++++ luabind-0.9.1-fixed/luabind/detail/call_function.hpp
+@@ -323,7 +323,8 @@ namespace luabind
+
+ #endif // LUABIND_CALL_FUNCTION_HPP_INCLUDED
+
+-#elif BOOST_PP_ITERATION_FLAGS() == 1
++#else
++#if BOOST_PP_ITERATION_FLAGS() == 1
+
+ #define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
+ #define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
+@@ -440,4 +441,5 @@ namespace luabind
+
+
+ #endif
++#endif
+
+diff --git luabind-0.9.1/luabind/detail/call_member.hpp luabind-0.9.1-fixed/luabind/detail/call_member.hpp
+index de8d563..e63555b 100644
+--- luabind-0.9.1/luabind/detail/call_member.hpp
++++ luabind-0.9.1-fixed/luabind/detail/call_member.hpp
+@@ -316,7 +316,8 @@ namespace luabind
+
+ #endif // LUABIND_CALL_MEMBER_HPP_INCLUDED
+
+-#elif BOOST_PP_ITERATION_FLAGS() == 1
++#else
++#if BOOST_PP_ITERATION_FLAGS() == 1
+
+ #define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
+ #define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
+@@ -360,4 +361,5 @@ namespace luabind
+ #undef LUABIND_TUPLE_PARAMS
+
+ #endif
++#endif
+
+diff --git luabind-0.9.1/luabind/wrapper_base.hpp luabind-0.9.1-fixed/luabind/wrapper_base.hpp
+index d54c668..0f88cc5 100755
+--- luabind-0.9.1/luabind/wrapper_base.hpp
++++ luabind-0.9.1-fixed/luabind/wrapper_base.hpp
+@@ -89,7 +89,8 @@ namespace luabind
+
+ #endif // LUABIND_WRAPPER_BASE_HPP_INCLUDED
+
+-#elif BOOST_PP_ITERATION_FLAGS() == 1
++#else
++#if BOOST_PP_ITERATION_FLAGS() == 1
+
+ #define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
+ #define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
+@@ -188,3 +189,4 @@ namespace luabind
+ #undef N
+
+ #endif
++#endif
diff --git a/pcr/lv2-c++-tools/PKGBUILD b/pcr/lv2-c++-tools/PKGBUILD
new file mode 100644
index 000000000..de2e69578
--- /dev/null
+++ b/pcr/lv2-c++-tools/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer : Guest One <theguestone at gmail dot com>
+# patch taken from https://aur.archlinux.org/packages/lv2-c%2B%2B-tools/
+pkgname=lv2-c++-tools
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Tools and libraries that may come in handy when writing LV2 plugins."
+arch=('i686')
+url="http://ll-plugins.nongnu.org/hacking.html"
+license=('GPL3')
+depends=('gtkmm')
+makedepends=('boost')
+source=("http://download.savannah.nongnu.org/releases-noredirect/ll-plugins/$pkgname-$pkgver.tar.bz2"
+ "$pkgname-boost-1.50.patch")
+md5sums=('2468f8750bae1d57300853479846e5ed'
+ '1dd1152e9ab8be15248b54546716c8c9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # boots 1.50 patch
+ patch -p1 -i ../${source[1]}
+
+ # do not call ldconfig
+ sed -i '/ldconfig/d' Makefile.template
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+} \ No newline at end of file
diff --git a/pcr/lv2-c++-tools/lv2-c++-tools-boost-1.50.patch b/pcr/lv2-c++-tools/lv2-c++-tools-boost-1.50.patch
new file mode 100644
index 000000000..85d3e32da
--- /dev/null
+++ b/pcr/lv2-c++-tools/lv2-c++-tools-boost-1.50.patch
@@ -0,0 +1,42 @@
+diff -aur lv2-c++-tools-1.0.4/libraries/paq/turtleparser.cpp lv2-c++-tools-1.0.4.patched/libraries/paq/turtleparser.cpp
+--- lv2-c++-tools-1.0.4/libraries/paq/turtleparser.cpp 2011-02-27 13:34:39.000000000 +0100
++++ lv2-c++-tools-1.0.4.patched/libraries/paq/turtleparser.cpp 2012-09-27 16:41:39.925303056 +0200
+@@ -28,7 +28,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+
+-#include <boost/spirit/dynamic.hpp>
++#include <boost/spirit/include/classic_dynamic.hpp>
+
+ #include "turtleparser.hpp"
+
+diff -aur lv2-c++-tools-1.0.4/libraries/paq/turtleparser.hpp lv2-c++-tools-1.0.4.patched/libraries/paq/turtleparser.hpp
+--- lv2-c++-tools-1.0.4/libraries/paq/turtleparser.hpp 2011-02-27 13:34:39.000000000 +0100
++++ lv2-c++-tools-1.0.4.patched/libraries/paq/turtleparser.hpp 2012-09-27 16:41:39.925303056 +0200
+@@ -23,10 +23,10 @@
+ #ifndef TURTLEPARSER_HPP
+ #define TURTLEPARSER_HPP
+
+-#include <boost/spirit/core.hpp>
+-#include <boost/spirit/utility.hpp>
+-#include <boost/spirit/tree/parse_tree.hpp>
+-#include <boost/spirit/tree/ast.hpp>
++#include <boost/spirit/include/classic_core.hpp>
++#include <boost/spirit/include/classic_utility.hpp>
++#include <boost/spirit/include/classic_parse_tree.hpp>
++#include <boost/spirit/include/classic_ast.hpp>
+
+ #include <algorithm>
+ #include <iostream>
+diff -aur lv2-c++-tools-1.0.4/libraries/paq/unicode.hpp lv2-c++-tools-1.0.4.patched/libraries/paq/unicode.hpp
+--- lv2-c++-tools-1.0.4/libraries/paq/unicode.hpp 2011-02-27 13:34:39.000000000 +0100
++++ lv2-c++-tools-1.0.4.patched/libraries/paq/unicode.hpp 2012-09-27 16:42:00.818959807 +0200
+@@ -29,7 +29,7 @@
+
+
+ using namespace std;
+-using namespace boost::spirit;
++using namespace boost::spirit::classic;
+
+
+ template <typename ScannerT>
diff --git a/pcr/lv2-ir/PKGBUILD b/pcr/lv2-ir/PKGBUILD
new file mode 100644
index 000000000..cdeaf7414
--- /dev/null
+++ b/pcr/lv2-ir/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=lv2-ir
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="zero-latency, realtime, high performance signal convolver especially for creating reverb effects."
+arch=('i686' 'x86_64')
+url="http://factorial.hu/plugins/lv2/ir"
+license=('GPL')
+depends=('zita-convolver' 'libsamplerate' 'gtk2')
+provides=('ir-lv2')
+conflicts=('ir-lv2')
+groups=('lv2-plugins')
+makedepends=('lv2core' )
+
+source=("http://factorial.hu/system/files/ir.lv2-${pkgver}.tar.gz")
+md5sums=('01140e1f70e7f4949f502eafc1958bcd')
+
+build() {
+ cd "$srcdir/ir.lv2-${pkgver}"
+ make
+ make convert4chan
+}
+
+package() {
+ cd "$srcdir/ir.lv2-${pkgver}"
+ make PREFIX="$pkgdir/usr" install
+ install -Dm755 convert4chan "$pkgdir/usr/bin/convert4chan"
+ # fixed location
+ sed -i 's/, but seem like its gone://' README
+ sed -i 's@rhythminmind.net/1313@rhythminmind.net/STN@' README
+ install -Dm644 README "${pkgdir}"/usr/share/doc/$pkgname/README
+}
diff --git a/pcr/maildirproc/PKGBUILD b/pcr/maildirproc/PKGBUILD
new file mode 100644
index 000000000..0e3becf75
--- /dev/null
+++ b/pcr/maildirproc/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Mick Koch <kchmck@gmail.com>
+
+pkgname="maildirproc"
+pkgver="0.5.0"
+pkgrel="3"
+pkgdesc="Sorts mail based on a Python configuration file"
+arch=("any")
+url="http://joel.rosdahl.net/maildirproc/"
+license=("GPL") # GPLv2+
+depends=("python")
+source=("http://joel.rosdahl.net/maildirproc/releases/$pkgname-$pkgver.tar.bz2")
+md5sums=("eaa001f6cd1befee99528ca55da979ca")
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python setup.py install --root="$pkgdir" --optimize=1
+
+ mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
+ cp -r doc/* "$pkgdir"/usr/share/doc/$pkgname/
+}
diff --git a/pcr/maliit-framework/PKGBUILD b/pcr/maliit-framework/PKGBUILD
new file mode 100644
index 000000000..995a12582
--- /dev/null
+++ b/pcr/maliit-framework/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Jon Nordby <jononor@gmail.com>
+# Maintainer: Jon Nordby <jononor@gmail.com>
+# Maintainer (Parabola): Javier Barcena <javierbuilder@gmail.com>
+# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+
+pkgname=maliit-framework
+pkgver=0.99.0
+pkgrel=6
+pkgdesc="Maliit Input Methods - Framework"
+arch=('x86_64' 'i686')
+url="http://maliit.org"
+license=('LGPL')
+depends=('qt5-base' 'qt5-quick1' 'gtk2' 'gtk3' 'gconf')
+install=$pkgname.install
+source=(http://maliit.org/releases/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('c5e8c67cbfb514122518d92f1edcc990')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # BUILD
+ qmake -r .
+ make
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ make INSTALL_ROOT="$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 maliit-framework "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -f "$pkgdir"/etc/gconf/schemas/*.schemas
+}
diff --git a/pcr/maliit-framework/maliit-framework.install b/pcr/maliit-framework/maliit-framework.install
new file mode 100755
index 000000000..08c54ae1b
--- /dev/null
+++ b/pcr/maliit-framework/maliit-framework.install
@@ -0,0 +1,30 @@
+pkgname=maliit-framework
+
+post_install() {
+ echo "Updating gtk.immodules..."
+ gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+ gtk-query-immodules-3.0 --update-cache
+ echo "Done."
+
+ gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ echo "Updating gtk.immodules..."
+ gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+ gtk-query-immodules-3.0 --update-cache
+ echo "Done."
+
+}
diff --git a/pcr/maliit-plugins/PKGBUILD b/pcr/maliit-plugins/PKGBUILD
new file mode 100644
index 000000000..cdab07003
--- /dev/null
+++ b/pcr/maliit-plugins/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Jon Nordby <jononor@gmail.com>
+# Maintainer: Jon Nordby <jononor@gmail.com>
+
+pkgname=maliit-plugins
+pkgver=0.99.0
+pkgrel=1
+pkgdesc="Maliit Input Methods - Plugins"
+arch=('x86_64' 'i686')
+url="http://maliit.org"
+license=('LGPL')
+depends=('qt5-base' 'maliit-framework')
+source=(http://maliit.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ config.patch)
+md5sums=('29f07d937803a61e74301e4616d55dbb'
+ 'f43d45c9917924750edf36000492bd73')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ # fix issue on building
+ patch -Np1 -i "$srcdir/config.patch"
+
+ # BUILD
+ qmake -r . CONFIG+=notests
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ make install INSTALL_ROOT="$pkgdir/"
+}
diff --git a/pcr/mariadb-galera/PKGBUILD b/pcr/mariadb-galera/PKGBUILD
new file mode 100644
index 000000000..920137305
--- /dev/null
+++ b/pcr/mariadb-galera/PKGBUILD
@@ -0,0 +1,107 @@
+# $Id$
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+
+pkgname=mariadb-galera
+pkgbase=mariadb-galera
+pkgver=5.5.33a
+_pkgver=${pkgver/.a/a}
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+url='https://mariadb.com/kb/en/galera/'
+pkgdesc='Fast SQL database server, drop-in replacement for MySQL with Galera Cluster'
+backup=('etc/mysql/my.cnf')
+install=mariadb.install
+depends=('mariadb-clients' 'inetutils' 'libaio' 'galera')
+conflicts=('mysql')
+provides=("mysql=$pkgver" "mariadb")
+options=('emptydirs')
+makedepends=('cmake' 'openssl' 'zlib' 'libaio')
+source=(http://ftp.wa.co.za/pub/mariadb/${pkgname}-${pkgver}/kvm-tarbake-jaunty-x86/${pkgname}-${pkgver}.tar.gz
+ mariadb.service
+ mariadb-post.sh
+ mariadb-tmpfile.conf)
+sha256sums=('1b49e41e677d95f7a5b548771a81c6430ec6f0ee16e7ee624fb2fe2b278183b8'
+ 'a6cf5446159fff16598d0d787dd3a3c30a53a656a5f876ddb608bc60e234d334'
+ '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd'
+ '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd')
+
+prepare() {
+ mkdir build
+}
+
+build() {
+ cd build
+
+ cmake ../mariadb-$pkgver \
+ -DBUILD_CONFIG=mysql_release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONFDIR=/etc/mysql \
+ -DMYSQL_DATADIR=/var/lib/mysql \
+ -DMYSQL_UNIX_ADDR=/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=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_EXTRA_CHARSETS=complex \
+ -DWITH_EMBEDDED_SERVER=ON \
+ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1 \
+ -DWITH_PARTITION_STORAGE_ENGINE=1 \
+ -DWITH_TOKUDB_STORAGE_ENGINE=1 \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
+ -DWITHOUT_OQGRAPH_STORAGE_ENGINE=1 \
+ -DWITHOUT_PBXT_STORAGE_ENGINE=1 \
+ -DCMAKE_C_FLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
+ -DCMAKE_CXX_FLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \
+ -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \
+ -DWITH_WSREP=ON \
+ -DWITH_INNODB_DISALLOW_WRITES=1
+
+
+ make
+}
+
+package() {
+
+ cd build
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$pkgdir"/usr/share/mysql/my-medium.cnf "$pkgdir"/etc/mysql/my.cnf
+ install -Dm755 ../mariadb-post.sh "$pkgdir"/usr/bin/mysqld-post
+ install -Dm644 ../mariadb.service "$pkgdir"/usr/lib/systemd/system/mysqld.service
+ install -Dm644 ../mariadb-tmpfile.conf "$pkgdir"/usr/lib/tmpfiles.d/mysql.conf
+
+ # provided by libmariadbclient
+ cd "$pkgdir"
+ rm -f usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}
+ rm -f usr/lib/libmysql*
+ rm -rf usr/include/
+ rm -f usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1
+
+ # provided by mariadb-clients
+ rm -f usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
+ rm -f usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1
+
+ # provided by mytop
+ rm -f usr/bin/mytop
+
+ # not needed
+ rm -rf usr/{data,mysql-test,sql-bench}
+ rm -f usr/share/man/man1/mysql-test-run.pl.1
+}
diff --git a/pcr/mariadb-galera/mariadb-post.sh b/pcr/mariadb-galera/mariadb-post.sh
new file mode 100644
index 000000000..c4ac18171
--- /dev/null
+++ b/pcr/mariadb-galera/mariadb-post.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+while true; do
+ response=$(/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1) && break
+ echo "$response" | grep -q "mysqld is alive" && break
+ echo "$response" | grep -q "Access denied for user" && break
+ sleep 1
+done
diff --git a/pcr/mariadb-galera/mariadb-tmpfile.conf b/pcr/mariadb-galera/mariadb-tmpfile.conf
new file mode 100644
index 000000000..6883dc798
--- /dev/null
+++ b/pcr/mariadb-galera/mariadb-tmpfile.conf
@@ -0,0 +1 @@
+d /run/mysqld 0755 mysql mysql -
diff --git a/pcr/mariadb-galera/mariadb.install b/pcr/mariadb-galera/mariadb.install
new file mode 100644
index 000000000..7d3c2ce5c
--- /dev/null
+++ b/pcr/mariadb-galera/mariadb.install
@@ -0,0 +1,47 @@
+if [[ $(command -v my_print_defaults >/dev/null 2>&1) ]]; then
+ datadir=$(my_print_defaults mysqld | sed -n "s/^--datadir=//p")
+fi
+[[ -z $datadir ]] && datadir=/var/lib/mysql
+
+post_install(){
+ groupadd -g 89 mysql &>/dev/null
+ useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null
+
+ if [[ ! -e $datadir ]]; then
+ install -dm700 $datadir
+ usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=$datadir
+ chown -R mysql:mysql var/lib/mysql &>/dev/null
+ fi
+
+ usr/bin/systemd-tmpfiles --create mysql.conf
+
+ echo ">> If you are migrating from MySQL, don't forget to run 'mysql_upgrade'"
+ echo " after mysqld.service restart."
+}
+
+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 $datadir -s /bin/false mysql &>/dev/null
+
+ if [[ "$(vercmp $2 5.5.25-4)" -lt 0 ]] && [[ -d /data ]]; then
+ for x in data/*; do
+ cp -r $x $datadir/
+ done
+ rm -rf data
+ fi
+
+ if [[ "$(vercmp $2 5.5.25-5)" -lt 0 ]]; then
+ echo ">> mysql.service has been renamed to mysqld.service to keep"
+ echo " consistency with MySQL package."
+ 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/pcr/mariadb-galera/mariadb.service b/pcr/mariadb-galera/mariadb.service
new file mode 100644
index 000000000..dd65511d7
--- /dev/null
+++ b/pcr/mariadb-galera/mariadb.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=MariaDB database server
+After=syslog.target
+
+[Service]
+User=mysql
+Group=mysql
+
+ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid
+ExecStartPost=/usr/bin/mysqld-post
+
+Restart=always
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/mathjax/PKGBUILD b/pcr/mathjax/PKGBUILD
new file mode 100644
index 000000000..2bdc6ec67
--- /dev/null
+++ b/pcr/mathjax/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Kevin Dodd <jesin00@gmail.com>
+# Contributor: Tianjiao Yin <ytj000@gmail.com>
+
+pkgname=mathjax
+pkgver=2.3
+pkgrel=2
+pkgdesc='An open source JavaScript display engine for mathematics that works in all modern browsers'
+url='http://www.mathjax.org/'
+arch=('any')
+license=('Apache')
+options=(!strip libtool staticlibs)
+source=("https://github.com/mathjax/MathJax/archive/v${pkgver}.tar.gz")
+sha256sums=('0cd8f6de29b6c686550098119ab5301bdf60b03aeb8f9f2058e2832a0662687b')
+
+package() {
+ mkdir -p "$pkgdir/usr/share/fonts"
+ mv "$srcdir/MathJax-$pkgver" "$pkgdir/usr/share/mathjax"
+ ln -s '../mathjax/fonts' "$pkgdir/usr/share/fonts/mathjax"
+}
+
diff --git a/pcr/md5deep/PKGBUILD b/pcr/md5deep/PKGBUILD
new file mode 100755
index 000000000..fe1acb7bd
--- /dev/null
+++ b/pcr/md5deep/PKGBUILD
@@ -0,0 +1,45 @@
+# Contributor: billycongo <billycongo@gmail.com>
+# Maintainer: dkaylor <dpkaylor@gmail.com>
+
+pkgname=md5deep
+pkgver=4.3
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc="Advanced checksum hashing tool"
+url="http://md5deep.sourceforge.net"
+license=('Public Domain')
+
+# Copyright and license stuff:
+#
+# This program is a work of the US Government.
+# In accordance with 17 USC 105, copyright protection is not available for any work of the US Government.
+# This program is PUBLIC DOMAIN. Portions of this program contain code that is licensed under the terms of the General Public License (GPL).
+# Those portions retain their original copyright and license. See the file COPYING for more details.
+# There is NO warranty for this program; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# md5deep was originally developed by Jesse Kornblum <research (a t) jessekornblum ,,dot. com> during his service as a
+# Special Agent with the United States Air Force Office of Special Investigations (AFOSI).
+# As such, md5deep exists in the public domain under 17 USC 105.
+
+depends=('glibc')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+
+md5sums=('f172e686ca1df83a53308ad90f7f706d')
+sha1sums=('b9dd6444f07c9fc344ebef201baebdf71bda337f')
+sha256sums=('905bcf8bddf0e7e2650b280d5e7af8cb8cd41dad4f299751dfec397dcb4f8d54')
+sha512sums=('fe1240e6ae039b18d35a9de0cf15fb77eaac9d5505b6b550eb32858bf6d603f8186de06114d40325d5071640f46cec70795e9c192fa7b6ca9022a12c212a9b14')
+
+
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=$pkgdir install
+}
diff --git a/pcr/mda-lv2/PKGBUILD b/pcr/mda-lv2/PKGBUILD
new file mode 100644
index 000000000..500a656a5
--- /dev/null
+++ b/pcr/mda-lv2/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=mda-lv2
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="An LV2 port of the MDA plugins by Paul Kellett"
+arch=('i686')
+url="http://drobilla.net/2012/04/21/mda-lv2-1-0-0/"
+license=('GPL3')
+depends=('lv2')
+makedepends=('python2')
+source=("http://download.drobilla.net/$pkgname-$pkgver.tar.bz2")
+md5sums=('843ac4eade386034562917e95905e5d8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 ./waf configure --prefix=/usr
+ python2 ./waf
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ DESTDIR="$pkgdir" python2 ./waf install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/mediatomb/PKGBUILD b/pcr/mediatomb/PKGBUILD
new file mode 100644
index 000000000..f07e12748
--- /dev/null
+++ b/pcr/mediatomb/PKGBUILD
@@ -0,0 +1,63 @@
+# Contributor: Peter Richard Lewis <plewis@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Nikhil Bysani <nikron@gmail.com>
+# Contributor: Mika Hynnä <igheax@gmail.com>
+# Contributor: Jonathan Conder <jonno.conder@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=mediatomb
+pkgver=0.12.1
+pkgrel=11
+pkgdesc="Free UPnP/DLNA media server"
+arch=('i686' 'x86_64')
+url="http://mediatomb.cc/"
+license=('GPL')
+depends=('file' 'curl' 'ffmpegthumbnailer' 'js' 'libexif' 'libmp4v2' 'sqlite3' 'taglib' 'libmysqlclient')
+optdepends=('mysql: to store your music database in mysql')
+backup=('etc/conf.d/mediatomb')
+install=mediatomb.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'mediatomb.rc'
+ 'mediatomb.conf'
+ 'gcc46.patch'
+ 'tonewjs.patch'
+ 'jsparse.patch'
+ 'libav_0.7_support.patch'
+ 'libmp4v2_191_p497.patch'
+ 'libavformat.patch')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/gcc46.patch"
+ patch -Np1 -i "$srcdir/tonewjs.patch"
+ patch -Np1 -i "$srcdir/jsparse.patch"
+ patch -Np1 -i "$srcdir/libav_0.7_support.patch"
+ patch -Np1 -i "$srcdir/libmp4v2_191_p497.patch"
+ patch -Np1 -i "$srcdir/libavformat.patch"
+
+ ./configure --prefix=/usr \
+ --enable-mysql \
+ --enable-libmagic \
+ --enable-libjs \
+ --enable-ffmpeg
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -D -m0755 "$srcdir/mediatomb.rc" "$pkgdir/etc/rc.d/mediatomb"
+ install -D -m0755 "$srcdir/mediatomb.conf" "$pkgdir/etc/conf.d/mediatomb"
+ install -d "$pkgdir/var/lib/mediatomb"
+}
+sha256sums=('31163c34a7b9d1c9735181737cb31306f29f1f2a0335fb4f53ecccf8f62f11cd'
+ '1a67a1deb8a41467fe9bbf66358a255f0df97b0170a5fc3d48c1f768c8d328b9'
+ 'ba9753a4a380d4c717c987efec03a3c6d401d3ff93a6fced28098adbd3a44cc9'
+ '0c02a20032f0c296800b1bb9644638970c2dedbc5ab7141d66a637235e9da6ce'
+ '2cd8f5628c3a38b290526f008bae351b90211825f86e5959bf95f140748de574'
+ 'd9a3062858900d32b977f0d50d168fd7d36785b6ecc038c019e661e27f7b1c17'
+ 'c6523e8bf5e2da89b7475d6777ef9bffe7d089752ef2f7b27b5e39a4130fb0ff'
+ 'd39c2f9aab051c5447461718fd0ec72cf5982f6c920a4a985a50831f34babe84'
+ '76b11706d70ed8f5e157d96ca441c90c46c42176102fcb651b4ab1102b61bfee')
diff --git a/pcr/mediatomb/gcc46.patch b/pcr/mediatomb/gcc46.patch
new file mode 100644
index 000000000..0f4fe490f
--- /dev/null
+++ b/pcr/mediatomb/gcc46.patch
@@ -0,0 +1,10 @@
+--- a/src/zmm/object.h
++++ b/src/zmm/object.h
+@@ -33,6 +33,7 @@
+ #define __ZMM_OBJECT_H__
+
+ #include <new> // for size_t
++#include <cstddef>
+ #include "atomic.h"
+
+ namespace zmm
diff --git a/pcr/mediatomb/jsparse.patch b/pcr/mediatomb/jsparse.patch
new file mode 100644
index 000000000..9938939b0
--- /dev/null
+++ b/pcr/mediatomb/jsparse.patch
@@ -0,0 +1,144 @@
+diff -rup mediatomb-0.12.1/src/scripting/js_functions.cc ../mediatomb-0.12.1/src/scripting/js_functions.cc
+--- mediatomb-0.12.1/src/scripting/js_functions.cc 2011-06-29 21:51:13.641025479 -0400
++++ ../mediatomb-0.12.1/src/scripting/js_functions.cc 2011-06-29 21:49:21.071800273 -0400
+@@ -51,15 +51,28 @@ extern "C" {
+ JSBool
+ js_print(JSContext *cx, uintN argc, jsval *argv)
+ {
+- uintN i;
++ uintN i, j;
+ JSString *str;
+
+ for (i = 0; i < argc; i++)
+ {
+- str = JS_ValueToString(cx, argv[i]);
++ String fmtStr;
++ for (j = 0; j < argc; j++)
++ {
++ if (j == i)
++ fmtStr = fmtStr + "S";
++ else
++ fmtStr = fmtStr + "*";
++ }
++ if(!JS_ConvertArguments(cx, 1, JS_ARGV(cx, argv), fmtStr.c_str(), &str))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++
+ if (!str)
+ return JS_TRUE;
+- argv[i] = STRING_TO_JSVAL(str);
++
+ char * log_str = JS_EncodeString(cx, str);
+ log_js("%s\n", log_str);
+ JS_free(cx, log_str);
+@@ -116,24 +129,54 @@ js_addCdsObject(JSContext *cx, uintN arg
+ {
+ try
+ {
+- jsval arg;
+- JSString *str;
+- String path;
+- String containerclass;
++ // Inputs from native code
++ JSObject *js_cds_obj = NULL;
++ JSString *str = NULL;
++ JSString *cont = NULL;
+
+- JSObject *js_cds_obj;
++ String path = nil;
++ String containerclass = nil;
++
++ JSObject *obj = JS_THIS_OBJECT(cx, argv);
+ JSObject *js_orig_obj = NULL;
+ Ref<CdsObject> orig_object;
+
+ Ref<StringConverter> p2i;
+ Ref<StringConverter> i2i;
++ switch (argc)
++ {
++ case 0:
++ log_debug("No input arguments given\n");
++ return JS_FALSE;
++ case 1:
++ if(!JS_ConvertArguments(cx, 1, JS_ARGV(cx, argv), "o", &js_cds_obj))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++ break;
++ case 2:
++ if(!JS_ConvertArguments(cx, 2, JS_ARGV(cx, argv), "oS", &js_cds_obj, &str))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++ break;
++ default:
++ if(!JS_ConvertArguments(cx, 3, JS_ARGV(cx, argv), "oSS", &js_cds_obj, &str, &cont))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++ break;
++ }
+
+- Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
++ Script *self = (Script *)JS_GetPrivate(cx, obj);
+
+ if (self == NULL)
+ {
+ log_debug("Could not retrieve class instance from global object\n");
+- return JS_FALSE;
++ return JS_TRUE;
+ }
+
+ if (self->whoami() == S_PLAYLIST)
+@@ -144,23 +187,14 @@ js_addCdsObject(JSContext *cx, uintN arg
+ {
+ i2i = StringConverter::i2i();
+ }
+-
+- arg = argv[0];
+- if (!JSVAL_IS_OBJECT(arg))
+- return JS_TRUE;
+- if (!JS_ValueToObject(cx, arg, &js_cds_obj))
+- return JS_TRUE;
+
+- // root it
+- argv[0] = OBJECT_TO_JSVAL(js_cds_obj);
+
+- str = JS_ValueToString(cx, argv[1]);
+ if (!str)
+ path = _("/");
+ else
+ path = JS_EncodeString(cx, str);
+
+- JSString *cont = JS_ValueToString(cx, argv[2]);
++
+ if (cont)
+ {
+ containerclass = JS_EncodeString(cx, cont);
+@@ -169,9 +203,9 @@ js_addCdsObject(JSContext *cx, uintN arg
+ }
+
+ if (self->whoami() == S_PLAYLIST)
+- js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("playlist"));
++ js_orig_obj = self->getObjectProperty(obj, _("playlist"));
+ else if (self->whoami() == S_IMPORT)
+- js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("orig"));
++ js_orig_obj = self->getObjectProperty(obj, _("orig"));
+
+ if (js_orig_obj == NULL)
+ {
+@@ -179,9 +213,6 @@ js_addCdsObject(JSContext *cx, uintN arg
+ return JS_TRUE;
+ }
+
+- // root it
+- argv[1] = OBJECT_TO_JSVAL(js_orig_obj);
+-
+ orig_object = self->jsObject2cdsObject(js_orig_obj, self->getProcessedObject());
+ if (orig_object == nil)
+ return JS_TRUE;
diff --git a/pcr/mediatomb/libav_0.7_support.patch b/pcr/mediatomb/libav_0.7_support.patch
new file mode 100644
index 000000000..e25697c50
--- /dev/null
+++ b/pcr/mediatomb/libav_0.7_support.patch
@@ -0,0 +1,64 @@
+=== modified file 'src/metadata/ffmpeg_handler.cc'
+--- old/src/metadata/ffmpeg_handler.cc 2010-08-25 17:07:03 +0000
++++ new/src/metadata/ffmpeg_handler.cc 2011-05-19 04:33:32 +0000
+@@ -89,6 +89,33 @@
+
+ Ref<StringConverter> sc = StringConverter::m2i();
+
++ /* Tabs are 4 characters here */
++ typedef struct {const char *avname; metadata_fields_t field;} mapping_t;
++ static const mapping_t mapping[] =
++ {
++ {"title", M_TITLE},
++ {"artist", M_ARTIST},
++ {"album", M_ALBUM},
++ {"date", M_DATE},
++ {"genre", M_GENRE},
++ {"comment", M_DESCRIPTION},
++ {"track", M_TRACKNUMBER},
++ {NULL, M_MAX},
++ };
++
++ if (!pFormatCtx->metadata)
++ return;
++ for (const mapping_t *m = mapping; m->avname != NULL; m++)
++ {
++ AVMetadataTag *tag = NULL;
++ tag = av_metadata_get(pFormatCtx->metadata, m->avname, NULL, 0);
++ if (tag && tag->value && tag->value[0])
++ {
++ log_debug("Added metadata %s: %s\n", m->avname, tag->value);
++ item->setMetadata(MT_KEYS[m->field].upnp, sc->convert(tag->value));
++ }
++ }
++ /* Old algorithm (doesn't work with libav >= 0.7)
+ if (strlen(pFormatCtx->title) > 0)
+ {
+ log_debug("Added metadata title: %s\n", pFormatCtx->title);
+@@ -131,6 +158,7 @@
+ item->setMetadata(MT_KEYS[M_TRACKNUMBER].upnp,
+ sc->convert(String::from(pFormatCtx->track)));
+ }
++ */
+ }
+
+ // ffmpeg library calls
+@@ -178,7 +206,7 @@
+ for(i=0; i<pFormatCtx->nb_streams; i++)
+ {
+ AVStream *st = pFormatCtx->streams[i];
+- if((st != NULL) && (videoset == false) && (st->codec->codec_type == CODEC_TYPE_VIDEO))
++ if((st != NULL) && (videoset == false) && (st->codec->codec_type == AVMEDIA_TYPE_VIDEO))
+ {
+ if (st->codec->codec_tag > 0)
+ {
+@@ -209,7 +237,7 @@
+ *y = st->codec->height;
+ }
+ }
+- if(st->codec->codec_type == CODEC_TYPE_AUDIO)
++ if(st->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+ {
+ // Increase number of audiochannels
+ audioch++;
+
diff --git a/pcr/mediatomb/libavformat.patch b/pcr/mediatomb/libavformat.patch
new file mode 100644
index 000000000..96685ea15
--- /dev/null
+++ b/pcr/mediatomb/libavformat.patch
@@ -0,0 +1,52 @@
+--- mediatomb-0.12.1.orig/src/metadata/ffmpeg_handler.cc 2012-06-18 02:50:35.000000000 -0400
++++ mediatomb-0.12.1/src/metadata/ffmpeg_handler.cc 2012-06-18 02:59:02.000000000 -0400
+@@ -107,8 +107,8 @@
+ return;
+ for (const mapping_t *m = mapping; m->avname != NULL; m++)
+ {
+- AVMetadataTag *tag = NULL;
+- tag = av_metadata_get(pFormatCtx->metadata, m->avname, NULL, 0);
++ AVDictionaryEntry *tag = NULL;
++ tag = av_dict_get(pFormatCtx->metadata, m->avname, NULL, 0);
+ if (tag && tag->value && tag->value[0])
+ {
+ log_debug("Added metadata %s: %s\n", m->avname, tag->value);
+@@ -278,7 +278,7 @@
+ int x = 0;
+ int y = 0;
+
+- AVFormatContext *pFormatCtx;
++ AVFormatContext *pFormatCtx = avformat_alloc_context();
+
+ // Suppress all log messages
+ av_log_set_callback(FfmpegNoOutputStub);
+@@ -286,15 +286,15 @@
+ // Register all formats and codecs
+ av_register_all();
+
+- // Open video file
+- if (av_open_input_file(&pFormatCtx,
+- item->getLocation().c_str(), NULL, 0, NULL) != 0)
++ // Open video file
++ if (avformat_open_input(&pFormatCtx,
++ item->getLocation().c_str(), NULL, NULL) != 0)
+ return; // Couldn't open file
+
+ // Retrieve stream information
+- if (av_find_stream_info(pFormatCtx) < 0)
++ if (avformat_find_stream_info(pFormatCtx,NULL) < 0)
+ {
+- av_close_input_file(pFormatCtx);
++ avformat_close_input(&pFormatCtx);
+ return; // Couldn't find stream information
+ }
+ // Add metadata using ffmpeg library calls
+@@ -303,7 +303,7 @@
+ addFfmpegResourceFields(item, pFormatCtx, &x, &y);
+
+ // Close the video file
+- av_close_input_file(pFormatCtx);
++ avformat_close_input(&pFormatCtx);
+ }
+
+ Ref<IOHandler> FfmpegHandler::serveContent(Ref<CdsItem> item, int resNum, off_t *data_size)
diff --git a/pcr/mediatomb/libmp4v2_191_p497.patch b/pcr/mediatomb/libmp4v2_191_p497.patch
new file mode 100644
index 000000000..6a6b51e1e
--- /dev/null
+++ b/pcr/mediatomb/libmp4v2_191_p497.patch
@@ -0,0 +1,187 @@
+diff -urN old/src/metadata/libmp4v2_handler.cc new/src/metadata/libmp4v2_handler.cc
+--- old/src/metadata/libmp4v2_handler.cc 2012-04-05 01:46:26.000000000 +0200
++++ new/src/metadata/libmp4v2_handler.cc 2012-04-05 02:01:24.000000000 +0200
+@@ -65,29 +65,28 @@
+ static void addMetaField(metadata_fields_t field, MP4FileHandle mp4, Ref<CdsItem> item)
+ {
+ String value;
+- char* mp4_retval = NULL;
+- u_int16_t track;
+- u_int16_t total_tracks;
+-
+ Ref<StringConverter> sc = StringConverter::i2i();
+
++ const MP4Tags* new_tags = MP4TagsAlloc();
++
++ if (!MP4TagsFetch(new_tags, mp4))
++ return;
++
+ switch (field)
+ {
+ case M_TITLE:
+- MP4GetMetadataName(mp4, &mp4_retval);
++ value = new_tags->name;
+ break;
+ case M_ARTIST:
+- MP4GetMetadataArtist(mp4, &mp4_retval);
++ value = new_tags->artist;
+ break;
+ case M_ALBUM:
+- MP4GetMetadataAlbum(mp4, &mp4_retval);
++ value = new_tags->album;
+ break;
+ case M_DATE:
+- MP4GetMetadataYear(mp4, &mp4_retval);
+- if (mp4_retval)
++ value = new_tags->releaseDate;
++ if (value.length() > 0)
+ {
+- value = mp4_retval;
+- free(mp4_retval);
+ if (string_ok(value))
+ value = value + "-01-01";
+ else
+@@ -95,34 +94,31 @@
+ }
+ break;
+ case M_GENRE:
+- MP4GetMetadataGenre(mp4, &mp4_retval);
++ value = new_tags->genre;
+ break;
+ case M_DESCRIPTION:
+- MP4GetMetadataComment(mp4, &mp4_retval);
++ value = new_tags->comments;
+ break;
+ case M_TRACKNUMBER:
+- MP4GetMetadataTrack(mp4, &track, &total_tracks);
+- if (track > 0)
++ if (new_tags->track)
+ {
+- value = String::from(track);
+- item->setTrackNumber((int)track);
++ value = String::from(new_tags->track->index);
++ item->setTrackNumber((int)new_tags->track->index);
+ }
+ else
++ {
++ MP4TagsFree( new_tags );
+ return;
++ }
+ break;
+ default:
++ MP4TagsFree( new_tags );
+ return;
+ }
+
+- if ((field != M_DATE) && (field != M_TRACKNUMBER) &&
+- (mp4_retval))
+- {
+- value = mp4_retval;
+- free(mp4_retval);
+- }
+-
++ MP4TagsFree( new_tags );
+ value = trim_string(value);
+-
++
+ if (string_ok(value))
+ {
+ item->setMetadata(MT_KEYS[field].upnp, sc->convert(value));
+@@ -190,14 +186,19 @@
+ }
+
+ #if defined(HAVE_MAGIC)
+- u_int8_t *art_data;
+- u_int32_t art_data_len;
++ void *art_data = 0;
++ u_int32_t art_data_len = 0;
+ String art_mimetype;
++
++ const MP4Tags* new_tags = MP4TagsAlloc();
++ MP4TagsFetch(new_tags, mp4);
++ if (new_tags->artworkCount)
++ {
++ art_data = new_tags->artwork->data;
++ art_data_len = new_tags->artwork->size;
++ }
+ #ifdef HAVE_MP4_GET_METADATA_COVER_ART_COUNT
+- if (MP4GetMetadataCoverArtCount(mp4) &&
+- MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len))
+-#else
+- MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len);
++ if (new_tags->artworkCount && art_data_len > 0)
+ #endif
+ {
+ if (art_data)
+@@ -211,11 +212,10 @@
+ }
+ catch (Exception ex)
+ {
+- free(art_data);
++ MP4TagsFree(new_tags);
+ throw ex;
+ }
+
+- free(art_data);
+ if (art_mimetype != _(MIMETYPE_DEFAULT))
+ {
+ Ref<CdsResource> resource(new CdsResource(CH_MP4));
+@@ -225,6 +225,7 @@
+ }
+ }
+ }
++ MP4TagsFree(new_tags);
+ #endif
+ MP4Close(mp4);
+ }
+@@ -249,26 +250,35 @@
+
+ if (ctype != ID3_ALBUM_ART)
+ throw _Exception(_("LibMP4V2Handler: got unknown content type: ") + ctype);
++
++ const MP4Tags* new_tags = MP4TagsAlloc();
++ if (MP4TagsFetch(new_tags, mp4))
++ {
+ #ifdef HAVE_MP4_GET_METADATA_COVER_ART_COUNT
+- if (!MP4GetMetadataCoverArtCount(mp4))
+- throw _Exception(_("LibMP4V2Handler: resource has no album art information"));
++ if (!new_tags->artworkCount)
++ throw _Exception(_("LibMP4V2Handler: resource has no album art information"));
+ #endif
+- u_int8_t *art_data;
+- u_int32_t art_data_len;
+- if (MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len))
+- {
+- if (art_data)
++ void *art_data = 0;
++ u_int32_t art_data_len;
++
++ const MP4TagArtwork* art = new_tags->artwork;
++ art_data = art->data;
++ art_data_len = art->size;
++ if (art)
+ {
+- *data_size = (off_t)art_data_len;
+- Ref<IOHandler> h(new MemIOHandler((void *)art_data, art_data_len));
+- free(art_data);
+- return h;
++ if (art_data)
++ {
++ *data_size = (off_t)art_data_len;
++ Ref<IOHandler> h(new MemIOHandler(art_data, art_data_len));
++ MP4TagsFree(new_tags);
++ return h;
++ }
+ }
++ MP4TagsFree(new_tags);
+ }
+-
+ throw _Exception(_("LibMP4V2Handler: could not serve album art "
+- "for file") + item->getLocation() +
+- " - embedded image not found");
++ "for file") + item->getLocation() +
++ " - embedded image not found");
+ }
+
+ #endif // HAVE_LIBMP4V2
+De binära filerna old/src/metadata/.libmp4v2_handler.cc.swp och new/src/metadata/.libmp4v2_handler.cc.swp skiljer
diff --git a/pcr/mediatomb/mediatomb.conf b/pcr/mediatomb/mediatomb.conf
new file mode 100644
index 000000000..798018d2a
--- /dev/null
+++ b/pcr/mediatomb/mediatomb.conf
@@ -0,0 +1,23 @@
+#
+# Parameters to be passed to mediatomb
+#
+
+# Port to listen on
+MT_PORT='50500'
+
+# User and group to run as
+MT_USER='nobody'
+MT_GROUP='nobody'
+
+# Location of the PID file
+MT_PIDFILE='/var/run/mediatomb.pid'
+
+# Location of the log file
+MT_LOGFILE='/var/log/mediatomb.log'
+
+# Location of the config file/database
+MT_HOME='/var/lib/mediatomb'
+MT_CFGDIR='.mediatomb'
+
+# User defined command line options
+MT_OPTIONS=''
diff --git a/pcr/mediatomb/mediatomb.install b/pcr/mediatomb/mediatomb.install
new file mode 100644
index 000000000..56f6ef92c
--- /dev/null
+++ b/pcr/mediatomb/mediatomb.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo 'Warning: the MediaTomb web interface exposes your filesystem to the network'
+ echo 'For maximum security, set <ui enabled="no"> in your MediaTomb config file'
+}
+
+post_upgrade() {
+ # TODO: disable next update
+ post_install
+}
diff --git a/pcr/mediatomb/mediatomb.rc b/pcr/mediatomb/mediatomb.rc
new file mode 100644
index 000000000..7b93012cd
--- /dev/null
+++ b/pcr/mediatomb/mediatomb.rc
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/mediatomb
+
+MT_OPTIONS="-p $MT_PORT -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE \
+ -l $MT_LOGFILE -m $MT_HOME -f $MT_CFGDIR $MT_OPTIONS"
+
+case "$1" in
+ start)
+ stat_busy "Starting Mediatomb UPnP Media Server"
+
+ chown "$MT_USER:$MT_GROUP" "$MT_HOME"
+
+ if ! pidof -o %PPID /usr/bin/mediatomb &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ fi
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -z "$PID" ] && /usr/bin/mediatomb -d $MT_OPTIONS; then
+ add_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Mediatomb UPnP Media Server"
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -n "$PID" ] && kill "$PID" &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ rm_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ restart)
+ "$0" stop
+ sleep 1
+ "$0" start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/pcr/mediatomb/tonewjs.patch b/pcr/mediatomb/tonewjs.patch
new file mode 100644
index 000000000..115968530
--- /dev/null
+++ b/pcr/mediatomb/tonewjs.patch
@@ -0,0 +1,564 @@
+diff -up mediatomb-0.12.1-back/build/Makefile.in.tonewjs mediatomb-0.12.1-back/build/Makefile.in
+--- mediatomb-0.12.1-back/build/Makefile.in.tonewjs 2010-04-08 00:40:15.000000000 +0200
++++ mediatomb-0.12.1-back/build/Makefile.in 2011-04-19 17:17:01.343509944 +0200
+@@ -257,7 +257,7 @@ CURL_LIBS = @CURL_LIBS@
+ CXX = @CXX@
+ CXXCPP = @CXXCPP@
+ CXXDEPMODE = @CXXDEPMODE@
+-CXXFLAGS = @CXXFLAGS@
++CXXFLAGS = -fpermissive @CXXFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DB_AUTOCREATE_OPTION_ENABLED = @DB_AUTOCREATE_OPTION_ENABLED@
+ DB_AUTOCREATE_OPTION_REQUESTED = @DB_AUTOCREATE_OPTION_REQUESTED@
+diff -up mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/import_script.cc
+--- mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs 2011-04-18 13:10:48.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/import_script.cc 2011-04-18 13:29:36.000000000 +0200
+@@ -53,8 +53,8 @@ ImportScript::ImportScript(Ref<Runtime>
+ try
+ {
+ load(scriptPath);
+- root = JS_NewScriptObject(cx, script);
+- JS_AddNamedRoot(cx, &root, "ImportScript");
++ root = JS_NewObject(cx, NULL, script, NULL);
++ JS_AddNamedObjectRoot(cx, &root, "ImportScript");
+ }
+ catch (Exception ex)
+ {
+@@ -117,7 +117,7 @@ ImportScript::~ImportScript()
+ #endif
+
+ if (root)
+- JS_RemoveRoot(cx, &root);
++ JS_RemoveObjectRoot(cx, &root);
+
+ #ifdef JS_THREADSAFE
+ JS_EndRequest(cx);
+diff -up mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.cc
+--- mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs 2011-04-18 13:29:55.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/js_functions.cc 2011-04-19 16:48:04.009229611 +0200
+@@ -49,7 +49,7 @@ using namespace zmm;
+ extern "C" {
+
+ JSBool
+-js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_print(JSContext *cx, uintN argc, jsval *argv)
+ {
+ uintN i;
+ JSString *str;
+@@ -60,19 +60,21 @@ js_print(JSContext *cx, JSObject *obj, u
+ if (!str)
+ return JS_TRUE;
+ argv[i] = STRING_TO_JSVAL(str);
+- log_js("%s\n", JS_GetStringBytes(str));
++ char * log_str = JS_EncodeString(cx, str);
++ log_js("%s\n", log_str);
++ JS_free(cx, log_str);
+ }
+ return JS_TRUE;
+ }
+
+ JSBool
+-js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_copyObject(JSContext *cx, uintN argc, jsval *argv)
+ {
+ jsval arg;
+ JSObject *js_cds_obj;
+ JSObject *js_cds_clone_obj;
+
+- Script *self = (Script *)JS_GetPrivate(cx, obj);
++ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ try
+ {
+@@ -91,7 +93,7 @@ js_copyObject(JSContext *cx, JSObject *o
+
+ self->cdsObject2jsObject(cds_obj, js_cds_clone_obj);
+
+- *rval = OBJECT_TO_JSVAL(js_cds_clone_obj);
++ JS_SET_RVAL(cx, argv, OBJECT_TO_JSVAL(js_cds_clone_obj));
+
+ return JS_TRUE;
+
+@@ -110,7 +112,7 @@ js_copyObject(JSContext *cx, JSObject *o
+ }
+
+ JSBool
+-js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_addCdsObject(JSContext *cx, uintN argc, jsval *argv)
+ {
+ try
+ {
+@@ -126,7 +128,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ Ref<StringConverter> p2i;
+ Ref<StringConverter> i2i;
+
+- Script *self = (Script *)JS_GetPrivate(cx, obj);
++ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ if (self == NULL)
+ {
+@@ -156,20 +158,20 @@ js_addCdsObject(JSContext *cx, JSObject
+ if (!str)
+ path = _("/");
+ else
+- path = JS_GetStringBytes(str);
++ path = JS_EncodeString(cx, str);
+
+ JSString *cont = JS_ValueToString(cx, argv[2]);
+ if (cont)
+ {
+- containerclass = JS_GetStringBytes(cont);
++ containerclass = JS_EncodeString(cx, cont);
+ if (!string_ok(containerclass) || containerclass == "undefined")
+ containerclass = nil;
+ }
+
+ if (self->whoami() == S_PLAYLIST)
+- js_orig_obj = self->getObjectProperty(obj, _("playlist"));
++ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("playlist"));
+ else if (self->whoami() == S_IMPORT)
+- js_orig_obj = self->getObjectProperty(obj, _("orig"));
++ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("orig"));
+
+ if (js_orig_obj == NULL)
+ {
+@@ -285,8 +287,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ JSString *str2 = JS_NewStringCopyN(cx, tmp.c_str(), tmp.length());
+ if (!str2)
+ return JS_TRUE;
+- *rval = STRING_TO_JSVAL(str2);
+-
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2));
+ return JS_TRUE;
+ }
+ catch (ServerShutdownException se)
+@@ -302,7 +303,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ return JS_TRUE;
+ }
+
+-static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval, charset_convert_t chr)
++static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, charset_convert_t chr)
+ {
+ try
+ {
+@@ -321,7 +322,7 @@ static JSBool convert_charset_generic(JS
+ {
+ str = JS_ValueToString(cx, argv[0]);
+ if (str)
+- result = JS_GetStringBytes(str);
++ result = JS_EncodeString(cx, str);
+ }
+
+ if (result != nil)
+@@ -330,7 +331,7 @@ static JSBool convert_charset_generic(JS
+ JSString *str2 = JS_NewStringCopyN(cx, result.c_str(), result.length());
+ if (!str2)
+ return JS_TRUE;
+- *rval = STRING_TO_JSVAL(str2);
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2));
+ }
+ }
+ catch (ServerShutdownException se)
+@@ -347,24 +348,23 @@ static JSBool convert_charset_generic(JS
+ }
+
+
+-JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, F2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, F2I);
+ }
+
+-JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, M2I);
+-}
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, M2I); }
+
+-JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, P2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, P2I);
+ }
+
+-JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, J2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, J2I);
+ }
+
+ } // extern "C"
+diff -up mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.h
+--- mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs 2010-03-25 15:58:05.000000000 +0100
++++ mediatomb-0.12.1-back/src/scripting/js_functions.h 2011-04-18 13:59:29.000000000 +0200
+@@ -40,18 +40,18 @@
+ extern "C" {
+
+ /// \brief Log output.
+-JSBool js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_print(JSContext *cx, uintN argc, jsval *argv);
+
+ /// \brief Adds an object to the database.
+-JSBool js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_addCdsObject(JSContext *cx, uintN argc, jsval *argv);
+
+ /// \brief Makes a copy of an CDS object.
+-JSBool js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_copyObject(JSContext *cx, uintN argc, jsval *argv);
+
+-JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv);
+
+ } // extern "C"
+
+diff -up mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc
+--- mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs 2011-04-18 13:34:14.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc 2011-04-18 13:51:59.000000000 +0200
+@@ -46,9 +46,9 @@ using namespace zmm;
+ extern "C" {
+
+ static JSBool
+-js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_readln(JSContext *cx, uintN argc, jsval *argv)
+ {
+- PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, obj);
++ PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ String line;
+
+@@ -69,7 +69,7 @@ js_readln(JSContext *cx, JSObject *obj,
+
+ JSString *jsline = JS_NewStringCopyZ(cx, line.c_str());
+
+- *rval = STRING_TO_JSVAL(jsline);
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(jsline));
+
+ return JS_TRUE;
+ }
+@@ -93,8 +93,8 @@ PlaylistParserScript::PlaylistParserScri
+
+ String scriptPath = ConfigManager::getInstance()->getOption(CFG_IMPORT_SCRIPTING_PLAYLIST_SCRIPT);
+ load(scriptPath);
+- root = JS_NewScriptObject(cx, script);
+- JS_AddNamedRoot(cx, &root, "PlaylistScript");
++ root = JS_NewObject(cx, NULL, script, NULL);
++ JS_AddNamedObjectRoot(cx, &root, "PlaylistScript");
+ }
+ catch (Exception ex)
+ {
+@@ -245,7 +245,7 @@ PlaylistParserScript::~PlaylistParserScr
+ #endif
+
+ if (root)
+- JS_RemoveRoot(cx, &root);
++ JS_RemoveObjectRoot(cx, &root);
+
+ #ifdef JS_THREADSAFE
+ JS_EndRequest(cx);
+diff -up mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/script.cc
+--- mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs 2011-04-18 13:53:07.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/script.cc 2011-04-19 18:26:34.460338804 +0200
+@@ -87,7 +87,7 @@ String Script::getProperty(JSObject *obj
+ str = JS_ValueToString(cx, val);
+ if (! str)
+ return nil;
+- return JS_GetStringBytes(str);
++ return JS_EncodeString(cx, str);
+ }
+
+ int Script::getBoolProperty(JSObject *obj, String name)
+@@ -427,14 +427,14 @@ static JSFunctionSpec js_global_function
+ try
+ {
+ common_script = _load(common_scr_path);
+- common_root = JS_NewScriptObject(cx, common_script);
+- JS_AddNamedRoot(cx, &common_root, "common-script");
++ common_root = JS_NewObject(cx, NULL, common_script, NULL);
++ JS_AddNamedObjectRoot(cx, &common_root, "common-script");
+ _execute(common_script);
+ }
+ catch (Exception e)
+ {
+ if (common_root)
+- JS_RemoveRoot(cx, &common_root);
++ JS_RemoveObjectRoot(cx, &common_root);
+
+ log_js("Unable to load %s: %s\n", common_scr_path.c_str(),
+ e.getMessage().c_str());
+@@ -460,7 +460,7 @@ Script::~Script()
+ JS_BeginRequest(cx);
+ #endif
+ if (common_root)
+- JS_RemoveRoot(cx, &common_root);
++ JS_RemoveObjectRoot(cx, &common_root);
+
+ /*
+ * scripts are unrooted and will be cleaned up by GC
+@@ -504,11 +504,11 @@ void Script::initGlobalObject()
+ static JSClass global_class =
+ {
+ "global", /* name */
+- JSCLASS_HAS_PRIVATE, /* flags */
++ JSCLASS_HAS_PRIVATE | JSCLASS_GLOBAL_FLAGS,/* flags */
+ JS_PropertyStub, /* add property */
+ JS_PropertyStub, /* del property */
+ JS_PropertyStub, /* get property */
+- JS_PropertyStub, /* set property */
++ JS_StrictPropertyStub, /* set property */
+ JS_EnumerateStandardClasses, /* enumerate */
+ JS_ResolveStub, /* resolve */
+ JS_ConvertStub, /* convert */
+@@ -517,7 +517,7 @@ void Script::initGlobalObject()
+ };
+
+ /* create the global object here */
+- glob = JS_NewObject(cx, &global_class, NULL, NULL);
++ glob = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL);
+ if (! glob)
+ throw _Exception(_("Scripting: could not initialize glboal class"));
+
+@@ -539,12 +539,12 @@ void Script::defineFunctions(JSFunctionS
+ throw _Exception(_("Scripting: JS_DefineFunctions failed"));
+ }
+
+-JSScript *Script::_load(zmm::String scriptPath)
++JSObject *Script::_load(zmm::String scriptPath)
+ {
+ if (glob == NULL)
+ initGlobalObject();
+
+- JSScript *scr;
++ JSObject *scr;
+
+ String scriptText = read_text_file(scriptPath);
+
+@@ -571,14 +571,11 @@ JSScript *Script::_load(zmm::String scri
+
+ void Script::load(zmm::String scriptPath)
+ {
+- if (script)
+- JS_DestroyScript(cx, script);
+-
+ script = _load((scriptPath));
+ }
+
+
+-void Script::_execute(JSScript *scr)
++void Script::_execute(JSObject *scr)
+ {
+ jsval ret_val;
+
+@@ -662,7 +659,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec
+ JSObject *js_meta = getObjectProperty(js, _("meta"));
+ if (js_meta)
+ {
+- JS_AddNamedRoot(cx, &js_meta, "meta");
++ JS_AddNamedObjectRoot(cx, &js_meta, "meta");
+ /// \todo: only metadata enumerated in MT_KEYS is taken
+ for (int i = 0; i < M_MAX; i++)
+ {
+@@ -687,7 +684,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec
+ }
+ }
+ }
+- JS_RemoveRoot(cx, &js_meta);
++ JS_RemoveObjectRoot(cx, &js_meta);
+ }
+
+ // stuff that has not been exported to js
+diff -up mediatomb-0.12.1-back/src/scripting/script.h.tonewjs mediatomb-0.12.1-back/src/scripting/script.h
+--- mediatomb-0.12.1-back/src/scripting/script.h.tonewjs 2011-04-18 12:56:14.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/script.h 2011-04-18 12:56:51.000000000 +0200
+@@ -66,8 +66,8 @@ public:
+ JSRuntime *rt;
+ JSContext *cx;
+ JSObject *glob;
+- JSScript *script;
+- JSScript *common_script;
++ JSObject *script;
++ JSObject *common_script;
+
+ public:
+ Script(zmm::Ref<Runtime> runtime);
+@@ -115,8 +115,8 @@ private:
+ JSObject *common_root;
+
+ void initGlobalObject();
+- JSScript *_load(zmm::String scriptPath);
+- void _execute(JSScript *scr);
++ JSObject *_load(zmm::String scriptPath);
++ void _execute(JSObject *scr);
+ zmm::Ref<StringConverter> _p2i;
+ zmm::Ref<StringConverter> _j2i;
+ zmm::Ref<StringConverter> _f2i;
+--- mediatomb-0.12.1/configure.tonewjs 2011-07-04 20:20:00.290227110 +1200
++++ mediatomb-0.12.1/configure 2011-07-04 20:20:28.186894644 +1200
+@@ -23784,14 +23784,14 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+
+ else
+
+- LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs $ADD_PTHREAD_CFLAGS"
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs185 $ADD_PTHREAD_CFLAGS"
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -23835,12 +23835,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -23848,12 +23848,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs"
+- MOZLIB=mozjs
++ JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs185"
++ MOZLIB=mozjs185
+
+ else
+
+@@ -24020,13 +24020,13 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+ else
+
+ unset ac_cv_lib_smjs_JS_NewObject
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -24070,12 +24070,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -24083,12 +24083,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- MOZLIB=mozjs
+- JS_LIBS="-lmozjs"
++ MOZLIB=mozjs185
++ JS_LIBS="-lmozjs185"
+
+ else
+
+@@ -24239,15 +24239,15 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+
+ else
+
+- LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs"
+- unset ac_cv_lib_mozjs_JS_NewObject
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs185"
++ unset ac_cv_lib_mozjs185_JS_NewObject
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -24291,12 +24291,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -24304,12 +24304,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs"
+- MOZLIB=mozjs
++ JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs185"
++ MOZLIB=mozjs185
+
+ else
+
diff --git a/pcr/mednafen-server/PKGBUILD b/pcr/mednafen-server/PKGBUILD
new file mode 100644
index 000000000..9968dde38
--- /dev/null
+++ b/pcr/mednafen-server/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=mednafen-server
+_pkgname=${pkgname%-server}
+pkgver=0.5.0
+pkgrel=2
+pkgdesc='A server multi-system gaming emulator'
+url=http://$_pkgname.sourceforge.net/
+license=GPL2
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+backup=etc/$pkgname/standard.conf
+source=(
+ http://downloads.sourceforge.net/project/$_pkgname/${_pkgname^}-Server/$pkgver/$pkgname-$pkgver.tar.gz
+ $pkgname.service
+)
+sha512sums=(
+ 700b2021e5085761b90bb5ee802ff9ccded3cdade76682fe9faa98ebbb0653c9b00baea5baa1c486f850bad606aae33a88e4d9486015babb210648aa0cd4542d
+ cd3d19b789ec7f62c4b8f5fe0f93e7836fab5406a3416434701caf6404cce02c7223dcb8b82bd1e4b00bdcf4df623f0cd44f850a7f79a7be73e04c0804972700
+)
+
+build() {
+ cd $srcdir/$pkgname
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname
+ make DESTDIR=$pkgdir install
+ install -Dm644 standard.conf $pkgdir/etc/$pkgname/standard.conf
+ install -Dm644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system/$pkgname.service
+}
diff --git a/pcr/mednafen-server/mednafen-server.service b/pcr/mednafen-server/mednafen-server.service
new file mode 100644
index 000000000..9ee392432
--- /dev/null
+++ b/pcr/mednafen-server/mednafen-server.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Mednafen Server Daemon
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/mednafen-server /etc/mednafen-server/standard.conf >/var/log/mednafen-server.log 2>/var/log/mednafen-server.log.2
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/mednafen-server/mednafen-serverd b/pcr/mednafen-server/mednafen-serverd
new file mode 100644
index 000000000..d6033f6af
--- /dev/null
+++ b/pcr/mednafen-server/mednafen-serverd
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# source application-specific settings
+MED_ARGS=
+[ -f /etc/mednafen-server/standard.conf ] && . /etc/mednafen-server/standard.conf
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/bin/mednafen-server)
+case "$1" in
+ start)
+ stat_busy "Starting Mednafen Server Daemon"
+ [ -z "$PID" ] && /usr/bin/mednafen-server ${MED_ARGS} >/var/log/mednafen-server.log 2>/var/log/mednafen-server.log.2
+ PID=$(pidof -o %PPID /usr/bin/mednafen-server)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ add_daemon mednafen-server
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Mednafen Server Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mednafen-server
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/pcr/mesa-nvfx/LICENSE b/pcr/mesa-nvfx/LICENSE
new file mode 100644
index 000000000..ae33d2709
--- /dev/null
+++ b/pcr/mesa-nvfx/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/pcr/mesa-nvfx/PKGBUILD b/pcr/mesa-nvfx/PKGBUILD
new file mode 100644
index 000000000..4caacabf8
--- /dev/null
+++ b/pcr/mesa-nvfx/PKGBUILD
@@ -0,0 +1,129 @@
+# $Id: PKGBUILD 198319 2013-10-30 14:08:41Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+
+pkgbase=mesa-nvfx
+pkgname=('nouveau-nvfx-dri' 'svga-nvfx-dri' 'mesa-nvfx' 'mesa-nvfx-libgl')
+pkgver=8.0.5
+pkgrel=3
+arch=('i686' 'x86_64' 'mips64el')
+makedepends=('python2' 'libxml2' 'libx11' 'glproto' 'libdrm-nvfx' 'dri2proto' 'libxxf86vm' 'libxdamage'
+ 'libvdpau' 'elfutils' 'systemd' 'imake')
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+source=(ftp://ftp.freedesktop.org/pub/mesa/older-versions/${pkgver::1}.x/${pkgver}/MesaLib-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('01305591073a76b65267f69f27d635a3'
+ '5c65a0fe315dd347e09b1f2826a1df5a')
+
+build() {
+ cd ${srcdir}/?esa-*
+
+ autoreconf -vfi # our automake is far too new for their build system :)
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+ --with-gallium-drivers=nouveau,svga,swrast \
+ --with-dri-drivers=swrast \
+ --with-egl-platforms=x11,drm \
+ --with-llvm-shared-libs \
+ --disable-gallium-llvm \
+ --enable-egl \
+ --enable-gallium-egl \
+ --enable-shared-glapi \
+ --enable-gbm \
+ --enable-glx-tls \
+ --enable-dri \
+ --enable-glx \
+ --enable-osmesa \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-texture-float \
+ --enable-xa \
+ --enable-vdpau \
+ --disable-glu
+ # --help
+
+ make
+
+ # fake installation
+ mkdir $srcdir/fakeinstall
+ make DESTDIR=${srcdir}/fakeinstall install
+}
+
+package_nouveau-nvfx-dri() {
+ pkgdesc="Mesa drivers for Nouveau NVFX [NV30 and NV40] (GeForce FX - 7000 series card) video card family (without wayland support)"
+ optdepends=('libtxc_dxtn: S3 Texture Compressed support')
+ depends=("mesa-nvfx-libgl=${pkgver}")
+ provides=('nouveau-dri')
+ conflicts=('nouveau-dri')
+
+ install -m755 -d ${pkgdir}/usr/lib/vdpau/
+ mv -v ${srcdir}/fakeinstall/usr/lib/vdpau/libvdpau_nouveau.* ${pkgdir}/usr/lib/vdpau/
+
+ install -m755 -d ${pkgdir}/usr/lib/xorg/modules/dri
+ mv -v ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/nouveau_dri.so ${pkgdir}/usr/lib/xorg/modules/dri/
+
+ install -m755 -d ${pkgdir}/usr/lib/gallium-pipe
+ mv -v ${srcdir}/fakeinstall/usr/lib/gbm/pipe_nouveau* ${pkgdir}/usr/lib/gallium-pipe/
+
+ # vdpau drivers are buggy with nouveau NVFX, so remove them (FS#36754)
+ rm -rf ${pkgdir}/usr/lib/vdpau/
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/nouveau-nvfx-dri"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/nouveau-nvfx-dri/"
+}
+
+package_svga-nvfx-dri() {
+ pkgdesc="Gallium3D VMware guest GL driver for Nouveau NVFX [NV30 and NV40] (GeForce FX - 7000 series card family (without wayland support)"
+ depends=('libdrm-nvfx' 'expat')
+ provides=('svga-dri')
+ conflicts=('svga-dri')
+
+ install -m755 -d ${pkgdir}/usr/lib/xorg/modules/dri
+ mv -v ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/vmwgfx_dri.so ${pkgdir}/usr/lib/xorg/modules/dri/
+
+ install -m755 -d ${pkgdir}/usr/lib/gallium-pipe
+ mv -v ${srcdir}/fakeinstall/usr/lib/gbm/pipe_vmwgfx* ${pkgdir}/usr/lib/gallium-pipe/
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/svga-nvfx-dri"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/svga-nvfx-dri/"
+}
+
+package_mesa-nvfx() {
+ pkgdesc="an free implementation of the OpenGL specification for Nouveau NVFX [NV30 and NV40] (GeForce FX - 7000 series card) video card family (without wayland and support)"
+ depends=('libdrm-nvfx' 'libvdpau' 'libxxf86vm' 'libxdamage' 'systemd' 'elfutils')
+ optdepends=('opengl-man-pages: for the OpenGL API man pages')
+ provides=('mesa' 'libegl' 'libgbm' 'libgles')
+ conflicts=('mesa' 'libegl' 'libgbm' 'libgles')
+
+ mv -v ${srcdir}/fakeinstall/* ${pkgdir}
+ # rename libgl.so
+ mv ${pkgdir}/usr/lib/libGL.so.1.2 ${pkgdir}/usr/lib/mesa-libGL.so.1.2.0
+ rm ${pkgdir}/usr/lib/libGL.so{,.1}
+
+ # removing glu headers files
+ rm -v "${pkgdir}/usr/include/GL/glu"{,_mangle}".h"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/mesa-nvfx"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-nvfx/"
+}
+
+package_mesa-nvfx-libgl() {
+ pkgdesc="Mesa 3-D graphics library for Nouveau NVFX [NV30 and NV40] (GeForce FX - 7000 series card) video card family (without wayland support)"
+ depends=("mesa-nvfx=${pkgver}")
+ provides=('mesa-libgl' 'libgl')
+ conflicts=('mesa-libgl' 'libgl')
+
+ install -m755 -d "${pkgdir}/usr/lib"
+
+ ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so
+ ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1
+ ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1.2
+ ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1.2.0
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/mesa-nvfx-libgl"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-nvfx-libgl/"
+}
diff --git a/pcr/mimms/PKGBUILD b/pcr/mimms/PKGBUILD
new file mode 100644
index 000000000..3697c1a3b
--- /dev/null
+++ b/pcr/mimms/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer (Arch): Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Maintainer (Parabola): Alon Ivtsan <alonivtsan@lavabit.com>
+# taken from https://aur.archlinux.org/packages/mimms/
+
+pkgname=mimms
+pkgver=3.2.1
+pkgrel=2
+pkgdesc="Download streams using the MMS protocol and save them to your
+computer"
+arch=('any')
+url="http://savannah.nongnu.org/projects/mimms/"
+license=('GPL3')
+depends=('libmms' 'python2')
+source=(http://download.savannah.gnu.org/releases/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('ec629d8899551b4789ba15c17402c36f')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+#Python2 fix
+ sed -i "s/python/python2/g" Makefile
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/pcr/minaton-lv2/PKGBUILD b/pcr/minaton-lv2/PKGBUILD
new file mode 100644
index 000000000..797a74653
--- /dev/null
+++ b/pcr/minaton-lv2/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+pkgname=minaton-lv2
+pkgver=0.0.3
+pkgrel=1
+pkgdesc="A music software synthesizer project, LV2 instrument."
+arch=('i686')
+url="http://sourceforge.net/p/minaton/home/Home/"
+license=('GPL')
+groups=('lv2-plugins')
+depends=('lv2' 'jack' 'gtkmm')
+makedepends=('lv2-c++-tools')
+provides=('lv2-minaton')
+conflicts=('lv2-minaton')
+source=("http://downloads.sourceforge.net/project/minaton/$pkgname-v.$pkgver.tar.gz")
+md5sums=('b5190a6c6942c1a1fe6b929963ad1f86')
+
+build() {
+ cd "$srcdir/$pkgname-v$pkgver"
+
+ # set bundle_path
+ sed -i "s|\(string bundle_path\);|\1 = \"/usr/lib/lv2/minaton.lv2/\";|" *.{hpp,h,cpp}
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-v$pkgver"
+ make INSTALL_DIR="$pkgdir/usr/lib/lv2" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/minetest-git/PKGBUILD b/pcr/minetest-git/PKGBUILD
new file mode 100644
index 000000000..e322285cf
--- /dev/null
+++ b/pcr/minetest-git/PKGBUILD
@@ -0,0 +1,91 @@
+# Maintainer: Konsta Kokkinen <kray@tsundere.fi>
+# Maintainer (Parabola): Jorge Araya Navarro <jorgean@lavabit.com>
+# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=minetest-git
+pkgver=20130501
+pkgrel=1
+pkgdesc="An Infiniminer/Minecraft inspired game, git version."
+arch=('i686' 'x86_64')
+url='http://minetest.net/'
+license=('LGPL2.1')
+makedepends=('git' 'cmake' 'irrlicht' 'mesa' 'bzip2' 'libjpeg' 'libpng' 'zlib' 'curl')
+depends=('sqlite3' 'libgl' 'libxxf86vm' 'openal' 'hicolor-icon-theme' 'libvorbis' 'curl')
+conflicts=('minetest' 'minetest-hg')
+
+_srcroot="https://github.com/minetest/minetest.git"
+_srcname="minetest"
+
+_gameroot="https://github.com/minetest/minetest_game.git"
+_gamename="minetest_game"
+
+_commonroot="https://github.com/minetest/common.git"
+_commonname="common"
+
+_buildroot="https://github.com/minetest/build.git"
+_buildname="build"
+
+_survivalroot="https://github.com/minetest/survival.git"
+_survivalname="survival"
+
+package() {
+ cd "$srcdir"
+
+ msg "Pulling sources..."
+
+ if [ -d $_srcname ] ; then
+ cd $_srcname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_srcroot $_gitname
+ fi
+
+ msg "Pulling game..."
+
+ cd "$srcdir/$_srcname/games/"
+
+ if [ -d $_gamename ] ; then
+ cd $_gamename && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gameroot $_gamename
+ fi
+
+ msg "Pulling common mods..."
+ cd "$srcdir"/"$_srcname"/games/
+
+ if [ -d $_commonname ] ; then
+ cd $_commonname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_commonroot $_commonname
+ fi
+
+ msg "Pulling build mods..."
+ cd "$srcdir"/"$_srcname"/games/
+
+ if [ -d $_buildname ] ; then
+ cd $_buildname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_buildroot $_buildname
+ fi
+
+ msg "Pulling survival mods..."
+ cd "$srcdir"/"$_srcname"/games/
+
+ if [ -d $_survivalname ] ; then
+ cd $_survivalname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_survivalroot $_survivalname
+ fi
+
+
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ cd "$srcdir/$_srcname"
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make DESTDIR=${pkgdir} install
+}
diff --git a/pcr/mini18n-git/PKGBUILD b/pcr/mini18n-git/PKGBUILD
new file mode 100644
index 000000000..c55db7b7d
--- /dev/null
+++ b/pcr/mini18n-git/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Gustavo alvarez <sl1pkn07@gmail.com>
+
+pkgname=mini18n-git
+pkgver=20130213
+pkgrel=1
+pkgdesc="A a small and non-intrusive translation library designed for small memory and non-GNU systems. (GIT version)"
+arch=('x86_64' 'i686')
+url="http://wiki.yabause.org/index.php5?title=Mini18n"
+license=('GPL')
+makedepends=('git' 'cmake')
+conficts=('mini18n')
+provides=('mini18n')
+
+_gitroot="git://github.com/Guillaumito/yabause.git"
+_gitname="mini18n"
+
+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 --depth=1 "${_gitroot}" "${_gitname}"
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting build..."
+
+ rm -rf "${srcdir}/${_gitname}-build"
+ cp -R "${srcdir}/${_gitname}" "${srcdir}/${_gitname}-build"
+ cd "${srcdir}/${_gitname}-build/${_gitname}"
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${_gitname}-build/${_gitname}"
+ make DESTDIR="${pkgdir}/" install
+}
+
diff --git a/pcr/minicomputer/PKGBUILD b/pcr/minicomputer/PKGBUILD
new file mode 100644
index 000000000..4888c999f
--- /dev/null
+++ b/pcr/minicomputer/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=minicomputer
+pkgver=1.41
+pkgrel=1
+pkgdesc="A standalone Linux softwaresynthesizer for creating experimental electronic sounds."
+arch=('i686')
+url="http://minicomputer.sourceforge.net"
+license=('GPL3')
+depends=('fltk' 'jack' 'liblo')
+makedepends=('scons')
+install="$pkgname.install"
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/MinicomputerV$pkgver.tar.gz"
+ "$pkgname.desktop")
+md5sums=('d2524f5fee7475159292e29a5bcd73d2'
+ '3cc74321d55870b1684767255c74c2f8')
+
+build() {
+ cd "$srcdir"
+
+ # installpresets.sh fix
+ sed -i "s|factory|/usr/share/$pkgname/&|g" installpresets.sh
+
+ # 'R_OK' was not declared fix
+ sed -i '/#include <cstdlib>/a#include <unistd.h>' editor/Memory.h
+
+ # DSO linking fix
+ sed -i "35aenv.Append(LINKFLAGS = ['-lm'])" -i SConstruct
+
+ # build
+ LDFLAGS="LDFLAGS -lm" scons
+}
+package() {
+ cd "$srcdir"
+
+ # bin
+ install -d "$pkgdir/usr/bin"
+ install -Dm755 "$pkgname"{,CPU} "$pkgdir/usr/bin"
+
+ # icon
+ install -Dm644 $pkgname.xpm \
+ "$pkgdir/usr/share/pixmaps/$pkgname.xpm"
+
+ # desktop file
+ install -Dm644 $pkgname.desktop \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+
+ # presets
+ install -d "$pkgdir/usr/share/$pkgname/factoryPresets"
+ install -Dm644 factoryPresets/* "$pkgdir/usr/share/$pkgname/factoryPresets"
+
+ # doc
+ install -Dm644 "$pkgname"Manual.pdf \
+ "$pkgdir/usr/share/doc/$pkgname/Manual.pdf"
+
+ # presets installer script
+ install -Dm755 installpresets.sh \
+ "$pkgdir/usr/share/$pkgname/installpresets.sh"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/minicomputer/minicomputer.desktop b/pcr/minicomputer/minicomputer.desktop
new file mode 100644
index 000000000..578f04ddb
--- /dev/null
+++ b/pcr/minicomputer/minicomputer.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Minicomputer
+Comment=An industrial grade software synthesizer
+Exec=minicomputer
+Icon=minicomputer
+Terminal=false
+Type=Application
+Categories=Application;AudioVideo;
diff --git a/pcr/minicomputer/minicomputer.install b/pcr/minicomputer/minicomputer.install
new file mode 100644
index 000000000..e441a6f02
--- /dev/null
+++ b/pcr/minicomputer/minicomputer.install
@@ -0,0 +1,21 @@
+post_install() {
+ post_remove
+
+ cat << EOF
+
+>>> For installing some sample presets in ~/.miniComputer, use
+>>> /usr/share/minicomputer/installpresets.sh
+>>>
+>>> Use "minicomputer" to start the engine and the GUI
+>>> Documentation can be found in /usr/share/doc/minicomputer/Manual.pdf
+
+EOF
+}
+
+post_upgrade() {
+ post_remove
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/pcr/minidjvu/PKGBUILD b/pcr/minidjvu/PKGBUILD
new file mode 100644
index 000000000..700f3c1f6
--- /dev/null
+++ b/pcr/minidjvu/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Orivej Desh <masecretaire@gmx.fr>
+# Maintainer: Orivej Desh <masecretaire@gmx.fr>
+pkgname=minidjvu
+pkgver=0.8
+pkgrel=3
+pkgdesc="Highly efficient DjVu encoder for black-and-white images"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://minidjvu.sourceforge.net/"
+license=('GPL')
+depends=("libtiff")
+options=("!libtool" "!makeflags")
+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#-9 \$(MANDIR)#-9 $(DESTDIR)$(MANDIR)#' Makefile
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ mkdir -p "$pkgdir"/usr/{bin,lib,share/man/man1}
+ make DESTDIR="$pkgdir/" install
+}
+
diff --git a/pcr/miniupnpd/PKGBUILD b/pcr/miniupnpd/PKGBUILD
new file mode 100644
index 000000000..5e8e59fd9
--- /dev/null
+++ b/pcr/miniupnpd/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: fauno <fauno@parabola.nu>
+pkgname=miniupnpd
+pkgver=1.8.20130730
+pkgrel=1
+pkgdesc="Lightweight UPnP IGD daemon"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://miniupnp.free.fr"
+license=('BSD')
+backup=(etc/miniupnpd/miniupnpd.conf)
+depends=('libnfnetlink' 'iptables>=1.4.3' 'net-tools')
+makedepends=('lsb-release')
+source=("http://miniupnp.free.fr/files/$pkgname-$pkgver.tar.gz"
+ miniupnpd.systemd)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ CONFIG_OPTIONS="--strict --ipv6" make -f Makefile.linux config.h
+ make -f Makefile.linux
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ mkdir -p "$pkgdir/usr/share/man/man8"
+
+ make PREFIX="$pkgdir/" -f Makefile.linux install
+
+ rm -r "${pkgdir}/etc/init.d"
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 "${srcdir}/miniupnpd.systemd" "${pkgdir}/usr/lib/systemd/system/miniupnpd.service"
+
+ sed -i 's:/s\?bin/iptables:/usr/bin/iptables:
+ s:eth0:"`cat /etc/miniupnpd/miniupnpd.conf | '"awk -F= '/^ext_ifname/ { print \$2 }'"'`":' "${pkgdir}"/etc/miniupnpd/*.sh
+ sed -i -e "s/^uuid=[-0-9a-f]*/uuid=00000000-0000-0000-0000-000000000000/
+ s/make genuuid/uuidgen/" "${pkgdir}/etc/miniupnpd/miniupnpd.conf"
+ # usrmove
+ cd "$pkgdir"
+ mv usr/sbin usr/bin
+}
+sha1sums=('32eed969a6c653d6d5ccd236ee50275c933d020e'
+ '64bf27526bc830d7be98a9bb48e58911afdbe735')
+sha256sums=('919ab6ec719959fff9bdae3f1d83f6a39c43fa4a6d3f2c48077f43729d3d7d43'
+ '2707d028f28fbb28c3a9d13605c9c738e9628f828e22288a8a1492ac93f9ad7c')
diff --git a/pcr/miniupnpd/miniupnpd.systemd b/pcr/miniupnpd/miniupnpd.systemd
new file mode 100644
index 000000000..88973535c
--- /dev/null
+++ b/pcr/miniupnpd/miniupnpd.systemd
@@ -0,0 +1,12 @@
+[Unit]
+Description=Lightweight UPnP IGD daemon
+
+[Service]
+ExecStartPre=/etc/miniupnpd/iptables_init.sh
+ExecStart=/usr/bin/miniupnpd -f /etc/miniupnpd/miniupnpd.conf -d
+ExecStopPost=/etc/miniupnpd/iptables_removeall.sh
+PIDFile=/run/miniupnpd.pid
+StandardOutput=null
+
+[Install]
+WantedBy=network.target
diff --git a/pcr/mit-scheme/PKGBUILD b/pcr/mit-scheme/PKGBUILD
new file mode 100644
index 000000000..f769acfc8
--- /dev/null
+++ b/pcr/mit-scheme/PKGBUILD
@@ -0,0 +1,80 @@
+# Contributor: peter feigl <peter.feigl@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=mit-scheme
+pkgver=9.1.1
+pkgrel=1
+pkgdesc="MIT/GNU Scheme"
+arch=('x86_64' i686)
+license=('GPL')
+url="http://www.gnu.org/software/mit-scheme/"
+groups=
+provides=('mit-scheme')
+depends=('libx11' 'texinfo' 'texlive-core')
+optdepends=('mhash: support for mhash' 'gdbm: support for gdbm'
+ 'postgresql-libs: support for postresql' 'openssl: support for openssl'
+ 'mcrypt: support for mcrypt' 'db: support for berkeley db')
+_my_arch=$(uname -m)
+if [ ${_my_arch} = "x86_64" ]
+then
+_my_arch="x86-64"
+md5sums=('268cb5ac97646f34742828ebc370586d')
+else
+_my_arch="i386"
+md5sums=('e35590a06549d71edba723a719329070')
+fi
+
+source=("http://ftp.gnu.org/gnu/mit-scheme/stable.pkg/${pkgver}/${pkgname}-${pkgver}-${_my_arch}.tar.gz")
+
+build() {
+ cd $startdir/src/${pkgname}-${pkgver}/src
+ ./configure --with-x --enable-native-code --prefix=/usr || return 1
+ make compile-microcode || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ # TODO: add indexer
+ echo Making Documentation
+ cd ../doc && ./configure --prefix=/usr && make -j 1 && make DESTDIR=${pkgdir} install && rm ${pkgdir}/usr/share/info/dir && mv ${pkgdir}/usr/share/man/man1/scheme.1 ${pkgdir}/usr/share/man/man1/mit-scheme.1 || return 0
+}
+
+
+infodir=usr/share/info
+
+filelist=(mit-scheme-ffi.info mit-scheme-imail.info mit-scheme-ref.info mit-scheme-sos.info mit-scheme-user.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 1
+
+ for file in "${filelist[@]}"; do
+
+ install-info --delete "$infodir/$file.gz" "$infodir/dir" 2>/dev/null
+
+ done
+
+}
+
+md5sums=('e35590a06549d71edba723a719329070')
diff --git a/pcr/mitsuba/PKGBUILD b/pcr/mitsuba/PKGBUILD
new file mode 100644
index 000000000..01fb7a47f
--- /dev/null
+++ b/pcr/mitsuba/PKGBUILD
@@ -0,0 +1,145 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+_pkgname=mitsuba
+_pkgver=0.4.4
+_pkgrel=5.1
+_bldname=blender
+_bldver=2.69
+_bldep=10
+_addname=$_pkgname-$_bldname
+_adddat=20130320
+_addrev=47
+_addrel=1
+_pyver=3.3
+
+# Thu May 09 22:07:37 2013 +0200 - rev:47:8689e0896cf6 ($srcdir/$_addname/$_pkgname/__init__.py:bl_info>version)
+_addver=0.2.1
+
+pkgname=(
+ $_pkgname
+ $_bldname-addon-$_pkgname
+)
+pkgver=$_pkgver
+pkgrel=$_pkgrel
+pkgdesc='A physically based renderer'
+arch=(
+ mips64el
+ x86_64
+ i686
+)
+url=https://www.$_pkgname-renderer.org/
+license=GPL3
+depends=(
+ boost-libs
+ collada-dom
+ glew
+ libxxf86vm
+ openexr
+ qt4
+ xerces-c
+)
+optdepends=(
+ 'python: Python bindings'
+ "${pkgname[1]}: ${_bldname^} addon exporter and renderer"
+)
+makedepends=(
+ boost
+ cmake
+ eigen3
+ mercurial
+ python
+)
+source=(
+ $_pkgname-$pkgver.tar.bz2::${url}repos/$_pkgname/archive/v$pkgver.tar.bz2
+ $_addname-$_addver-$_addrev.tar.bz2::${url}repos/exporters/$_addname/archive/$_addrev.tar.bz2
+)
+sha512sums=(
+ 01967fb84884fbab0ada3775c8f8c54b5523a97ebc9dedd559da3cb54543ecc919d3251c09718358405c19133218048fdb1c64f83d0637cf7b98acccb7564a1c
+ 514cbb1300229599c536183ec300c3074aca349e0ddaa36ae7ae868a2c6b466116d9373a8d9ea89dcd1d09685e9a97bbd5c11121860da1a1bf45b921bcd21ca7
+)
+
+prepare() {
+ mv -v $srcdir/$_pkgname-???????????? $srcdir/$_pkgname-v$pkgver
+ mv -v $srcdir/$_addname-???????????? $srcdir/$_addname-$_addrev
+
+ cd $srcdir/$_pkgname-v$pkgver
+
+ msg 'renaming wrong OS name'
+ _OS=$(uname -o)
+ [[ $_OS == GNU ]] && sed -i 's|Linux|GNU|I' src/libcore/plugin.cpp
+ [[ $_OS == GNU/Linux ]] && sed -i 's|Linux,|GNU/Linux,|' src/libcore/plugin.cpp
+ [[ $_OS == GNU/kFreeBSD ]] && sed -i 's|Linux,|GNU/kFreeBSD,|' src/libcore/plugin.cpp
+ sed -i 's|Linux/|Linux,|
+ s|Linux|GNU/Linux|
+ ' include/$_pkgname/core/{atomic,fstream,random,thread}.h
+
+ msg 'removing Open Source term'
+ sed -i 's|free-software/open-source|free-software|
+ ' include/$_pkgname/core/quad.h
+
+ [[ -d build ]] && rm -vr build
+ mkdir -v build
+}
+
+build() {
+ cd $srcdir/$_pkgname-v$pkgver/build
+
+ [[ $CARCH == x86_64 ]] && _SSE=ON || _SSE=OFF
+ # i686: MTS_SSE disabled
+
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr\
+ -DBoost_PYTHON_LIBRARY=/usr/lib/libboost_python${_pyver::1}.so\
+ -DMTS_SSE=$_SSE\
+ -DPYTHON_INCLUDE_DIR=/usr/include/python${_pyver}m\
+ -DPYTHON_LIBRARY=/usr/lib/libpython${_pyver}m.so
+ make
+}
+
+package_mitsuba() {
+ cd $srcdir/$_pkgname-v$pkgver/build
+ make DESTDIR=$pkgdir install
+ install=$_pkgname.install
+
+ msg 'fixing files and folders location'
+ a=$pkgdir/usr
+ b=$srcdir/$_pkgname-v$pkgver
+ install -vd $a/{bin,lib{,/python$_pyver/lib-dynload},share/{applications,{licenses/,}$_pkgname,pixmaps}}
+ install -vm644 $b/data/linux/$_pkgname.desktop $a/share/applications
+ install -vm644 $b/src/mtsgui/resources/${_pkgname}48.png $a/share/pixmaps
+ install -vm644 $b/doc/license.txt $a/share/licenses/$_pkgname/LICENSE
+ mv -v $a/{m{itsuba,ts{gui,import,srv,util}},bin}
+ mv -v $a/lib{$pkgname-{bidir,core,hw,render}.so,}
+ mv -v $a/{{data,plugins},share/$_pkgname}
+ mv -v $a/{python/mitsuba.so,lib/python$_pyver/lib-dynload}
+ mv -v $a/{sdk/include,}
+ rmdir -v $a/{python,sdk}
+}
+
+package_blender-addon-mitsuba() {
+ pkgdesc="A addon for the ${_bldname^} which allows render and export with Mitsuba (built for the $_bldname-libre package)"
+ arch=any
+ depends=(
+ $_pkgname=$pkgver
+ "$_bldname-libre>=$_bldep:$_bldver"
+ "$_bldname-libre<$(($_bldep+1)):${_bldver::2}$((${_bldver:2:4}+1))"
+ )
+ _pkgver=$pkgver
+ pkgver=$_addver.r$_addrev.v$_bldver
+ pkgrel=$_addrel
+ optdepends=
+
+ cd $srcdir/$_addname-$_addrev
+
+ msg 'fixing binary path'
+ sed -i 's|'"'default'"': efutil.find_config_value('"'mitsuba', 'defaults', 'binary_path', ''"')|'"'default'"': '"'/usr/bin'"'|
+ ' $_pkgname/properties/engine.py
+
+ a=$pkgdir/usr/share/$_bldname/$_bldver/scripts/addons
+ b=$pkgdir/usr/share/licenses/$pkgname
+ c=$srcdir/$_pkgname-v$_pkgver/doc/license.txt
+
+ install -vd $a && cp -a $_pkgname $a
+ install -vd $b && install -m644 $c $b/LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/mitsuba/mitsuba.install b/pcr/mitsuba/mitsuba.install
new file mode 100644
index 000000000..724bfce00
--- /dev/null
+++ b/pcr/mitsuba/mitsuba.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/pcr/moblock/MoBlock-nfq.sh.patch b/pcr/moblock/MoBlock-nfq.sh.patch
new file mode 100644
index 000000000..f9136c3c7
--- /dev/null
+++ b/pcr/moblock/MoBlock-nfq.sh.patch
@@ -0,0 +1,53 @@
+--- MoBlock-0.8/MoBlock-nfq.sh.orig 2008-11-30 03:44:02.000000000 -0500
++++ MoBlock-0.8/MoBlock-nfq.sh 2008-12-01 18:56:15.000000000 -0500
+@@ -3,14 +3,10 @@
+ # MoBlock.sh - MoBlock start script
+ # ---------------------------------
+
+-ACTIVATE_CHAINS=1
+-WHITE_TCP_IN=""
+-WHITE_UDP_IN=""
+-WHITE_TCP_OUT=""
+-WHITE_UDP_OUT=""
+-WHITE_TCP_FORWARD=""
+-WHITE_UDP_FORWARD=""
++# Some configuration options have been moved to an external conf file
++# This should make maintenance and upgrading easier
+
++. /etc/moblock/config
+
+ PIDF=/var/run/moblock.pid
+
+@@ -78,6 +74,17 @@
+ iptables -I MOBLOCK_FW -p udp --dport $PORT -j ACCEPT
+ done
+
++# For added IP whitelisting support
++
++for IP in $WHITE_IP_OUT; do
++ iptables -I MOBLOCK_OUT -p all -m iprange --dst-range $IP -j ACCEPT
++done
++for IP in $WHITE_IP_IN; do
++ iptables -I MOBLOCK_IN -p all -m iprange --src-range $IP -j ACCEPT
++done
++for IP in $WHITE_IP_FW; do
++ iptables -I MOBLOCK_FW -p all -m iprange --dst-range $IP -j ACCEPT
++done
+
+ # Loopback traffic fix
+
+@@ -85,7 +92,8 @@
+ iptables -I OUTPUT -p all -o lo -j ACCEPT
+
+ # Here you can change block list and log files
+-./moblock -p /etc/guarding.p2p ./moblock.log
++#./moblock -p /etc/guarding.p2p ./moblock.log
++/usr/bin/moblock -p /etc/moblock/banned.list /var/log/moblock.log >/dev/null 2>&1
+
+ # On exit delete the rules we added
+
+@@ -108,3 +116,4 @@
+ if [ -f $PIDF ]; then
+ rm $PIDF;
+ fi
++
diff --git a/pcr/moblock/PKGBUILD b/pcr/moblock/PKGBUILD
new file mode 100644
index 000000000..15504d1c1
--- /dev/null
+++ b/pcr/moblock/PKGBUILD
@@ -0,0 +1,55 @@
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+# Contributor: Filip Wojciechowski, filip at loka dot pl
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=moblock
+pkgver=0.9rc2
+pkgrel=8
+pkgdesc="Console application that blocks connections from/to hosts listed in a file in peerguardian format"
+arch=('i686' 'x86_64')
+url="http://moblock.berlios.de/"
+license=('GPL')
+depends=(libnetfilter_queue iptables)
+backup=(etc/moblock/config)
+install=moblock.install
+source=(http://download.berlios.de/moblock/MoBlock-0.8-i586.tar.bz2 \
+ moblock_0.9_rc2.patch \
+ MoBlock-nfq.sh.patch \
+ moblock_include.patch \
+ config \
+ moblock-update \
+ moblock \
+ moblock.logrotate)
+
+build() {
+ cd $startdir/src/MoBlock-0.8
+
+ # patch to update moblock to the latest cvs version
+ patch -Np1 -i ../moblock_0.9_rc2.patch || return 1
+ # add IP whitelisting and move configs to a separate conf file
+ patch -Np1 -i ../MoBlock-nfq.sh.patch || return 1
+ # necessary to make moblock build with recent kernels
+ patch -Np1 -i ../moblock_include.patch || return 1
+
+ # change the CFLAGS for both i686 and x84_64 builds
+ sed -i "s#-Wall -O.*-ffast-math#$CFLAGS#g" Makefile
+
+ # build
+ make || return 1
+
+ #move the files
+ install -D -m 755 ./MoBlock-nfq.sh $startdir/pkg/usr/bin/moblock-nfq || return 1
+ install -D -m 744 ./moblock $startdir/pkg/usr/bin/moblock || return 1
+ install -D -m 755 ../moblock-update $startdir/pkg/usr/bin/moblock-update || return 1
+ install -D -m 744 ../moblock $startdir/pkg/etc/rc.d/moblock || return 1
+ install -D -m 644 ../config $startdir/pkg/etc/moblock/config || return 1
+ install -D -m 644 ../moblock.logrotate $startdir/pkg/etc/logrotate.d/moblock || return 1
+}
+md5sums=('199967adb48b153be90db10fe21325c5'
+ 'e4e33c515677fa53eaca4616591d4e44'
+ 'e9f3c6b09f5e07dee948450780340ea3'
+ 'b23b5214965df59632de5cec317ddbde'
+ '840bb52a99529305e49212a69c9ced8a'
+ '49a16feb221d4d912cc7200313517f7b'
+ '1bdc949fcff0ce751a5096e489061513'
+ 'a8285fd3e68043cd8d21993d3dbbf9d4')
diff --git a/pcr/moblock/config b/pcr/moblock/config
new file mode 100644
index 000000000..7d7c287cc
--- /dev/null
+++ b/pcr/moblock/config
@@ -0,0 +1,30 @@
+# Original MoBlock configuration options from MoBlock-nfq.sh file
+ACTIVATE_CHAINS=1
+WHITE_TCP_IN=""
+WHITE_UDP_IN=""
+WHITE_TCP_OUT="" # Add "http https" here to prevent moblock from blocking webpages
+WHITE_UDP_OUT=""
+WHITE_TCP_FORWARD=""
+WHITE_UDP_FORWARD=""
+
+# Added IP whitelisting support
+WHITE_IP_IN=""
+WHITE_IP_OUT=""
+WHITE_IP_FW=""
+
+# Individual lists can be disabled by prefixing them with '!'
+# Bluetack blacklists (http://www.bluetack.co.uk)
+BLUETACK=(level1 level2 !level3 !edu ads-trackers-and-bad-pr0n bogon spyware spider Microsoft !proxy hijacked templist !rangetest dshield)
+
+# blocklist.org lists (currently doesn't work)
+#BLOCKLIST=(p2p gov spy ads edu)
+
+# backup lists (might be outdated)
+#PHOENIXLABS=(!p2b.p2b edu.txt spider.txt spyware.txt level1.txt !level2.txt !level3.txt)
+
+# Change to 'yes' if you want to backup up the old list before writing
+# a new one. Only one backup copy will be kept.
+BACKUP_OLD_LIST="no"
+
+# Options passed to wget
+WGET_OPTS="-q"
diff --git a/pcr/moblock/moblock b/pcr/moblock/moblock
new file mode 100644
index 000000000..d88bd2e8d
--- /dev/null
+++ b/pcr/moblock/moblock
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting MoBlock"
+ if [ ! -f /var/run/moblock.pid ]
+ then
+ /usr/bin/moblock-nfq &
+ if [ $? -gt 0 ]
+ then
+ stat_fail
+ else
+ add_daemon moblock
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ update)
+ stat_busy "Updating MoBlock block list..."
+ error=0
+ /usr/bin/moblock-update || error=1
+ stat_busy "Updating MoBlock block list"
+ if [ $error -eq 1 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ stats)
+ stat_busy "Logging stats to /var/log/MoBlock.stats"
+ PID=`cat /var/run/moblock.pid 2>/dev/null`
+ if [ ! -z "$PID" ]; then
+ /bin/kill -USR2 $PID
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MoBlock"
+ PID=`cat /var/run/moblock.pid 2>/dev/null`
+ if [ ! -z "$PID" ]; then
+ /bin/kill $PID
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon moblock
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|update|stats}"
+esac
diff --git a/pcr/moblock/moblock-update b/pcr/moblock/moblock-update
new file mode 100644
index 000000000..aae861d13
--- /dev/null
+++ b/pcr/moblock/moblock-update
@@ -0,0 +1,174 @@
+#!/bin/bash
+
+. /etc/moblock/config
+
+CONF_DIR=/etc/moblock
+TEMP_DIR=$(/usr/bin/mktemp -t -d moblock-updateXXXXXXXX)
+LIST_FILE=banned.list
+
+USECOLOR="no"
+. /etc/rc.d/functions
+PREFIX_REG=" >"
+PREFIX_HL="::"
+
+function extract()
+{
+ /usr/bin/find $TEMP_DIR -type f -name '*.gz' -o -name '*.zip' |\
+ while read N
+ do
+ case "$N" in
+ *.zip) /usr/bin/unzip -oqq "$N" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ rm -f "$N"
+ return 1
+ else
+ rm -f "$N"
+ fi
+ ;;
+ *.gz) /bin/gunzip -f "$N" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ rm -f "$N"
+ return 1
+ fi
+ ;;
+ *) continue
+ ;;
+ esac
+ done
+ return 0
+}
+
+cd $TEMP_DIR
+
+printf "${C_SEPARATOR} ------------------------------\n"
+printhl "Downloading and extracting files:\n"
+
+# Bluetack lists (with fallback)
+for i in ${BLUETACK[@]}
+do
+ if [ $(echo $i | /bin/grep '^[^\!]' | /usr/bin/wc -l) -eq 1 ]; then
+ stat_busy "BLUETACK '${i}'... "
+ /usr/bin/wget ${WGET_OPTS} "http://www.bluetack.co.uk/config/${i}.gz" && extract
+ if [ $? -gt 0 ] || [ ! -f ${i} ]; then
+ stat_fail
+ bfile=$i
+ if [ "$bfile" = "ads-trackers-and-bad-pr0n" ]; then
+ bfile="ads"
+ elif [ "$bfile" = "Microsoft" ];then
+ bfile="microsoft"
+ fi
+ stat_busy "[!!] BLUETACK '${i}' (fallback link)... "
+ /usr/bin/wget ${WGET_OPTS} "http://list.iblocklist.com/?list=bt_${bfile%%-*}" -O "${i}.gz" && extract
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ else
+ stat_done
+ fi
+ fi
+done
+
+# Blocklist lists
+for i in ${BLOCKLIST[@]}
+do
+ if [ $(echo $i | /bin/grep '^[^\!]' | /usr/bin/wc -l) -eq 1 ]; then
+ stat_busy "BLOCKLIST '${i}'... "
+ /usr/bin/wget ${WGET_OPTS} "blocklist.org/${i}.p2b.gz" && extract
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+done
+
+# Old phoenixlabs.org lists
+for i in ${PHOENIXLABS[@]}
+do
+ if [ $(echo $i | /bin/grep '^[^\!]' | /usr/bin/wc -l) -eq 1 ]; then
+ stat_busy "PHOENIXLABS '${i}'... "
+ /usr/bin/wget ${WGET_OPTS} "fox.phoenixlabs.org/${i}" && extract
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+done
+
+if [ $(/bin/cat "$TEMP_DIR"/* | /usr/bin/wc -l) -eq 0 ]; then
+ printf "\n"
+ printhl "ERROR: No files were downloaded"
+ printf "${C_SEPARATOR} ------------------------------\n"
+ exit 1
+fi
+
+# Check files
+printsep
+printhl "Checking integrity of downloaded files:\n"
+
+/usr/bin/find -type f | while read N
+do
+ stat_busy "File '$(echo $N | /bin/awk -F/ '{print $NF}')'... "
+ scan1=$(/bin/cat "$N" | /usr/bin/wc -l)
+ scan2=$(/bin/egrep -o ":[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*-[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" "$N" | /usr/bin/wc -l)
+ if [ $scan1 -eq $scan2 ]; then
+ stat_done
+ else
+ if [ $scan2 -gt 0 ]; then
+ if [ $scan1 -gt $scan2 ]; then
+ stat_append "$(($scan1-$scan2)) of $scan1 entries failed validation; keeping the file"
+ stat_done
+ fi
+ else
+ stat_fail
+ stat_busy "[!!] Removing corrupted file... "
+ rm "$N" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ stat_done
+ fi
+ fi
+ fi
+done
+
+printsep
+printhl "Saving the list:\n"
+
+# Make backup
+if [ "$BACKUP_OLD_LIST" = "yes" ] && [ -f "$CONF_DIR"/"$LIST_FILE" ]; then
+ stat_busy "Backing up old list to '$CONF_DIR/$LIST_FILE.gz'... "
+ /bin/gzip -f "$CONF_DIR"/"$LIST_FILE" 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+fi
+
+# Save the list
+stat_busy "Saving new list to '$CONF_DIR/$LIST_FILE'... "
+/bin/cat "$TEMP_DIR"/* > "$CONF_DIR"/"$LIST_FILE" 2>&1
+if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+else
+ stat_done
+ printf "\n"
+ printhl "Saved `cat "$CONF_DIR"/"$LIST_FILE" | wc -l` ranges"
+ printf "${C_SEPARATOR} ------------------------------\n"
+fi
+
+rm -rf "$TEMP_DIR"
+
+# Restart MoBlock
+if [ -f /var/run/moblock.pid ]; then
+ /bin/kill -HUP `cat /var/run/moblock.pid` >/dev/null 2>&1
+fi
+
+exit 0
+
diff --git a/pcr/moblock/moblock.install b/pcr/moblock/moblock.install
new file mode 100644
index 000000000..6afe1d5d9
--- /dev/null
+++ b/pcr/moblock/moblock.install
@@ -0,0 +1,26 @@
+post_install() {
+ #clean up after an old hack
+ if [ -h /usr/lib/libnfnetlink.so.1 ]; then
+ rm /usr/lib/libnfnetlink.so.1
+ fi
+ echo ""
+ echo ">>> moblock-update script no longer uses /var/spool/moblock"
+ echo ">>> as a temporary directory. You can safely delete it."
+ echo ""
+}
+
+post_upgrade() {
+ #clean up after an old hack
+ if [ -h /usr/lib/libnfnetlink.so.1 ]; then
+ rm /usr/lib/libnfnetlink.so.1
+ fi
+ echo ""
+ echo ">>> moblock-update script no longer uses /var/spool/moblock"
+ echo ">>> as a temporary directory. You can safely delete it."
+ echo ""
+}
+
+op=$1
+shift
+$op $*
+
diff --git a/pcr/moblock/moblock.logrotate b/pcr/moblock/moblock.logrotate
new file mode 100644
index 000000000..6ed64bb81
--- /dev/null
+++ b/pcr/moblock/moblock.logrotate
@@ -0,0 +1,11 @@
+"/var/log/moblock.log" /var/log/MoBlock.stats {
+ daily
+ missingok
+ notifempty
+ sharedscripts
+ postrotate
+ /usr/bin/test -f /var/run/moblock.pid && /bin/kill -HUP `cat /var/run/moblock.pid 2>/dev/null` 2>/dev/null || exit 0
+ endscript
+ compress
+}
+
diff --git a/pcr/moblock/moblock_0.9_rc2.patch b/pcr/moblock/moblock_0.9_rc2.patch
new file mode 100644
index 000000000..69994ffe8
--- /dev/null
+++ b/pcr/moblock/moblock_0.9_rc2.patch
@@ -0,0 +1,912 @@
+diff -Naur MoBlock-0.8_orig/Changelog MoBlock-0.8/Changelog
+--- MoBlock-0.8_orig/Changelog 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/Changelog 2008-02-10 11:56:08.000000000 -0500
+@@ -4,6 +4,23 @@
+
+ ---
+
++0.9: - fix for kernel 2.6.23
++ - support for MARKing packets instead of DROPping or
++ ACCEPTing
++ - example start script that REJECTs packets instead of
++ DROPping.
++ - Integrated a patch from David Walluck for proper loading
++ of p2b files (version 2)
++ - command line options for logging to syslog, stdout
++ and log timestamping
++ - fixed loading pg1 lists with comments (lines starting
++ with '#')
++ - fixed a bug in ranges merge
++ - applied patch 2223 by badfish99: "IPs logged with bytes
++ reversed on big-endian m/c"
++
++---
++
+ 0.8: - support for NFQUEUE-ing from iptables FORWARD chain (thx to
+ hyakki for suggestions and testing!)
+ - included patches from Maximilian Mehnert to support log file
+diff -Naur MoBlock-0.8_orig/Makefile MoBlock-0.8/Makefile
+--- MoBlock-0.8_orig/Makefile 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/Makefile 2007-11-22 08:10:44.000000000 -0500
+@@ -1,4 +1,3 @@
+-
+ # To use the old-soon-to-be-deprecated libipq interface
+ # uncomment the following line and comment the NFQUEUE one,
+ # then comment the gcc line with netfilter_queue and
+@@ -7,7 +6,7 @@
+ #QUEUE_LIB=LIBIPQ
+ QUEUE_LIB=NFQUEUE
+
+-CFLAGS=-Wall -O2 -march=i586 -mtune=i686 -fomit-frame-pointer -ffast-math \
++CFLAGS=-Wall -O3 -march=i586 -mtune=i686 -fomit-frame-pointer -ffast-math \
+ -D_GNU_SOURCE -D$(QUEUE_LIB) -L/usr/include/libipq
+ CC=gcc
+
+diff -Naur MoBlock-0.8_orig/MoBlock-nfq-reject.sh MoBlock-0.8/MoBlock-nfq-reject.sh
+--- MoBlock-0.8_orig/MoBlock-nfq-reject.sh 1969-12-31 19:00:00.000000000 -0500
++++ MoBlock-0.8/MoBlock-nfq-reject.sh 2007-11-22 08:10:44.000000000 -0500
+@@ -0,0 +1,104 @@
++#!/bin/sh
++#
++# MoBlock.sh - MoBlock start script
++# ---------------------------------
++
++ACTIVATE_CHAINS=1
++WHITE_TCP_IN=""
++WHITE_UDP_IN=""
++WHITE_TCP_OUT=""
++WHITE_UDP_OUT=""
++WHITE_TCP_FORWARD=""
++WHITE_UDP_FORWARD=""
++REJECT_MARK="10"
++
++PIDF=/var/run/moblock.pid
++
++FNAME=`basename $0 .sh`
++MODE=`echo $FNAME|awk -F- '{print $2}'`
++
++if [ -f $PIDF ]; then
++ PID=`cat $PIDF`
++ if [ `ps -p $PID|wc -l` -gt 1 ]; then
++ echo "$0: $PIDF exists and processs seems to be running. Exiting."
++ exit 1;
++ fi;
++fi;
++
++if [ $MODE == "ipq" ]; then
++ modprobe ip_queue
++ TARGET="QUEUE"
++elif [ $MODE == "nfq" ]; then
++ modprobe ipt_NFQUEUE
++ TARGET="NFQUEUE"
++fi;
++
++modprobe ipt_state
++
++# Filter all traffic, edit for your needs
++
++iptables -N MOBLOCK_IN
++iptables -N MOBLOCK_OUT
++iptables -N MOBLOCK_FW
++
++if [ $ACTIVATE_CHAINS -eq 1 ]; then
++ iptables -I INPUT -p all -m state --state NEW -j MOBLOCK_IN
++ iptables -I OUTPUT -p all -m state --state NEW -j MOBLOCK_OUT
++ iptables -I FORWARD -p all -m state --state NEW -j MOBLOCK_FW
++fi;
++
++
++iptables -I MOBLOCK_IN -p all -j $TARGET
++
++iptables -I MOBLOCK_OUT -p all -j $TARGET
++
++iptables -I MOBLOCK_FW -p all -j $TARGET
++
++for PORT in $WHITE_TCP_OUT; do
++ iptables -I MOBLOCK_OUT -p tcp --dport $PORT -j ACCEPT
++done
++for PORT in $WHITE_UDP_OUT; do
++ iptables -I MOBLOCK_OUT -p udp --dport $PORT -j ACCEPT
++done
++
++for PORT in $WHITE_TCP_IN; do
++ iptables -I MOBLOCK_IN -p tcp --dport $PORT -j ACCEPT
++done
++for PORT in $WHITE_UDP_IN; do
++ iptables -I MOBLOCK_IN -p udp --dport $PORT -j ACCEPT
++done
++
++for PORT in $WHITE_TCP_FORWARD; do
++ iptables -I MOBLOCK_FW -p tcp --dport $PORT -j ACCEPT
++done
++for PORT in $WHITE_UDP_FORWARD; do
++ iptables -I MOBLOCK_FW -p udp --dport $PORT -j ACCEPT
++done
++
++iptables -I OUTPUT -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++iptables -I FORWARD -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++
++# Here you can change block list and log files
++./moblock -d /etc/ipfilter.dat -t -s -r $REJECT_MARK ./moblock.log
++
++# On exit delete the rules we added
++
++if [ $ACTIVATE_CHAINS -eq 1 ]; then
++ iptables -D INPUT -p all -m state --state NEW -j MOBLOCK_IN
++ iptables -D OUTPUT -p all -m state --state NEW -j MOBLOCK_OUT
++ iptables -D FORWARD -p all -m state --state NEW -j MOBLOCK_FW
++fi;
++
++iptables -D OUTPUT -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++iptables -D FORWARD -p all -m state --state NEW -m mark --mark $REJECT_MARK -j REJECT
++
++iptables -F MOBLOCK_IN
++iptables -X MOBLOCK_IN
++iptables -F MOBLOCK_OUT
++iptables -X MOBLOCK_OUT
++iptables -F MOBLOCK_FW
++iptables -X MOBLOCK_FW
++
++if [ -f $PIDF ]; then
++ rm $PIDF;
++fi
+diff -Naur MoBlock-0.8_orig/MoBlock.c MoBlock-0.8/MoBlock.c
+--- MoBlock-0.8_orig/MoBlock.c 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/MoBlock.c 2008-02-10 11:56:08.000000000 -0500
+@@ -35,6 +35,8 @@
+ #include <linux/netfilter_ipv4.h>
+ #include <signal.h>
+ #include <regex.h>
++#include <time.h>
++#include <syslog.h>
+
+ // in Makefile define LIBIPQ to use soon-to-be-deprecated ip_queue,
+ // NFQUEUE for ipt_NFQUEUE (from kernel 2.6.14)
+@@ -46,7 +48,7 @@
+ #include <libnetfilter_queue/libnetfilter_queue.h>
+ #endif
+
+-#define MB_VERSION "0.8"
++#define MB_VERSION "0.9rc2"
+
+ #define BUFSIZE 2048
+ #define PAYLOADSIZE 21
+@@ -58,6 +60,9 @@
+ #define SRC_ADDR(payload) (*(in_addr_t *)((payload)+12))
+ #define DST_ADDR(payload) (*(in_addr_t *)((payload)+16))
+
++#define likely(x) __builtin_expect((x),1)
++#define unlikely(x) __builtin_expect((x),0)
++
+ // rbt datatypes/functions
+
+ typedef enum {
+@@ -96,7 +101,8 @@
+ char filename[100];
+ } blocklist_info;
+
+-int merged_ranges=0, skipped_ranges=0;
++u_int32_t merged_ranges=0, skipped_ranges=0, accept_mark=0, reject_mark=0;
++u_int8_t log2syslog=0, log2file=0, log2stdout=0, timestamp=0;
+
+ #ifdef LIBIPQ
+ static void die(struct ipq_handle *h)
+@@ -112,11 +118,13 @@
+ static char buf[2][ sizeof("aaa.bbb.ccc.ddd") ];
+ static short int index=0;
+
++ ip = ntohl(ip);
++
+ sprintf(buf[index],"%d.%d.%d.%d",
+- (ip) & 0xff,
+- (ip >> 8) & 0xff,
++ (ip >> 24) & 0xff,
+ (ip >> 16) & 0xff,
+- (ip >> 24) & 0xff);
++ (ip >> 8) & 0xff,
++ (ip) & 0xff);
+
+ if (index) {
+ index=0;
+@@ -134,10 +142,38 @@
+ fflush(stdout);
+ }
+
++void log_action(char *msg)
++{
++ char timestr[30];
++ time_t tv;
++
++ if (timestamp) {
++ tv = time(NULL);
++ strncpy(timestr, ctime(&tv), 19);
++ timestr[19] = '\0';
++ strcat(timestr, "| ");
++ }
++ else strcpy(timestr, "");
++
++ if (log2syslog) {
++ syslog(LOG_INFO, msg);
++ }
++
++ if (log2file) {
++ fprintf(logfile,"%s%s",timestr,msg);
++ fflush(logfile);
++ }
++
++ if (log2stdout) {
++ fprintf(stdout,"%s%s",timestr,msg);
++ }
++}
++
+ inline void ranged_insert(char *name,char *ipmin,char *ipmax)
+ {
+ recType tmprec;
+ int ret;
++ char msgbuf[255];
+
+ if ( strlen(name) > (BNAME_LEN-1) ) {
+ strncpy(tmprec.blockname, name, BNAME_LEN);
+@@ -149,10 +185,11 @@
+ if ( (ret=insert(ntohl(inet_addr(ipmin)),&tmprec)) != STATUS_OK )
+ switch(ret) {
+ case STATUS_MEM_EXHAUSTED:
+- fprintf(logfile,"Error inserting range, MEM_EXHAUSTED.\n");
++ log_action("Error inserting range, MEM_EXHAUSTED.\n");
+ break;
+ case STATUS_DUPLICATE_KEY:
+- fprintf(logfile,"Duplicated range ( %s )\n",name);
++ sprintf(msgbuf,"Duplicated range ( %s )\n",name);
++ log_action(msgbuf);
+ break;
+ case STATUS_MERGED:
+ merged_ranges++;
+@@ -161,8 +198,9 @@
+ skipped_ranges++;
+ break;
+ default:
+- fprintf(logfile,"Unexpected return value from ranged_insert()!\n");
+- fprintf(logfile,"Return value was: %d\n",ret);
++ log_action("Unexpected return value from ranged_insert()!\n");
++ sprintf(msgbuf,"Return value was: %d\n",ret);
++ log_action(msgbuf);
+ break;
+ }
+ }
+@@ -177,15 +215,19 @@
+ regex_t regmain;
+ regmatch_t matches[4];
+ int i;
++ char msgbuf[255];
+
+ regcomp(&regmain, "^(.*)[:]([0-9.]*)[-]([0-9.]*)$", REG_EXTENDED);
+
+ fp=fopen(filename,"r");
+ if ( fp == NULL ) {
+- fprintf(logfile,"Error opening %s, aborting...\n", filename);
++ sprintf(msgbuf,"Error opening %s, aborting...\n", filename);
++ log_action(msgbuf);
+ exit(-1);
+ }
+ while ( (count=getline(&line,&len,fp)) != -1 ) {
++ if ( line[0] == '#' ) //comment line, skip
++ continue;
+ for(i=count-1; i>=0; i--) {
+ if ((line[i] == '\r') || (line[i] == '\n') || (line[i] == ' ')) {
+ line[i] = 0;
+@@ -207,36 +249,78 @@
+ line+matches[3].rm_so);
+ ntot++;
+ } else {
+- fprintf(logfile,"Short guarding.p2p line %s, skipping it...\n", line);
++ sprintf(msgbuf,"Short guarding.p2p line %s, skipping it...\n", line);
++ log_action(msgbuf);
+ }
+ }
+ if (line)
+ free(line);
+ fclose(fp);
+- fprintf(logfile,"Ranges loaded: %d\n",ntot);
+- printf("* Ranges loaded: %d\n",ntot);
++ sprintf(msgbuf, "* Ranges loaded: %d\n", ntot);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ }
+
+-void loadlist_pg2(char *filename) // experimental, no check for list sanity
++void loadlist_pg2(char *filename) // supports only v2 files
+ {
+ FILE *fp;
+- int i,retval,ntot=0;
+- char name[100],ipmin[16]; // hope we don't have a list with longer names...
++ int i, j, c, retval=0, ntot=0;
++ char name[100],ipmin[16], msgbuf[255]; // hope we don't have a list with longer names...
+ uint32_t start_ip, end_ip;
+ struct in_addr startaddr,endaddr;
++ size_t s;
+
+ fp=fopen(filename,"r");
+ if ( fp == NULL ) {
+- fprintf(logfile,"Error opening %s, aborting...\n", filename);
++ sprintf(msgbuf, "Error opening %s, aborting...\n", filename);
++ log_action(msgbuf);
+ exit(-1);
+ }
+
+- fgetc(fp); // skip first 4 bytes, don't know what they are
+- fgetc(fp);
+- fgetc(fp);
+- retval=fgetc(fp);
++ for (j=0; j<4; j++) {
++ c=fgetc(fp);
++ if ( c != 0xff ) {
++ sprintf(msgbuf,"Byte %d: 0x%x != 0xff, aborting...\n", j+1, c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++ }
++
++ c=fgetc(fp);
++ if ( c != 'P' ) {
++ sprintf(msgbuf,"Byte 5: %c != P, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ c=fgetc(fp);
++ if ( c != '2' ) {
++ sprintf(msgbuf,"Byte 6: %c != 2, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
+
+- while ( retval != EOF ) {
++ c=fgetc(fp);
++ if ( c != 'B' ) {
++ sprintf(msgbuf,"Byte 7: %c != B, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ c=fgetc(fp);
++ if ( c != 0x02 ) {
++ sprintf(msgbuf,"Byte 8: version: %d != 2, aborting...\n", c);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ do {
+ i=0;
+ do {
+ name[i]=fgetc(fp);
+@@ -244,9 +328,22 @@
+ } while ( name[i-1] != 0x00 && name[i-1] != EOF);
+ if ( name[i-1] != EOF ) {
+ name[i-1]='\0';
+- fread(&start_ip,4,1,fp);
+- fread(&end_ip,4,1,fp);
+- startaddr.s_addr=start_ip;
++ s=fread(&start_ip,4,1,fp);
++ if ( s != 1 ) {
++ sprintf(msgbuf,"Failed to read start IP: %d != 1, aborting...\n", (int)s);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++ s=fread(&end_ip,4,1,fp);
++ if ( s != 1 ) {
++ sprintf(msgbuf,"Failed to read end IP: %d != 1, aborting...\n", (int)s);
++ log_action(msgbuf);
++ fclose(fp);
++ exit(-1);
++ }
++
++ startaddr.s_addr=start_ip;
+ endaddr.s_addr=end_ip;
+ strcpy(ipmin,inet_ntoa(startaddr));
+ ranged_insert(name,ipmin,inet_ntoa(endaddr));
+@@ -255,22 +352,25 @@
+ else {
+ retval=EOF;
+ }
+- }
++ } while ( retval != EOF );
+ fclose(fp);
+- fprintf(logfile,"Ranges loaded: %d\n",ntot);
+- printf("* Ranges loaded: %d\n",ntot);
++ sprintf(msgbuf, "* Ranges loaded: %d\n",ntot);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ }
+
+ void loadlist_dat(char *filename)
+ {
+ FILE *fp;
+ int ntot=0;
+- char readbuf[200], *name, start_ip[16], end_ip[16];
++ char readbuf[200], *name, start_ip[16], end_ip[16], msgbuf[255];
+ unsigned short ip1_0, ip1_1, ip1_2, ip1_3, ip2_0, ip2_1, ip2_2, ip2_3;
+
+ fp=fopen(filename,"r");
+ if ( fp == NULL ) {
+- fprintf(logfile,"Error opening %s, aborting...\n", filename);
++ sprintf(msgbuf,"Error opening %s, aborting...\n", filename);
++ log_action(msgbuf);
+ exit(-1);
+ }
+
+@@ -286,38 +386,45 @@
+ ntot++;
+ }
+ fclose(fp);
+- fprintf(logfile,"Ranges loaded: %d\n",ntot);
+- printf("* Ranges loaded: %d\n",ntot);
++ sprintf(msgbuf, "* Ranges loaded: %d\n", ntot);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ }
+
+ void reopen_logfile(void)
+ {
++ char msgbuf[255];
++
+ if (logfile != NULL) {
+ fclose(logfile);
+ logfile=NULL;
+ }
+ logfile=fopen(logfile_name,"a");
+ if (logfile == NULL) {
+- fprintf(stderr, "Unable to open logfile %s\n", logfile_name);
++ sprintf(msgbuf, "Unable to open logfile %s\n", logfile_name);
++ log_action(msgbuf);
+ exit(-1);
+ }
+- fprintf(logfile, "Reopening logfile.\n");
++ log_action("Reopening logfile.\n");
+ }
+
+ void my_sahandler(int sig)
+ {
++ char msgbuf[255];
++
+ switch( sig ) {
+ case SIGUSR1:
+- fprintf(logfile,"Got SIGUSR1! Dumping stats...\n");
++ log_action("Got SIGUSR1! Dumping stats...\n");
+ ll_show(logfile);
+ reopen_logfile();
+ break;
+ case SIGUSR2:
+- fprintf(logfile,"Got SIGUSR2! Dumping stats to /var/log/MoBlock.stats\n");
++ log_action("Got SIGUSR2! Dumping stats to /var/log/MoBlock.stats\n");
+ ll_log();
+ break;
+ case SIGHUP:
+- fprintf(logfile,"\nGot SIGHUP! Dumping and resetting stats, reloading blocklist\n\n");
++ log_action("Got SIGHUP! Dumping and resetting stats, reloading blocklist\n");
+ ll_log();
+ ll_clear(); // clear stats list
+ destroy_tree(); // clear loaded ranges
+@@ -332,17 +439,18 @@
+ loadlist_pg2(blocklist_info.filename);
+ break;
+ default:
+- fprintf(logfile,"Unknown blocklist type while reloading list, contact the developer!\n");
++ log_action("Unknown blocklist type while reloading list, contact the developer!\n");
+ break;
+ }
+ reopen_logfile();
+ break;
+ case SIGTERM:
+- fprintf(logfile,"Got SIGTERM! Dumping stats and exiting.\n");
++ log_action("Got SIGTERM! Dumping stats and exiting.\n");
+ ll_log();
+ exit(0);
+ default:
+- fprintf(logfile,"Received signal = %d but not handled\n",sig);
++ sprintf(msgbuf,"Received signal = %d but not handled\n",sig);
++ log_action(msgbuf);
+ break;
+ }
+ }
+@@ -378,7 +486,7 @@
+ {
+ int id=0, status=0;
+ struct nfqnl_msg_packet_hdr *ph;
+- char *payload;
++ char *payload, msgbuf[255];
+ recType tmprec;
+
+ ph = nfq_get_msg_packet_hdr(nfa);
+@@ -389,34 +497,78 @@
+ switch (ph->hook) {
+ case NF_IP_LOCAL_IN:
+ if ( find(ntohl(SRC_ADDR(payload)),&tmprec) == STATUS_OK ) {
++ // we drop the packet instead of rejecting
++ // we don't want the other host to know we are alive
+ status=nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
+- fprintf(logfile,"Blocked IN: %s,hits: %d,SRC: %s\n",tmprec.blockname,tmprec.hits,ip2str(SRC_ADDR(payload)));
+- } else status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ sprintf(msgbuf,"Blocked IN: %s,hits: %d,SRC: %s\n",tmprec.blockname,tmprec.hits,ip2str(SRC_ADDR(payload)));
++ log_action(msgbuf);
++ }
++ else if ( unlikely(accept_mark) ) {
++ // we set the user-defined accept_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, accept_mark, 0, NULL);
++ }
++ else {
++ // no accept_mark, just NF_ACCEPT the packet
++ status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ }
+ break;
+ case NF_IP_LOCAL_OUT:
+ if ( find(ntohl(DST_ADDR(payload)),&tmprec) == STATUS_OK ) {
+- status=nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
+- fprintf(logfile,"Blocked OUT: %s,hits: %d,DST: %s\n",tmprec.blockname,tmprec.hits,ip2str(DST_ADDR(payload)));
+- } else status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ if ( likely(reject_mark) ) {
++ // we set the user-defined reject_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, reject_mark, 0, NULL);
++ }
++ else {
++ status = nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
++ }
++ sprintf(msgbuf,"Blocked OUT: %s,hits: %d,DST: %s\n",tmprec.blockname,tmprec.hits,ip2str(DST_ADDR(payload)));
++ log_action(msgbuf);
++ }
++ else if ( unlikely(accept_mark) ) {
++ // we set the user-defined accept_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, accept_mark, 0, NULL);
++ }
++ else {
++ // no accept_mark, just NF_ACCEPT the packet
++ status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ }
+ break;
+ case NF_IP_FORWARD:
+ if ( find2(ntohl(SRC_ADDR(payload)), ntohl(DST_ADDR(payload)), &tmprec) == STATUS_OK ) {
+- status=nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
+- fprintf(logfile,"Blocked FWD: %s,hits: %d,SRC: %s, DST: %s\n",
++ if ( likely(reject_mark) ) {
++ // we set the user-defined reject_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, reject_mark, 0, NULL);
++ }
++ else {
++ status = nfq_set_verdict(qh, id, NF_DROP, 0, NULL);
++ }
++ sprintf(msgbuf,"Blocked FWD: %s,hits: %d,SRC: %s, DST: %s\n",
+ tmprec.blockname, tmprec.hits, ip2str(SRC_ADDR(payload)), ip2str(DST_ADDR(payload)));
+- fflush(logfile);
+- } else status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ log_action(msgbuf);
++ }
++ else if ( unlikely(accept_mark) ) {
++ // we set the user-defined accept_mark and set NF_REPEAT verdict
++ // it's up to other iptables rules to decide what to do with this marked packet
++ status = nfq_set_verdict_mark(qh, id, NF_REPEAT, accept_mark, 0, NULL);
++ }
++ else {
++ // no accept_mark, just NF_ACCEPT the packet
++ status = nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
++ }
+ break;
+ default:
+- fprintf(logfile,"Not NF_LOCAL_IN/OUT/FORWARD packet!\n");
++ log_action("Not NF_LOCAL_IN/OUT/FORWARD packet!\n");
+ break;
+ }
+ }
+ else {
+- fprintf(logfile,"NFQUEUE: can't get msg packet header.\n");
++ log_action("NFQUEUE: can't get msg packet header.\n");
+ return(1); // from nfqueue source: 0 = ok, >0 = soft error, <0 hard error
+ }
+- fflush(logfile);
+ return(0);
+ }
+ #endif
+@@ -492,46 +644,48 @@
+ struct nfq_q_handle *qh;
+ struct nfnl_handle *nh;
+ int fd,rv;
+- char buf[BUFSIZE];
++ char buf[BUFSIZE], msgbuf[255];
+
+ h = nfq_open();
+ if (!h) {
+- fprintf(logfile, "Error during nfq_open()\n");
++ log_action("Error during nfq_open()\n");
+ exit(-1);
+ }
+
+ if (nfq_unbind_pf(h, AF_INET) < 0) {
+- fprintf(logfile, "error during nfq_unbind_pf()\n");
+- exit(-1);
++ log_action("error during nfq_unbind_pf()\n");
++ //exit(-1);
+ }
+
+ if (nfq_bind_pf(h, AF_INET) < 0) {
+- fprintf(logfile, "Error during nfq_bind_pf()\n");
++ log_action("Error during nfq_bind_pf()\n");
+ exit(-1);
+ }
+
+- fprintf(logfile,"NFQUEUE: binding to queue '%hd'\n", queuenum);
++ sprintf(msgbuf,"NFQUEUE: binding to queue '%hd'\n", queuenum);
++ log_action(msgbuf);
+ qh = nfq_create_queue(h, queuenum, &nfqueue_cb, NULL);
+ if (!qh) {
+- fprintf(logfile, "error during nfq_create_queue()\n");
++ log_action("error during nfq_create_queue()\n");
+ exit(-1);
+ }
+
+ if (nfq_set_mode(qh, NFQNL_COPY_PACKET, PAYLOADSIZE) < 0) {
+- fprintf(logfile, "can't set packet_copy mode\n");
++ log_action("can't set packet_copy mode\n");
+ exit(-1);
+ }
+
+ nh = nfq_nfnlh(h);
+ fd = nfnl_fd(nh);
+
+- while ((rv = recv(fd, buf, sizeof(buf), 0)) && rv >= 0) {
++ while ((rv = recv(fd, buf, sizeof(buf), 0)) >= 0) {
+ nfq_handle_packet(h, buf, rv);
+ }
+
+- printf("NFQUEUE: unbinding from queue 0\n");
++ log_action("NFQUEUE: unbinding from queue 0\n");
+ nfq_destroy_queue(qh);
+ nfq_close(h);
++ nfq_unbind_pf(h, AF_INET);
+ return(0);
+ #endif
+
+@@ -540,11 +694,16 @@
+ void print_options(void)
+ {
+ printf("\nMoBlock %s by Morpheus",MB_VERSION);
+- printf("\nSyntax: MoBlock -dnp <blocklist> [-b] [-q 0-65535] <logfile>\n\n");
++ printf("\nSyntax: MoBlock -dnp <blocklist> [-q 0-65535] <logfile>\n\n");
+ printf("\t-d\tblocklist is an ipfilter.dat file\n");
+ printf("\t-n\tblocklist is a peerguardian 2.x file (.p2b)\n");
+ printf("\t-p\tblocklist is a peerguardian file (.p2p)\n");
+ printf("\t-q\t0-65535 NFQUEUE number (as specified in --queue-num with iptables)\n");
++ printf("\t-r MARK\tmark packet with MARK instead of DROP\n");
++ printf("\t-a MARK\tmark packet with MARK instead of ACCEPT\n");
++ printf("\t-l\tlog to stdout\n");
++ printf("\t-s\tlog to syslog\n");
++ printf("\t-t\tlog timestamping\n\n");
+ }
+
+ void on_quit()
+@@ -556,6 +715,7 @@
+ {
+ int ret=0;
+ unsigned short int queuenum=0;
++ char msgbuf[255];
+
+ if (argc < 3) {
+ print_options();
+@@ -591,10 +751,11 @@
+ }
+ logfile_name=malloc(strlen(argv[argc-1])+1);
+ strcpy(logfile_name,argv[argc-1]);
++ log2file = 1;
+ printf("* Logging to %s\n",logfile_name);
+
+ while (1) { //scan command line options
+- ret=getopt(argc, argv, "d:n:p:q:");
++ ret=getopt(argc, argv, "d:n:p:q:a:r:stl");
+ if ( ret == -1 ) break;
+
+ switch (ret) {
+@@ -619,6 +780,28 @@
+ case 'q':
+ queuenum=(unsigned short int)atoi(optarg);
+ break;
++ case 'r':
++ reject_mark=(u_int32_t)atoi(optarg);
++ printf("* DROP MARK: %d\n", reject_mark);
++ reject_mark=htonl(reject_mark);
++ break;
++ case 'a':
++ accept_mark=(u_int32_t)atoi(optarg);
++ printf("* ACCEPT MARK: %d\n", accept_mark);
++ accept_mark=htonl(accept_mark);
++ break;
++ case 's':
++ log2syslog = 1;
++ printf("* Logging to syslog\n");
++ break;
++ case 't':
++ timestamp = 1;
++ printf("* Log timestamp enabled\n");
++ break;
++ case 'l':
++ log2stdout = 1;
++ printf("* Log to stdout enabled\n");
++ break;
+ case '?': // unknown option
+ print_options();
+ exit(-1);
+@@ -626,10 +809,14 @@
+ }
+ }
+
+- printf("* Merged ranges: %d\n", merged_ranges);
+- fprintf(logfile, "Merged ranges: %d\n", merged_ranges);
+- printf("* Skipped useless ranges: %d\n", skipped_ranges);
+- fprintf(logfile,"Skipped useless ranges: %d\n", skipped_ranges);
++ sprintf(msgbuf, "* Merged ranges: %d\n", merged_ranges);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
++ sprintf(msgbuf,"* Skipped useless ranges: %d\n", skipped_ranges);
++ log_action(msgbuf);
++ if ( !log2stdout )
++ printf(msgbuf);
+ fflush(NULL);
+
+ netlink_loop(queuenum);
+diff -Naur MoBlock-0.8_orig/README MoBlock-0.8/README
+--- MoBlock-0.8_orig/README 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/README 2007-11-22 08:10:44.000000000 -0500
+@@ -1,5 +1,5 @@
+
+-MoBlock README v0.8
++MoBlock README v0.9
+ http://moblock.berlios.de
+
+ .Introduction.
+@@ -47,6 +47,22 @@
+ ip_conntrack 40044 1 ipt_state
+ iptable_filter 2176 1
+ ip_tables 17600 3 ipt_NFQUEUE,ipt_state,iptable_filter
++
++ ...and these with kernel 2.6.23 using NFQUEUE interface:
++
++ nfnetlink_queue 9344 1
++ nfnetlink 4568 2 nfnetlink_queue
++ ipt_REJECT 3520 2
++ xt_mark 1600 2
++ nf_conntrack_ipv4 12424 5
++ iptable_filter 2308 1
++ ip_tables 10328 1 iptable_filter
++ xt_state 1984 5
++ nf_conntrack 48356 2 nf_conntrack_ipv4,xt_state
++ xt_NFQUEUE 1664 3
++ x_tables 11396 5 ipt_REJECT,xt_mark,ip_tables,xt_state,xt_NFQUEUE
++
++ (notice that ipt_NFQUEUE has changed to xt_NFQUEUE, same thing for other modules too)
+
+ 2) A valid guarding.p2p/ipfilter.dat/p2p.p2b host file in /etc ( /etc/guarding.p2p ).
+ MoBlock tries to skip malformed or duplicate ranges but
+@@ -140,8 +156,18 @@
+ To specify a NFQUEUE queue number:
+
+ ./moblock -p /etc/guarding.p2p -q 5 MoBlock.log
++
++ From version 0.9 MoBlock supports MARKing packets and RETURN them to
++ iptables, there's an example start script (MoBlock-nfq-reject.sh) that
++ uses this feature to REJECT packet instead of dropping them. It can help
++ in complex firewall configuration where you need more control of packets
++ flow after MoBlock inspection.
++ See the mentioned start script for reference, you can set the MARK value
++ for packets that MoBlock would drop (ip in list) with the "-r" command line
++ option and for packets that MoBlock would accept (ip not in list) with
++ the "-a" command line option.
+
+- To stop it:
++ To stop MoBlock:
+
+ kill -TERM <MoBlockPid>
+
+@@ -149,7 +175,7 @@
+ To obtain stats about blocked ranges while it's running:
+
+ kill -USR1 <MoBlockPid> # write stats to logfile
+- kill -USR2 <MoBlockPid> # write stats to /var/log/MoBlock.stats
++ kill -USR2 <MoBlockPid> # write stats to /var/log/MoBlock.stats
+
+ ** NEW: to reload the blocklist while MoBlock is running send to it the
+ HUP signal:
+@@ -168,7 +194,10 @@
+ took some code and ideas from his FTwall
+ - Andrew de Quincey (adq at lidskialf dot net) for regular expressions
+ and command line args patch
+-- Maximilian Mehnert (clessing at freenet dot de) for logfile rotation
++- clessing at freenet dot de for logfile rotation
+ patches, pid file creation, start script, fixes/files for debian packaging
++- David Walluck, patch for proper loading of p2b files
++- jre, for continuing clessing work on debian packaging and many other
++ contributions
+
+-Last Updated: 20/Mar/2006
++Last Updated: 15/Oct/2007
+diff -Naur MoBlock-0.8_orig/rbt.c MoBlock-0.8/rbt.c
+--- MoBlock-0.8_orig/rbt.c 2006-03-22 12:44:31.000000000 -0500
++++ MoBlock-0.8/rbt.c 2008-02-10 11:56:08.000000000 -0500
+@@ -19,7 +19,7 @@
+ #include <stdarg.h>
+ #include <time.h>
+
+-#define RBT_VERSION 0.8
++#define RBT_VERSION 0.9
+ #define BNAME_LEN 80
+
+ /* implementation dependend declarations */
+@@ -421,7 +421,7 @@
+
+ statusEnum insert(keyType key, recType *rec) {
+ nodeType *current, *parent, *x;
+- keyType tmpkey;
++ //keyType tmpkey;
+ recType tmprec;
+ int ret;
+
+@@ -433,6 +433,23 @@
+ current = root;
+ parent = 0;
+ while (current != NIL) {
++ if (compEQ2(current->key, key, rec->ipmax)) { // current node key is inside new range to be inserted
++ strcpy(tmprec.blockname, rec->blockname); // block name from new range
++ if (compLT(current->rec.ipmax, rec->ipmax))
++ tmprec.ipmax = rec->ipmax;
++ else tmprec.ipmax = current->rec.ipmax;
++ tmprec.hits = 0;
++ //printf("deleting node :%lu\n", current->key);
++ ret=delete(current->key);
++ if ( ret != STATUS_OK )
++ return(ret);
++ ret=insert(key, &tmprec);
++ if ( ret == STATUS_OK ) {
++ printf("new merge\n");
++ return(STATUS_MERGED);
++ }
++ else return(ret);
++ }
+ if (compEQ(key, current->key)) {
+ if ( rec->ipmax > current->rec.ipmax ) {
+ current->rec.ipmax=rec->ipmax;
+@@ -458,7 +475,7 @@
+ }
+ }
+ //check if higher ip (ipmax) is already in a range
+- if (compEQ2(rec->ipmax,current->key,current->rec.ipmax)) {
++ /*if (compEQ2(rec->ipmax,current->key,current->rec.ipmax)) {
+ fprintf(logfile,"higher ip in range\n");
+ tmpkey=key;
+ strcpy(tmprec.blockname,current->rec.blockname);
+@@ -470,7 +487,7 @@
+ if ( ret == STATUS_OK )
+ return(STATUS_MERGED);
+ else return(ret);
+- }
++ }*/
+ parent = current;
+ current = compLT(key, current->key) ?
+ current->left : current->right;
+@@ -495,7 +512,7 @@
+ } else {
+ root = x;
+ }
+-
++ //printf("new node, key: %lu, parent: %lu\n", x->key, parent ? parent->key : 0);
+ insertFixup(x);
+ lastFind = NULL;
+
diff --git a/pcr/moblock/moblock_include.patch b/pcr/moblock/moblock_include.patch
new file mode 100644
index 000000000..644e8240e
--- /dev/null
+++ b/pcr/moblock/moblock_include.patch
@@ -0,0 +1,10 @@
+--- MoBlock-0.8/MoBlock.c.orig 2008-08-15 14:41:49.000000000 -0400
++++ MoBlock-0.8/MoBlock.c 2008-08-15 14:43:45.000000000 -0400
+@@ -32,6 +32,7 @@
+ #include <netinet/udp.h>
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
++#include <limits.h>
+ #include <linux/netfilter_ipv4.h>
+ #include <signal.h>
+ #include <regex.h>
diff --git a/pcr/monkeysign/PKGBUILD b/pcr/monkeysign/PKGBUILD
new file mode 100644
index 000000000..2e4ab1f3f
--- /dev/null
+++ b/pcr/monkeysign/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+pkgname=monkeysign
+pkgver=1.0
+pkgrel=1
+pkgdesc="OpenPGP Key Exchange for Humans"
+arch=('any')
+url="http://web.monkeysphere.info/monkeysign/"
+license=('GPL3')
+depends=('python2-setuptools' 'python2-qrencode' 'gtk2' 'pygtk' 'zbar' 'python2-imaging')
+source=(http://cdn.debian.net/debian/pool/main/m/${pkgname}/${pkgname}_${pkgver}.tar.gz)
+# http://cdn.debian.net/debian/pool/main/m/monkeysign/monkeysign_1.0.dsc
+sha1sums=('28e29beae7fed3c3deba236cbe8879cab5eeb4e8')
+sha256sums=('944fc4d0915236bf72390bd2dc2f5445cfb70033df438b91b1af38bd0ff9fd46')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" --prefix="/usr" --optimize=1
+}
+
diff --git a/pcr/monkeysphere/PKGBUILD b/pcr/monkeysphere/PKGBUILD
new file mode 100644
index 000000000..749cb0c25
--- /dev/null
+++ b/pcr/monkeysphere/PKGBUILD
@@ -0,0 +1,39 @@
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+# Based on monkeysphere-git from
+# Contributor: Olivier Mehani <shtrom-arch@ssji.net>
+# $Id: PKGBUILD 264 2010-11-10 00:57:53Z shtrom $
+pkgname=monkeysphere
+pkgver=0.36
+pkgrel=1
+pkgdesc="Leverage the OpenPGP web of trust for OpenSSH and Web authentication"
+arch=('any')
+url="http://web.monkeysphere.info/"
+license=('GPL3')
+depends=('gnupg' 'lockfile-progs' 'perl-crypt-openssl-rsa' 'perl-digest-sha1')
+source=(http://archive.monkeysphere.info/debian/pool/${pkgname}/m/${pkgname}/${pkgname}_${pkgver}.orig.tar.gz
+ binmerge.patch)
+install=monkeysphere.install
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Ni "${srcdir}/binmerge.patch"
+}
+
+# Checks fail
+#check() {
+# cd "$srcdir/$pkgname-$pkgver"
+#
+# make test
+#}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ mkdir -p $pkgdir/var/lib/monkeysphere
+}
+sha1sums=('c4f950346040f7703cb4c6e8b32022f4361d0c9d'
+ '780c2e203980558316b0714c4b2a3ad49be3ea27')
+sha256sums=('6ae4edeff2cc29b6913346e15b61500ea7cc06d761a9f42e67de83b7d2607be7'
+ 'e49a1097296b06090010ce5344588f5e4917aeb06a118de920fc58411d2a7cf7')
diff --git a/pcr/monkeysphere/binmerge.patch b/pcr/monkeysphere/binmerge.patch
new file mode 100644
index 000000000..48d945511
--- /dev/null
+++ b/pcr/monkeysphere/binmerge.patch
@@ -0,0 +1,25 @@
+--- Makefile.orig 2013-06-07 13:02:23.123944233 -0300
++++ Makefile 2013-06-07 13:02:43.351065809 -0300
+@@ -36,17 +36,17 @@
+ # this target is to be called from the tarball, not from the git
+ # working dir!
+ install: all installman
+- mkdir -p $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PREFIX)/sbin
++ mkdir -p $(DESTDIR)$(PREFIX)/bin
+ mkdir -p $(DESTDIR)$(PREFIX)/share/monkeysphere/m $(DESTDIR)$(PREFIX)/share/monkeysphere/mh $(DESTDIR)$(PREFIX)/share/monkeysphere/ma $(DESTDIR)$(PREFIX)/share/monkeysphere/transitions
+ mkdir -p $(DESTDIR)$(ETCPREFIX)/etc/monkeysphere
+ mkdir -p $(DESTDIR)$(PREFIX)/share/doc/monkeysphere
+ printf "Monkeysphere %s\n" $(MONKEYSPHERE_VERSION) > $(DESTDIR)$(PREFIX)/share/monkeysphere/VERSION
+ install src/monkeysphere $(DESTDIR)$(PREFIX)/bin
+ sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/bin/monkeysphere
+- install src/monkeysphere-host $(DESTDIR)$(PREFIX)/sbin
+- sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/sbin/monkeysphere-host
+- install src/monkeysphere-authentication $(DESTDIR)$(PREFIX)/sbin
+- sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/sbin/monkeysphere-authentication
++ install src/monkeysphere-host $(DESTDIR)$(PREFIX)/bin
++ sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/bin/monkeysphere-host
++ install src/monkeysphere-authentication $(DESTDIR)$(PREFIX)/bin
++ sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/bin/monkeysphere-authentication
+ install src/monkeysphere-authentication-keys-for-user $(DESTDIR)$(PREFIX)/share/monkeysphere
+ install -m 0644 src/share/common $(DESTDIR)$(PREFIX)/share/monkeysphere
+ install -m 0644 src/share/defaultenv $(DESTDIR)$(PREFIX)/share/monkeysphere
diff --git a/pcr/monkeysphere/monkeysphere.install b/pcr/monkeysphere/monkeysphere.install
new file mode 100644
index 000000000..2013f9f41
--- /dev/null
+++ b/pcr/monkeysphere/monkeysphere.install
@@ -0,0 +1,43 @@
+#!/bin/sh
+# $Id: monkeysphere.install 264 2010-11-10 00:57:53Z shtrom $
+# vim:set ts=2 sw=2 et:
+
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ echo ">>> Creating monkeysphere user and group and setting permissions..."
+ getent group monkeysphere >/dev/null || usr/sbin/groupadd monkeysphere
+ getent passwd monkeysphere >/dev/null || usr/sbin/useradd -c 'Monkeysphere WoT server identification tool' -g monkeysphere -d '/var/lib/monkeysphere' -s /bin/bash monkeysphere
+
+# Should be root:root for sshd to work
+ chown root:root /var/lib/monkeysphere
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+# Should be root:root for sshd to work
+ chown root:root /var/lib/monkeysphere
+}
+
+# arg 1: the old package version
+pre_remove() {
+ usr/sbin/userdel monkeysphere &>/dev/null
+ (getent group monkeysphere >/dev/null && usr/sbin/groupdel monkeysphere &>/dev/null) || /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
diff --git a/pcr/mosquitto/PKGBUILD b/pcr/mosquitto/PKGBUILD
new file mode 100644
index 000000000..2f765ad13
--- /dev/null
+++ b/pcr/mosquitto/PKGBUILD
@@ -0,0 +1,44 @@
+# This is the PKGBUILD for mosquitto, an MQTT broker and example clients
+# Maintainer: Alexander Rust <mail at alr dot st>
+# Contributor: Dan Anderson <dan-anderson at cox dptnet>
+
+pkgname=mosquitto
+pkgver=1.1.3
+pkgrel=3
+pkgdesc="An Open Source MQTT v3.1 Broker"
+arch=('i686' 'x86_64' 'arm' 'armv6h' 'mips64el')
+url="http://mosquitto.org/"
+makedepends=('python')
+optdepends=('python: python support')
+license=('BSD')
+source=(http://mosquitto.org/files/source/$pkgname-$pkgver.tar.gz{,.asc} "$pkgname.service"
+ "binmerge.patch")
+md5sums=('fd0cae17221d778b0a002c31e6c3de9e'
+ 'SKIP'
+ '58af79ed48be928f91e5435cda82bb8b'
+ '27e24b672d63b797f0e026ab85c64c4b')
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver/src"
+ patch -N -i ${srcdir}/binmerge.patch
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make prefix=/usr
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix=/usr DESTDIR="$pkgdir/" install
+
+ # Systemd service file
+ install -Dm644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system/$pkgname.service
+
+ # License files
+ install -Dm644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 LICENSE-3rd-party.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE-3rd-party
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/mosquitto/binmerge.patch b/pcr/mosquitto/binmerge.patch
new file mode 100644
index 000000000..d6d79041d
--- /dev/null
+++ b/pcr/mosquitto/binmerge.patch
@@ -0,0 +1,21 @@
+--- src/Makefile.orig 2013-06-03 12:23:15.288586121 -0300
++++ src/Makefile 2013-06-03 12:23:29.455571403 -0300
+@@ -90,15 +90,15 @@
+ ${CC} $(CFLAGS) ${CPPFLAGS} -c $< -o $@
+
+ install : all
+- $(INSTALL) -d ${DESTDIR}$(prefix)/sbin
+- $(INSTALL) -s mosquitto ${DESTDIR}${prefix}/sbin/mosquitto
++ $(INSTALL) -d ${DESTDIR}$(prefix)/bin
++ $(INSTALL) -s mosquitto ${DESTDIR}${prefix}/bin/mosquitto
+ $(INSTALL) mosquitto_plugin.h ${DESTDIR}${prefix}/include/mosquitto_plugin.h
+ ifeq ($(WITH_TLS),yes)
+ $(INSTALL) -s mosquitto_passwd ${DESTDIR}${prefix}/bin/mosquitto_passwd
+ endif
+
+ uninstall :
+- -rm -f ${DESTDIR}${prefix}/sbin/mosquitto
++ -rm -f ${DESTDIR}${prefix}/bin/mosquitto
+ -rm -f ${DESTDIR}${prefix}/include/mosquitto_plugin.h
+ -rm -f ${DESTDIR}${prefix}/bin/mosquitto_passwd
+
diff --git a/pcr/mosquitto/mosquitto.service b/pcr/mosquitto/mosquitto.service
new file mode 100644
index 000000000..9626cbc45
--- /dev/null
+++ b/pcr/mosquitto/mosquitto.service
@@ -0,0 +1,22 @@
+# This file is part of systemd.
+#
+# systemd 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.
+
+[Unit]
+Description=Mosquitto MQTT Broker daemon
+ConditionPathExists=/etc/mosquitto/mosquitto.conf
+Requires=network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/mosquitto -c /etc/mosquitto/mosquitto.conf -d
+ExecStartPre=/usr/bin/rm -f /run/mosquitto.pid
+PIDFile=/run/mosquitto.pid
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pcr/mozilla-devscripts/PKGBUILD b/pcr/mozilla-devscripts/PKGBUILD
new file mode 100644
index 000000000..ef7ea7641
--- /dev/null
+++ b/pcr/mozilla-devscripts/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: Márcio Silva <coadde@lavabit.com>
+
+pkgname=mozilla-devscripts
+pkgver=0.32
+pkgrel=1
+pkgdesc="Development scripts used by Debian Mozilla's addons packages"
+arch=("any")
+url="http://packages.debian.org/source/unstable/mozilla-devscripts"
+license=('GPL' 'custom')
+depends=("python2" "zip" "unzip")
+_debrepo=http://ftp.debian.org/debian/pool/main/
+source=("${_debrepo}/m/${pkgname}/${pkgname}_${pkgver}.dsc"
+ "${_debrepo}/m/${pkgname}/${pkgname}_${pkgver}.tar.gz")
+md5sums=("386a5854601f29dca4a293f90f6c2a69"
+ "230126afa15fa654eb254bb4e61b4a93")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # Adapt it to Arch's Python naming.
+ find . -type f | xargs -L1 sed -i "s:#!/usr/bin/python:#!/usr/bin/python2:"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # The Makefile expects the system to have standard Python name, so
+ # do this directly here.
+ python2 setup.py install --root="$pkgdir/"
+ install -Dm644 debian/copyright "${pkgdir}/usr/share/licenses/${pkgname}/copyright"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/msdl/PKGBUILD b/pcr/msdl/PKGBUILD
new file mode 100644
index 000000000..dfcf99c03
--- /dev/null
+++ b/pcr/msdl/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Nathan Owe ndowens04 at gmail dot com
+# Contributor: noonov <noonov@gmail.com>
+
+pkgname=msdl
+pkgver=1.2.7_r2
+_pkgver=${pkgver/_/-}
+pkgrel=1
+pkgdesc="A multi-protocol downloader for various streaming protocols"
+arch=('i686' 'x86_64')
+url="http://msdl.sourceforge.net/"
+license=('GPL3')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/msdl/${pkgname}-${_pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${pkgname}-${_pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${_pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
+
+md5sums=('a2b37162115170cc59ff6ace1d9c5ac4')
+
diff --git a/pcr/multipath-tools-git/PKGBUILD b/pcr/multipath-tools-git/PKGBUILD
new file mode 100644
index 000000000..d1bb4ac9b
--- /dev/null
+++ b/pcr/multipath-tools-git/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Miguel Revilla <yo@miguelrevilla.com>
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Timothée Ravier <tim@siosm.fr>
+
+pkgname=multipath-tools-git
+pkgver=1295.81895af
+pkgrel=1
+pkgdesc="Tools to drive the Device Mapper multipathing driver (contains kpartx)"
+url="http://christophe.varoqui.free.fr/"
+arch=('x86_64' 'i686')
+license=('GPL2')
+depends=('libaio' 'device-mapper')
+makedepends=('git' 'setconf')
+options=(!emptydirs)
+source=("${pkgname}::git+http://git.opensvc.com/multipath-tools/.git")
+md5sums=('SKIP')
+
+pkgver() {
+ cd ${pkgname}
+ echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD)
+}
+
+prepare() {
+ cd ${pkgname}
+ sed -i 's|/sbin|/usr/bin|g' Makefile.inc
+ sed -i 's|LIB=lib|LIB=usr/lib|g' Makefile.inc
+ sed -i 's|${prefix}/lib/udev|${prefix}/usr/lib/udev|g' Makefile.inc
+ sed -i 's|$(prefix)/lib/systemd/system|$(prefix)/usr/lib/systemd/system|g' Makefile.inc
+}
+
+build() {
+ cd ${pkgname}
+ setconf Makefile.inc GZIP '/usr/bin/gzip -9 -c'
+ make
+}
+
+package() {
+ cd ${pkgname}
+ make LIB="/usr/lib" DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING
+ cd "${pkgdir}"/usr/lib
+ rm libmpathpersist.so
+ ln -s libmpathpersist.so.0 libmpathpersist.so
+}
diff --git a/pcr/multiwatch/PKGBUILD b/pcr/multiwatch/PKGBUILD
new file mode 100644
index 000000000..2cf0bcc68
--- /dev/null
+++ b/pcr/multiwatch/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Paul Dann <pdgiddie at gmail dot com>
+pkgname=multiwatch
+pkgver='1.0.0'
+pkgrel=1
+pkgdesc='Forks and watches multiple instances of a program in the same context'
+arch=('i686' 'x86_64')
+url="http://redmine.lighttpd.net/projects/multiwatch/wiki"
+license=('MIT')
+depends=('libev')
+makedepends=('cmake')
+source=("http://download.lighttpd.net/multiwatch/releases-1.x/multiwatch-$pkgver.tar.bz2")
+md5sums=('87f74dbaf5318f2b2dce3d0bf9f5025c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ rm -rf build
+ mkdir build
+ cd build
+ cmake ..
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/build"
+ install -Dm 755 multiwatch $pkgdir/usr/bin/multiwatch
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/musescore/PKGBUILD b/pcr/musescore/PKGBUILD
new file mode 100644
index 000000000..8acfecfeb
--- /dev/null
+++ b/pcr/musescore/PKGBUILD
@@ -0,0 +1,46 @@
+# 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.3
+pkgrel=3
+pkgdesc="A music score editor written in Qt"
+arch=('i686' 'x86_64')
+url="http://www.musescore.org/en/"
+license=('GPL')
+depends=('shared-mime-info' 'qtscriptgenerator' 'portaudio')
+makedepends=('cmake' 'doxygen')
+optdepends=('jack')
+install=musescore.install
+source=("http://downloads.sourceforge.net/mscore/mscore-${pkgver}.tar.bz2"
+paths.patch system_qscriptgenerator.patch mime.xml qmake-qt4.patch desktop.patch)
+md5sums=('e5fde2bef0d40ee7542e1f515a3919d1'
+ '28f61c298f53214adacbc8d43f9c43e9'
+ '51e590842a92cdea7efa01fd60fe715c'
+ '969696178e56de36f9af37d7da61baaa'
+ 'a9e1d9c1a891810172245c6021682258'
+ 'c8f37720422ae1e1a0fa02b284bd00ed')
+
+build() {
+ cd $srcdir/mscore-${pkgver}
+ export QT_PLUGINS_DIR=/usr/lib/qt4/plugins
+ [ -d build ] && make clean
+ patch -p1 < $srcdir/system_qscriptgenerator.patch
+ patch -p1 < $srcdir/paths.patch
+ patch -p1 < $srcdir/desktop.patch
+ patch -p1 < $srcdir/qmake-qt4.patch
+ make PREFIX=/usr release
+}
+
+package() {
+ cd $srcdir/mscore-${pkgver}
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ cd $pkgdir/usr/share/mscore-$pkgver/man
+ install -d $pkgdir/usr/share/doc/$pkgname
+ cp * $pkgdir/usr/share/doc/$pkgname/
+ cd ../..
+ rm -r $pkgdir/usr/share/mscore-$pkgver/man
+ install -Dm644 $srcdir/mime.xml \
+ $pkgdir/usr/share/mime/packages/x-musescore.xml
+}
diff --git a/pcr/musescore/desktop.patch b/pcr/musescore/desktop.patch
new file mode 100644
index 000000000..46beefc93
--- /dev/null
+++ b/pcr/musescore/desktop.patch
@@ -0,0 +1,12 @@
+diff -Naur mscore-1.2.old/mscore/packaging/mscore.desktop mscore-1.2.new/mscore/packaging/mscore.desktop
+--- mscore-1.2.old/mscore/packaging/mscore.desktop 2013-01-20 14:54:27.000000000 +0100
++++ mscore-1.2.new/mscore/packaging/mscore.desktop 2013-01-20 14:55:11.000000000 +0100
+@@ -3,7 +3,7 @@
+ Comment=WYSIWYG Music score typesetter
+ Comment[ru]=Визуальный редактор нотных партитур
+ Exec=mscore
+-GenericName=mscore
++GenericName=MuseScore
+ GenericName[ru]=MuseScore
+ Icon=mscore
+ Name=MuseScore
diff --git a/pcr/musescore/mime.xml b/pcr/musescore/mime.xml
new file mode 100644
index 000000000..a46de9f41
--- /dev/null
+++ b/pcr/musescore/mime.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+<mime-type type="application/x-musescore">
+</mime-type>
+</mime-info>
diff --git a/pcr/musescore/musescore.install b/pcr/musescore/musescore.install
new file mode 100644
index 000000000..6da0990dc
--- /dev/null
+++ b/pcr/musescore/musescore.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database /usr/share/mime/
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/musescore/paths.patch b/pcr/musescore/paths.patch
new file mode 100644
index 000000000..a1e43a93d
--- /dev/null
+++ b/pcr/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
+@@ -919,15 +919,15 @@
+ if (debugMode)
+ printf("open handbook for language <%s>\n", qPrintable(lang));
+
+- QFileInfo mscoreHelp(mscoreGlobalShare + QString("man/MuseScore-") + lang + QString(".pdf"));
++ QFileInfo mscoreHelp(("/usr/share/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(("/usr/share/doc/musescore/MuseScore-") + lang + QString(".pdf"));
+ if(!mscoreHelp.isReadable()){
+- mscoreHelp.setFile(mscoreGlobalShare + QString("man/MuseScore-en.pdf"));
++ mscoreHelp.setFile(("/usr/share/doc/musescore/MuseScore-en.pdf"));
+ if (!mscoreHelp.isReadable()) {
+ QString info(tr("MuseScore handbook not found at: \n"));
+ info += mscoreHelp.filePath();
diff --git a/pcr/musescore/qmake-qt4.patch b/pcr/musescore/qmake-qt4.patch
new file mode 100644
index 000000000..27c50d8b3
--- /dev/null
+++ b/pcr/musescore/qmake-qt4.patch
@@ -0,0 +1,25 @@
+diff -Naur mscore-1.3.orig/Makefile mscore-1.3.new/Makefile
+--- mscore-1.3.orig/Makefile 2013-03-05 18:41:00.000000000 +0100
++++ mscore-1.3.new/Makefile 2013-03-05 18:55:46.000000000 +0100
+@@ -34,6 +34,7 @@
+ cd build; \
+ cmake -DCMAKE_BUILD_TYPE=RELEASE \
+ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \
++ -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4 \
+ ../mscore; \
+ make lrelease; \
+ make -j ${CPUS}; \
+diff -Naur mscore-1.3.orig/mscore/CMakeLists.txt mscore-1.3.new/mscore/CMakeLists.txt
+--- mscore-1.3.orig/mscore/CMakeLists.txt 2013-03-05 18:41:27.000000000 +0100
++++ mscore-1.3.new/mscore/CMakeLists.txt 2013-03-05 18:54:35.000000000 +0100
+@@ -427,8 +427,8 @@
+
+ add_custom_target(lrelease
+ COMMAND ${PROJECT_SOURCE_DIR}/gen-qt-projectfile ${PROJECT_SOURCE_DIR} > mscore.pro
+- COMMAND lrelease ${PROJECT_SOURCE_DIR}/share/locale/*.ts
+- COMMAND lrelease ${PROJECT_SOURCE_DIR}/share/plugins/musescore.com/translations/*.ts
++ COMMAND lrelease-qt4 ${PROJECT_SOURCE_DIR}/share/locale/*.ts
++ COMMAND lrelease-qt4 ${PROJECT_SOURCE_DIR}/share/plugins/musescore.com/translations/*.ts
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+ )
+
diff --git a/pcr/musescore/system_qscriptgenerator.patch b/pcr/musescore/system_qscriptgenerator.patch
new file mode 100644
index 000000000..6deef6ec9
--- /dev/null
+++ b/pcr/musescore/system_qscriptgenerator.patch
@@ -0,0 +1,11 @@
+diff -Naur mscore-1.3.orig/mscore/CMakeLists.txt mscore-1.3.new/mscore/CMakeLists.txt
+--- mscore-1.3.orig/mscore/CMakeLists.txt 2011-12-23 20:22:29.000000000 +0100
++++ mscore-1.3.new/mscore/CMakeLists.txt 2011-12-23 20:36:37.000000000 +0100
+@@ -31,6 +31,6 @@
+ set(GCC_VISIBILITY TRUE) # requires gcc 4.x?
+ set(HAS_AUDIOFILE TRUE) # requires libsndfile
+
+-set(BUILD_SCRIPTGEN TRUE) #Generate Qt script bindings. (collides with qtscriptgenerator project on several distrib)
++set(BUILD_SCRIPTGEN FALSE) #Generate Qt script bindings. (collides with qtscriptgenerator project on several distrib)
+ set(STATIC_SCRIPT_BINDINGS FALSE)
+ set(USE_SSE FALSE)
diff --git a/pcr/mx44/PKGBUILD b/pcr/mx44/PKGBUILD
new file mode 100644
index 000000000..6666a1405
--- /dev/null
+++ b/pcr/mx44/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+pkgname=mx44
+_pkgname=Mx44
+pkgver=2
+pkgrel=1
+pkgdesc="polyphonic multi-channel MIDI software synthesizer"
+arch=('i686')
+url="http://web.comhem.se/luna/"
+license=('GPL')
+depends=('jack' 'gtk2')
+source=(http://web.comhem.se/luna/$_pkgname.$pkgver.tar.gz)
+md5sums=('8e532c78d79e189fe5b6e2dd10acf0e2')
+
+build() {
+ cd $srcdir/$_pkgname.$pkgver/src
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgname.$pkgver/src
+ install -m755 -d ${pkgdir}/usr/bin
+ make PREFIX=$pkgdir/usr/ install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/mycron-git/PKGBUILD b/pcr/mycron-git/PKGBUILD
new file mode 100644
index 000000000..16022bc5f
--- /dev/null
+++ b/pcr/mycron-git/PKGBUILD
@@ -0,0 +1,49 @@
+# Contributor: Dirk Sohler <spam@0x7be.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=mycron-git
+pkgver=20121116
+pkgrel=1
+pkgdesc='A standards compliant and convenient crontab management system.'
+
+url='https://dev.0x7be.de/mycron'
+arch=('any')
+license=('GPL')
+
+depends=('python>=3.0')
+makedepends=('git')
+
+install=mycron.install
+
+source=('mycron.install')
+sha256sums=('a5406ae03412d3a1aaf6aadb902b4dd40bb6eadb21aa2ffb7c21ae95d656f598')
+
+_gitroot='https://github.com/dsohler/mycron'
+_gitname='master'
+
+build() {
+ cd $srcdir
+ msg "Connecting to GIT server...."
+
+ if [[ -d "$_gitname" ]]; then
+ cd "$_gitname" && git pull origin
+ msg "The local files are updated."
+ else
+ git clone "$_gitroot" "$_gitname"
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting build..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+}
+
+package() {
+ cd "$srcdir/$_gitname-build"
+ install -Dm 755 mycron.py $pkgdir/usr/bin/mycron
+ install -Dm 644 example-config.cfg \
+ $pkgdir/usr/share/doc/mycron/example-config.cfg
+ install -Dm 644 example.crontab \
+ $pkgdir/usr/share/doc/mycron/example.crontab
+}
diff --git a/pcr/mycron-git/mycron.install b/pcr/mycron-git/mycron.install
new file mode 100644
index 000000000..a56c1ab97
--- /dev/null
+++ b/pcr/mycron-git/mycron.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo 'Don’t forget to set up your cron service/daemon to execute mycron every minute. See https://dev.0x7be.de/mycron for setup instructions and configuration examples.' | fold -sw 70
+}
diff --git a/pcr/nagios-nrpe-plugin/PKGBUILD b/pcr/nagios-nrpe-plugin/PKGBUILD
new file mode 100644
index 000000000..3f2cba3c0
--- /dev/null
+++ b/pcr/nagios-nrpe-plugin/PKGBUILD
@@ -0,0 +1,23 @@
+# https://github.com/mvgrimes/aur-nagios-npre-plugin
+# Contributor: Mark Grimes <mgrimes at peculier dot com>
+# Contributor: Idares <idares@seznam.cz>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=nagios-nrpe-plugin
+pkgver=2.13
+pkgrel=1
+pkgdesc="The Nagios NRPE server side plugin."
+license=('GPL')
+arch=('i686' 'x86_64')
+url="http://www.nagios.org"
+source=("http://downloads.sourceforge.net/nagios/nrpe-$pkgver.tar.gz")
+
+depends=(nagios)
+
+build() {
+ cd $startdir/src/nrpe-$pkgver
+ ./configure --prefix=/usr/share/nagios \
+ --with-nagios-user=nobody --with-nagios-group=nobody || return 1
+ make || return 1
+ make prefix=$startdir/pkg/usr/share/nagios install-plugin || return 1
+}
diff --git a/pcr/nagios-plugins/PKGBUILD b/pcr/nagios-plugins/PKGBUILD
new file mode 100644
index 000000000..e1379d193
--- /dev/null
+++ b/pcr/nagios-plugins/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Idares <idares@seznam.cz>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=nagios-plugins
+pkgver=1.4.16
+pkgrel=1
+pkgdesc="Plugins are scripts and programs that perform host and service checks."
+license=('GPL')
+arch=('i686' 'x86_64')
+url="http://www.nagiosplugins.org"
+source=("http://downloads.sourceforge.net/nagiosplug/$pkgname-$pkgver.tar.gz"
+ "stdio.patch")
+makedepends=('net-snmp')
+optdepends=('net-snmp: for SNMP checking.')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 -i "$srcdir/stdio.patch"
+ ./configure --prefix=/usr/share/nagios
+ make
+ make prefix=$startdir/pkg/usr/share/nagios install
+ make prefix=$startdir/pkg/usr/share/nagios install-root
+}
+
+sha1sums=('52db48b15572b98c6fcd8aaec2ef4d2aad7640d3'
+ '6a40a8bc8c907f5cf722e4440900d872767d465c')
+
diff --git a/pcr/nagios-plugins/stdio.patch b/pcr/nagios-plugins/stdio.patch
new file mode 100644
index 000000000..f87d313b5
--- /dev/null
+++ b/pcr/nagios-plugins/stdio.patch
@@ -0,0 +1,14 @@
+diff -Naur nagios-plugins-1.4.16-orig/gl/stdio.in.h nagios-plugins-1.4.16-patched/gl/stdio.in.h
+--- nagios-plugins-1.4.16-orig/gl/stdio.in.h 2012-06-27 19:32:47.000000000 +0200
++++ nagios-plugins-1.4.16-patched/gl/stdio.in.h 2012-08-09 06:29:26.038030953 +0200
+@@ -140,8 +140,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+ so any use of gets warrants an unconditional warning. Assume it is
+ always declared, since it is required by C89. */
++#ifdef gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/pcr/nautilus-dropbox/PKGBUILD b/pcr/nautilus-dropbox/PKGBUILD
new file mode 100644
index 000000000..c8a81a959
--- /dev/null
+++ b/pcr/nautilus-dropbox/PKGBUILD
@@ -0,0 +1,45 @@
+# Contributor: josephgbr <rafael.f.f1@gmail.com>
+# Contributor: cmorlok <christianmorlok@web.de>
+# Contributor: fazibear <fazibear@gmail.com>
+# Contributor: neuromante <lorenzo.nizzi.grifi@gmail.com>
+# Contributor: Gordin <9ordin @t gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurlien Desbrires <aurelien@cwb.io>
+
+pkgname=nautilus-dropbox
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Dropbox for Linux - Nautilus extension"
+arch=('i686' 'x86_64')
+url="https://www.dropbox.com/"
+license=('custom:CC-BY-ND-3' 'GPL')
+depends=('libnotify' 'nautilus' 'dropbox' 'hicolor-icon-theme')
+makedepends=('python2-docutils' 'python2' 'pygtk')
+install=${pkgname}.install
+options=('!libtool' '!emptydirs')
+source=("https://linux.dropbox.com/packages/${pkgname}-${pkgver}.tar.bz2")
+
+build() {
+ cd "${pkgname}-${pkgver}/"
+
+ sed "s/python/python2/" \
+ -i configure \
+ -i Makefile.am \
+ -i Makefile.in \
+ -i dropbox.in \
+ -i rst2man.py
+
+ # since python2-docutils, rst2man.py is named "rst2man2.py"
+ sed "s#rst2man.py#/usr/bin/rst2man2.py#" \
+ -i configure
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}/"
+ make DESTDIR="${pkgdir}" install
+ rm "${pkgdir}/usr/bin/dropbox"
+ rm "${pkgdir}/usr/share/applications/dropbox.desktop"
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/pcr/nautilus-dropbox/nautilus-dropbox.install b/pcr/nautilus-dropbox/nautilus-dropbox.install
new file mode 100644
index 000000000..c4f3ef960
--- /dev/null
+++ b/pcr/nautilus-dropbox/nautilus-dropbox.install
@@ -0,0 +1,16 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ cat <<-EndOfMessage
+
+==> Restart nautilus with 'nautilus -q'
+
+EndOfMessage
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/pcr/nekobee/PKGBUILD b/pcr/nekobee/PKGBUILD
new file mode 100644
index 000000000..4e71ae93d
--- /dev/null
+++ b/pcr/nekobee/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=nekobee
+pkgver=0.1.8
+pkgrel=2
+pkgdesc="A TB303-style synthesizer for DSSI"
+url="https://github.com/gordonjcp/nekobee"
+depends=('liblo' 'gtk2')
+makedepends=('dssi' 'python' 'ladspa')
+arch=('i686')
+license=('GPL')
+source=("https://github.com/gordonjcp/${pkgname}/archive/${pkgver}.tar.gz"
+ "nekobee.patch")
+md5sums=('5954ac49043bc80588be72a9b9a9b28f'
+ '8dde87ad9b2a8500c51d773b25b7984f')
+
+build() {
+cd $startdir/src/$pkgname-$pkgver
+patch -p1 -i $srcdir/$pkgname.patch
+./waf configure --prefix=/usr
+./waf
+}
+
+package() {
+cd $startdir/src/$pkgname-$pkgver
+DESTDIR=$pkgdir ./waf install
+}
diff --git a/pcr/nekobee/nekobee.patch b/pcr/nekobee/nekobee.patch
new file mode 100644
index 000000000..dd995c357
--- /dev/null
+++ b/pcr/nekobee/nekobee.patch
@@ -0,0 +1,20 @@
+diff -aur nekobee-0.1.8/wscript nekobee-0.1.8.new/wscript
+--- nekobee-0.1.8/wscript 2010-09-12 21:34:13.000000000 +0200
++++ nekobee-0.1.8.new/wscript 2013-05-25 22:47:23.923441000 +0200
+@@ -31,7 +31,7 @@
+ # DSSI plugin
+ plugin_dssi = bld.new_task_gen('cc', 'shlib')
+ plugin_dssi.env['shlib_PATTERN'] = '%s.so'
+- plugin_dssi.env.append_value("LINKFLAGS", "-module -avoid-version -Wc,-nostartfiles")
++ plugin_dssi.env.append_value("LINKFLAGS", "-lm")
+ plugin_dssi.includes = ['.', 'src']
+ plugin_dssi.defines = 'HAVE_CONFIG_H'
+ plugin_dssi.source = [
+@@ -49,6 +49,7 @@
+
+ # DSSI UI executable
+ gui_gtk = bld.new_task_gen('cc', 'program')
++ gui_gtk.env.append_value("LINKFLAGS", "-lm")
+ gui_gtk.includes = ['.', 'src']
+ gui_gtk.defines = 'HAVE_CONFIG_H'
+ gui_gtk.source = [
diff --git a/pcr/netatalk/PKGBUILD b/pcr/netatalk/PKGBUILD
new file mode 100644
index 000000000..b16132dab
--- /dev/null
+++ b/pcr/netatalk/PKGBUILD
@@ -0,0 +1,53 @@
+# Maintainer: SJ_UnderWater
+# Based on netatalk package :
+# Maintainer: Dominik Dingel <mail at wodar dot de>
+# Contributor: William Udovich <nerdzrule7 at earthlink dot net>
+# Contributor: Farhan Yousaf <farhany at xaviya dot com>
+
+pkgname=netatalk
+pkgver=3.0.4
+pkgrel=2
+pkgdesc='A kernel-level implementation of AFP services'
+arch=('i686' 'x86_64' 'mips64el')
+url='http://netatalk.sourceforge.net'
+license=('GPL')
+depends=('avahi>=0.6' 'libldap' 'libgcrypt>=1.2.3' 'libevent' 'python' 'dbus-glib')
+replaces=('netatalk-git' 'netatalk2')
+backup=('etc/afp.conf'
+ 'etc/extmap.conf')
+options=('!libtool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://iweb.dl.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('f455505884a6aea307640d46a6577fd1')
+
+prepare() {
+ cd $pkgname-$pkgver
+
+ sed -i -e 's:AX_CHECK_DOCBOOK:[AX_CHECK_DOCBOOK]:' -e 's:"/lib/systemd:"/usr/lib/systemd:' -e 's/x"linux/x"generic/' macros/netatalk.m4
+ sed -i 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' {configure.ac,libevent/configure.in}
+ cp /usr/share/automake*/missing .
+
+ autoreconf -i
+}
+
+build() {
+ cd $pkgname-$pkgver
+
+
+ ./configure --prefix=/usr \
+ --sbindir=/usr/bin \
+ --localstatedir=/var/state \
+ --sysconfdir=/etc \
+ --with-init-style=systemd \
+ --with-cracklib \
+ --with-cnid-cdb-backend \
+ --enable-pgp-uam \
+ --with-libevent=no
+
+ make
+}
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/netatalk/netatalk.changelog b/pcr/netatalk/netatalk.changelog
new file mode 100644
index 000000000..8e1937a6c
--- /dev/null
+++ b/pcr/netatalk/netatalk.changelog
@@ -0,0 +1,138 @@
+2013-06-03 SJ_UnderWater
+
+ * 3.0.4-2:
+ move sbindir
+
+2013-05-26 SJ_UnderWater
+
+ * 3.0.4-1:
+ package update
+ minor fixes
+ dbus-glib dependency
+
+2013-03-27 SJ_UnderWater
+
+ * 3.0.3-1:
+ package update
+ minor fixes
+ python dependency
+
+2013-01-27 SJ_UnderWater
+
+ * 3.0.2-1:
+ package update
+ libevent fix
+ copy newer ./missing
+
+2013-01-05 SJ_UnderWater
+
+ * 3.0.1-5:
+ fixed AM deprecations
+ minor install fix
+
+2012-11-28 SJ_UnderWater
+
+ * 3.0.1-4 :
+ fixed mimic model
+
+2012-10-08 SJ_UnderWater
+
+ * 3.0.1-3 :
+ moved systemd from /etc
+ better rc.d install test
+
+2012-10-05 SJ_UnderWater
+
+ * 3.0.1-2 :
+ removed rc.d references
+
+2012-10-04 SJ_UnderWater
+
+ * 3.0.1-1 :
+ new version
+ moved to systemd
+ moved state to /var/db
+
+2012-07-14 SJ_UnderWater
+
+ * 3.0-3 :
+ moved localstate dir
+ to /etc for historical
+ reasons
+
+2012-07-12 SJ_UnderWater
+
+ * 3.0-2 :
+ disable bundled libevent
+
+2012-07-11 SJ_UnderWater
+
+ * 3.0-1 :
+ updated to new release
+ DDP moved to new pkg
+
+2012-06-12 SJ_UnderWater
+
+ * 2.2.3-4 :
+ added kill timing
+
+2012-06-04 SJ_UnderWater
+
+ * 2.2.3-3 :
+ removed conflicting files
+
+2012-06-02 SJ_UnderWater
+
+ * 2.2.3-2 :
+ Missing UAM links
+
+2012-05-29 SJ_UnderWater
+
+ * 2.2.3-1 :
+ updated package version
+ allowing headers and m4
+
+2012-05-01 SJ_UnderWater
+
+ * 2.2.2-6 :
+ moved to .rc files
+ refactored PKGBUILD
+ install rc.d files
+
+2012-04-25 SJ_UnderWater
+
+ * 2.2.2-5 :
+ init rebuild
+ fix dep check
+ fix get_pid
+ function relocation
+
+2012-04-21 SJ_UnderWater
+
+ * 2.2.2-4 :
+ moved to package()
+ added backup
+ split backup
+ moved depends
+
+2012-04-08 SJ_UnderWater
+
+ * 2.2.2-3 :
+ fixed extra dependencies
+ FHS compliance
+ NAMCAP checking
+ moved cups to optdepends
+
+2012-04-07 SJ_UnderWater
+
+ * 2.2.2-2 :
+ added Install
+ changed "conflicts" with "replace"
+ cleaned up PKGBUILD
+
+ * 2.2.2-1 :
+ added ChangeLog.
+ moved to split package format
+ bidirectional dependency-checking
+ moved to release package format
+ PKGBUILD compliance
diff --git a/pcr/netatalk/netatalk.install b/pcr/netatalk/netatalk.install
new file mode 100644
index 000000000..b27dcd44b
--- /dev/null
+++ b/pcr/netatalk/netatalk.install
@@ -0,0 +1,21 @@
+post_install() {
+ post_upgrade
+}
+post_upgrade() {
+ if [ -f /etc/rc.conf ];then
+ if [ "`grep -E '(cnid|atalkd|afpd)' /etc/rc.conf`" ];then
+ echo '>>> Detected old netatalk daemon entries in';
+ echo '>>> /etc/rc.conf, please replace these with';
+ echo '>>> "netatalk" before restarting!';
+ else echo '>>> Add "netatalk" to your DAEMONS list';fi
+ fi
+ if [ -f /etc/avahi/services/adisk.service ] ||
+ [ -f /etc/avahi/services/afpd.service ];then
+ echo '>>> Detected old netatalk service files in';
+ echo '>>> /etc/avahi/services, please delete these';
+ echo '>>> before restarting!';fi
+ if [ -f /opt/netatalk/afp_signature.conf ] ||
+ [ -f /opt/netatalk/afp_voluuid.conf ]; then
+ echo '>>> Found *.conf in /opt/netatalk, please';
+ echo '>>> migrate these to /var/state/netatalk before restarting';fi
+}
diff --git a/pcr/networkmanager-openswan/PKGBUILD b/pcr/networkmanager-openswan/PKGBUILD
new file mode 100644
index 000000000..16ff977b3
--- /dev/null
+++ b/pcr/networkmanager-openswan/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Marti Raudsepp <marti@juffo.org>
+
+pkgname=networkmanager-openswan
+_pkgname=NetworkManager-openswan
+pkgver=0.9.8.0
+pkgrel=1
+pkgdesc="NetworkManager plugin for IPSec VPN tunnels"
+arch=('i686' 'x86_64')
+url="http://ftp.acc.umu.se/pub/GNOME/sources/NetworkManager-openswan/"
+license=('GPL')
+depends=('openswan' 'gtk3' 'networkmanager' 'libgnome-keyring')
+makedepends=('intltool')
+source=(http://ftp.acc.umu.se/pub/GNOME/sources/$_pkgname/0.9/$_pkgname-$pkgver.tar.xz)
+md5sums=('6a373868f85ac3b7c953f7fd6c76e637')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/networkmanager
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/networkmanager-strongswan/PKGBUILD b/pcr/networkmanager-strongswan/PKGBUILD
new file mode 100644
index 000000000..31573dc82
--- /dev/null
+++ b/pcr/networkmanager-strongswan/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Michael Seiwald <michael@mseiwald.at>
+# Maintainer: Dmitry Korzhevin <dkorzhevin at gmail dot com>
+pkgname=networkmanager-strongswan
+_pkgname=NetworkManager-strongswan
+pkgver=1.3.0
+pkgrel=2
+pkgdesc="strongswan NetworkManager plugin"
+arch=('i686' 'x86_64')
+url="http://wiki.strongswan.org/projects/strongswan/wiki/NetworkManager"
+license=('GPL')
+depends=(networkmanager strongswan libgnomeui)
+makedepends=(intltool)
+source=(http://download.strongswan.org/NetworkManager/$_pkgname-$pkgver.tar.gz)
+md5sums=('215f1d3b7b65be236b86bf30b6a4615b')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ ./configure --sysconfdir=/etc \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --with-charon=/usr/lib/strongswan/charon \
+ CFLAGS="$CFLAGS -Wno-error=unused-local-typedefs"
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ #make install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/nevow/PKGBUILD b/pcr/nevow/PKGBUILD
new file mode 100644
index 000000000..956a0cd32
--- /dev/null
+++ b/pcr/nevow/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+# Contributor: Peter Simons <simons@cryp.to>
+pkgname=nevow
+pkgver=0.10.0
+pkgrel=8
+pkgdesc="web application construction kit written in Python"
+arch=('any')
+url='http://pypi.python.org/pypi/Nevow'
+license=('custom')
+depends=('python2' 'twisted')
+source=( http://pypi.python.org/packages/source/N/Nevow/Nevow-$pkgver.tar.gz )
+md5sums=('66dda2ad88f42dea05911add15f4d1b2')
+
+build(){
+ cd "$srcdir/Nevow-$pkgver"
+ python2 setup.py build
+}
+
+package(){
+ cd "$srcdir/Nevow-$pkgver"
+ python2 setup.py install --prefix=/usr --root="$pkgdir" --install-data=/usr/share/"$pkgname"
+ install -D LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/pcr/newlisp/PKGBUILD b/pcr/newlisp/PKGBUILD
new file mode 100644
index 000000000..a53106390
--- /dev/null
+++ b/pcr/newlisp/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: scrawler <scrawler@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurélien DESBRIÈRES <aurelien@cwb.IO>
+
+pkgname=newlisp
+pkgver=10.4.5
+pkgrel=1
+pkgdesc="newLISP is a LISP like, general purpose scripting language."
+url="http://www.newlisp.org"
+license=('GPL')
+arch=('x86_64' 'i686')
+depends=('readline')
+optdepends=('openjdk6')
+options=('docs')
+source=(http://newlisp.org/downloads/$pkgname-$pkgver.tgz)
+install=$pkgname.install
+
+build() {
+cd $srcdir/$pkgname-$pkgver
+./configure
+[ $CARCH = "x86_64" ] && make -f makefile_linuxLP64_utf8
+[ $CARCH = "i686" ] && make -f makefile_linux_utf8
+install -d $pkgdir/usr/bin
+install -d $pkgdir/usr/share/man/man1
+make bindir=$pkgdir/usr/bin mandir=$pkgdir/usr/share/man \
+datadir=$pkgdir/usr/share install
+}
diff --git a/pcr/newlisp/newlisp.install b/pcr/newlisp/newlisp.install
new file mode 100644
index 000000000..2c7fd8481
--- /dev/null
+++ b/pcr/newlisp/newlisp.install
@@ -0,0 +1,20 @@
+pre_install() {
+ rm /usr/bin/newlisp
+}
+
+post_install() {
+ ln -sf /usr/bin/newlisp-10.4.5 /usr/bin/newlisp
+}
+
+pre_upgrade() {
+[[ -f /usr/bin/newlisp ]] && rm /usr/bin/newlisp
+}
+
+post_upgrade() {
+ ln -sf /usr/bin/newlisp-10.4.5 /usr/bin/newlisp
+}
+
+pre_remove() {
+[[ -f /usr/bin/newlisp ]] && rm /usr/bin/newlisp
+}
+
diff --git a/pcr/newtonator/PKGBUILD b/pcr/newtonator/PKGBUILD
new file mode 100644
index 000000000..f007a12b9
--- /dev/null
+++ b/pcr/newtonator/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=newtonator
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="An LV2 soft synth based on velocity and acceleration"
+arch=('i686')
+url="http://newtonator.sourceforge.net/"
+license=('GPL3')
+depends=('lv2' 'gtkmm')
+makedepends=('cmake' 'lv2-c++-tools')
+source=("http://downloads.sourceforge.net/project/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('2a9a809e4c8a4851911cb661bcab24c0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ [ -d build ] || mkdir build && cd build
+
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/build"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/nexuiz-data/PKGBUILD b/pcr/nexuiz-data/PKGBUILD
new file mode 100644
index 000000000..f6d3ba62c
--- /dev/null
+++ b/pcr/nexuiz-data/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: 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-data
+_pkgsourcename=nexuiz
+pkgver=2.5.2
+_zipver=252
+pkgrel=3
+arch=('any')
+pkgdesc="Nexuiz game data"
+conflicts=('nexuiz<2.5.1-3')
+url="http://www.alientrap.org/games/nexuiz"
+license=("GPL")
+source=(http://downloads.sourceforge.net/${_pkgsourcename}/${_pkgsourcename}-${_zipver}.zip)
+md5sums=('d750bc328e58df8492f8d88bdcf818cb')
+
+build() {
+ _nexdir="$pkgdir/opt/nexuiz"
+
+ _install_dir $srcdir/Nexuiz/Docs $_nexdir/docs
+ _install_dir $srcdir/Nexuiz/data $_nexdir/data
+ _install_dir $srcdir/Nexuiz/havoc $_nexdir/havoc
+ _install_dir $srcdir/Nexuiz/server $_nexdir/server
+
+ find $_nexdir/server -name "*_windows.bat" -exec rm {} \;
+ find $_nexdir/server -name "*_mac.sh" -exec rm {} \;
+}
+
+function _install_dir {
+ _src_dir=$1
+ _dest_dir=$2
+ _n=${#_src_dir}
+ for _file in $(find $_src_dir -type f)
+ do
+ _dest_file=${_dest_dir}${_file:$_n}
+ install -Dm644 $_file $_dest_file
+ done
+}
diff --git a/pcr/nexuiz/PKGBUILD b/pcr/nexuiz/PKGBUILD
new file mode 100644
index 000000000..1e3fdfbeb
--- /dev/null
+++ b/pcr/nexuiz/PKGBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: 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=3
+arch=('i686' 'x86_64')
+pkgdesc="A free software first person shooter"
+url="http://www.alientrap.org/games/nexuiz"
+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/pcr/nexuiz/libpng14.patch b/pcr/nexuiz/libpng14.patch
new file mode 100644
index 000000000..d6ce5ea76
--- /dev/null
+++ b/pcr/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/pcr/nexuiz/nexuiz-dedicated b/pcr/nexuiz/nexuiz-dedicated
new file mode 100644
index 000000000..bf517cce7
--- /dev/null
+++ b/pcr/nexuiz/nexuiz-dedicated
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/nexuiz
+./nexuiz-dedicated $@
diff --git a/pcr/nexuiz/nexuiz-glx b/pcr/nexuiz/nexuiz-glx
new file mode 100644
index 000000000..5fad4db07
--- /dev/null
+++ b/pcr/nexuiz/nexuiz-glx
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/nexuiz
+./nexuiz-glx $@
diff --git a/pcr/nexuiz/nexuiz-glx.desktop b/pcr/nexuiz/nexuiz-glx.desktop
new file mode 100644
index 000000000..8808c16db
--- /dev/null
+++ b/pcr/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/pcr/nexuiz/nexuiz-sdl b/pcr/nexuiz/nexuiz-sdl
new file mode 100644
index 000000000..36b6d5cc3
--- /dev/null
+++ b/pcr/nexuiz/nexuiz-sdl
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/nexuiz
+./nexuiz-sdl $@
diff --git a/pcr/nexuiz/nexuiz-sdl.desktop b/pcr/nexuiz/nexuiz-sdl.desktop
new file mode 100644
index 000000000..019970e61
--- /dev/null
+++ b/pcr/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/pcr/nexuiz/nexuiz.png b/pcr/nexuiz/nexuiz.png
new file mode 100644
index 000000000..a0ec8b3d4
--- /dev/null
+++ b/pcr/nexuiz/nexuiz.png
Binary files differ
diff --git a/pcr/nfacct/PKGBUILD b/pcr/nfacct/PKGBUILD
new file mode 100644
index 000000000..88af2acb5
--- /dev/null
+++ b/pcr/nfacct/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Alessandro Sagratini <ale_sagra@hotmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=nfacct
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Command line tool to create/retrieve/delete accounting objects."
+arch=('i686' 'x86_64')
+url="http://www.netfilter.org/projects/nfacct/index.html"
+license=('GPL')
+depends=('libnetfilter_acct')
+options=(!libtool)
+source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/nicotine/PKGBUILD b/pcr/nicotine/PKGBUILD
new file mode 100644
index 000000000..b0bd552b4
--- /dev/null
+++ b/pcr/nicotine/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=nicotine
+pkgver=1.2.16
+pkgrel=1
+pkgdesc="Soulseek music-sharing client, written in python"
+arch=('i686')
+url='http://sourceforge.net/projects/nicotine-plus/'
+license=('GPL')
+depends=('pygtk' 'mutagen' 'python2-sexy')
+makedepends=('setconf')
+optdepends=('python2-geoip: to enable Geographical blocker')
+source=("http://downloads.sourceforge.net/project/nicotine-plus/nicotine-plus/${pkgver}/${pkgname}+-${pkgver}.tar.bz2")
+sha256sums=('71e5b33e273daaf072dbf63839536c14d7ead9d149323d50eee09f7429e34c1d')
+
+prepare() {
+ cd "$srcdir/${pkgname}+-$pkgver"
+
+ # Fix for FS#22476
+ setconf files/nicotine.desktop Icon nicotine-plus-32px
+
+ # Python fix
+ sed -i -e 's|/usr/bin/env python|/usr/bin/env python2|' \
+ -e 's|/usr/bin/python|/usr/bin/python2|' pynicotine/{,gtkgui/}*.py
+}
+
+build() {
+ cd "$srcdir/${pkgname}+-$pkgver/trayicon"
+
+ python2 autogen.py
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}+-$pkgver"
+
+ python2 setup.py install --root="$pkgdir"
+ cd trayicon
+ make DESTDIR="$pkgdir" install
+ ln -s nicotine.py "$pkgdir/usr/bin/nicotine"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/note/PKGBUILD b/pcr/note/PKGBUILD
new file mode 100644
index 000000000..f4b2eefe2
--- /dev/null
+++ b/pcr/note/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: David Pflug <Viaken@Gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+_author=TLINDEN
+_perlmod=note
+pkgname=$_perlmod
+pkgver=1.3.12
+pkgrel=2
+pkgdesc="A Perl-based note taking application with multiple backends"
+arch=('i686' 'x86_64')
+url="http://www.daemon.de/NOTE"
+license=('GPL')
+depends=('perl' 'perl-yaml')
+optdepends=(
+ 'perl-config-general: general db backend'
+ 'perl-crypt-cbc: encryption support'
+ 'perl-crypt-pwsafe3: password safe 3 backend'
+ 'perl-crypt-rijndael: encryption support'
+ 'perl-dbd-mysql: mysql db backend'
+ 'perl-dbi: mysql db backend'
+ )
+source=(http://cpan.perl.org/modules/by-authors/id/T/TL/$_author/$_perlmod-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make install DESTDIR="$pkgdir"
+}
diff --git a/pcr/nova/PKGBUILD b/pcr/nova/PKGBUILD
new file mode 100644
index 000000000..181e5a626
--- /dev/null
+++ b/pcr/nova/PKGBUILD
@@ -0,0 +1,55 @@
+# Contributor: Josh Chase <jcjoshuachase@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=nova
+pkgver=2012.1.2
+_clientname=python-novaclient
+_clientver=2.8.0
+pkgrel=1.1
+pkgdesc="OpenStack cloud computing fabric controller"
+arch=('any')
+license=('custom')
+url="https://launchpad.net/nova"
+depends=('python2'
+ 'python2-cheetah'
+ 'python2-simplejson'
+ 'python2-prettytable'
+ 'python2-amqplib'
+ 'python2-carrot'
+ 'python2-lockfile'
+ 'python2-daemon'
+ 'python2-gflags'
+ 'python2-netaddr'
+ 'glance'
+ 'python2-suds'
+ 'python2-paramiko'
+ 'python2-feedparser'
+ 'python2-babel' )
+makedepends=('python2-distribute')
+source=("https://launchpad.net/nova/essex/2012.1.2/+download/nova-2012.1.2.tar.gz"
+ "http://pypi.python.org/packages/source/${_clientname:0:1}/$_clientname/$_clientname-$_clientver.tar.gz")
+
+build() {
+ cd $srcdir
+
+ find . -type f -exec sed -i -e 's|^#!/usr/bin/python$|#!/usr/bin/python2|' \
+ -e 's|^#!/usr/bin/env python$|#!/usr/bin/env python2|' {} +
+
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py build
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py install --root=$pkgdir
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ install -dm600 "$pkgdir"/etc/$pkgname
+ install -Dm600 etc/$pkgname/* "$pkgdir"/etc/$pkgname/
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/npapi-vlc-git/PKGBUILD b/pcr/npapi-vlc-git/PKGBUILD
new file mode 100644
index 000000000..59b11bff6
--- /dev/null
+++ b/pcr/npapi-vlc-git/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Det
+# Contributor: Pimper (M0Rf30)
+
+_pkgname=npapi-vlc
+pkgname=$_pkgname-git
+pkgver=0.2.213.gc992dba
+pkgrel=1
+pkgdesc="The modern VLC Mozilla plugin"
+arch=('i686' 'x86_64')
+url="http://git.videolan.org/?p=$_pkgname.git;a=summary"
+license=('LGPL-2.1')
+options=('!libtool')
+depends=('vlc')
+makedepends=('git' 'npapi-sdk')
+provides=("$_pkgname=$pkgver")
+conflicts=("$_pkgname")
+source=("git://git.videolan.org/$_pkgname.git")
+md5sums=('SKIP')
+
+pkgver() {
+ cd $_pkgname
+ git describe --always | sed 's/-/./g'
+}
+
+build() {
+ cd $_pkgname
+ msg2 "Starting autogen.sh..."
+ sh ./autogen.sh
+ msg2 "Starting configure..."
+ ./configure --prefix=/usr
+ msg2 "Starting make..."
+ make
+}
+
+package() {
+ cd $_pkgname
+ msg2 "Starting make install..."
+ make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$_pkgname/COPYING"
+} \ No newline at end of file
diff --git a/pcr/ocaml-camomile/PKGBUILD b/pcr/ocaml-camomile/PKGBUILD
new file mode 100644
index 000000000..48c8eb2f9
--- /dev/null
+++ b/pcr/ocaml-camomile/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Serge Zirukin <ftrvxmtrx@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=ocaml-camomile
+pkgver=0.8.4
+pkgrel=2
+pkgdesc="Comprehensive Unicode library for OCaml"
+arch=('i686' 'x86_64')
+url="https://github.com/yoriyuki/Camomile"
+license=('LGPL')
+depends=('ocaml' 'ocaml-findlib>=1.2.3')
+install=
+source=(https://github.com/downloads/yoriyuki/${pkgname/ocaml-}/${pkgname/ocaml-/}-$pkgver.tar.bz2)
+md5sums=('389f1a7e5c2a634fbb3ea6f764d77bd3')
+options=(!strip !makeflags)
+
+build() {
+ cd "$srcdir/${pkgname/ocaml-/}-$pkgver"
+
+ ./configure --prefix=/usr
+ mkdir -p $pkgdir$(ocamlfind printconf destdir) || return 1
+ mkdir -p $pkgdir/usr/bin
+ sed -i -e 's|ocamlfind install|ocamlfind install -destdir '$pkgdir$(ocamlfind printconf destdir)'|' Makefile || return 1
+ make || return 1
+ make DATADIR="$pkgdir/usr/share" BINDIR="$pkgdir/usr/bin" install
+ install -Dm 644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/pcr/ocaml-pcre/PKGBUILD b/pcr/ocaml-pcre/PKGBUILD
new file mode 100644
index 000000000..bfc214b28
--- /dev/null
+++ b/pcr/ocaml-pcre/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Serge Zirukin <ftrvxmtrx@gmail.com>
+# Contributor: Sergei Lebedev <superbobry@gmail.com>
+# Contributor: Magnus Therning <magnus@therning.org>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=ocaml-pcre
+pkgver=7.0.2
+pkgrel=2
+pkgdesc="Perl compatible regular expressions for OCaml"
+arch=('i686' 'x86_64')
+url="http://www.ocaml.info/home/ocaml_sources.html#toc18"
+license=('LGPL')
+depends=('ocaml' 'pcre>=4.5')
+makedepends=('ocaml-findlib')
+replaces=('pcre-ocaml')
+conflicts=('pcre-ocaml')
+source=("https://bitbucket.org/mmottl/pcre-ocaml/downloads/pcre-ocaml-$pkgver.tar.gz")
+md5sums=('412eec5674a8bab76ccd09e006a24e10')
+options=(!strip)
+
+build() {
+ cd "$srcdir/pcre-ocaml-$pkgver"
+
+ ./configure --disable-debug --prefix /usr --destdir "$pkgdir"
+ make all
+}
+
+package() {
+ cd "$srcdir/pcre-ocaml-$pkgver"
+ export OCAMLFIND_DESTDIR="$pkgdir$(ocamlfind printconf destdir)"
+ install -dm 755 "$OCAMLFIND_DESTDIR/stublibs"
+ make install
+ install -Dm 644 COPYING.txt "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/pcr/ocsync/PKGBUILD b/pcr/ocsync/PKGBUILD
new file mode 100644
index 000000000..cc780cfbb
--- /dev/null
+++ b/pcr/ocsync/PKGBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Kuba Serafinowski <zizzfizzix(at)gmail(dot)com>
+# https://github.com/zizzfizzix/pkgbuilds
+# Maintainer: Jorge Araya Navarro <shackra@riseup.net>
+#
+##############################################################
+#### The section below can be adjusted to suit your needs ####
+##############################################################
+
+# What type of build do you want?
+# See http://techbase.kde.org/Development/CMake/Addons_for_KDE#Buildtypes to check what is supported.
+# Default is RelWithDebInfo to help with debugging.
+
+_buildtype='Release'
+
+##############################################################
+
+pkgname=ocsync
+pkgver=0.91.4
+pkgrel=2
+pkgdesc='A file synchronizer especially designed for you, the normal user. Dependency of owncloud-client.'
+arch=('i686' 'x86_64' 'armv7h')
+url='http://www.csync.org'
+license=('GPL2')
+depends=('sqlite3' 'iniparser' 'neon' 'libssh')
+makedepends=('cmake')
+provides=('csync' 'csync-owncloud')
+conflicts=('csync' 'csync-owncloud')
+options=('staticlibs')
+backup=('etc/ocsync/ocsync.conf' 'etc/ocsync/ocsync_exclude.conf')
+source=("http://download.owncloud.com/desktop/stable/${pkgname}-${pkgver}.tar.bz2")
+
+if [[ ! ${_buildtype} == 'Release' ]] && [[ ! ${_buildtype} == 'release' ]]; then
+ options+=('debug')
+fi
+
+prepare() {
+ if [[ -e ${srcdir}/${pkgname}-${pkgver}-build ]]; then rm -rf ${srcdir}/${pkgname}-${pkgver}-build; fi
+ mkdir ${srcdir}/${pkgname}-${pkgver}-build
+}
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}-build
+
+ cmake -DCMAKE_BUILD_TYPE=${_buildtype} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ ../${pkgname}-${pkgver}
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}-build
+ make DESTDIR=${pkgdir} install
+}
+sha256sums=('9ce5d04ff0475be4c3d3bfff43a554980d88277e95de4128a3f18611529b2cb6')
diff --git a/pcr/oggfwd/PKGBUILD b/pcr/oggfwd/PKGBUILD
new file mode 100644
index 000000000..5dd9e4680
--- /dev/null
+++ b/pcr/oggfwd/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: farid abdelnour < farid at atelier-labs.org>
+
+pkgname=oggfwd
+pkgver=0.2
+pkgrel=2
+pkgdesc="pipes an ogg stream to an icecast server"
+arch=('i686' 'x86_64')
+url="http://v2v.cc/~j/oggfwd/"
+license=('GPL')
+source=(http://www.v2v.cc/~j/ffmpeg2theora/oggfwd/oggfwd.tar.gz)
+md5sums=('8402d26a5a8ff318ef6ea01ec146c8cc')
+depends=(libshout)
+
+build () {
+ cd $srcdir/$pkgname
+ make clean || return 1
+ make oggfwd || return 1
+ install -d $pkgdir/usr/bin || return 1
+ install -m755 oggfwd $pkgdir/usr/bin/oggfwd || return 1
+}
+
diff --git a/pcr/oinkmaster/PKGBUILD b/pcr/oinkmaster/PKGBUILD
new file mode 100644
index 000000000..f533e3663
--- /dev/null
+++ b/pcr/oinkmaster/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Robert Knauer <robert@privatdemail.net>
+# Contributor: Kessia Pinheiro <kessiapinheiro @ gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurélien Desbrières <aurelien@cwb.io>
+
+pkgname=oinkmaster
+pkgver=2.0
+pkgrel=7
+pkgdesc="A script that will help you update and manage your Snort rules"
+arch=('i686' 'x86_64')
+license=('BSD')
+url="http://oinkmaster.sourceforge.net/"
+depends=('snort')
+backup=(
+ 'etc/oinkmaster.conf'
+)
+source=(
+ "http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+)
+sha256sums=(
+ '3d52f0426aa7c81b122cef22b80d708d8bb8337537e48754a065804f46c46162'
+)
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -m0655 -D 'oinkmaster.pl' "${pkgdir}/usr/bin/oinkmaster.pl"
+ install -m0644 -D 'oinkmaster.conf' "${pkgdir}/etc/oinkmaster.conf"
+ install -m0644 -D 'oinkmaster.1' "${pkgdir}/usr/man/man1/oinkmaster.1"
+ install -d -m0644 "${pkgdir}/usr/share/oinkmaster/"
+ install -d -m0755 "${pkgdir}/usr/share/licenses/oinkmaster/"
+ install -m0644 -D 'template-examples.conf' "${pkgdir}/usr/share/oinkmaster/"
+ cp -R 'contrib/' "${pkgdir}/usr/share/oinkmaster/"
+ install -m0644 [[:upper:]]* "${pkgdir}/usr/share/oinkmaster/"
+ install -m0644 -D 'LICENSE' "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/pcr/olsrd/PKGBUILD b/pcr/olsrd/PKGBUILD
new file mode 100644
index 000000000..668e39cea
--- /dev/null
+++ b/pcr/olsrd/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Claudio Pisa <clauz@ninux.org>
+pkgname=olsrd
+pkgver=0.6.1
+pkgrel=2
+pkgdesc="OLSR routing daemon (RFC 3626)"
+arch=(i686 x86_64 ppc mips64el)
+url="http://www.olsr.org"
+license=('BSD')
+depends=('glibc')
+makedepends=('bison')
+backup=etc/olsrd.conf
+install=olsrd.install
+source=(http://www.olsr.org/releases/0.6/${pkgname}-${pkgver}.tar.bz2 rc.d.olsrd)
+md5sums=('a75fc9b6252df5b5f49f13418fafeff1' 'bc3e393e0179ffff0a6d6c9d6a5c4b60')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ CFLAGS+=" -fPIC " \
+ make OS=linux build_all
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install_all
+
+ install -D -m755 $srcdir/rc.d.olsrd $pkgdir/etc/rc.d/olsrd
+ install -D -m644 license.txt $pkgdir/usr/share/licenses/olsrd/LICENSE
+}
+
diff --git a/pcr/olsrd/olsrd.install b/pcr/olsrd/olsrd.install
new file mode 100755
index 000000000..f49372538
--- /dev/null
+++ b/pcr/olsrd/olsrd.install
@@ -0,0 +1,21 @@
+post_install() {
+echo "--------------------------------------------------------------------"
+echo " Remember to edit /etc/olsrd.conf to match your network settings."
+echo "--------------------------------------------------------------------"
+/bin/true
+}
+
+post_upgrade() {
+/bin/true
+}
+
+pre_remove() {
+/etc/rc.d/olsrd stop
+/bin/true
+}
+
+op=$1
+shift
+
+$op "$@"
+
diff --git a/pcr/olsrd/rc.d.olsrd b/pcr/olsrd/rc.d.olsrd
new file mode 100755
index 000000000..d257e22ef
--- /dev/null
+++ b/pcr/olsrd/rc.d.olsrd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/olsrd`
+case "$1" in
+ start)
+ stat_busy "Starting OLSR Daemon"
+ [ -z "$PID" ] && /usr/sbin/olsrd -d 0 &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon olsrd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OLSR Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon olsrd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/pcr/openchange/PKGBUILD b/pcr/openchange/PKGBUILD
new file mode 100644
index 000000000..c3e2c753f
--- /dev/null
+++ b/pcr/openchange/PKGBUILD
@@ -0,0 +1,67 @@
+# Maintainer: Michael Hansen <zrax0111 gmail com>
+# Contributor: ngoonee <ngoonee.talk@gmail.com>
+# Contributor: Adam Russell <adamlr6+arch@gmail.com>
+pkgname=openchange
+_codename=BORG
+_dlid=180
+pkgver=1.0
+pkgrel=6
+pkgdesc="Library for MAPI connectivity with Microsoft Exchange. This package was SPECIFICALLY created to support evolution-mapi and may not work for any other purpose."
+arch=('i686' 'x86_64')
+url="http://www.openchange.org"
+license=('GPL3')
+depends=('samba4>=4.0.0B1' 'popt' 'libical' 'sqlite3' 'file' 'boost' 'zlib')
+makedepends=('ccache' 'python2' 'subversion' 'docbook-xsl' 'libxslt' 'flex' 'bison' 'autoconf' 'automake')
+options=(!makeflags)
+# Releases are mirrored at http://tracker.openchange.org/projects/openchange/files
+source=("http://tracker.openchange.org/attachments/download/${_dlid}/${pkgname}-${pkgver}-${_codename}.tar.gz"
+ "bugzilla_682449.patch")
+
+md5sums=('9b57a325e90e5ad3a702ddc6e8762ab6'
+ '7521f89f8ffaa733ed72532334951b90')
+_prefix="/opt/samba4"
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}-${_codename}
+
+ patch -i ../bugzilla_682449.patch
+
+ SAVEIFS=${IFS}
+ IFS=$(echo -en "\n\b")
+ PYTHON_CALLERS="$(find ${srcdir}/${pkgname}-${pkgver}-${_codename} -name '*.py')
+$(find ${srcdir}/${pkgname}-${pkgver}-${_codename}/ -type f)
+$(find ${srcdir}/${pkgname}-${pkgver}-${_codename}/ -name 'configure.ac')"
+ sed -i -e "s|/usr/bin/env python$|/usr/bin/env python2|" \
+ -e "s|python-config$|python2-config|" \
+ -e "s|bin/python$|bin/python2|" \
+ ${PYTHON_CALLERS}
+
+ # Patch for samba4-alpha19+
+ SRC_FILES="$(find ${srcdir}/${pkgname}-${pkgver}-${_codename} -name '*.c')"
+ sed -i -e "s|#include <samba/popt.h>|#include <popt.h>|" ${SRC_FILES}
+ IFS=${SAVEIFS}
+
+ export PYTHON=/usr/bin/python2
+
+ export PKG_CONFIG_PATH="${_prefix}/samba/lib/pkgconfig:${_prefix}/lib/pkgconfig"
+ export BOOST_LIB_SUFFIX="-mt"
+ ./autogen.sh
+
+ sed -i -e "s|python-config|python2-config|g" configure
+ ./configure --prefix=${_prefix} --with-samba=${_prefix}
+ make FLEX=/usr/bin/flex BISON=/usr/bin/bison || return 1
+}
+
+package() {
+ _pyver=`python2 -c 'import sys; print(sys.version[:3])'`
+
+ cd ${srcdir}/${pkgname}-${pkgver}-${_codename}
+ make DESTDIR="$pkgdir/" install
+
+ cd ${pkgdir}/${_prefix}/lib/
+ ln -s libmapi.so libmapi.so.0
+ ln -s libocpf.so libocpf.so.0
+
+ find ${pkgdir}/${_prefix}/lib/python${_pyver}/site-packages/ -name '*.py' | \
+ xargs sed -i "s|#!/usr/bin/env python$|#!/usr/bin/env python2|"
+}
diff --git a/pcr/openchange/bugzilla_682449.patch b/pcr/openchange/bugzilla_682449.patch
new file mode 100644
index 000000000..e1b3f0983
--- /dev/null
+++ b/pcr/openchange/bugzilla_682449.patch
@@ -0,0 +1,191 @@
+Index: exchange.idl
+===================================================================
+--- exchange.idl (revision 4004)
++++ exchange.idl (working copy)
+@@ -1039,7 +1039,7 @@
+ [case(ActionType_OP_COPY)] MoveCopy_Action CopyAction;
+ [case(ActionType_OP_REPLY)] ReplyOOF_Action ReplyAction;
+ [case(ActionType_OP_OOF_REPLY)] ReplyOOF_Action ReplyOOFAction;
+- [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING)] DATA_BLOB DeferAction;
++ [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB DeferAction;
+ [case(ActionType_OP_BOUNCE)] BounceCode BounceCode;
+ [case(ActionType_OP_TAG)] mapi_SPropValue_wrap PropValue;
+ [case(ActionType_OP_FORWARD)] ForwardDelegate_Action ForwardAction;
+@@ -1057,7 +1057,7 @@
+
+ typedef [flag(NDR_NOALIGN)] struct {
+ uint16 ActionLength;
+- [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING)] ActionBlockData ActionBlockData;
++ [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING|NDR_NOALIGN)] ActionBlockData ActionBlockData;
+ } ActionBlock;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+@@ -1095,7 +1095,7 @@
+
+ typedef [public,flag(NDR_NOALIGN)] struct {
+ uint16 cValues;
+- [flag(NDR_REMAINING)]mapi_SPropValue lpProps[cValues];
++ [flag(NDR_REMAINING|NDR_NOALIGN)]mapi_SPropValue lpProps[cValues];
+ } mapi_SPropValue_array;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+@@ -1281,7 +1281,7 @@
+ // TODO: figure out if "layout" can go
+ uint8 layout;
+ // TODO: convert this to a proper structure - see if we already have one.
+- [flag(NDR_REMAINING)] DATA_BLOB prop_values;
++ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_values;
+ } RecipientRow;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+@@ -1356,7 +1356,7 @@
+
+ typedef [flag(NDR_NOALIGN)] struct {
+ uint8 layout;
+- [flag(NDR_REMAINING)] DATA_BLOB prop_data;
++ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_data;
+ } GetProps_repl;
+
+ /*************************/
+@@ -1455,7 +1455,7 @@
+ typedef [flag(NDR_NOALIGN)]struct {
+ uint32 idx;
+ ulRecipClass RecipClass;
+- [subcontext(2),flag(NDR_REMAINING)] RecipientRow RecipientRow;
++ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] RecipientRow RecipientRow;
+ } ModifyRecipientRow;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+@@ -1532,7 +1532,7 @@
+ uint8 handle_idx;
+ MSGFLAG_READ flags;
+ /* TEMP HACK for editing notes without crashing Outlook:
+- [flag(NDR_REMAINING)] DATA_BLOB clientdata; */
++ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB clientdata; */
+ } SetMessageReadFlag_req;
+
+ typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
+@@ -1782,7 +1782,7 @@
+ typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
+ uint8 Origin;
+ uint16 RowCount;
+- [flag(NDR_REMAINING)]DATA_BLOB RowData;
++ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData;
+ } QueryRows_repl;
+
+ /**************************/
+@@ -2394,13 +2394,13 @@
+ } ReadStream_req;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
++ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
+ } ReadStream_repl;
+
+ /*************************/
+ /* EcDoRpc Function 0x2d */
+ typedef [flag(NDR_NOALIGN)] struct {
+- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
++ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
+ } WriteStream_req;
+
+
+@@ -2900,7 +2900,7 @@
+ uint16 TotalStepCount;
+ uint8 Reserved;
+ uint16 TransferBufferSize;
+- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
++ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer;
+ } FastTransferSourceGetBuffer_repl;
+
+ /**************************/
+@@ -2982,7 +2982,7 @@
+ /* EcDoRpc Function 0x54 */
+ typedef [flag(NDR_NOALIGN)] struct {
+ uint16 TransferBufferSize;
+- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
++ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer;
+ } FastTransferDestinationPutBuffer_req;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+@@ -3075,7 +3075,7 @@
+ typedef [flag(NDR_NOALIGN)] struct {
+ uint32 ExpandedRowCount;
+ uint16 RowCount;
+- [flag(NDR_REMAINING)]DATA_BLOB RowData;
++ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData;
+ } ExpandRow_repl;
+
+ /*************************/
+@@ -3184,7 +3184,7 @@
+ typedef [flag(NDR_NOALIGN)] struct {
+ boolean8 HasFinished;
+ uint16 DataSize;
+- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
++ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data;
+ } ReadPerUserInformation_repl;
+
+ /*************************/
+@@ -3194,7 +3194,7 @@
+ boolean8 HasFinished;
+ uint32 DataOffset;
+ uint16 DataSize;
+- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
++ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data;
+ GUID ReplGuid; /* Note: ReplGuid gets only included under specific circumstances */
+ } WritePerUserInformation_req;
+
+@@ -3364,7 +3364,7 @@
+ SendOptions SendOptions;
+ SynchronizationFlag SynchronizationFlag;
+ uint16 RestrictionSize;
+- [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING)] DATA_BLOB RestrictionData;
++ [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB RestrictionData;
+ SynchronizationExtraFlags SynchronizationExtraFlags;
+ mapi_SPropTagArray PropertyTags;
+ } SyncConfigure_req;
+@@ -3542,7 +3542,7 @@
+ } MessageReadState;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+- [subcontext(2),flag(NDR_REMAINING)] DATA_BLOB MessageReadStates;
++ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB MessageReadStates;
+ } SyncImportReadStateChanges_req;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+@@ -3617,7 +3617,7 @@
+ /*************************/
+ /* EcDoRpc Function 0x90 */
+ typedef [flag(NDR_NOALIGN)] struct {
+- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
++ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
+ } WriteAndCommitStream_req;
+
+
+@@ -4462,7 +4462,7 @@
+ uint32 MajorVersion;
+ uint32 MinorVersion;
+ uint32 BuildNumber;
+- [subcontext(0), subcontext_size(132), flag(NDR_NOALIGN|NDR_REMAINING)] DATA_BLOB Reserved_1;
++ [subcontext(0), subcontext_size(132), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Reserved_1;
+ uint16 ServicePackMajor;
+ uint16 ServicePackMinor;
+ uint32 Reserved_2;
+@@ -4567,7 +4567,7 @@
+ [out] uint16 rgwServerVersion[3],
+ [out] uint16 rgwBestVersion[3],
+ [in,out] uint32 *pulTimeStamp,
+- [in,subcontext(4),flag(NDR_NOALIGN|NDR_REMAINING)] mapi2k7_AuxInfo *rgbAuxIn,
++ [in,subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi2k7_AuxInfo *rgbAuxIn,
+ [in] uint32 cbAuxIn,
+ [out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] mapi2k7_AuxInfo *rgbAuxOut,
+ [in,out][range(0,0x1008)] uint32 *pcbAuxOut
+@@ -4588,7 +4588,7 @@
+
+ typedef [public,nopull] struct {
+ RPC_HEADER_EXT header;
+- [subcontext(0),flag(NDR_NOALIGN|NDR_REMAINING)] mapi_response *mapi_response;
++ [subcontext(0),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_response *mapi_response;
+ } mapi2k7_response;
+
+ [public,noprint] MAPISTATUS EcDoRpcExt2(
diff --git a/pcr/opendnssec/LICENSE b/pcr/opendnssec/LICENSE
new file mode 100644
index 000000000..5700d408a
--- /dev/null
+++ b/pcr/opendnssec/LICENSE
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2009 Nominet UK. All rights reserved.
+ * Copyright (c) 2010 .SE (The Internet Infrastructure Foundation).
+ * Copyright (c) 2009 NLNet Labs.
+ * 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.
+ */
+
+/*
+ * 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 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.
+ */
+
+/* pkcs11.h
+ Copyright 2006, 2007 g10 Code GmbH
+ Copyright 2006 Andreas Jellinghaus
+
+ This file is free software; as a special exception the author gives
+ unlimited permission to copy and/or distribute it, with or without
+ modifications, as long as this notice is preserved.
+
+ This file is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY, to the extent permitted by law; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. */ \ No newline at end of file
diff --git a/pcr/opendnssec/PKGBUILD b/pcr/opendnssec/PKGBUILD
new file mode 100644
index 000000000..065a1ec68
--- /dev/null
+++ b/pcr/opendnssec/PKGBUILD
@@ -0,0 +1,77 @@
+# Maintainer: Javier Torres <javitonino [at] gmail [dot] com>
+
+pkgname=opendnssec
+pkgver=1.4.0
+pkgrel=3
+pkgdesc="Turn-key solution for DNSSEC (sqlite3)"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.opendnssec.org/"
+license=('BSD')
+depends=('libxml2' 'ldns' 'sqlite3' 'softhsm')
+backup=("etc/opendnssec/conf.xml"
+ "etc/opendnssec/kasp.xml"
+ "etc/opendnssec/zonelist.xml")
+install="opendnssec.install"
+source=("http://www.opendnssec.org/files/source/${pkgname}-${pkgver}.tar.gz"{,.sig}
+ "pid-path.patch"
+ "ods-signer.service"
+ "ods-enforcer.service")
+sha256sums=('36d4926dcdf351a527ad7600b151ab6cc56d0a472a7eb8871eecd70afef9e101'
+ 'SKIP'
+ '487a4c05a07feb97c865ddc4c13d00eea6ce8b2b1e5031983c15484f4991ebed'
+ '1a8cdec0e97a33048956268b766da570f8f7a90d05af59e547219f1381832071'
+ '75cecbfb0ece13957a68a5bc39c20a1d69b95373e7473545d70621e1732733d8')
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # /var/lib/run -> /var/run
+ patch -p0 -i "${srcdir}/pid-path.patch"
+
+ aclocal
+ autoconf
+ automake --add-missing
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --datarootdir=/usr/share \
+ --localstatedir=/var/lib \
+ --sysconfdir=/etc \
+ --with-pkcs11-softhsm=/usr/lib/libsofthsm.so \
+ --sbindir=/usr/bin
+
+ # Create the correct (/var/run/opendnssec) directory
+ sed -i \
+ -e "s/\$(INSTALL) -d \$(DESTDIR)\$(localstatedir)\/run\/opendnssec/#Removed/" \
+ -e "s/\$(INSTALL) -d \$(DESTDIR)\$(localstatedir)\/run/\$(INSTALL) -d \$(DESTDIR)\$(OPENDNSSEC_PID_DIR)/" \
+ Makefile
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -d "${pkgdir}/var/run/opendnssec"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/etc/rc.d"
+ install -Dm0644 "${srcdir}/ods-signer.service" \
+ "${pkgdir}/usr/lib/systemd/system/ods-signer.service"
+ install -Dm0644 "${srcdir}/ods-enforcer.service" \
+ "${pkgdir}/usr/lib/systemd/system/ods-enforcer.service"
+ install -Dm0644 "LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm0644 "enforcer/utils/migrate_adapters_1.sqlite3" \
+ "${pkgdir}/usr/share/opendnssec"
+
+ chown -R 227:227 "${pkgdir}/etc/opendnssec" \
+ "${pkgdir}/var/lib/opendnssec" \
+ "${pkgdir}/var/run/opendnssec"
+ chmod 750 "${pkgdir}/etc/opendnssec" \
+ "${pkgdir}/var/lib/opendnssec" \
+ "${pkgdir}/var/run/opendnssec"
+}
diff --git a/pcr/opendnssec/ods-enforcer.service b/pcr/opendnssec/ods-enforcer.service
new file mode 100644
index 000000000..f0d0050d0
--- /dev/null
+++ b/pcr/opendnssec/ods-enforcer.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenDNSSEC Enforcer
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/run/opendnssec/enforcerd.pid
+ExecStart=/usr/bin/ods-control enforcer start
+ExecStop=/usr/bin/ods-control enforcer stop
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pcr/opendnssec/ods-signer.service b/pcr/opendnssec/ods-signer.service
new file mode 100644
index 000000000..26cc03481
--- /dev/null
+++ b/pcr/opendnssec/ods-signer.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenDNSSEC Signer
+After=syslog.target nerwork.target
+
+[Service]
+Type=forking
+PIDFile=/run/opendnssec/signerd.pid
+ExecStart=/usr/bin/ods-control signer start
+ExecStop=/usr/bin/ods-control signer stop
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pcr/opendnssec/opendnssec.install b/pcr/opendnssec/opendnssec.install
new file mode 100644
index 000000000..0c74659ee
--- /dev/null
+++ b/pcr/opendnssec/opendnssec.install
@@ -0,0 +1,27 @@
+post_install() {
+ if [ -z "`grep '^opendnssec:' /etc/group`" ]; then
+ groupadd -g 227 opendnssec
+ fi
+ if [ -z "`grep '^opendnssec:' /etc/passwd`" ]; then
+ useradd -u 227 -d /var/lib/opendnssec -g opendnssec -s /bin/false opendnssec
+ fi
+
+ echo ">> You need an HSM implementation (try softhsm)"
+}
+
+
+post_upgrade() {
+ post_install $1
+ OLD=$(echo $2 | sed "s/\(.*\)\.\(.*\)\.\(.*\)/\1\.\2/g")
+ NEW=$(echo $1 | sed "s/\(.*\)\.\(.*\)\.\(.*\)/\1\.\2/g")
+ if [ $OLD != "1.4" -a $NEW == "1.4" ]; then
+ echo ">> NOTICE: UPGRADE TO 1.4"
+ echo "This update requires upgrading the database"
+ echo "Run /usr/share/opendnssec/migrate_adapters_1.sqlite3 on your kasp database"
+ echo "e.g: sqlite3 kasp.db < /usr/share/opendnssec/migrate_adapters_1.sqlite3"
+ fi
+}
+
+post_remove() {
+ userdel opendnssec
+}
diff --git a/pcr/opendnssec/pid-path.patch b/pcr/opendnssec/pid-path.patch
new file mode 100644
index 000000000..88c750cf2
--- /dev/null
+++ b/pcr/opendnssec/pid-path.patch
@@ -0,0 +1,24 @@
+--- Makefile.am 2012-07-17 08:53:51.000000000 +0200
++++ Makefile.am 2012-11-20 21:56:11.000000000 +0100
+@@ -30,8 +30,8 @@
+ $(INSTALL) -d $(DESTDIR)$(localstatedir)/opendnssec/signconf
+ $(INSTALL) -d $(DESTDIR)$(localstatedir)/opendnssec/unsigned
+ $(INSTALL) -d $(DESTDIR)$(localstatedir)/opendnssec/signed
+- $(INSTALL) -d $(DESTDIR)$(localstatedir)/run
+- $(INSTALL) -d $(DESTDIR)$(localstatedir)/run/opendnssec
++ $(INSTALL) -d $(DESTDIR)/var/run
++ $(INSTALL) -d $(DESTDIR)/var/run/opendnssec
+
+ docs:
+ (cd libhsm; $(MAKE) doxygen)
+--- m4/opendnssec_common.m4 2012-11-01 11:56:59.000000000 +0100
++++ m4/opendnssec_common.m4 2012-11-20 21:52:56.000000000 +0100
+@@ -19,7 +19,7 @@
+ OPENDNSSEC_DATA_DIR=$full_datadir/opendnssec
+ OPENDNSSEC_SYSCONF_DIR=$full_sysconfdir/opendnssec
+ OPENDNSSEC_LOCALSTATE_DIR="$full_localstatedir/opendnssec"
+-OPENDNSSEC_PID_DIR="$full_localstatedir/run/opendnssec"
++OPENDNSSEC_PID_DIR="/var/run/opendnssec"
+
+ AC_SUBST([OPENDNSSEC_BIN_DIR])
+ AC_SUBST([OPENDNSSEC_SBIN_DIR])
diff --git a/pcr/openicc/PKGBUILD b/pcr/openicc/PKGBUILD
new file mode 100644
index 000000000..8db1cf82d
--- /dev/null
+++ b/pcr/openicc/PKGBUILD
@@ -0,0 +1,23 @@
+#Maintainer: M0Rf30
+
+pkgname=openicc
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="Colour management projects to share ICC related implementation details"
+url="http://www.freedesktop.org/wiki/OpenIcc"
+arch=('i686' 'x86_64')
+depends=('xorg-server')
+source=("http://downloads.sourceforge.net/project/openicc/OpenICC-Profiles/icc-profiles-$pkgname-$pkgver.tar.bz2")
+license=('GPL')
+
+build() {
+ cd $srcdir/icc-profiles-$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd $srcdir/icc-profiles-$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+
+md5sums=('d18ed8dc5e3f6792d445af67d5f3b0d6')
diff --git a/pcr/openjdk6/PKGBUILD b/pcr/openjdk6/PKGBUILD
new file mode 100644
index 000000000..03cdba0aa
--- /dev/null
+++ b/pcr/openjdk6/PKGBUILD
@@ -0,0 +1,132 @@
+# $Id: PKGBUILD 178352 2013-02-20 17:00:42Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname='openjdk6-old'
+pkgbase="openjdk6"
+_javaver=6
+_icedteaver=1.12.3
+_openjdk_version=b27
+_openjdk_date=26_oct_2012
+pkgver=${_javaver}.${_openjdk_version}_${_icedteaver}
+pkgrel=1.1
+url='http://icedtea.classpath.org'
+arch=('i686' 'x86_64')
+license=('custom')
+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>=1.5.7')
+makedepends=('alsa-lib' 'giflib' 'libxp' 'gtk2'
+ 'nspr' 'zlib' 'libjpeg>=8' 'libx11' 'libcups' 'patch' 'libxslt'
+ 'apache-ant' 'autoconf' 'unzip' 'rhino' 'mercurial' 'zip' 'cpio' 'openjdk6-old' 'inetutils' 'wget')
+optdepends=('alsa-lib: for sound'
+ 'giflib: for gif format support')
+install=openjdk6.install
+options=('!emptydirs')
+source=(http://icedtea.classpath.org/download/source/icedtea6-${_icedteaver}.tar.gz{,.sig}
+ 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_04.zip
+ http://icedtea.classpath.org/download/drops/jdk6-jaxws2_1_6-2011_06_13.zip
+ http://icedtea.classpath.org/download/drops/jdk6-jaf-b20.zip
+ fix_jdk_cmds_path.diff
+ fix_corba_cmds_path.diff
+ fontconfig-paths.diff
+ nonreparenting-wm.diff
+ disable_Werror.diff
+ openjdk6.profile
+ openjdk6.profile.csh
+ disable-openjdk-Werror.diff
+ ecj-icedtea.patch)
+noextract=(openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz
+ jaxp144_04.zip
+ jdk6-jaxws2_1_6-2011_06_13.zip
+ jdk6-jaf-b20.zip)
+sha256sums=('db9dc14fa537fb22616fcd9e5b80758aa7baa66e0b6f8adfe3d5e80414574b4c'
+ 'a6cbeccc4f25f72a940b9ac0c3e05ece50edc16c1c13f7a1a82ee895563930e3'
+ '044c3877b15940ff04f8aa817337f2878a00cc89674854557f1a02f15b1802a0'
+ '490f696218c1fed9cb180680af883fe309b414fec232e9cec19645e12ad0b43c'
+ '229040544e791f44906e8e7b6f6faf503c730a5d854275135f3925490d5c3be3'
+ '78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012'
+ 'f5f59e121f7645ebc449bb13569fd924cbab3194e41db901f4fbe9dbd45720c5'
+ '7b2db65bfb9d5014e1522178d65cabf05dfa85e0926cde5648b5a338db376479'
+ '9ad943ceb3dbcdf45d72974fc3667886a7ed65c69ab9abc17be5412827551a7f'
+ '9c3c55c30729ec44fab14c3f3f841c273730c7467d8908a72f018bc9e9f65bd9'
+ 'eb4c7f4cf50f5f74b683857f707bd21ec3847267e2e5e3173f42a6910a024f97'
+ '26e2cd5a6034f08a685129c9412f487b9931fb0d556f1ccceab17bdb75a372cd'
+ '0c2d9116d6e550021994d6713a93621a9df685d2182996be3249ad812712b007'
+ '3e20fdcd17d4adee1cb2ddc3b15a39fe56b9a7837067487eedd40733adfea9c6'
+ '77bafb45d67cbdac59ae27b0cc85e38d849dcf5c4c4005f5b28b33f4f5b734ab')
+
+build() {
+
+ 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/
+ cp ${srcdir}/ecj-icedtea.patch ${srcdir}/icedtea6-${_icedteaver}/patches/ecj/icedtea.patch
+
+ 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 patches/disable_Werror.diff patches/disable-openjdk-Werror.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-ant-home=/usr/share/java/apache-ant \
+ --with-pkgversion=Parabola-${pkgver}-${pkgrel}-$CARCH \
+ --with-jaxp-drop-zip=${srcdir}/jaxp144_04.zip \
+ --with-jaxws-drop-zip=${srcdir}/jdk6-jaxws2_1_6-2011_06_13.zip \
+ --with-jaf-drop-zip=${srcdir}/jdk6-jaf-b20.zip \
+ --with-abs-install-dir=${_jvmdir} \
+ --with-jdk-home="$JAVA_HOME"
+
+ # Java 7 compilers give more warnings.
+ find . -name '*.gmk' -or -name 'Makefile' | xargs sed -i 's/-Werror//'
+
+ LD_PRELOAD="" make
+}
+
+package() {
+ 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
+
+ # 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
+}
diff --git a/pcr/openjdk6/disable-openjdk-Werror.diff b/pcr/openjdk6/disable-openjdk-Werror.diff
new file mode 100644
index 000000000..2fbecaffe
--- /dev/null
+++ b/pcr/openjdk6/disable-openjdk-Werror.diff
@@ -0,0 +1,147 @@
+diff -ru openjdk.orig/corba/make/common/Defs-linux.gmk openjdk/corba/make/common/Defs-linux.gmk
+--- openjdk.orig/corba/make/common/Defs-linux.gmk 2013-03-09 18:42:00.271861055 +0100
++++ openjdk/corba/make/common/Defs-linux.gmk 2013-03-09 18:42:10.322026218 +0100
+@@ -130,13 +130,6 @@
+ GCC_WARNINGS = -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
+
+ #
+-# Treat compiler warnings as errors, if warnings not allowed
+-#
+-ifeq ($(COMPILER_WARNINGS_FATAL),true)
+- GCC_WARNINGS += -Werror
+-endif
+-
+-#
+ # Misc compiler options
+ #
+ ifeq ($(ARCH),ppc)
+diff -ru openjdk.orig/corba/make/common/shared/Defs-java.gmk openjdk/corba/make/common/shared/Defs-java.gmk
+--- openjdk.orig/corba/make/common/shared/Defs-java.gmk 2013-03-09 18:42:00.271861055 +0100
++++ openjdk/corba/make/common/shared/Defs-java.gmk 2013-03-09 18:42:10.342026563 +0100
+@@ -100,9 +100,6 @@
+ ifeq ($(DEBUG_CLASSFILES),true)
+ JAVACFLAGS += -g
+ endif
+-ifeq ($(COMPILER_WARNINGS_FATAL), true)
+- JAVACFLAGS += -Werror
+-endif
+
+ NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
+ JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS)
+@@ -173,12 +170,6 @@
+ # can bootstrap itself.
+ #
+
+-# The javac options supplied to the boot javac is limited. This compiler
+-# should only be used to build the 'make/tools' sources, which are not
+-# class files that end up in the classes directory.
+-ifeq ($(COMPILER_WARNINGS_FATAL), true)
+- BOOT_JAVACFLAGS += -Werror
+-endif
+ BOOT_SOURCE_LANGUAGE_VERSION = 5
+ BOOT_TARGET_CLASS_VERSION = 5
+ BOOT_JAVACFLAGS += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
+diff -ru openjdk.orig/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk
+--- openjdk.orig/jdk/make/common/Defs-linux.gmk 2013-03-09 18:42:00.891871222 +0100
++++ openjdk/jdk/make/common/Defs-linux.gmk 2013-03-09 18:42:10.342026563 +0100
+@@ -140,13 +140,6 @@
+ GCC_WARNINGS = -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
+
+ #
+-# Treat compiler warnings as errors, if warnings not allowed
+-#
+-ifeq ($(COMPILER_WARNINGS_FATAL),true)
+- GCC_WARNINGS += -Werror
+-endif
+-
+-#
+ # Misc compiler options
+ #
+ ifeq ($(ARCH),ppc)
+diff -ru openjdk.orig/jdk/make/common/shared/Defs-java.gmk openjdk/jdk/make/common/shared/Defs-java.gmk
+--- openjdk.orig/jdk/make/common/shared/Defs-java.gmk 2013-03-09 18:42:00.891871222 +0100
++++ openjdk/jdk/make/common/shared/Defs-java.gmk 2013-03-09 18:42:10.342026563 +0100
+@@ -107,9 +107,6 @@
+ ifeq ($(DEBUG_CLASSFILES),true)
+ JAVACFLAGS += -g
+ endif
+-ifeq ($(COMPILER_WARNINGS_FATAL), true)
+- JAVACFLAGS += -Werror
+-endif
+
+ # Add the source level (currently all source is 1.5, should this be 1.6?)
+ LANGUAGE_VERSION = -source 1.5
+@@ -180,13 +177,6 @@
+ # can bootstrap itself.
+ #
+
+-# The javac options supplied to the boot javac is limited. This compiler
+-# should only be used to build the 'make/tools' sources, which are not
+-# class files that end up in the classes directory.
+-ifeq ($(COMPILER_WARNINGS_FATAL), true)
+- BOOT_JAVACFLAGS += -Werror
+-endif
+-
+ BOOT_SOURCE_LANGUAGE_VERSION = 5
+ BOOT_TARGET_CLASS_VERSION = 5
+ BOOT_JAVACFLAGS += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
+diff -ru openjdk.orig/jdk/make/java/nio/Makefile openjdk/jdk/make/java/nio/Makefile
+--- openjdk.orig/jdk/make/java/nio/Makefile 2013-03-09 18:42:00.881871058 +0100
++++ openjdk/jdk/make/java/nio/Makefile 2013-03-09 18:42:10.342026563 +0100
+@@ -31,7 +31,7 @@
+ PACKAGE = java.nio
+ LIBRARY = nio
+ PRODUCT = java
+-OTHER_JAVACFLAGS += -Xmaxwarns 1000 -Xlint:serial -Werror
++OTHER_JAVACFLAGS += -Xmaxwarns 1000 -Xlint:serial
+ include $(BUILDDIR)/common/Defs.gmk
+
+ NIO_SRC = $(SHARE_SRC)/classes/java/nio
+diff -ru openjdk.orig/jdk/make/java/sun_nio/Makefile openjdk/jdk/make/java/sun_nio/Makefile
+--- openjdk.orig/jdk/make/java/sun_nio/Makefile 2013-03-09 18:42:00.871870894 +0100
++++ openjdk/jdk/make/java/sun_nio/Makefile 2013-03-09 18:42:10.342026563 +0100
+@@ -31,7 +31,7 @@
+ PACKAGE = sun.nio
+ PRODUCT = sun
+
+-OTHER_JAVACFLAGS += -Xlint:serial -Werror
++OTHER_JAVACFLAGS += -Xlint:serial
+ include $(BUILDDIR)/common/Defs.gmk
+
+ #
+diff -ru openjdk.orig/jdk/make/sun/native2ascii/Makefile openjdk/jdk/make/sun/native2ascii/Makefile
+--- openjdk.orig/jdk/make/sun/native2ascii/Makefile 2013-03-09 18:42:00.891871222 +0100
++++ openjdk/jdk/make/sun/native2ascii/Makefile 2013-03-09 18:42:10.342026563 +0100
+@@ -30,7 +30,7 @@
+ BUILDDIR = ../..
+ PACKAGE = sun.tools.native2ascii
+ PRODUCT = sun
+-OTHER_JAVACFLAGS += -Xlint:serial -Werror
++OTHER_JAVACFLAGS += -Xlint:serial
+ include $(BUILDDIR)/common/Defs.gmk
+
+ #
+diff -ru openjdk.orig/jdk/make/sun/nio/Makefile openjdk/jdk/make/sun/nio/Makefile
+--- openjdk.orig/jdk/make/sun/nio/Makefile 2013-03-09 18:42:00.891871222 +0100
++++ openjdk/jdk/make/sun/nio/Makefile 2013-03-09 18:42:10.342026563 +0100
+@@ -35,7 +35,7 @@
+ # This re-directs all the class files to a separate location
+ CLASSDESTDIR = $(TEMPDIR)/classes
+
+-OTHER_JAVACFLAGS += -Xlint:serial -Werror
++OTHER_JAVACFLAGS += -Xlint:serial
+ include $(BUILDDIR)/common/Defs.gmk
+
+ #
+diff -ru openjdk.orig/langtools/make/build.properties openjdk/langtools/make/build.properties
+--- openjdk.orig/langtools/make/build.properties 2013-03-09 18:42:00.311861690 +0100
++++ openjdk/langtools/make/build.properties 2013-03-09 18:43:04.542923328 +0100
+@@ -68,7 +68,7 @@
+ # set the following to -version to verify the versions of javac being used
+ javac.version.opt =
+ # in time, there should be no exceptions to -Xlint:all
+-javac.lint.opts = -Xlint:all,-unchecked,-deprecation,-fallthrough,-cast,-serial -Werror
++javac.lint.opts = -Xlint:all,-unchecked,-deprecation,-fallthrough,-cast,-serial
+
+ # options for the <javadoc> task for javac
+ javadoc.jls3.url=http://java.sun.com/docs/books/jls/
diff --git a/pcr/openjdk6/disable_Werror.diff b/pcr/openjdk6/disable_Werror.diff
new file mode 100644
index 000000000..fa8887a10
--- /dev/null
+++ b/pcr/openjdk6/disable_Werror.diff
@@ -0,0 +1,11 @@
+--- openjdk/hotspot/make/linux/makefiles/gcc.make 2012-06-07 16:30:51.000000000 +0200
++++ openjdk/hotspot/make/linux/makefiles/gcc.make.new 2012-06-14 15:32:44.967695139 +0200
+@@ -150,7 +150,7 @@
+ endif
+
+ # Compiler warnings are treated as errors
+-WARNINGS_ARE_ERRORS = -Werror
++#WARNINGS_ARE_ERRORS = -Werror
+
+ # Except for a few acceptable ones
+ # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
diff --git a/pcr/openjdk6/ecj-icedtea.patch b/pcr/openjdk6/ecj-icedtea.patch
new file mode 100644
index 000000000..1af1365bf
--- /dev/null
+++ b/pcr/openjdk6/ecj-icedtea.patch
@@ -0,0 +1,893 @@
+diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/Makefile openjdk-ecj/corba/make/com/sun/corba/se/Makefile
+--- openjdk-ecj.orig/corba/make/com/sun/corba/se/Makefile 2010-05-26 09:31:18.000000000 +0100
++++ openjdk-ecj/corba/make/com/sun/corba/se/Makefile 2012-01-18 21:43:04.134185695 +0000
+@@ -42,7 +42,7 @@
+ # the rmic iiop backend needs some classes that are part of the impl/util
+ # package. These classes use log wrappers, so they must be built after
+ # pept and before rmi.
+-SUBDIRS = sources pept corespi core spi impl rmi
++SUBDIRS = org pept corespi core spi impl rmi
+ all build clean clobber::
+ $(SUBDIRS-loop)
+
+diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/org/Makefile openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile
+--- openjdk-ecj.orig/corba/make/com/sun/corba/se/org/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile 2012-01-18 21:43:04.146185899 +0000
+@@ -0,0 +1,38 @@
++#
++# Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved.
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# This code is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Sun designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Sun in the LICENSE file that accompanied this code.
++#
++# This code 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
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++# CA 95054 USA or visit www.sun.com if you need additional information or
++# have any questions.
++#
++
++BUILDDIR = ../../../../..
++PACKAGE = com.sun.corba.se
++PRODUCT = org
++
++include $(BUILDDIR)/common/Defs.gmk
++
++FILES_java=\
++ com/sun/corba/se/org/omg/CORBA/ORB.java
++
++#
++# Include
++#
++include $(BUILDDIR)/common/Classes.gmk
+diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/sources/Makefile openjdk-ecj/corba/make/com/sun/corba/se/sources/Makefile
+--- openjdk-ecj.orig/corba/make/com/sun/corba/se/sources/Makefile 2010-05-26 09:31:18.000000000 +0100
++++ openjdk-ecj/corba/make/com/sun/corba/se/sources/Makefile 1970-01-01 01:00:00.000000000 +0100
+@@ -1,224 +0,0 @@
+-#
+-# Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+-#
+-# This code is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU General Public License version 2 only, as
+-# published by the Free Software Foundation. Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# This code 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
+-# version 2 for more details (a copy is included in the LICENSE file that
+-# accompanied this code).
+-#
+-# You should have received a copy of the GNU General Public License version
+-# 2 along with this work; if not, write to the Free Software Foundation,
+-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+-#
+-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+-# or visit www.oracle.com if you need additional information or have any
+-# questions.
+-#
+-
+-BUILDDIR = ../../../../..
+-
+-PACKAGE = com.sun.corba.se
+-PRODUCT = org
+-
+-include $(BUILDDIR)/common/Defs.gmk
+-
+-#
+-# Rules
+-#
+-all: build
+-
+-build: portableactivation.idl.compile logwrapper.generate logresource.generate
+-
+-clean clobber:: portableactivation.idl.clean
+-
+-#
+-# Files
+-#
+-CORBA_JMK_DIRECTORY=$(TOPDIR)/make/com/sun/corba/minclude/
+-include $(CORBA_JMK_DIRECTORY)com_sun_corba_se_PortableActivationIDL.jmk
+-include $(CORBA_JMK_DIRECTORY)com_sun_corba_se_impl_logging.jmk
+-
+-FILES_java += com/sun/corba/se/org/omg/CORBA/ORB.java
+-
+-#
+-# Dirs
+-#
+-
+-SRC_DIR = $(SHARE_SRC)/classes
+-CORBA_IDL_DIR = $(SRC_DIR)/org/omg/PortableServer
+-PI_IDL_DIR = $(SRC_DIR)/org/omg/PortableInterceptor
+-
+-ACTIVATIONFILEDIR = $(GENSRCDIR)/com/sun/corba/se/spi/activation
+-PORTABLEACTIVATIONFILEDIR = $(GENSRCDIR)/com/sun/corba/se/PortableActivationIDL
+-LOG_GENDIRECTORY = $(GENSRCDIR)/com/sun/corba/se/impl/logging
+-
+-#
+-# IDLs
+-#
+-
+-ACTIVATION.IDL = $(SRC_DIR)/com/sun/corba/se/spi/activation/activation.idl
+-PORTABLEACTIVATION.IDL = $(SRC_DIR)/com/sun/corba/se/PortableActivationIDL/activation.idl
+-
+-
+-#
+-# .mc files
+-#
+-ACTIVATION.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/Activation.mc
+-IOR.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/IOR.mc
+-INTERCEPTORS.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/Interceptors.mc
+-NAMING.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/Naming.mc
+-OMG.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/OMG.mc
+-ORBUTIL.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/ORBUtil.mc
+-POA.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/POA.mc
+-UTIL.MC = $(SRC_DIR)/com/sun/corba/se/spi/logging/data/Util.mc
+-
+-MC_GENERATE_CLASS = make-class
+-MC_GENERATE_LOG_RB = make-resource
+-
+-JSCHEME_GENERATE_CLASS = $(BOOT_JAVA_CMD) com.sun.tools.corba.se.logutil.MC $(MC_GENERATE_CLASS)
+-JSCHEME_GENERATE_LOG_RB = $(BOOT_JAVA_CMD) com.sun.tools.corba.se.logutil.MC $(MC_GENERATE_LOG_RB)
+-
+-
+-#
+-# Activation
+-#
+-
+-ACTIVATIONFILES = $(com_sun_corba_se_spi_activation_java:%=$(GENSRCDIR)/%)
+-
+-$(ACTIVATIONFILES): $(ACTIVATION.IDL)
+- $(IDLJ) -td $(GENSRCDIR) -i $(ACTIVATIONFILEDIR) -fall -oldImplBase -pkgPrefix activation com.sun.corba.se.spi $(ACTIVATION.IDL)
+-
+-activation.idl.compile: $(ACTIVATIONFILES)
+-
+-activation.idl.clean:
+- $(RM) -f $(ACTIVATIONFILES)
+-
+-#
+-# PortableActivationIDL
+-#
+-
+-PORTABLEACTIVATIONFILES = $(com_sun_corba_se_PortableActivationIDL_java:%=$(GENSRCDIR)/%)
+-
+-PORTABLEACTIVATION_INCLUDES = -i $(CORBA_IDL_DIR) -i $(PI_IDL_DIR)
+-
+-PORTABLEACTIVATION_PKG_PREFIXES = -pkgPrefix PortableInterceptor org.omg \
+- -pkgPrefix PortableActivationIDL com.sun.corba.se \
+- -pkgPrefix Dynamic org.omg \
+- -pkgPrefix IOP org.omg
+-
+-# REVISIT: remove -oldImplBase
+-$(PORTABLEACTIVATIONFILES): $(PORTABLEACTIVATION.IDL)
+- $(IDLJ) -td $(GENSRCDIR) $(PORTABLEACTIVATION_INCLUDES) $(PORTABLEACTIVATION_PKG_PREFIXES) -fall -oldImplBase -corba 3.0 -D CORBA3 $(PORTABLEACTIVATION.IDL)
+-
+-portableactivation.idl.compile: $(PORTABLEACTIVATIONFILES)
+-
+-portableactivation.idl.clean:
+- $(RM) -f $(PORTABLEACTIVATIONFILES)
+-
+-#
+-# Generate LogWrapper classes
+-#
+-logwrapper.generate: \
+- $(LOG_GENDIRECTORY)/ActivationSystemException.java \
+- $(LOG_GENDIRECTORY)/IORSystemException.java \
+- $(LOG_GENDIRECTORY)/InterceptorsSystemException.java \
+- $(LOG_GENDIRECTORY)/NamingSystemException.java \
+- $(LOG_GENDIRECTORY)/OMGSystemException.java \
+- $(LOG_GENDIRECTORY)/ORBUtilSystemException.java \
+- $(LOG_GENDIRECTORY)/POASystemException.java \
+- $(LOG_GENDIRECTORY)/UtilSystemException.java
+-
+-$(LOG_GENDIRECTORY)/ActivationSystemException.java : $(ACTIVATION.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(ACTIVATION.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/IORSystemException.java : $(IOR.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(IOR.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/InterceptorsSystemException.java : $(INTERCEPTORS.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(INTERCEPTORS.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/NamingSystemException.java : $(NAMING.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(NAMING.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/OMGSystemException.java : $(OMG.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(OMG.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/ORBUtilSystemException.java : $(ORBUTIL.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(ORBUTIL.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/POASystemException.java : $(POA.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(POA.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/UtilSystemException.java : $(UTIL.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_CLASS) $(UTIL.MC) $(LOG_GENDIRECTORY)
+-
+-logresource.generate: $(LOG_GENDIRECTORY)/LogStrings.properties
+-
+-$(LOG_GENDIRECTORY)/LogStrings.properties: \
+- $(LOG_GENDIRECTORY)/ActivationSystemException.resource \
+- $(LOG_GENDIRECTORY)/IORSystemException.resource \
+- $(LOG_GENDIRECTORY)/InterceptorsSystemException.resource \
+- $(LOG_GENDIRECTORY)/NamingSystemException.resource \
+- $(LOG_GENDIRECTORY)/OMGSystemException.resource \
+- $(LOG_GENDIRECTORY)/ORBUtilSystemException.resource \
+- $(LOG_GENDIRECTORY)/POASystemException.resource \
+- $(LOG_GENDIRECTORY)/UtilSystemException.resource
+- $(CAT) $(LOG_GENDIRECTORY)/*.resource > $(LOG_GENDIRECTORY)/LogStrings.properties
+-
+-$(LOG_GENDIRECTORY)/ActivationSystemException.resource : $(ACTIVATION.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(ACTIVATION.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/IORSystemException.resource : $(IOR.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(IOR.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/InterceptorsSystemException.resource : $(INTERCEPTORS.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(INTERCEPTORS.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/NamingSystemException.resource : $(NAMING.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(NAMING.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/OMGSystemException.resource : $(OMG.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(OMG.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/ORBUtilSystemException.resource : $(ORBUTIL.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(ORBUTIL.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/POASystemException.resource : $(POA.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(POA.MC) $(LOG_GENDIRECTORY)
+-
+-$(LOG_GENDIRECTORY)/UtilSystemException.resource : $(UTIL.MC)
+- $(prep-target)
+- $(JSCHEME_GENERATE_LOG_RB) $(UTIL.MC) $(LOG_GENDIRECTORY)
+-
+-
+-.PHONY: all build clean clobber \
+- activation.idl.compile activation.idl.clean \
+- portableactivation.idl.compile portableactivation.idl.clean
+-
+-#
+-# Include
+-#
+-include $(BUILDDIR)/common/Rules.gmk
+diff -Nru openjdk-ecj.orig/corba/make/common/Defs.gmk openjdk-ecj/corba/make/common/Defs.gmk
+--- openjdk-ecj.orig/corba/make/common/Defs.gmk 2011-01-10 21:21:55.000000000 +0000
++++ openjdk-ecj/corba/make/common/Defs.gmk 2012-01-18 21:43:04.146185899 +0000
+@@ -53,6 +53,13 @@
+
+ _OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH)
+
++
++ifdef ALT_LANGTOOLS_DIST
++ LANGTOOLS_DIST :=$(call FullPath,$(ALT_LANGTOOLS_DIST))
++else
++ LANGTOOLS_DIST =
++endif
++
+ #
+ # Get platform definitions
+ #
+@@ -118,8 +125,6 @@
+ # for build tool jar files
+ BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars
+ ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars
+-# for generated java source files
+-GENSRCDIR = $(OUTPUTDIR)/gensrc
+ # for generated C source files (not javah)
+ GENNATIVESRCDIR = $(OUTPUTDIR)/gennativesrc
+ # for imported source files
+@@ -220,7 +225,7 @@
+ # We define an intermediate variable for Java files because
+ # we use its value later to help define $SOURCEPATH
+
+-VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
++VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
+ VPATH.java = $(VPATH0.java)
+ vpath %.java $(VPATH.java)
+ vpath %.class $(CLASSBINDIR)
+diff -Nru openjdk-ecj.orig/corba/make/common/Defs-linux.gmk openjdk-ecj/corba/make/common/Defs-linux.gmk
+--- openjdk-ecj.orig/corba/make/common/Defs-linux.gmk 2012-01-18 16:50:50.977002556 +0000
++++ openjdk-ecj/corba/make/common/Defs-linux.gmk 2012-01-18 21:43:04.146185899 +0000
+@@ -271,7 +271,7 @@
+ #
+ VM_NAME = server
+ JVMLIB = -L$(BOOTDIR)/jre/lib/$(LIBARCH)/$(VM_NAME) -ljvm
+-JAVALIB = -L$(BOOTDIR)/jre/lib/$(LIBARCH) -ljava $(JVMLIB)
++JAVALIB = -L$(BOOTDIR)/jre/lib/$(LIBARCH) -L$(dir $(shell $(if $(GCJ),$(GCJ),$(subst gcc,gcj,$(CC))) --print-file-name=libgcj.so)) -lgcj $(JVMLIB)
+
+ #
+ # We want to privatize JVM symbols on Solaris. This is so the user can
+diff -Nru openjdk-ecj.orig/corba/make/common/shared/Defs-java.gmk openjdk-ecj/corba/make/common/shared/Defs-java.gmk
+--- openjdk-ecj.orig/corba/make/common/shared/Defs-java.gmk 2012-01-18 16:50:57.569109033 +0000
++++ openjdk-ecj/corba/make/common/shared/Defs-java.gmk 2012-01-18 21:43:04.150185964 +0000
+@@ -116,35 +116,17 @@
+ CLASS_VERSION = -target $(TARGET_CLASS_VERSION)
+ JAVACFLAGS += $(CLASS_VERSION)
+ JAVACFLAGS += -encoding ascii
+-JAVACFLAGS += -classpath $(BOOTDIR)/lib/tools.jar
++JAVACFLAGS += -classpath $(LANGTOOLS_DIST)/lib/classes.jar
+ JAVACFLAGS += $(OTHER_JAVACFLAGS)
+
+ # Needed for javah
+-JAVAHFLAGS += -bootclasspath $(CLASSBINDIR)
++JAVAHFLAGS += -bootclasspath $(CLASSBINDIR):$(ICEDTEA_RT):$(ICEDTEA_JCE):$(CLASSDESTDIR)
+
+-# Langtools
+-ifdef LANGTOOLS_DIST
+- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
+- JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar
+- JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
+- DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
+- JAVAC_CMD = $(BOOT_JAVA_CMD) \
+- "-Xbootclasspath/p:$(JAVAC_JAR)" \
+- -jar $(JAVAC_JAR) $(JAVACFLAGS)
+- JAVAH_CMD = $(BOOT_JAVA_CMD) \
+- "-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \
+- -jar $(JAVAH_JAR) $(JAVAHFLAGS)
+- JAVADOC_CMD = $(BOOT_JAVA_CMD) \
+- "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
+- -jar $(JAVADOC_JAR)
+-else
+- # If no explicit tools, use boot tools (add VM flags in this case)
+- JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
++# If no explicit tools, use boot tools (add VM flags in this case)
++JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
+ $(JAVACFLAGS)
+- JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \
++JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \
+ $(JAVAHFLAGS)
+- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%)
+-endif
+
+ # Override of what javac to use (see deploy workspace)
+ ifdef JAVAC
+diff -Nru openjdk-ecj.orig/corba/make/org/omg/sources/Makefile openjdk-ecj/corba/make/org/omg/sources/Makefile
+--- openjdk-ecj.orig/corba/make/org/omg/sources/Makefile 2010-05-26 09:31:18.000000000 +0100
++++ openjdk-ecj/corba/make/org/omg/sources/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -93,8 +93,6 @@
+ POAHELHOLFILES = $(POA_GENERATED_HELP_HOL_java:%=$(GENSRCDIR)/%)
+
+ $(POAGENERATEDFILES):: $(POA.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableServer" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -corba 3.0 -fall -pkgPrefix PortableServer org.omg $(POA.IDL)
+- $(RM) -r $(POAHELHOLFILES)
+
+ poa.compile: $(POAGENERATEDFILES)
+
+@@ -110,10 +108,6 @@
+
+ # Generating and deleting unused files to reduce images size
+ $(DYNANYFILES): $(DYNAMIC_ANY.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" $(DYNANY_IDLJ_FLAGS) $(DYNAMIC_ANY.IDL)
+- $(RM) $(DYNANY_DIR)/*POA*
+- $(RM) $(DYNANY_DIR)/*Holder*
+- $(RM) $(DYNANYDELETEFILES)
+
+ dynany.compile: $(DYNANYFILES)
+
+@@ -125,12 +119,6 @@
+ TR_IDLJ_FLAGS =-i "$(SRC_DIR)/org/omg/PortableInterceptor" -i "$(SRC_DIR)/org/omg/PortableServer" -i "$(SRC_DIR)/org/omg/CosTransactions"
+
+ $(TRGENERATEDFILES):: $(COSTRANSACTIONS.IDL) $(COSTSINTEROP.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg -pkgPrefix CosTransactions org.omg $(COSTRANSACTIONS.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg -pkgPrefix CosTSInteroperation org.omg $(COSTSINTEROP.IDL)
+-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL)
+-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fallTIE -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL)
+-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fall -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL)
+-# $(IDLJ) -td "$(GENSRCDIR)" $(TR_IDLJ_FLAGS) -D CORBA3 -corba 3.0 -fallTIE -pkgPrefix CORBA org.omg $(TRANSACTIONS.IDL)
+
+ tr.compile: $(TRGENERATEDFILES)
+
+@@ -144,7 +132,6 @@
+ # _NamingContextImplBase.java and _BindingIteratorImplBase.java files
+ # to GENSRC directory. Note that these two classes are deprecated.
+ $(NSGENERATEDFILES): $(NAMESERVICE.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" -i $(NAMESERVICEDIR) -fall -pkgPrefix CosNaming org.omg $(NAMESERVICE.IDL)
+
+ ns.compile: $(NSGENERATEDFILES)
+
+@@ -156,8 +143,6 @@
+ IOPDELETEFILES = $(IOP_TO_DELETE_FILES:%=$(GENSRCDIR)/%)
+
+ $(IOPGENERATEDFILES):: $(IOP.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -corba 3.0 -D CORBA3 -pkgPrefix IOP org.omg $(IOP.IDL)
+- $(RM) -r $(IOPDELETEFILES)
+
+ iop.compile: $(IOPGENERATEDFILES)
+
+@@ -169,8 +154,6 @@
+ CORBAXDUPLICATEFILES = $(CORBA_DUPLICATE_java:%=$(GENSRCDIR)/%)
+
+ $(CORBAXGENERATEDFILES):: $(CORBAX.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -corba 3.0 $(CORBAX.IDL)
+- $(RM) $(CORBAXDUPLICATEFILES)
+
+ corbax.compile: $(CORBAXGENERATEDFILES)
+
+@@ -181,7 +164,6 @@
+ MESSAGINGGENERATEDFILES = $(Messaging_java:%=$(GENSRCDIR)/%)
+
+ $(MESSAGINGGENERATEDFILES):: $(MESSAGING.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -corba 3.0 -pkgPrefix Messaging org.omg $(MESSAGING.IDL)
+
+ messaging.compile: $(MESSAGINGGENERATEDFILES)
+
+@@ -195,8 +177,6 @@
+ PIHELHOLFILES = $(PI_GENERATED_HELP_HOL_java:%=$(GENSRCDIR)/%)
+
+ $(PIGENERATEDFILES):: $(INTERCEPTORS.IDL)
+- $(IDLJ) -td "$(GENSRCDIR)" -i "$(SRC_DIR)/org/omg/PortableInterceptor" -i $(CORBA_IDL_DIR) -fall -pkgPrefix PortableInterceptor org.omg -pkgPrefix Dynamic org.omg -pkgPrefix IOP org.omg -corba 3.0 -D CORBA3 $(INTERCEPTORS.IDL)
+- $(RM) $(PIHELHOLFILES)
+
+ pi.compile: $(PIGENERATEDFILES)
+
+diff -Nru openjdk-ecj.orig/corba/make/sun/rmi/corbalogsources/Makefile openjdk-ecj/corba/make/sun/rmi/corbalogsources/Makefile
+--- openjdk-ecj.orig/corba/make/sun/rmi/corbalogsources/Makefile 2010-05-26 09:31:18.000000000 +0100
++++ openjdk-ecj/corba/make/sun/rmi/corbalogsources/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -172,7 +172,6 @@
+ ACTIVATIONFILES = $(com_sun_corba_se_spi_activation_java:%=$(GENSRCDIR)/%)
+
+ $(ACTIVATIONFILES): $(ACTIVATION.IDL)
+- $(IDLJ) -td $(GENSRCDIR) -i $(ACTIVATIONFILEDIR) -fall -oldImplBase -pkgPrefix activation com.sun.corba.se.spi $(ACTIVATION.IDL)
+
+ activation.idl.compile: $(ACTIVATIONFILES)
+
+@@ -195,7 +194,6 @@
+
+ # REVISIT: remove -oldImplBase
+ $(PORTABLEACTIVATIONFILES): $(PORTABLEACTIVATION.IDL)
+- $(IDLJ) -td $(GENSRCDIR) $(PORTABLEACTIVATION_INCLUDES) $(PORTABLEACTIVATION_PKG_PREFIXES) -fall -oldImplBase -corba 3.0 -D CORBA3 $(PORTABLEACTIVATION.IDL)
+
+ portableactivation.idl.compile: $(PORTABLEACTIVATIONFILES)
+
+diff -Nru openjdk-ecj.orig/jaxp/build.xml openjdk-ecj/jaxp/build.xml
+--- openjdk-ecj.orig/jaxp/build.xml 2011-01-10 21:21:59.000000000 +0000
++++ openjdk-ecj/jaxp/build.xml 2012-01-18 21:43:04.150185964 +0000
+@@ -131,7 +131,8 @@
+ memoryMaximumSize="${javac.memoryMaximumSize}"
+ source="${javac.source}"
+ debug="${javac.debug}"
+- target="${javac.target}">
++ target="${javac.target}"
++ executable="${jdk.home}/bin/javac">
+ <compilerarg value="-J-Xbootclasspath/p:${javac.jar}"/>
+ <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/>
+ <src refid="src.dir.id"/>
+diff -Nru openjdk-ecj.orig/jaxws/build.xml openjdk-ecj/jaxws/build.xml
+--- openjdk-ecj.orig/jaxws/build.xml 2011-01-10 21:22:02.000000000 +0000
++++ openjdk-ecj/jaxws/build.xml 2012-01-18 21:43:04.150185964 +0000
+@@ -131,7 +131,8 @@
+ memoryMaximumSize="${javac.memoryMaximumSize}"
+ source="${javac.source}"
+ debug="${javac.debug}"
+- target="${javac.target}">
++ target="${javac.target}"
++ executable="${jdk.home}/bin/javac">
+ <compilerarg value="-J-Xbootclasspath/p:${javac.jar}"/>
+ <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/>
+ <src refid="src.dir.id"/>
+diff -Nru openjdk-ecj.orig/jdk/make/common/BuildToolJar.gmk openjdk-ecj/jdk/make/common/BuildToolJar.gmk
+--- openjdk-ecj.orig/jdk/make/common/BuildToolJar.gmk 2011-01-07 21:32:51.000000000 +0000
++++ openjdk-ecj/jdk/make/common/BuildToolJar.gmk 2012-01-18 21:43:04.150185964 +0000
+@@ -43,7 +43,8 @@
+ @$(prep-target)
+ @$(MKDIR) -p $(BUILDTOOLCLASSDIR)
+ $(BOOT_JAVAC_CMD) -d $(BUILDTOOLCLASSDIR) \
+- -sourcepath $(BUILDTOOL_SOURCE_ROOT) $(BUILDTOOL_MAIN_SOURCE_FILE)
++ -sourcepath $(BUILDTOOL_SOURCE_ROOT) -classpath $(ICEDTEA_RT) \
++ $(BUILDTOOL_MAIN_SOURCE_FILE)
+ $(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \
+ -C $(BUILDTOOLCLASSDIR) $(PKGDIR) \
+ $(JAR_JFLAGS) || $(RM) $@
+diff -Nru openjdk-ecj.orig/jdk/make/common/Release.gmk openjdk-ecj/jdk/make/common/Release.gmk
+--- openjdk-ecj.orig/jdk/make/common/Release.gmk 2012-01-18 16:51:03.177199616 +0000
++++ openjdk-ecj/jdk/make/common/Release.gmk 2012-01-18 21:43:04.150185964 +0000
+@@ -649,10 +649,23 @@
+ $(RES_JAR_ARGLIST): $(RES_JAR_FILELIST)
+ $(prep-target)
+ $(SED) -e "s@^@-C $(CLASSBINDIR) @" $< > $@
+-$(RESOURCES_JAR): $(RES_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
++$(RESOURCES_JAR): \
++ $(if $(JAR_KNOWS_ATFILE),$(RES_JAR_FILELIST),$(RES_JAR_ARGLIST)) \
++ $(JAR_MANIFEST_FILE)
+ $(prep-target)
++ifneq (,$(JAR_KNOWS_ATFILE))
++ (cd $(CLASSBINDIR) && \
+ $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
+- @$(RES_JAR_ARGLIST) $(JAR_JFLAGS)
++ $(JAR_JFLAGS) @$(RES_JAR_FILELIST))
++else ifneq (,$(JAR_ACCEPTS_STDIN_LIST))
++ (cd $(CLASSBINDIR) && $(CAT) $(RES_JAR_FILELIST) | \
++ $(BOOT_JAR_CMD) c0mf@ $(JAR_MANIFEST_FILE) $@ \
++ $(JAR_JFLAGS))
++else
++ (cd $(CLASSBINDIR) && \
++ $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
++ $(JAR_JFLAGS) `cat $(RES_JAR_FILELIST)`)
++endif
+ @$(java-vm-cleanup)
+
+ # Create jsse.jar containing SunJSSE implementation classes
+@@ -708,10 +721,22 @@
+ $(RT_JAR_ARGLIST): $(RT_JAR_FILELIST)
+ $(prep-target)
+ $(SED) -e "s@^@-C $(CLASSBINDIR) @" $< > $@
+-$(RT_JAR): $(RT_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
++$(RT_JAR): $(if $(JAR_KNOWS_ATFILE),$(RT_JAR_FILELIST),$(RT_JAR_ARGLIST)) \
++ $(JAR_MANIFEST_FILE)
+ $(prep-target)
++ifneq (,$(JAR_KNOWS_ATFILE))
++ (cd $(CLASSBINDIR) && \
+ $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
+- @$(RT_JAR_ARGLIST) $(JAR_JFLAGS)
++ $(JAR_JFLAGS) @$(RT_JAR_FILELIST))
++else ifneq (,$(JAR_ACCEPTS_STDIN_LIST))
++ (cd $(CLASSBINDIR) && $(CAT) $(RT_JAR_FILELIST) | \
++ $(BOOT_JAR_CMD) c0mf@ $(JAR_MANIFEST_FILE) $@ \
++ $(JAR_JFLAGS))
++else
++ (cd $(CLASSBINDIR) && \
++ $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
++ $(JAR_JFLAGS) `$(CAT) $(RT_JAR_FILELIST)`)
++endif
+ @$(java-vm-cleanup)
+
+ # Meta-index construction to make core class loaders lazier
+@@ -942,19 +967,6 @@
+ @$(java-vm-cleanup)
+ $(CP) $(LIBDIR)/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar
+ @#
+- @# lib/ct.sym
+- @#
+- $(MKDIR) -p $(OUTPUTDIR)/symbols/META-INF/sym
+- $(JAVAC_CMD) -XDprocess.packages -proc:only \
+- -processor com.sun.tools.javac.sym.CreateSymbols \
+- -Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \
+- -Acom.sun.tools.javac.sym.Dest=$(OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
+- $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS)
+- $(BOOT_JAR_CMD) c0f $(LIBDIR)/ct.sym \
+- -C $(OUTPUTDIR)/symbols META-INF $(JAR_JFLAGS)
+- @$(java-vm-cleanup)
+- $(CP) $(LIBDIR)/ct.sym $(JDK_IMAGE_DIR)/lib/ct.sym
+- @#
+ @# CORBA supported orb.idl and ir.idl should be copied to lib
+ @#
+ $(CP) $(LIBDIR)/orb.idl $(JDK_IMAGE_DIR)/lib/orb.idl
+@@ -1023,16 +1035,6 @@
+ $(CP) $(PLATFORM_SRC)/bin/java_md.h $(JDK_IMAGE_DIR)/src/launcher
+ $(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip *
+ $(RM) -r $(JDK_IMAGE_DIR)/src
+- @#
+- @# demo, include
+- @#
+- $(CP) -r -f $(DEMODIR) $(JDK_IMAGE_DIR)
+- $(CP) -r -f $(SAMPLEDIR) $(JDK_IMAGE_DIR)
+- $(CP) -r $(INCLUDEDIR) $(JDK_IMAGE_DIR)
+- @#
+- @# Swing BeanInfo generation
+- @#
+- $(CD) javax/swing/beaninfo && $(MAKE) swing-1.2-beans
+ ifneq ($(PLATFORM), windows)
+ $(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES))
+ endif # !windows
+diff -Nru openjdk-ecj.orig/jdk/make/common/Rules.gmk openjdk-ecj/jdk/make/common/Rules.gmk
+--- openjdk-ecj.orig/jdk/make/common/Rules.gmk 2011-01-07 21:32:51.000000000 +0000
++++ openjdk-ecj/jdk/make/common/Rules.gmk 2012-01-18 21:43:04.150185964 +0000
+@@ -235,8 +235,9 @@
+ $(ECHO) "# Java sources to be compiled: (listed in file $(JAVA_SOURCE_LIST))"; \
+ $(CAT) $(JAVA_SOURCE_LIST); \
+ $(ECHO) "# Running javac:"; \
+- $(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
+- $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
++ $(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -bootclasspath "$(ICEDTEA_RT):$(ICEDTEA_JCE):$(CLASSDESTDIR)" \
++ -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
++ $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -bootclasspath "$(ICEDTEA_RT):$(ICEDTEA_JCE):$(CLASSDESTDIR)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
+ fi
+ @$(java-vm-cleanup)
+
+@@ -302,6 +303,8 @@
+ $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
+ $(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
+ @$(java-vm-cleanup)
++ -mv $(CLASSHDRDIR)/java_lang_ClassLoader\$$NativeLibrary.h \
++ $(CLASSHDRDIR)/java_lang_ClassLoader_NativeLibrary.h
+ @$(TOUCH) $@
+
+ classheaders.clean:
+diff -Nru openjdk-ecj.orig/jdk/make/common/shared/Defs-java.gmk openjdk-ecj/jdk/make/common/shared/Defs-java.gmk
+--- openjdk-ecj.orig/jdk/make/common/shared/Defs-java.gmk 2012-01-18 16:50:57.569109033 +0000
++++ openjdk-ecj/jdk/make/common/shared/Defs-java.gmk 2012-01-18 21:43:04.150185964 +0000
+@@ -124,34 +124,18 @@
+ JAVACFLAGS += $(OTHER_JAVACFLAGS)
+
+ # Needed for javah
+-JAVAHFLAGS += -bootclasspath $(CLASSBINDIR)
++JAVAHFLAGS += -bootclasspath $(CLASSBINDIR):$(ICEDTEA_RT):$(CLASSDESTDIR)
+
+ # Needed for JAVADOC and BOOT_JAVACFLAGS
+ NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
+
+ # Langtools
+-ifdef LANGTOOLS_DIST
+- JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
+- JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar
+- JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
+- DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
+- JAVAC_CMD = $(BOOT_JAVA_CMD) \
+- "-Xbootclasspath/p:$(JAVAC_JAR)" \
+- -jar $(JAVAC_JAR) $(JAVACFLAGS)
+- JAVAH_CMD = $(BOOT_JAVA_CMD) \
+- "-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \
+- -jar $(JAVAH_JAR) $(JAVAHFLAGS)
+- JAVADOC_CMD = $(BOOT_JAVA_CMD) \
+- "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
+- -jar $(JAVADOC_JAR)
+-else
+- # If no explicit tools, use boot tools (add VM flags in this case)
+- JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
++# If no explicit tools, use boot tools (add VM flags in this case)
++JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
+ $(JAVACFLAGS)
+- JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \
++JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \
+ $(JAVAHFLAGS)
+- JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%)
+-endif
++JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%)
+
+ # Override of what javac to use (see deploy workspace)
+ ifdef JAVAC
+diff -Nru openjdk-ecj.orig/jdk/make/java/nio/Makefile openjdk-ecj/jdk/make/java/nio/Makefile
+--- openjdk-ecj.orig/jdk/make/java/nio/Makefile 2012-01-18 16:50:50.576996095 +0000
++++ openjdk-ecj/jdk/make/java/nio/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -31,7 +31,7 @@
+ PACKAGE = java.nio
+ LIBRARY = nio
+ PRODUCT = java
+-OTHER_JAVACFLAGS += -Xmaxwarns 1000 -Xlint:serial
++OTHER_JAVACFLAGS += -Xlint:serial
+ include $(BUILDDIR)/common/Defs.gmk
+
+ NIO_SRC = $(SHARE_SRC)/classes/java/nio
+diff -Nru openjdk-ecj.orig/jdk/make/java/text/Makefile openjdk-ecj/jdk/make/java/text/Makefile
+--- openjdk-ecj.orig/jdk/make/java/text/Makefile 2011-01-07 21:32:51.000000000 +0000
++++ openjdk-ecj/jdk/make/java/text/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -80,8 +80,8 @@
+ -sourcepath $(TEXT_SRCDIR) \
+ $(TEXT_SOURCES)
+ $(MKDIR) -p $(TEXT_CLASSDIR)
+- $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \
+- -jar $(GENERATEBREAKITERATORDATA_JARFILE) \
++ $(BOOT_JAVA_CMD) -cp $(TEXT_CLASSES):$(GENERATEBREAKITERATORDATA_JARFILE):$(ICEDTEA_CLS_DIR) \
++ build.tools.generatebreakiteratordata.GenerateBreakIteratorData \
+ -o $(TEXT_CLASSDIR) \
+ -spec $(UNICODEDATA)/UnicodeData.txt
+ @$(java-vm-cleanup)
+diff -Nru openjdk-ecj.orig/jdk/make/Makefile openjdk-ecj/jdk/make/Makefile
+--- openjdk-ecj.orig/jdk/make/Makefile 2011-01-07 21:32:51.000000000 +0000
++++ openjdk-ecj/jdk/make/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -247,7 +247,7 @@
+
+ all build:: sanity-all post-sanity-all
+
+-SUBDIRS = tools java javax org sun sunw com jpda mkdemo mksample launchers
++SUBDIRS = tools java javax org sun sunw com jpda mksample launchers
+ all build::
+ $(SUBDIRS-loop)
+
+diff -Nru openjdk-ecj.orig/jdk/make/sun/awt/Makefile openjdk-ecj/jdk/make/sun/awt/Makefile
+--- openjdk-ecj.orig/jdk/make/sun/awt/Makefile 2012-01-18 16:50:52.313024135 +0000
++++ openjdk-ecj/jdk/make/sun/awt/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -438,10 +438,9 @@
+ COMPILEFONTCONFIG_JARFILE = $(BUILDTOOLJARDIR)/compilefontconfig.jar
+
+ $(LIBDIR)/%.bfc: $(FONTCONFIGS_SRC)/$(FONTCONFIGS_SRC_PREFIX)%.properties \
+- $(COMPILEFONTCONFIG_JARFILE)
+- $(prep-target)
+- $(BOOT_JAVA_CMD) -jar $(COMPILEFONTCONFIG_JARFILE) $< $@
+- $(CHMOD) 444 $(@)
++ $(COMPILEFONTCONFIG_JARFILE)
++ $(CP) -f $(GENSRCDIR)/fontconfig/* $(LIBDIR)
++ $(CHMOD) 444 $(LIBDIR)/*.bfc
+ @$(java-vm-cleanup)
+
+ fontconfigs.clean :
+diff -Nru openjdk-ecj.orig/jdk/make/sun/javazic/Makefile openjdk-ecj/jdk/make/sun/javazic/Makefile
+--- openjdk-ecj.orig/jdk/make/sun/javazic/Makefile 2011-01-07 21:32:51.000000000 +0000
++++ openjdk-ecj/jdk/make/sun/javazic/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -62,7 +62,8 @@
+ $(WORKDIR)/$(MAPFILE): $(BUILDTOOLJARDIR)/javazic.jar $(TZFILES)
+ $(RM) -r $(@D)
+ $(prep-target)
+- $(BOOT_JAVA_CMD) -jar $(BUILDTOOLJARDIR)/javazic.jar -V "$(TZDATA_VER)" -d $(WORKDIR) $(TZFILES)
++ $(BOOT_JAVA_CMD) -cp $(ICEDTEA_CLS_DIR):$(BUILDTOOLJARDIR)/javazic.jar \
++ build.tools.javazic.Main -V "$(TZDATA_VER)" -d $(WORKDIR) $(TZFILES)
+ @$(java-vm-cleanup)
+
+ $(INSTALLDIR)/$(MAPFILE): $(WORKDIR)/$(MAPFILE)
+diff -Nru openjdk-ecj.orig/jdk/make/sun/text/Makefile openjdk-ecj/jdk/make/sun/text/Makefile
+--- openjdk-ecj.orig/jdk/make/sun/text/Makefile 2011-01-07 21:32:51.000000000 +0000
++++ openjdk-ecj/jdk/make/sun/text/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -85,8 +85,9 @@
+ $(BOOT_JAVAC_CMD) -d $(TEXT_CLASSES) \
+ -sourcepath $(TEXT_SRCDIR) \
+ $(BIRULES) $(BIINFO)
+- $(BOOT_JAVA_CMD) -Xbootclasspath/p:$(TEXT_CLASSES) \
+- -jar $(GENERATEBREAKITERATORDATA_JARFILE) \
++ $(BOOT_JAVA_CMD) \
++ -cp $(TEXT_CLASSES):$(ICEDTEA_CLS_DIR):$(GENERATEBREAKITERATORDATA_JARFILE) \
++ build.tools.generatebreakiteratordata.GenerateBreakIteratorData \
+ -o $(CLASSDESTDIR)/sun/text/resources \
+ -spec $(UNICODEDATA)/UnicodeData.txt \
+ -language th
+diff -Nru openjdk-ecj.orig/jdk/make/sun/xawt/Makefile openjdk-ecj/jdk/make/sun/xawt/Makefile
+--- openjdk-ecj.orig/jdk/make/sun/xawt/Makefile 2012-01-18 16:51:03.393203105 +0000
++++ openjdk-ecj/jdk/make/sun/xawt/Makefile 2012-01-18 21:43:04.150185964 +0000
+@@ -301,11 +301,7 @@
+
+ TEMPDIR_CLASSES = $(TEMPDIR)/classes
+
+-$(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java
+- @$(prep-target)
+- $(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $<
+-
+-$(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class $(ICONS)
++$(TEMPDIR)/.gen_icons: $(ICONS)
+ $(prep-target)
+ for i in $(ICONS); do \
+ filename=`basename $$i`; \
+@@ -315,22 +311,14 @@
+ $(ECHO) "package sun.awt.X11;" >> $$classname ; \
+ $(ECHO) "public class XAWTIcon32_$$name {" >> $$classname; \
+ $(ECHO) "public static int[] $$name = { " >> $$classname; \
+- $(CAT) $$i | \
+- $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \
+- -Dawt.toolkit=sun.awt.motif.MToolkit \
+- -Djava.awt.headless=true \
+- sun.awt.X11.ToBin >> $$classname; \
++ $(ECHO) "0,0" >> $$classname ; \
+ $(ECHO) "}; }" >> $$classname; \
+- classname=$(GEN_DIR)/XAWTIcon64_$$name.java; \
++ classname=$(GEN_DIR)/XAWTIcon64_$$name.java; \
+ $(RM) $$classname; \
+ $(ECHO) "package sun.awt.X11;" >> $$classname ; \
+ $(ECHO) "public class XAWTIcon64_$$name {" >> $$classname; \
+ $(ECHO) "public static long[] $$name = { " >> $$classname; \
+- $(CAT) $$i | \
+- $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \
+- -Dawt.toolkit=sun.awt.motif.MToolkit \
+- -Djava.awt.headless=true \
+- sun.awt.X11.ToBin >> $$classname; \
++ $(ECHO) "0,0" >> $$classname ; \
+ $(ECHO) "}; }" >> $$classname; \
+ done
+ $(TOUCH) $@
+diff -Nru openjdk-ecj.orig/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java openjdk-ecj/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java
+--- openjdk-ecj.orig/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java 2011-01-07 21:32:51.000000000 +0000
++++ openjdk-ecj/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java 2012-01-18 21:43:04.150185964 +0000
+@@ -647,9 +647,6 @@
+ throws FileNotFoundException, IOException {
+ BufferedReader in = new BufferedReader(new FileReader(theTemplateFileName));
+ PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(theOutputFileName)));
+- out.println(commentStart +
+- " This file was generated AUTOMATICALLY from a template file " +
+- new java.util.Date() + commentEnd);
+ int marklen = commandMarker.length();
+ LOOP: while(true) {
+ try {
+@@ -876,7 +873,6 @@
+ // liu : Add a comment showing the source of this table
+ result.append(commentStart + " The following tables and code generated using:" +
+ commentEnd + "\n ");
+- result.append(commentStart + ' ' + commandLineDescription + commentEnd + "\n ");
+
+ if (plane == 0 && bLatin1 == false) {
+ genCaseMapTableDeclaration(result);
+diff -Nru openjdk-ecj.orig/jdk/src/share/classes/java/lang/Double.java openjdk-ecj/jdk/src/share/classes/java/lang/Double.java
+--- openjdk-ecj.orig/jdk/src/share/classes/java/lang/Double.java 2011-01-07 21:32:53.000000000 +0000
++++ openjdk-ecj/jdk/src/share/classes/java/lang/Double.java 2012-01-18 21:43:04.150185964 +0000
+@@ -76,7 +76,7 @@
+ * {@code 0x1.fffffffffffffP+1023} and also equal to
+ * {@code Double.longBitsToDouble(0x7fefffffffffffffL)}.
+ */
+- public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308
++ public static final double MAX_VALUE = 1.7976931348623157e+308;
+
+ /**
+ * A constant holding the smallest positive normal value of type
+@@ -86,7 +86,7 @@
+ *
+ * @since 1.6
+ */
+- public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308
++ public static final double MIN_NORMAL = 2.2250738585072014E-308;
+
+ /**
+ * A constant holding the smallest positive nonzero value of type
+@@ -95,7 +95,7 @@
+ * {@code 0x0.0000000000001P-1022} and also equal to
+ * {@code Double.longBitsToDouble(0x1L)}.
+ */
+- public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324
++ public static final double MIN_VALUE = 4.9e-324;
+
+ /**
+ * Maximum exponent a finite {@code double} variable may have.
+diff -Nru openjdk-ecj.orig/jdk/src/share/classes/java/lang/Float.java openjdk-ecj/jdk/src/share/classes/java/lang/Float.java
+--- openjdk-ecj.orig/jdk/src/share/classes/java/lang/Float.java 2011-01-07 21:32:53.000000000 +0000
++++ openjdk-ecj/jdk/src/share/classes/java/lang/Float.java 2012-01-18 21:43:04.150185964 +0000
+@@ -76,7 +76,7 @@
+ * {@code 0x1.fffffeP+127f} and also equal to
+ * {@code Float.intBitsToFloat(0x7f7fffff)}.
+ */
+- public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f
++ public static final float MAX_VALUE = 3.4028235e+38f;
+
+ /**
+ * A constant holding the smallest positive normal value of type
+@@ -86,7 +86,7 @@
+ *
+ * @since 1.6
+ */
+- public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f
++ public static final float MIN_NORMAL = 1.17549435E-38f;
+
+ /**
+ * A constant holding the smallest positive nonzero value of type
+@@ -94,7 +94,7 @@
+ * hexadecimal floating-point literal {@code 0x0.000002P-126f}
+ * and also equal to {@code Float.intBitsToFloat(0x1)}.
+ */
+- public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
++ public static final float MIN_VALUE = 1.4e-45f;
+
+ /**
+ * Maximum exponent a finite {@code float} variable may have. It
+diff -Nru openjdk-ecj.orig/langtools/make/build.xml openjdk-ecj/langtools/make/build.xml
+--- openjdk-ecj.orig/langtools/make/build.xml 2011-02-17 23:26:23.000000000 +0000
++++ openjdk-ecj/langtools/make/build.xml 2012-01-18 21:43:04.150185964 +0000
+@@ -523,6 +523,7 @@
+ includeAntRuntime="no"
+ source="@{javac.source}"
+ target="@{javac.target}">
++ <compilerarg line="-bootclasspath @{classes.dir}:${boot.java.home}/jre/lib/rt.jar"/>
+ <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
+ <compilerarg line="${javac.version.opt}"/>
+ <compilerarg line="-Xlint"/>
+@@ -539,6 +540,7 @@
+ target="@{javac.target}"
+ debug="${javac.debug}"
+ debuglevel="${javac.debuglevel}">
++ <compilerarg line="-bootclasspath @{classes.dir}:${boot.java.home}/jre/lib/rt.jar"/>
+ <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
+ <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
+ <compilerarg line="${javac.no.jdk.warnings}"/>
diff --git a/pcr/openjdk6/fix_corba_cmds_path.diff b/pcr/openjdk6/fix_corba_cmds_path.diff
new file mode 100644
index 000000000..7a3db9567
--- /dev/null
+++ b/pcr/openjdk6/fix_corba_cmds_path.diff
@@ -0,0 +1,29 @@
+--- 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
+@@ -76,7 +76,7 @@
+ 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
+@@ -125,7 +125,7 @@
+ TAIL = $(UTILS_USR_BIN_PATH)tail
+ TAR = $(UTILS_COMMAND_PATH)tar
+ TEST = $(UTILS_USR_BIN_PATH)test
+-TOUCH = $(UTILS_COMMAND_PATH)touch
++TOUCH = $(UTILS_USR_BIN_PATH)touch
+ TR = $(UTILS_USR_BIN_PATH)tr
+ TRUE = $(UTILS_COMMAND_PATH)true
+ UNAME = $(UTILS_COMMAND_PATH)uname
+@@ -176,7 +176,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/pcr/openjdk6/fix_jdk_cmds_path.diff b/pcr/openjdk6/fix_jdk_cmds_path.diff
new file mode 100644
index 000000000..bd37dd4ba
--- /dev/null
+++ b/pcr/openjdk6/fix_jdk_cmds_path.diff
@@ -0,0 +1,29 @@
+--- 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
+@@ -89,7 +89,7 @@
+ 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
+@@ -137,7 +137,7 @@
+ TAIL = $(UTILS_USR_BIN_PATH)tail
+ TAR = $(UTILS_COMMAND_PATH)tar
+ TEST = $(UTILS_USR_BIN_PATH)test
+-TOUCH = $(UTILS_COMMAND_PATH)touch
++TOUCH = $(UTILS_USR_BIN_PATH)touch
+ TR = $(UTILS_USR_BIN_PATH)tr
+ TRUE = $(UTILS_COMMAND_PATH)true
+ UNAME = $(UTILS_COMMAND_PATH)uname
+@@ -178,7 +178,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/pcr/openjdk6/fontconfig-paths.diff b/pcr/openjdk6/fontconfig-paths.diff
new file mode 100644
index 000000000..fa08db629
--- /dev/null
+++ b/pcr/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/pcr/openjdk6/nonreparenting-wm.diff b/pcr/openjdk6/nonreparenting-wm.diff
new file mode 100644
index 000000000..65fa66e89
--- /dev/null
+++ b/pcr/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/pcr/openjdk6/openjdk6.install b/pcr/openjdk6/openjdk6.install
new file mode 100644
index 000000000..653c8fe2f
--- /dev/null
+++ b/pcr/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/pcr/openjdk6/openjdk6.profile b/pcr/openjdk6/openjdk6.profile
new file mode 100644
index 000000000..9da4421ef
--- /dev/null
+++ b/pcr/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/pcr/openjdk6/openjdk6.profile.csh b/pcr/openjdk6/openjdk6.profile.csh
new file mode 100644
index 000000000..3cb15fd49
--- /dev/null
+++ b/pcr/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/pcr/openswan/PKGBUILD b/pcr/openswan/PKGBUILD
new file mode 100644
index 000000000..ab7bd69f5
--- /dev/null
+++ b/pcr/openswan/PKGBUILD
@@ -0,0 +1,56 @@
+# Contributor: xjpvictor Huang <ke [AT] xjpvictor [DOT] info>
+pkgname=openswan
+pkgver=2.6.38
+pkgrel=2
+pkgdesc="Open Source implementation of IPsec for the Linux operating system"
+url="http://www.openswan.org"
+license=('GPL' 'custom')
+arch=('i686' 'x86_64')
+depends=('iproute2>=2.6.8' 'gmp' 'perl')
+makedepends=('flex' 'bison')
+conflicts=('ipsec-tools')
+backup=(etc/ipsec.conf \
+ etc/ipsec.d/policies/{block,clear,clear-or-private,private,private-or-clear})
+source=(http://download.openswan.org/openswan/openswan-$pkgver.tar.gz
+ openswan
+ openswan.service)
+
+prepare() {
+ cd $srcdir/openswan-$pkgver
+ # Change install paths to Arch defaults
+ sed -i 's|/usr/local|/usr|;s|libexec/ipsec|lib/openswan|;s|)/sbin|)/bin|' Makefile.inc
+}
+
+build() {
+ cd $srcdir/openswan-$pkgver
+
+ # Change install paths to Arch defaults
+ sed -i 's|/usr/local|/usr|;s|libexec/ipsec|lib/openswan|;s|)/sbin|)/bin|' Makefile.inc
+
+ make USE_XAUTH=true USE_OBJDIR=true programs
+}
+
+package() {
+ cd $srcdir/openswan-$pkgver
+
+ # Create /etc/rc.d for init script, and license directory
+ mkdir -p $pkgdir/{etc/rc.d,usr/share/licenses/openswan}
+ make DESTDIR=$pkgdir install
+
+ # Change permissions in /var
+ chmod 700 $pkgdir/var/run/pluto
+
+ # Copy License
+ cp LICENSE $pkgdir/usr/share/licenses/openswan
+
+ # Install init script
+ install -Dm755 ../openswan $pkgdir/etc/rc.d/openswan
+ install -Dm644 ../openswan.service $pkgdir/usr/lib/systemd/system/openswan.service
+ mkdir $pkgdir/usr/lib/systemd/scripts/
+ cp $pkgdir/etc/rc.d/ipsec $pkgdir/usr/lib/systemd/scripts/ipsec
+ # fix manpages
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
+md5sums=('13073eb5314b83a31be88e4117e8bbcd'
+ '543d84162761b9cc9ec319e938c4dd2a'
+ 'd8b465c10838c72e31329d65011002b6')
diff --git a/pcr/openswan/compile.patch b/pcr/openswan/compile.patch
new file mode 100644
index 000000000..8ddff67f2
--- /dev/null
+++ b/pcr/openswan/compile.patch
@@ -0,0 +1,11 @@
+--- openswan-2.6.23/Makefile 2009-09-09 02:42:54.000000000 +0200
++++ Makefile 2009-12-30 10:13:53.000000000 +0100
+@@ -12,6 +12,8 @@
+ # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ # for more details.
+ #
++CFLAGS=-fno-strict-aliasing
++CXXFLAGS=-fno-strict-aliasing
+
+
+ OPENSWANSRCDIR?=$(shell pwd)
diff --git a/pcr/openswan/openswan b/pcr/openswan/openswan
new file mode 100755
index 000000000..30bd0d56e
--- /dev/null
+++ b/pcr/openswan/openswan
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting Openswan IPsec"
+ /etc/rc.d/ipsec --start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ add_daemon openswan
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Openswan IPsec"
+ /etc/rc.d/ipsec --stop
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ rm_daemon openswan
+ fi
+ ;;
+ restart)
+ stat_busy "Restarting Openswan IPsec"
+ /etc/rc.d/ipsec --restart
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ add_daemon openswan
+ fi
+ ;;
+ status)
+ /etc/rc.d/ipsec --status
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
diff --git a/pcr/openswan/openswan.rc.d b/pcr/openswan/openswan.rc.d
new file mode 100755
index 000000000..30bd0d56e
--- /dev/null
+++ b/pcr/openswan/openswan.rc.d
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting Openswan IPsec"
+ /etc/rc.d/ipsec --start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ add_daemon openswan
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Openswan IPsec"
+ /etc/rc.d/ipsec --stop
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ rm_daemon openswan
+ fi
+ ;;
+ restart)
+ stat_busy "Restarting Openswan IPsec"
+ /etc/rc.d/ipsec --restart
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ add_daemon openswan
+ fi
+ ;;
+ status)
+ /etc/rc.d/ipsec --status
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
diff --git a/pcr/openswan/openswan.service b/pcr/openswan/openswan.service
new file mode 100755
index 000000000..6d899705c
--- /dev/null
+++ b/pcr/openswan/openswan.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Openswan daemon
+After=network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/lib/systemd/scripts/ipsec --start
+ExecStop=/usr/lib/systemd/scripts/ipsec --stop
+ExecReload=/usr/lib/systemd/scripts/ipsec --restart
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/opentracker/PKGBUILD b/pcr/opentracker/PKGBUILD
new file mode 100644
index 000000000..d40898859
--- /dev/null
+++ b/pcr/opentracker/PKGBUILD
@@ -0,0 +1,67 @@
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: Jonas Heinrich <onny@project-insanity.org>
+
+pkgname=opentracker
+pkgver=20130312
+pkgrel=1
+pkgdesc='An open and free bittorrent tracker (open mode)'
+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')
+source=("http://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig}
+'opentracker.service'
+'license.txt')
+md5sums=('64956fd9bc7b453b4862b8ba15a27511'
+ '0217a2aeaee2b75017c13cdf86a245f2'
+ '3c638b71d5ecb65fb7964796975b2078'
+ '865211941e882c0aff5d36a22ac9efaa')
+
+_cvsroot=':pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot'
+_cvsmod='opentracker'
+
+mksource() {
+ pushd "${srcdir}"
+ msg 'Connecting to CVS server....'
+ if [ -d ${_cvsmod}/CVS ]; then
+ cd ${_cvsmod}
+ cvs -z3 update -d
+ else
+ cvs -z3 -d ${_cvsroot} co -f ${_cvsmod}
+ cd ${_cvsmod}
+ fi
+
+ msg 'CVS checkout done or server timeout'
+ popd
+
+ tar czf ${pkgname}-${pkgver}.tar.gz ${_cvsmod}/
+}
+
+build() {
+ cd "${srcdir}/${_cvsmod}"
+ msg 'Starting make...'
+
+ sed -e 's|# tracker.rootdir /usr/local/etc/opentracker|tracker.rootdir /etc/opentracker|' \
+ -e 's|# access.stats 192.168.0.23|access.stats 127.0.0.1|' \
+ -i opentracker.conf.sample
+
+# See Makefile for available features
+ make PREFIX=/usr \
+ LIBOWFAT_HEADERS=/usr/includes \
+ LIBOWFAT_LIBRARY=/usr/lib \
+ FEATURES="-DWANT_SYSLOGS -DDEBUG_HTTPERROR"
+}
+
+package(){
+ cd "${srcdir}/${_cvsmod}"
+
+ install -D -m 755 opentracker $pkgdir/usr/bin/opentracker
+ install -D -m 644 opentracker.conf.sample $pkgdir/etc/opentracker/config
+ install -D -m 644 $srcdir/license.txt $pkgdir/usr/share/licenses/opentracker/license.txt
+
+ # Create opentracker service
+ mkdir -p "$pkgdir/usr/lib/systemd/system/"
+ install -m 644 "$srcdir/opentracker.service" "$pkgdir/usr/lib/systemd/system/"
+}
diff --git a/pcr/opentracker/license.txt b/pcr/opentracker/license.txt
new file mode 100644
index 000000000..ff1bb40f5
--- /dev/null
+++ b/pcr/opentracker/license.txt
@@ -0,0 +1,2 @@
+This software was written by Dirk Engling <erdgeist@erdgeist.org>
+It is considered beerware. Prost. Skol. Cheers or whatever.
diff --git a/pcr/opentracker/opentracker.install b/pcr/opentracker/opentracker.install
new file mode 100644
index 000000000..59f6f6ebe
--- /dev/null
+++ b/pcr/opentracker/opentracker.install
@@ -0,0 +1,17 @@
+post_install() {
+ cat <<EOM
+
+ Please be aware this package is built without accesslist support. Any
+ torrent announced to it will be tracked.
+
+ If you want this features you'll have to rebuild this package. There're
+ instructions on the PKGBUILD.
+
+ For more info check: http://erdgeist.org/arts/software/opentracker/
+
+EOM
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/pcr/opentracker/opentracker.rc.d b/pcr/opentracker/opentracker.rc.d
new file mode 100644
index 000000000..b1aa34c14
--- /dev/null
+++ b/pcr/opentracker/opentracker.rc.d
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/opentracker`
+
+case "$1" in
+ start)
+ stat_busy "Starting opentracker Daemon"
+ [ -z "$PID" ] && su nobody -s /bin/sh -c "/usr/bin/opentracker -f /etc/opentracker/config&"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon opentracker
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping opentracker Daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon opentracker
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/pcr/opentracker/opentracker.service b/pcr/opentracker/opentracker.service
new file mode 100644
index 000000000..5f1b887ea
--- /dev/null
+++ b/pcr/opentracker/opentracker.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenTracker Daemon
+After=network.target
+
+[Service]
+User=nobody
+ExecStart=/usr/bin/opentracker -f /etc/opentracker/config
+ExecStop=/bin/kill -INT $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/otf-stix/PKGBUILD b/pcr/otf-stix/PKGBUILD
new file mode 100644
index 000000000..6a9b2d62c
--- /dev/null
+++ b/pcr/otf-stix/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer (Arch): ezzetabi <ezzetabi at gawab dot com>
+# Maintainer (Parabola): Alon Ivtsan <alonivtsan@lavabit.com>
+# taken from https://aur.archlinux.org/packages/otf-stix/
+
+pkgname=otf-stix
+pkgver=1.1.0
+#_pkgver=${pkgver//_/-}
+pkgrel=2
+epoch=2
+pkgdesc='A comprehensive set of fonts that serve the scientific and
+engineering community.'
+arch=('any')
+url="http://www.stixfonts.org"
+license=('Custom: OFL')
+depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils')
+makedepends=('unzip')
+install=otf-stix.install
+source=("http://downloads.sourceforge.net/stixfonts/STIXv$pkgver.zip"
+'http://www.stixfonts.org/STIXFontLicense2010.txt')
+
+build() {
+ /bin/true
+}
+
+package() {
+ cd "$srcdir"
+
+ install -m755 -d "$pkgdir/usr/share/fonts/OTF"
+ install -m644 Fonts/STIX-General/*.otf "$pkgdir/usr/share/fonts/OTF"
+ install -m644 Fonts/STIX-Word/*.otf "$pkgdir/usr/share/fonts/OTF"
+ install -Dm644 "$srcdir"/STIXFontLicense2010.txt \
+ "$pkgdir"/usr/share/licenses/"$pkgname"/license.txt
+}
+
+md5sums=('e5ebc8ef9b7df0f0bac0fd90bce95295'
+'b1af7bbd3cea93a60bf68cf571ad6cab')
+
diff --git a/pcr/otf-stix/otf-stix.install b/pcr/otf-stix/otf-stix.install
new file mode 100644
index 000000000..5d66bc226
--- /dev/null
+++ b/pcr/otf-stix/otf-stix.install
@@ -0,0 +1,16 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -s
+ mkfontscale /usr/share/fonts/OTF
+ mkfontdir /usr/share/fonts/OTF
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
diff --git a/pcr/owncloud-app-roundcube/PKGBUILD b/pcr/owncloud-app-roundcube/PKGBUILD
new file mode 100644
index 000000000..050925d8c
--- /dev/null
+++ b/pcr/owncloud-app-roundcube/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 103944 2014-01-13 20:31:53Z spupykin $
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : Parabola Aurélien Desbrières <aurelien@hackers.guru>
+
+pkgname=owncloud-app-roundcube
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="Roundcubemail integration for owncloud"
+arch=('any')
+url="http://apps.owncloud.com/content/show.php/?content=151523"
+license=('GPL')
+depends=('owncloud')
+makedepends=()
+options=('!strip')
+source=("https://github.com/hypery2k/owncloud/releases/download/v$pkgver/roundcube.zip")
+
+package() {
+ install -d ${pkgdir}/usr/share/webapps/owncloud/apps
+ cp -a ${srcdir}/roundcube ${pkgdir}/usr/share/webapps/owncloud/apps/roundcube
+}
diff --git a/pcr/owncloud-client/PKGBUILD b/pcr/owncloud-client/PKGBUILD
new file mode 100644
index 000000000..2e1e82c15
--- /dev/null
+++ b/pcr/owncloud-client/PKGBUILD
@@ -0,0 +1,59 @@
+# Maintainer: Kuba Serafinowski <zizzfizzix(at)gmail(dot)com>
+# https://github.com/zizzfizzix/pkgbuilds
+# Maintainer: Jorge Araya Navarro <shackra@riseup.net>
+#
+##############################################################
+#### The section below can be adjusted to suit your needs ####
+##############################################################
+
+# What type of build do you want?
+# See http://techbase.kde.org/Development/CMake/Addons_for_KDE#Buildtypes to check what is supported.
+# Default is RelWithDebInfo to help with debugging.
+
+_buildtype='Release'
+
+##############################################################
+
+_name=mirall
+pkgname=owncloud-client
+pkgver=1.5.1
+pkgrel=1
+pkgdesc='ownCloud client based on mirall'
+arch=('i686' 'x86_64' 'armv7h')
+url='http://owncloud.org/'
+license=('GPL2')
+depends=('qt4' 'ocsync' 'qtkeychain' 'qtwebkit')
+makedepends=('cmake')
+provides=('mirall' 'owncloud-client')
+conflicts=('mirall-git')
+install=owncloud-client.install
+backup=('etc/ownCloud/sync-exclude.lst')
+source=("http://download.owncloud.com/desktop/stable/${_name}-${pkgver}.tar.bz2")
+
+if [[ ! ${_buildtype} == 'Release' ]] && [[ ! ${_buildtype} == 'release' ]]; then
+ options=(!strip)
+fi
+
+prepare() {
+ if [[ -e ${srcdir}/${_name}-${pkgver}-build ]]; then rm -rf ${srcdir}/${_name}-${pkgver}-build; fi
+ mkdir ${srcdir}/${_name}-${pkgver}-build
+}
+
+build() {
+ cd ${srcdir}/${_name}-${pkgver}-build
+
+ cmake -DQT_QMAKE_EXECUTABLE=qmake-qt4 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DCMAKE_BUILD_TYPE=${_buildtype} \
+ -DCSYNC_INCLUDE_PATH=/usr/include/ocsync \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc/${pkgname} \
+ ../${_name}-${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/${_name}-${pkgver}-build
+ make DESTDIR=${pkgdir} install
+}
+sha256sums=('79c41f8c72c994ab803b7053a1c7e0a46bbd20c25c1eed900e1c98433745daee')
diff --git a/pcr/owncloud-client/owncloud-client.desktop b/pcr/owncloud-client/owncloud-client.desktop
new file mode 100644
index 000000000..005e52219
--- /dev/null
+++ b/pcr/owncloud-client/owncloud-client.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=ownCloud 2012 client
+GenericName=File Sync
+TryExec=owncloud
+Exec=owncloud %u
+Comment=ownCloud - Your Cloud, Your Data, Your Way!
+Icon=mirall
+Terminal=false
+Categories=Qt;Utility;
diff --git a/pcr/owncloud-client/owncloud-client.install b/pcr/owncloud-client/owncloud-client.install
new file mode 100644
index 000000000..eecc35ccd
--- /dev/null
+++ b/pcr/owncloud-client/owncloud-client.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/pcr/owncloud/PKGBUILD b/pcr/owncloud/PKGBUILD
new file mode 100644
index 000000000..18e33afe2
--- /dev/null
+++ b/pcr/owncloud/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Antonio Rojas <nqn1976 @ gmail.com>
+# Based on owncloud-git PKGBUILD by Alexander Ovsyannikov
+
+pkgname=owncloud
+pkgver=5.0.4
+pkgrel=1
+pkgdesc="A cloud server to store your files centrally on a hardware controlled by you"
+arch=('any')
+url="http://owncloud.org/"
+license=('GPL')
+depends=('php-gd' 'php-intl')
+optdepends=("php-apache: to use the Apache web server" "php-sqlite: to use the SQLite database backend" "mariadb: to use the MySQL database backend" "smbclient: to mount SAMBA shares")
+makedepends=()
+source=("http://download.owncloud.org/community/$pkgname-$pkgver.tar.bz2" 'owncloud.conf')
+backup=('etc/httpd/conf/extra/owncloud.conf')
+install=owncloud.install
+md5sums=('311c299b4aff4987a4b4c39aedafa9c0'
+ 'c1d49a3c0d8433bed6bffcd21ebb0064')
+
+package() {
+# install license
+ install -d $pkgdir/usr/share/licenses/$pkgname
+ cp $srcdir/$pkgname/COPYING-* $pkgdir/usr/share/licenses/$pkgname
+
+# install project
+ install -d $pkgdir/usr/share/webapps/
+ cp -a $srcdir/$pkgname $pkgdir/usr/share/webapps/
+ chown -R http:http $pkgdir/usr/share/webapps/*
+
+# install apache .conf file
+ install -d $pkgdir/etc/httpd/conf/extra
+ install -m 644 $srcdir/owncloud.conf $pkgdir/etc/httpd/conf/extra/
+}
+
+
+
diff --git a/pcr/owncloud/owncloud.conf b/pcr/owncloud/owncloud.conf
new file mode 100644
index 000000000..5f050f134
--- /dev/null
+++ b/pcr/owncloud/owncloud.conf
@@ -0,0 +1,17 @@
+<IfModule mod_alias.c>
+Alias /owncloud /usr/share/webapps/owncloud/
+</IfModule>
+<Directory /usr/share/webapps/owncloud/>
+ Options FollowSymlinks
+ Order allow,deny
+ AllowOverride all
+ allow from all
+ php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/"
+</Directory>
+<VirtualHost *:80>
+ ServerAdmin foo@foofarm.com
+ DocumentRoot /usr/share/webapps/owncloud
+ ServerName owncloud.foo.com
+ ErrorLog logs/owncloud.foo.info-error_log
+ CustomLog logs/owncloud.foo.info-access_log common
+</VirtualHost> \ No newline at end of file
diff --git a/pcr/owncloud/owncloud.install b/pcr/owncloud/owncloud.install
new file mode 100644
index 000000000..cde521d4b
--- /dev/null
+++ b/pcr/owncloud/owncloud.install
@@ -0,0 +1,12 @@
+pkgname=ownCloud
+
+post_install() {
+ echo "Add the following lines into /etc/httpd/conf/httpd.conf:"
+ echo "Include /etc/httpd/conf/extra/owncloud.conf"
+ echo "LoadModule php5_module modules/libphp5.so"
+ echo "Include conf/extra/php5_module.conf"
+ echo
+ echo "Uncomment extensions gd.so intl.so iconv.so openssl.so xmlrpc.so zip.so"
+ echo "and either pdo_sqlite.so sqlite3.so (for the SQLite backend) or mysqli.so pdo_mysql.so (for the MySQL backend)"
+ echo "in /etc/php/php.ini"
+}
diff --git a/pcr/package-query/PKGBUILD b/pcr/package-query/PKGBUILD
new file mode 100644
index 000000000..5bec58ce3
--- /dev/null
+++ b/pcr/package-query/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: tuxce <tuxce.net@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=package-query
+pkgver=1.1
+pkgrel=2
+pkgdesc="Query ALPM and AUR"
+arch=('i686' 'x86_64' 'mips64el' 'armv6h' 'armv7h')
+url="http://gitweb.archlinux.fr/package-query.git/"
+license=('GPL')
+depends=('pacman>=4.0' 'pacman<4.1' curl 'yajl>=2.0')
+source=(http://mir.archlinux.fr/~tuxce/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --localstatedir=/var --prefix=/usr --sysconfdir=/etc --with-aur-url=https://aur.archlinux.org
+ make
+}
+
+package ()
+{
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
+
+md5sums=('becb5734dd531631cbe2e1c9cf82ae9e')
+md5sums=('becb5734dd531631cbe2e1c9cf82ae9e')
diff --git a/pcr/packer/PKGBUILD b/pcr/packer/PKGBUILD
new file mode 100644
index 000000000..f2ea54a76
--- /dev/null
+++ b/pcr/packer/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=packer
+pkgver=20120302
+pkgrel=1
+pkgdesc="Bash wrapper for pacman and aur"
+url="http://github.com/bruenig/packer"
+license="GPL"
+arch=('any')
+makedepends=('git')
+depends=('grep' 'sed' 'bash' 'curl' 'pacman' 'jshon')
+optdepends=('sudo: install and update packages as non-root'
+ 'customizepkg: apply customizepkg modifications')
+_gitroot='https://github.com/bruenig/packer.git'
+_gitname='packer'
+
+# Xavion is a non-contributing idiot
+
+build() {
+ cd "$srcdir"
+
+ msg "Connecting to github GIT server...."
+
+ if [ -d "$srcdir/$_gitname" ] ; then
+ cd $_gitname && git pull origin
+ else
+ git clone "$_gitroot"
+ cd $_gitname
+ fi
+
+ mkdir -p "$pkgdir/usr/bin/"
+ mkdir -p "$pkgdir/usr/share/man/man8/"
+ install -m 755 packer "$pkgdir/usr/bin/packer"
+ install -m 644 packer.8 "$pkgdir/usr/share/man/man8/packer.8"
+}
+
diff --git a/pcr/pacman-color/0001-Add-conflict-for-replacing-owned-empty-directory.patch b/pcr/pacman-color/0001-Add-conflict-for-replacing-owned-empty-directory.patch
new file mode 100644
index 000000000..85622aaac
--- /dev/null
+++ b/pcr/pacman-color/0001-Add-conflict-for-replacing-owned-empty-directory.patch
@@ -0,0 +1,152 @@
+From 717fdb8ee0fd23cf72fc7d2832317f513caefa2c Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan@archlinux.org>
+Date: Sun, 8 Jul 2012 21:36:36 +1000
+Subject: [PATCH 1/4] Add conflict for replacing owned empty directory
+
+When two packages own an empty directory, pacman finds no conflict when
+one of those packages wants to replace the directory with a file or a
+symlink. When it comes to actually extracting the new file/symlink,
+pacman sees the directory is still there (we do not remove empty
+directories if they are owned by a package) and refuses to extract.
+
+Detect this potential conflict early and bail. Note that it is a
+_potential_ conflict and not a guaranteed one as the other package owning
+the directory could be updated or removed first which would remove
+the conflict. However, pacman currently can not sort package installation
+order to ensure this, so this conflict requires manual upgrade ordering.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+Signed-off-by: Dan McGee <dan@archlinux.org>
+---
+ lib/libalpm/conflict.c | 32 ++++++++++++++++++++++++++------
+ test/pacman/tests/fileconflict009.py | 20 ++++++++++++++++++++
+ test/pacman/tests/fileconflict010.py | 20 ++++++++++++++++++++
+ 3 files changed, 66 insertions(+), 6 deletions(-)
+ create mode 100644 test/pacman/tests/fileconflict009.py
+ create mode 100644 test/pacman/tests/fileconflict010.py
+
+diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
+index 32f6f30..efa1a87 100644
+--- a/lib/libalpm/conflict.c
++++ b/lib/libalpm/conflict.c
+@@ -328,15 +328,35 @@ const alpm_file_t *_alpm_filelist_contains(alpm_filelist_t *filelist,
+ return NULL;
+ }
+
+-static int dir_belongsto_pkg(const char *root, const char *dirpath,
++static int dir_belongsto_pkg(alpm_handle_t *handle, const char *dirpath,
+ alpm_pkg_t *pkg)
+ {
++ alpm_list_t *i;
+ struct stat sbuf;
+ char path[PATH_MAX];
+ char abspath[PATH_MAX];
+- struct dirent *ent = NULL;
+ DIR *dir;
++ struct dirent *ent = NULL;
++ const char *root = handle->root;
++
++ /* TODO: this is an overly strict check but currently pacman will not
++ * overwrite a directory with a file (case 10/11 in add.c). Adjusting that
++ * is not simple as even if the directory is being unowned by a conflicting
++ * package, pacman does not sort this to ensure all required directory
++ * "removals" happen before installation of file/symlink */
++
++ /* check that no other _installed_ package owns the directory */
++ for(i = _alpm_db_get_pkgcache(handle->db_local); i; i = i->next) {
++ if(pkg == i->data) {
++ continue;
++ }
++
++ if(_alpm_filelist_contains(alpm_pkg_get_files(i->data), dirpath)) {
++ return 0;
++ }
++ }
+
++ /* check all files in directory are owned by the package */
+ snprintf(abspath, PATH_MAX, "%s%s", root, dirpath);
+ dir = opendir(abspath);
+ if(dir == NULL) {
+@@ -349,13 +369,13 @@ static int dir_belongsto_pkg(const char *root, const char *dirpath,
+ if(strcmp(name, ".") == 0 || strcmp(name, "..") == 0) {
+ continue;
+ }
+- snprintf(path, PATH_MAX, "%s/%s", dirpath, name);
++ snprintf(path, PATH_MAX, "%s%s", dirpath, name);
+ snprintf(abspath, PATH_MAX, "%s%s", root, path);
+ if(stat(abspath, &sbuf) != 0) {
+ continue;
+ }
+ if(S_ISDIR(sbuf.st_mode)) {
+- if(dir_belongsto_pkg(root, path, pkg)) {
++ if(dir_belongsto_pkg(handle, path, pkg)) {
+ continue;
+ } else {
+ closedir(dir);
+@@ -529,9 +549,9 @@ alpm_list_t *_alpm_db_find_fileconflicts(alpm_handle_t *handle,
+ sprintf(dir, "%s/", filestr);
+ if(_alpm_filelist_contains(alpm_pkg_get_files(dbpkg), dir)) {
+ _alpm_log(handle, ALPM_LOG_DEBUG,
+- "check if all files in %s belongs to %s\n",
++ "check if all files in %s belong to %s\n",
+ dir, dbpkg->name);
+- resolved_conflict = dir_belongsto_pkg(handle->root, filestr, dbpkg);
++ resolved_conflict = dir_belongsto_pkg(handle, dir, dbpkg);
+ }
+ free(dir);
+ }
+diff --git a/test/pacman/tests/fileconflict009.py b/test/pacman/tests/fileconflict009.py
+new file mode 100644
+index 0000000..904af4a
+--- /dev/null
++++ b/test/pacman/tests/fileconflict009.py
+@@ -0,0 +1,20 @@
++self.description = "dir->symlink change during package upgrade (directory conflict)"
++
++lp1 = pmpkg("pkg1")
++lp1.files = ["dir/"]
++self.addpkg2db("local", lp1)
++
++lp2 = pmpkg("pkg2")
++lp2.files = ["dir/"]
++self.addpkg2db("local", lp2)
++
++p = pmpkg("pkg1", "1.0-2")
++p.files = ["dir -> /usr/dir"]
++self.addpkg2db("sync", p)
++
++self.args = "-S pkg1"
++
++self.addrule("PACMAN_RETCODE=1")
++self.addrule("PKG_VERSION=pkg1|1.0-1")
++self.addrule("PKG_VERSION=pkg2|1.0-1")
++self.addrule("DIR_EXIST=dir/")
+diff --git a/test/pacman/tests/fileconflict010.py b/test/pacman/tests/fileconflict010.py
+new file mode 100644
+index 0000000..0a3ce83
+--- /dev/null
++++ b/test/pacman/tests/fileconflict010.py
+@@ -0,0 +1,20 @@
++self.description = "dir->file change during package upgrade (directory conflict)"
++
++lp1 = pmpkg("pkg1")
++lp1.files = ["dir/"]
++self.addpkg2db("local", lp1)
++
++lp2 = pmpkg("pkg2")
++lp2.files = ["dir/"]
++self.addpkg2db("local", lp2)
++
++p = pmpkg("pkg1", "1.0-2")
++p.files = ["dir"]
++self.addpkg2db("sync", p)
++
++self.args = "-S pkg1"
++
++self.addrule("PACMAN_RETCODE=1")
++self.addrule("PKG_VERSION=pkg1|1.0-1")
++self.addrule("PKG_VERSION=pkg2|1.0-1")
++self.addrule("DIR_EXIST=dir/")
+--
+1.7.11.1
+
diff --git a/pcr/pacman-color/0002-Check-empty-subdirectory-ownership.patch b/pcr/pacman-color/0002-Check-empty-subdirectory-ownership.patch
new file mode 100644
index 000000000..6cf496d16
--- /dev/null
+++ b/pcr/pacman-color/0002-Check-empty-subdirectory-ownership.patch
@@ -0,0 +1,61 @@
+From 44e9fdd0e848382337edb97d41e7317638a67bac Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan@archlinux.org>
+Date: Sun, 8 Jul 2012 23:58:37 +1000
+Subject: [PATCH 2/4] Check empty subdirectory ownership
+
+When checking if a package owns a directory, it is important to check
+not only that all the files in the directory are part of the package,
+but also if the directory is part of a package. This catches empty
+subdirectories during conflict checking for directory to file/symlink
+replacements.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+Signed-off-by: Dan McGee <dan@archlinux.org>
+---
+ lib/libalpm/conflict.c | 5 +++++
+ test/pacman/tests/fileconflict012.py | 17 +++++++++++++++++
+ 2 files changed, 22 insertions(+)
+ create mode 100644 test/pacman/tests/fileconflict012.py
+
+diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
+index efa1a87..d6e5d8c 100644
+--- a/lib/libalpm/conflict.c
++++ b/lib/libalpm/conflict.c
+@@ -339,6 +339,11 @@ static int dir_belongsto_pkg(alpm_handle_t *handle, const char *dirpath,
+ struct dirent *ent = NULL;
+ const char *root = handle->root;
+
++ /* check directory is actually in package - used for subdirectory checks */
++ if(!_alpm_filelist_contains(alpm_pkg_get_files(pkg), dirpath)) {
++ return 0;
++ }
++
+ /* TODO: this is an overly strict check but currently pacman will not
+ * overwrite a directory with a file (case 10/11 in add.c). Adjusting that
+ * is not simple as even if the directory is being unowned by a conflicting
+diff --git a/test/pacman/tests/fileconflict012.py b/test/pacman/tests/fileconflict012.py
+new file mode 100644
+index 0000000..421b739
+--- /dev/null
++++ b/test/pacman/tests/fileconflict012.py
+@@ -0,0 +1,17 @@
++self.description = "dir->file change during package upgrade (filesystem file conflict)"
++
++lp1 = pmpkg("pkg1")
++lp1.files = ["dir/"]
++self.addpkg2db("local", lp1)
++
++self.filesystem = ["dir/file"]
++
++p = pmpkg("pkg1", "1.0-2")
++p.files = ["dir"]
++self.addpkg2db("sync", p)
++
++self.args = "-S pkg1"
++
++self.addrule("PACMAN_RETCODE=1")
++self.addrule("PKG_VERSION=pkg1|1.0-1")
++self.addrule("DIR_EXIST=dir/")
+--
+1.7.11.1
+
diff --git a/pcr/pacman-color/PKGBUILD b/pcr/pacman-color/PKGBUILD
new file mode 100644
index 000000000..525f965b9
--- /dev/null
+++ b/pcr/pacman-color/PKGBUILD
@@ -0,0 +1,42 @@
+# Contributor: JokerBoy <jokerboy at punctweb dot ro>
+# Contributor: vogo <vogo(at)seznam(dot)cz>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=pacman-color
+pkgver=4.0.3
+pkgrel=3
+pkgdesc="A color patched command-line frontend for libalpm (Pacman)"
+arch=('i686' 'x86_64')
+url="http://www.archlinux.org/pacman/"
+license=('GPL')
+depends=('pacman>=4.0' 'pacman<4.1')
+backup=('etc/pacman.d/color.conf')
+source=("http://mirrors.kernel.org/archlinux/other/pacman/pacman-${pkgver}.tar.gz"
+ '0001-Add-conflict-for-replacing-owned-empty-directory.patch'
+ '0002-Check-empty-subdirectory-ownership.patch'
+ "${pkgname}-${pkgver}.patch"
+ 'color.conf')
+md5sums=('387965c7125e60e5f0b9ff3b427fe0f9'
+ '1a9b79788640907a2b34e8671cacc94a'
+ 'a9ddd43891bed364e1e97d27b2887bf1'
+ '185e6a488b1aa14db4a54b71eb5e5e29'
+ '47665f5054196c20ba0dd280a8d4c5e1')
+
+build() {
+ cd "pacman-${pkgver}"
+ patch -p1 -i "${srcdir}/0001-Add-conflict-for-replacing-owned-empty-directory.patch"
+ patch -p1 -i "${srcdir}/0002-Check-empty-subdirectory-ownership.patch"
+ patch -p1 -i "${srcdir}/${pkgname}-${pkgver}.patch"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-doc
+ make
+}
+
+package() {
+ # install pacman-color && color.conf
+ install -Dm755 "pacman-${pkgver}/src/pacman/.libs/pacman" "${pkgdir}/usr/bin/pacman-color"
+ install -Dm644 'color.conf' "${pkgdir}/etc/pacman.d/color.conf"
+}
diff --git a/pcr/pacman-color/color.conf b/pcr/pacman-color/color.conf
new file mode 100644
index 000000000..4978d4e62
--- /dev/null
+++ b/pcr/pacman-color/color.conf
@@ -0,0 +1,46 @@
+# Configuration for pacman-color
+# ------------------------------
+# in default are all colors "intensive",
+# it looks much better on black backround
+#
+# valid colors:
+# black
+# red
+# green
+# yellow
+# blue
+# magenta
+# cyan
+# white
+# gray
+# intensive red
+# intensive green
+# intensive yellow
+# intensive blue
+# intensive magenta
+# intensive cyan
+# intensive white
+# intensive foreground
+# none
+
+# error: prefix, fail, Remove (?):, MISSING
+#Red = intensive red
+
+# done, success, pkg version, Not Modified
+#Green = intensive green
+
+# warning: prefix, Targets (?):, MODIFIED
+#Yellow = intensive yellow
+
+# :: prefix, pkg group, counter in install proces
+#Blue = intensive blue
+
+# repo name, package file name
+#Magenta = intensive magenta
+
+# url, flag installed
+#Cyan = intensive cyan
+
+# messages with :: prefix, titles, etc
+#White = intensive foreground
+
diff --git a/pcr/pacman-color/pacman-color-4.0.3.patch b/pcr/pacman-color/pacman-color-4.0.3.patch
new file mode 100644
index 000000000..c7b52ef04
--- /dev/null
+++ b/pcr/pacman-color/pacman-color-4.0.3.patch
@@ -0,0 +1,1297 @@
+diff -up -Npaur a/src/pacman/callback.c b/src/pacman/callback.c
+--- a/src/pacman/callback.c 2012-02-03 01:19:15.000000000 +0200
++++ b/src/pacman/callback.c 2012-07-20 21:48:20.266827634 +0300
+@@ -221,16 +221,16 @@ void cb_event(alpm_event_t event, void *
+ printf(_("generating %s with %s... "), (char *)data1, (char *)data2);
+ break;
+ case ALPM_EVENT_DELTA_PATCH_DONE:
+- printf(_("success!\n"));
++ color_printf(COLOR_GREEN_ALL, _("success!\n"));
+ break;
+ case ALPM_EVENT_DELTA_PATCH_FAILED:
+- printf(_("failed.\n"));
++ color_printf(COLOR_RED_ALL, _("failed.\n"));
+ break;
+ case ALPM_EVENT_SCRIPTLET_INFO:
+ printf("%s", (char *)data1);
+ break;
+ case ALPM_EVENT_RETRIEVE_START:
+- printf(_(":: Retrieving packages from %s...\n"), (char *)data1);
++ color_printf(COLOR_DOUBLECOLON, _(":: Retrieving packages from %s...\n"), (char *)data1);
+ break;
+ case ALPM_EVENT_DISKSPACE_START:
+ if(config->noprogressbar) {
+@@ -264,14 +264,14 @@ void cb_question(alpm_question_t event,
+ switch(event) {
+ case ALPM_QUESTION_INSTALL_IGNOREPKG:
+ if(!config->op_s_downloadonly) {
+- *response = yesno(_(":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"),
++ *response = yesno(COLOR_DOUBLECOLON, _(":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"),
+ alpm_pkg_get_name(data1));
+ } else {
+ *response = 1;
+ }
+ break;
+ case ALPM_QUESTION_REPLACE_PKG:
+- *response = yesno(_(":: Replace %s with %s/%s?"),
++ *response = yesno(COLOR_DOUBLECOLON, _(":: Replace %s with %s/%s?"),
+ alpm_pkg_get_name(data1),
+ (char *)data3,
+ alpm_pkg_get_name(data2));
+@@ -280,12 +280,12 @@ void cb_question(alpm_question_t event,
+ /* data parameters: target package, local package, conflict (strings) */
+ /* print conflict only if it contains new information */
+ if(strcmp(data1, data3) == 0 || strcmp(data2, data3) == 0) {
+- *response = noyes(_(":: %s and %s are in conflict. Remove %s?"),
++ *response = noyes(COLOR_DOUBLECOLON, _(":: %s and %s are in conflict. Remove %s?"),
+ (char *)data1,
+ (char *)data2,
+ (char *)data2);
+ } else {
+- *response = noyes(_(":: %s and %s are in conflict (%s). Remove %s?"),
++ *response = noyes(COLOR_DOUBLECOLON, _(":: %s and %s are in conflict (%s). Remove %s?"),
+ (char *)data1,
+ (char *)data2,
+ (char *)data3,
+@@ -302,13 +302,13 @@ void cb_question(alpm_question_t event,
+ (char *)alpm_pkg_get_name(i->data));
+ count++;
+ }
+- printf(_n(
++ color_printf(COLOR_DOUBLECOLON, _n(
+ ":: The following package cannot be upgraded due to unresolvable dependencies:\n",
+ ":: The following packages cannot be upgraded due to unresolvable dependencies:\n",
+ count));
+- list_display(" ", namelist);
++ list_display(NULL, " ", namelist);
+ printf("\n");
+- *response = noyes(_n(
++ *response = noyes(NULL, _n(
+ "Do you want to skip the above package for this upgrade?",
+ "Do you want to skip the above packages for this upgrade?",
+ count));
+@@ -320,7 +320,7 @@ void cb_question(alpm_question_t event,
+ alpm_list_t *providers = (alpm_list_t *)data1;
+ size_t count = alpm_list_count(providers);
+ char *depstring = alpm_dep_compute_string((alpm_depend_t *)data2);
+- printf(_(":: There are %zd providers available for %s:\n"), count,
++ color_printf(COLOR_DOUBLECOLON, _(":: There are %zd providers available for %s:\n"), count,
+ depstring);
+ free(depstring);
+ select_display(providers);
+@@ -329,7 +329,7 @@ void cb_question(alpm_question_t event,
+ break;
+ case ALPM_QUESTION_LOCAL_NEWER:
+ if(!config->op_s_downloadonly) {
+- *response = yesno(_(":: %s-%s: local version is newer. Upgrade anyway?"),
++ *response = yesno(COLOR_DOUBLECOLON, _(":: %s-%s: local version is newer. Upgrade anyway?"),
+ alpm_pkg_get_name(data1),
+ alpm_pkg_get_version(data1));
+ } else {
+@@ -337,7 +337,7 @@ void cb_question(alpm_question_t event,
+ }
+ break;
+ case ALPM_QUESTION_CORRUPTED_PKG:
+- *response = yesno(_(":: File %s is corrupted (%s).\n"
++ *response = yesno(COLOR_DOUBLECOLON, _(":: File %s is corrupted (%s).\n"
+ "Do you want to delete it?"),
+ (char *)data1,
+ alpm_strerror(*(enum _alpm_errno_t *)data2));
+@@ -347,7 +347,7 @@ void cb_question(alpm_question_t event,
+ alpm_pgpkey_t *key = data1;
+ char created[12];
+ strftime(created, 12, "%Y-%m-%d", localtime(&(key->created)));
+- *response = yesno(_(":: Import PGP key %s, \"%s\", created %s?"),
++ *response = yesno(COLOR_DOUBLECOLON, _(":: Import PGP key %s, \"%s\", created %s?"),
+ key->fingerprint, key->uid, created);
+ }
+ break;
+@@ -481,8 +481,9 @@ void cb_progress(alpm_progress_t event,
+
+ }
+
+- printf("(%*ld/%*ld) %ls%-*s", digits, (unsigned long)current,
+- digits, (unsigned long)howmany, wcstr, padwid, "");
++ color_printf(COLOR_BLUE_ALL, "(%*ld/%*ld)", digits, (unsigned long)current,
++ digits, (unsigned long)howmany);
++ printf(" %ls%-*s", wcstr, padwid, "");
+
+ free(wcstr);
+
+diff -up -Npaur a/src/pacman/package.c b/src/pacman/package.c
+--- a/src/pacman/package.c 2012-02-03 01:18:52.000000000 +0200
++++ b/src/pacman/package.c 2012-07-20 21:48:20.266827634 +0300
+@@ -41,7 +41,7 @@
+ * @param deps a list with items of type alpm_depend_t
+ * @return a string list, must be freed
+ */
+-static void deplist_display(const char *title,
++static void deplist_display(const colordata_t *colors_title, const char *title,
+ alpm_list_t *deps)
+ {
+ alpm_list_t *i, *text = NULL;
+@@ -49,7 +49,7 @@ static void deplist_display(const char *
+ alpm_depend_t *dep = alpm_list_getdata(i);
+ text = alpm_list_add(text, alpm_dep_compute_string(dep));
+ }
+- list_display(title, text);
++ list_display(colors_title, title, text);
+ FREELIST(text);
+ }
+
+@@ -102,65 +102,65 @@ void dump_pkg_full(alpm_pkg_t *pkg, int
+
+ /* actual output */
+ if(from == PKG_FROM_SYNCDB) {
+- string_display(_("Repository :"),
+- alpm_db_get_name(alpm_pkg_get_db(pkg)));
++ color_string_display(COLOR_WHITE_ALL, _("Repository :"),
++ COLOR_MAGENTA_ALL, alpm_db_get_name(alpm_pkg_get_db(pkg)));
+ }
+- string_display(_("Name :"), alpm_pkg_get_name(pkg));
+- string_display(_("Version :"), alpm_pkg_get_version(pkg));
+- string_display(_("URL :"), alpm_pkg_get_url(pkg));
+- list_display(_("Licenses :"), alpm_pkg_get_licenses(pkg));
+- list_display(_("Groups :"), alpm_pkg_get_groups(pkg));
+- deplist_display(_("Provides :"), alpm_pkg_get_provides(pkg));
+- deplist_display(_("Depends On :"), alpm_pkg_get_depends(pkg));
+- list_display_linebreak(_("Optional Deps :"), alpm_pkg_get_optdepends(pkg));
++ color_string_display(COLOR_WHITE_ALL, _("Name :"), COLOR_WHITE_ALL, alpm_pkg_get_name(pkg));
++ color_string_display(COLOR_WHITE_ALL, _("Version :"), COLOR_GREEN_ALL, alpm_pkg_get_version(pkg));
++ color_string_display(COLOR_WHITE_ALL, _("URL :"), COLOR_CYAN_ALL, alpm_pkg_get_url(pkg));
++ list_display(COLOR_WHITE_ALL, _("Licenses :"), alpm_pkg_get_licenses(pkg));
++ list_display(COLOR_WHITE_ALL, _("Groups :"), alpm_pkg_get_groups(pkg));
++ deplist_display(COLOR_WHITE_ALL, _("Provides :"), alpm_pkg_get_provides(pkg));
++ deplist_display(COLOR_WHITE_ALL, _("Depends On :"), alpm_pkg_get_depends(pkg));
++ list_display_linebreak(COLOR_WHITE_ALL, _("Optional Deps :"), alpm_pkg_get_optdepends(pkg));
+ if(extra || from == PKG_FROM_LOCALDB) {
+- list_display(_("Required By :"), requiredby);
++ list_display(COLOR_WHITE_ALL, _("Required By :"), requiredby);
+ }
+- deplist_display(_("Conflicts With :"), alpm_pkg_get_conflicts(pkg));
+- deplist_display(_("Replaces :"), alpm_pkg_get_replaces(pkg));
++ deplist_display(COLOR_WHITE_ALL, _("Conflicts With :"), alpm_pkg_get_conflicts(pkg));
++ deplist_display(COLOR_WHITE_ALL, _("Replaces :"), alpm_pkg_get_replaces(pkg));
+
+ size = humanize_size(alpm_pkg_get_size(pkg), 'K', 2, &label);
+ if(from == PKG_FROM_SYNCDB) {
+- printf(_("Download Size : %6.2f %s\n"), size, label);
++ color_printf(COLOR_WHITE_COLON, _("Download Size : %6.2f %s\n"), size, label);
+ } else if(from == PKG_FROM_FILE) {
+- printf(_("Compressed Size: %6.2f %s\n"), size, label);
++ color_printf(COLOR_WHITE_COLON, _("Compressed Size: %6.2f %s\n"), size, label);
+ }
+
+ size = humanize_size(alpm_pkg_get_isize(pkg), 'K', 2, &label);
+- printf(_("Installed Size : %6.2f %s\n"), size, label);
++ color_printf(COLOR_WHITE_COLON, _("Installed Size : %6.2f %s\n"), size, label);
+
+- string_display(_("Packager :"), alpm_pkg_get_packager(pkg));
+- string_display(_("Architecture :"), alpm_pkg_get_arch(pkg));
+- string_display(_("Build Date :"), bdatestr);
++ string_display(COLOR_WHITE_ALL, _("Packager :"), alpm_pkg_get_packager(pkg));
++ string_display(COLOR_WHITE_ALL, _("Architecture :"), alpm_pkg_get_arch(pkg));
++ string_display(COLOR_WHITE_ALL, _("Build Date :"), bdatestr);
+ if(from == PKG_FROM_LOCALDB) {
+- string_display(_("Install Date :"), idatestr);
+- string_display(_("Install Reason :"), reason);
++ string_display(COLOR_WHITE_ALL, _("Install Date :"), idatestr);
++ string_display(COLOR_WHITE_ALL, _("Install Reason :"), reason);
+ }
+ if(from == PKG_FROM_FILE || from == PKG_FROM_LOCALDB) {
+- string_display(_("Install Script :"),
++ string_display(COLOR_WHITE_ALL, _("Install Script :"),
+ alpm_pkg_has_scriptlet(pkg) ? _("Yes") : _("No"));
+ }
+
+ if(from == PKG_FROM_SYNCDB) {
+- string_display(_("MD5 Sum :"), alpm_pkg_get_md5sum(pkg));
+- string_display(_("SHA256 Sum :"), alpm_pkg_get_sha256sum(pkg));
+- string_display(_("Signatures :"),
++ string_display(COLOR_WHITE_ALL, _("MD5 Sum :"), alpm_pkg_get_md5sum(pkg));
++ string_display(COLOR_WHITE_ALL, _("SHA256 Sum :"), alpm_pkg_get_sha256sum(pkg));
++ string_display(COLOR_WHITE_ALL, _("Signatures :"),
+ alpm_pkg_get_base64_sig(pkg) ? _("Yes") : _("None"));
+ }
+ if(from == PKG_FROM_FILE) {
+ alpm_siglist_t siglist;
+ int err = alpm_pkg_check_pgp_signature(pkg, &siglist);
+ if(err && alpm_errno(config->handle) == ALPM_ERR_SIG_MISSING) {
+- string_display(_("Signatures :"), _("None"));
++ string_display(COLOR_WHITE_ALL, _("Signatures :"), _("None"));
+ } else if(err) {
+- string_display(_("Signatures :"),
++ string_display(COLOR_WHITE_ALL, _("Signatures :"),
+ alpm_strerror(alpm_errno(config->handle)));
+ } else {
+ signature_display(_("Signatures :"), &siglist);
+ }
+ alpm_siglist_cleanup(&siglist);
+ }
+- string_display(_("Description :"), alpm_pkg_get_desc(pkg));
++ string_display(COLOR_WHITE_ALL, _("Description :"), alpm_pkg_get_desc(pkg));
+
+ /* Print additional package info if info flag passed more than once */
+ if(from == PKG_FROM_LOCALDB && extra) {
+@@ -219,7 +219,7 @@ void dump_pkg_backups(alpm_pkg_t *pkg)
+ {
+ alpm_list_t *i;
+ const char *root = alpm_option_get_root(config->handle);
+- printf(_("Backup Files:\n"));
++ color_printf(COLOR_WHITE_ALL, _("Backup Files:\n"));
+ if(alpm_pkg_get_backup(pkg)) {
+ /* package has backup files, so print them */
+ for(i = alpm_pkg_get_backup(pkg); i; i = alpm_list_next(i)) {
+@@ -252,7 +252,8 @@ void dump_pkg_files(alpm_pkg_t *pkg, int
+ for(i = 0; i < pkgfiles->count; i++) {
+ const alpm_file_t *file = pkgfiles->files + i;
+ if(!quiet) {
+- printf("%s %s%s\n", pkgname, root, file->name);
++ color_printf(COLOR_WHITE_ALL, "%s", pkgname);
++ printf(" %s%s\n", root, file->name);
+ } else {
+ printf("%s%s\n", root, file->name);
+ }
+diff -up -Npaur a/src/pacman/pacman.c b/src/pacman/pacman.c
+--- a/src/pacman/pacman.c 2012-02-15 23:57:20.000000000 +0200
++++ b/src/pacman/pacman.c 2012-07-20 21:48:20.266827634 +0300
+@@ -219,11 +219,23 @@ static void usage(int op, const char * c
+ */
+ static void version(void)
+ {
++ color_printf(COLOR_YELLOW_ALL, " .--. ");
++ printf(" ");
++ color_printf(COLOR_RED_ALL, " .---. ");
++ printf(" Pacman-color v%s - libalpm v%s\n", PACKAGE_VERSION, alpm_version());
++ color_printf(COLOR_YELLOW_ALL, "/ _.-'");
++ color_printf(COLOR_WHITE_ALL, " .-. .-");
++ color_printf(COLOR_RED_ALL, "|O O |");
++ printf(" Copyright (C) 2006-2012 Pacman Development Team\n");
++ color_printf(COLOR_YELLOW_ALL, "\\ '-.");
++ color_printf(COLOR_WHITE_ALL, " '-' '-");
++ color_printf(COLOR_RED_ALL, "|~~~ |");
++ printf(" Copyright (C) 2002-2006 Judd Vinet\n");
++ color_printf(COLOR_YELLOW_ALL, " '--' ");
++ printf(" ");
++ color_printf(COLOR_RED_ALL, "|.-.-.|");
++ printf(" Colored by vogo <vogo(at)seznam(dot)cz>\n");
+ printf("\n");
+- printf(" .--. Pacman v%s - libalpm v%s\n", PACKAGE_VERSION, alpm_version());
+- printf("/ _.-' .-. .-. .-. Copyright (C) 2006-2012 Pacman Development Team\n");
+- printf("\\ '-. '-' '-' '-' Copyright (C) 2002-2006 Judd Vinet\n");
+- printf(" '--'\n");
+ printf(_(" This program may be freely redistributed under\n"
+ " the terms of the GNU General Public License.\n"));
+ printf("\n");
+@@ -795,6 +807,7 @@ int main(int argc, char *argv[])
+
+ /* init config data */
+ config = config_new();
++ parsecolorconfig();
+
+ /* disable progressbar if the output is redirected */
+ if(!isatty(fileno(stdout))) {
+@@ -896,18 +909,18 @@ int main(int argc, char *argv[])
+
+ if(config->verbose > 0) {
+ alpm_list_t *i;
+- printf("Root : %s\n", alpm_option_get_root(config->handle));
+- printf("Conf File : %s\n", config->configfile);
+- printf("DB Path : %s\n", alpm_option_get_dbpath(config->handle));
+- printf("Cache Dirs: ");
++ string_display(COLOR_WHITE_ALL, "Root :", alpm_option_get_root(config->handle));
++ string_display(COLOR_WHITE_ALL, "Conf File :", config->configfile);
++ string_display(COLOR_WHITE_ALL, "DB Path :", alpm_option_get_dbpath(config->handle));
++ color_printf(COLOR_WHITE_ALL, "Cache Dirs: ");
+ for(i = alpm_option_get_cachedirs(config->handle); i; i = alpm_list_next(i)) {
+ printf("%s ", (char *)alpm_list_getdata(i));
+ }
+ printf("\n");
+- printf("Lock File : %s\n", alpm_option_get_lockfile(config->handle));
+- printf("Log File : %s\n", alpm_option_get_logfile(config->handle));
+- printf("GPG Dir : %s\n", alpm_option_get_gpgdir(config->handle));
+- list_display("Targets :", pm_targets);
++ string_display(COLOR_WHITE_ALL, "Lock File :", alpm_option_get_lockfile(config->handle));
++ string_display(COLOR_WHITE_ALL, "Log File :", alpm_option_get_logfile(config->handle));
++ string_display(COLOR_WHITE_ALL, "GPG Dir :", alpm_option_get_gpgdir(config->handle));
++ list_display(COLOR_WHITE_ALL, "Targets :", pm_targets);
+ }
+
+ /* Log command line */
+diff -up -Npaur a/src/pacman/query.c b/src/pacman/query.c
+--- a/src/pacman/query.c 2011-12-23 22:36:36.000000000 +0200
++++ b/src/pacman/query.c 2012-07-20 21:48:20.268827634 +0300
+@@ -266,7 +266,9 @@ static int query_search(alpm_list_t *tar
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
+
+ if(!config->quiet) {
+- printf("local/%s %s", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
++ color_printf(COLOR_MAGENTA_ALL, "local/");
++ color_printf(COLOR_WHITE_ALL, "%s ", alpm_pkg_get_name(pkg));
++ color_printf(COLOR_GREEN_ALL, "%s", alpm_pkg_get_version(pkg));
+ } else {
+ printf("%s", alpm_pkg_get_name(pkg));
+ }
+@@ -275,16 +277,11 @@ static int query_search(alpm_list_t *tar
+ if(!config->quiet) {
+ if((grp = alpm_pkg_get_groups(pkg)) != NULL) {
+ alpm_list_t *k;
+- printf(" (");
++ color_printf(COLOR_BLUE_ALL, " (");
+ for(k = grp; k; k = alpm_list_next(k)) {
+ const char *group = alpm_list_getdata(k);
+- printf("%s", group);
+- if(alpm_list_next(k)) {
+- /* only print a spacer if there are more groups */
+- printf(" ");
+- }
++ color_printf(COLOR_BLUE_ALL, "%s%s", group, (alpm_list_next(k) ? " " : ")"));
+ }
+- printf(")");
+ }
+
+ /* we need a newline and initial indent first */
+@@ -315,7 +312,8 @@ static int query_group(alpm_list_t *targ
+
+ for(p = grp->packages; p; p = alpm_list_next(p)) {
+ alpm_pkg_t *pkg = alpm_list_getdata(p);
+- printf("%s %s\n", grp->name, alpm_pkg_get_name(pkg));
++ color_printf(COLOR_BLUE_ALL, "%s ", grp->name);
++ color_printf(COLOR_WHITE_ALL, "%s\n", alpm_pkg_get_name(pkg));
+ }
+ }
+ } else {
+@@ -327,8 +325,8 @@ static int query_group(alpm_list_t *targ
+ const alpm_list_t *p;
+ for(p = grp->packages; p; p = alpm_list_next(p)) {
+ if(!config->quiet) {
+- printf("%s %s\n", grpname,
+- alpm_pkg_get_name(alpm_list_getdata(p)));
++ color_printf(COLOR_BLUE_ALL, "%s ", grpname);
++ color_printf(COLOR_WHITE_ALL, "%s\n", alpm_pkg_get_name(alpm_list_getdata(p)));
+ } else {
+ printf("%s\n", alpm_pkg_get_name(alpm_list_getdata(p)));
+ }
+@@ -478,7 +476,8 @@ static int display(alpm_pkg_t *pkg)
+ if(!config->op_q_info && !config->op_q_list
+ && !config->op_q_changelog && !config->op_q_check) {
+ if(!config->quiet) {
+- printf("%s %s\n", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
++ color_printf(COLOR_WHITE_ALL, "%s ", alpm_pkg_get_name(pkg));
++ color_printf(COLOR_GREEN_ALL, "%s\n", alpm_pkg_get_version(pkg));
+ } else {
+ printf("%s\n", alpm_pkg_get_name(pkg));
+ }
+diff -up -Npaur a/src/pacman/remove.c b/src/pacman/remove.c
+--- a/src/pacman/remove.c 2012-02-06 13:36:22.000000000 +0200
++++ b/src/pacman/remove.c 2012-07-20 21:48:20.268827634 +0300
+@@ -111,14 +111,14 @@ int pacman_remove(alpm_list_t *targets)
+ case ALPM_ERR_PKG_INVALID_ARCH:
+ for(i = data; i; i = alpm_list_next(i)) {
+ char *pkg = alpm_list_getdata(i);
+- printf(_(":: package %s does not have a valid architecture\n"), pkg);
++ color_printf(COLOR_DOUBLECOLON, _(":: package %s does not have a valid architecture\n"), pkg);
+ }
+ break;
+ case ALPM_ERR_UNSATISFIED_DEPS:
+ for(i = data; i; i = alpm_list_next(i)) {
+ alpm_depmissing_t *miss = alpm_list_getdata(i);
+ char *depstring = alpm_dep_compute_string(miss->depend);
+- printf(_(":: %s: requires %s\n"), miss->target, depstring);
++ color_printf(COLOR_DOUBLECOLON, _(":: %s: requires %s\n"), miss->target, depstring);
+ free(depstring);
+ }
+ break;
+@@ -140,7 +140,7 @@ int pacman_remove(alpm_list_t *targets)
+ holdpkg = 1;
+ }
+ }
+- if(holdpkg && (noyes(_("HoldPkg was found in target list. Do you want to continue?")) == 0)) {
++ if(holdpkg && (noyes(NULL, _("HoldPkg was found in target list. Do you want to continue?")) == 0)) {
+ retval = 1;
+ goto cleanup;
+ }
+@@ -160,7 +160,7 @@ int pacman_remove(alpm_list_t *targets)
+ /* print targets and ask user confirmation */
+ display_targets();
+ printf("\n");
+- if(yesno(_("Do you want to remove these packages?")) == 0) {
++ if(yesno(NULL, _("Do you want to remove these packages?")) == 0) {
+ retval = 1;
+ goto cleanup;
+ }
+diff -up -Npaur a/src/pacman/sync.c b/src/pacman/sync.c
+--- a/src/pacman/sync.c 2012-03-13 15:24:11.000000000 +0200
++++ b/src/pacman/sync.c 2012-07-20 21:48:20.269827634 +0300
+@@ -146,8 +146,8 @@ static int sync_cleandb_all(void)
+ int ret = 0;
+
+ dbpath = alpm_option_get_dbpath(config->handle);
+- printf(_("Database directory: %s\n"), dbpath);
+- if(!yesno(_("Do you want to remove unused repositories?"))) {
++ color_printf(COLOR_WHITE_COLON, _("Database directory: %s\n"), dbpath);
++ if(!yesno(NULL, _("Do you want to remove unused repositories?"))) {
+ return 0;
+ }
+ printf(_("removing unused sync repositories...\n"));
+@@ -175,7 +175,7 @@ static int sync_cleancache(int level)
+ int ret = 0;
+
+ for(i = cachedirs; i; i = alpm_list_next(i)) {
+- printf(_("Cache directory: %s\n"), (char *)alpm_list_getdata(i));
++ color_printf(COLOR_WHITE_COLON, _("Cache directory: %s\n"), (char *)alpm_list_getdata(i));
+ }
+
+ if(!config->cleanmethod) {
+@@ -184,19 +184,19 @@ static int sync_cleancache(int level)
+ }
+
+ if(level == 1) {
+- printf(_("Packages to keep:\n"));
++ color_printf(COLOR_WHITE_COLON, _("Packages to keep:\n"));
+ if(config->cleanmethod & PM_CLEAN_KEEPINST) {
+ printf(_(" All locally installed packages\n"));
+ }
+ if(config->cleanmethod & PM_CLEAN_KEEPCUR) {
+ printf(_(" All current sync database packages\n"));
+ }
+- if(!yesno(_("Do you want to remove all other packages from cache?"))) {
++ if(!yesno(NULL, _("Do you want to remove all other packages from cache?"))) {
+ return 0;
+ }
+ printf(_("removing old packages from cache...\n"));
+ } else {
+- if(!noyes(_("Do you want to remove ALL files from cache?"))) {
++ if(!noyes(NULL, _("Do you want to remove ALL files from cache?"))) {
+ return 0;
+ }
+ printf(_("removing all files from cache...\n"));
+@@ -345,9 +345,9 @@ static void print_installed(alpm_db_t *d
+ if(lpkg) {
+ const char *lpkgver = alpm_pkg_get_version(lpkg);
+ if(strcmp(lpkgver,pkgver) == 0) {
+- printf(" [%s]", _("installed"));
++ color_printf(COLOR_CYAN_ALL, " [%s]", _("installed"));
+ } else {
+- printf(" [%s: %s]", _("installed"), lpkgver);
++ color_printf(COLOR_CYAN_ALL, " [%s: %s]", _("installed"), lpkgver);
+ }
+ }
+ }
+@@ -380,8 +380,9 @@ static int sync_search(alpm_list_t *sync
+ alpm_pkg_t *pkg = alpm_list_getdata(j);
+
+ if(!config->quiet) {
+- printf("%s/%s %s", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
+- alpm_pkg_get_version(pkg));
++ color_printf(COLOR_MAGENTA_ALL, "%s/", alpm_db_get_name(db));
++ color_printf(COLOR_WHITE_ALL, "%s ", alpm_pkg_get_name(pkg));
++ color_printf(COLOR_GREEN_ALL, "%s", alpm_pkg_get_version(pkg));
+ } else {
+ printf("%s", alpm_pkg_get_name(pkg));
+ }
+@@ -389,16 +390,11 @@ static int sync_search(alpm_list_t *sync
+ if(!config->quiet) {
+ if((grp = alpm_pkg_get_groups(pkg)) != NULL) {
+ alpm_list_t *k;
+- printf(" (");
++ color_printf(COLOR_BLUE_ALL, " (");
+ for(k = grp; k; k = alpm_list_next(k)) {
+ const char *group = alpm_list_getdata(k);
+- printf("%s", group);
+- if(alpm_list_next(k)) {
+- /* only print a spacer if there are more groups */
+- printf(" ");
+- }
++ color_printf(COLOR_BLUE_ALL, "%s%s", group, (alpm_list_next(k) ? " " : ")"));
+ }
+- printf(")");
+ }
+
+ print_installed(db_local, pkg);
+@@ -433,8 +429,8 @@ static int sync_group(int level, alpm_li
+ /* get names of packages in group */
+ for(k = grp->packages; k; k = alpm_list_next(k)) {
+ if(!config->quiet) {
+- printf("%s %s\n", grpname,
+- alpm_pkg_get_name(alpm_list_getdata(k)));
++ color_printf(COLOR_BLUE_ALL, "%s ", grpname);
++ color_printf(COLOR_WHITE_ALL, "%s\n", alpm_pkg_get_name(alpm_list_getdata(k)));
+ } else {
+ printf("%s\n", alpm_pkg_get_name(alpm_list_getdata(k)));
+ }
+@@ -451,8 +447,8 @@ static int sync_group(int level, alpm_li
+
+ if(level > 1) {
+ for(k = grp->packages; k; k = alpm_list_next(k)) {
+- printf("%s %s\n", grp->name,
+- alpm_pkg_get_name(alpm_list_getdata(k)));
++ color_printf(COLOR_BLUE_ALL, "%s ", grp->name);
++ color_printf(COLOR_WHITE_ALL, "%s\n", alpm_pkg_get_name(alpm_list_getdata(k)));
+ }
+ } else {
+ /* print grp names only, no package names */
+@@ -570,8 +566,9 @@ static int sync_list(alpm_list_t *syncs,
+ alpm_pkg_t *pkg = alpm_list_getdata(j);
+
+ if(!config->quiet) {
+- printf("%s %s %s", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
+- alpm_pkg_get_version(pkg));
++ color_printf(COLOR_MAGENTA_ALL, "%s ", alpm_db_get_name(db));
++ color_printf(COLOR_WHITE_ALL, "%s ", alpm_pkg_get_name(pkg));
++ color_printf(COLOR_GREEN_ALL, "%s", alpm_pkg_get_version(pkg));
+ print_installed(db_local, pkg);
+ printf("\n");
+ } else {
+@@ -654,7 +651,7 @@ static int process_group(alpm_list_t *db
+
+
+ if(config->print == 0) {
+- printf(_(":: There are %d members in group %s:\n"), count,
++ color_printf(COLOR_DOUBLECOLON, _(":: There are %d members in group %s:\n"), count,
+ group);
+ select_display(pkgs);
+ char *array = malloc(count);
+@@ -771,7 +768,7 @@ static int sync_trans(alpm_list_t *targe
+ }
+
+ if(config->op_s_upgrade) {
+- printf(_(":: Starting full system upgrade...\n"));
++ color_printf(COLOR_DOUBLECOLON, _(":: Starting full system upgrade...\n"));
+ alpm_logaction(config->handle, "starting full system upgrade\n");
+ if(alpm_sync_sysupgrade(config->handle, config->op_s_upgrade >= 2) == -1) {
+ pm_printf(ALPM_LOG_ERROR, "%s\n", alpm_strerror(alpm_errno(config->handle)));
+@@ -797,14 +794,14 @@ int sync_prepare_execute(void)
+ case ALPM_ERR_PKG_INVALID_ARCH:
+ for(i = data; i; i = alpm_list_next(i)) {
+ char *pkg = alpm_list_getdata(i);
+- printf(_(":: package %s does not have a valid architecture\n"), pkg);
++ color_printf(COLOR_DOUBLECOLON, _(":: package %s does not have a valid architecture\n"), pkg);
+ }
+ break;
+ case ALPM_ERR_UNSATISFIED_DEPS:
+ for(i = data; i; i = alpm_list_next(i)) {
+ alpm_depmissing_t *miss = alpm_list_getdata(i);
+ char *depstring = alpm_dep_compute_string(miss->depend);
+- printf(_(":: %s: requires %s\n"), miss->target, depstring);
++ color_printf(COLOR_DOUBLECOLON, _(":: %s: requires %s\n"), miss->target, depstring);
+ free(depstring);
+ }
+ break;
+@@ -813,11 +810,11 @@ int sync_prepare_execute(void)
+ alpm_conflict_t *conflict = alpm_list_getdata(i);
+ /* only print reason if it contains new information */
+ if(conflict->reason->mod == ALPM_DEP_MOD_ANY) {
+- printf(_(":: %s and %s are in conflict\n"),
++ color_printf(COLOR_DOUBLECOLON, _(":: %s and %s are in conflict\n"),
+ conflict->package1, conflict->package2);
+ } else {
+ char *reason = alpm_dep_compute_string(conflict->reason);
+- printf(_(":: %s and %s are in conflict (%s)\n"),
++ color_printf(COLOR_DOUBLECOLON, _(":: %s and %s are in conflict (%s)\n"),
+ conflict->package1, conflict->package2, reason);
+ free(reason);
+ }
+@@ -850,9 +847,9 @@ int sync_prepare_execute(void)
+
+ int confirm;
+ if(config->op_s_downloadonly) {
+- confirm = yesno(_("Proceed with download?"));
++ confirm = yesno(NULL, _("Proceed with download?"));
+ } else {
+- confirm = yesno(_("Proceed with installation?"));
++ confirm = yesno(NULL, _("Proceed with installation?"));
+ }
+ if(!confirm) {
+ goto cleanup;
+@@ -872,7 +869,7 @@ int sync_prepare_execute(void)
+ conflict->file, conflict->target, conflict->ctarget);
+ break;
+ case ALPM_FILECONFLICT_FILESYSTEM:
+- printf(_("%s: %s exists in filesystem\n"),
++ color_printf(COLOR_WHITE_COLON, _("%s: %s exists in filesystem\n"),
+ conflict->target, conflict->file);
+ break;
+ }
+@@ -891,7 +888,7 @@ int sync_prepare_execute(void)
+ break;
+ }
+ /* TODO: stderr? */
+- printf(_("Errors occurred, no packages were upgraded.\n"));
++ color_printf(COLOR_RED_ALL, _("Errors occurred, no packages were upgraded.\n"));
+ retval = 1;
+ goto cleanup;
+ }
+@@ -939,7 +936,7 @@ int pacman_sync(alpm_list_t *targets)
+
+ if(config->op_s_sync) {
+ /* grab a fresh package list */
+- printf(_(":: Synchronizing package databases...\n"));
++ color_printf(COLOR_DOUBLECOLON, _(":: Synchronizing package databases...\n"));
+ alpm_logaction(config->handle, "synchronizing package lists\n");
+ if(!sync_synctree(config->op_s_sync, sync_dbs)) {
+ return 1;
+@@ -992,9 +989,9 @@ int pacman_sync(alpm_list_t *targets)
+ alpm_list_t *tmp = NULL;
+ if(config->op_s_upgrade || (tmp = alpm_list_diff(targets, packages, (alpm_list_fn_cmp)strcmp))) {
+ alpm_list_free(tmp);
+- printf(_(":: The following packages should be upgraded first :\n"));
+- list_display(" ", packages);
+- if(yesno(_(":: Do you want to cancel the current operation\n"
++ color_printf(COLOR_DOUBLECOLON, _(":: The following packages should be upgraded first :\n"));
++ list_display(NULL, " ", packages);
++ if(yesno(COLOR_DOUBLECOLON2, _(":: Do you want to cancel the current operation\n"
+ ":: and upgrade these packages now?"))) {
+ FREELIST(targs);
+ targs = packages;
+diff -up -Npaur a/src/pacman/util.c b/src/pacman/util.c
+--- a/src/pacman/util.c 2012-02-20 07:18:31.000000000 +0200
++++ b/src/pacman/util.c 2012-07-20 21:48:20.270827634 +0300
+@@ -48,6 +48,20 @@
+ #include "conf.h"
+ #include "callback.h"
+
++#define COLOR_LEN 8
++
++typedef struct __colortab_t {
++ char red[COLOR_LEN + 1];
++ char green[COLOR_LEN + 1];
++ char yellow[COLOR_LEN + 1];
++ char blue[COLOR_LEN + 1];
++ char magenta[COLOR_LEN + 1];
++ char cyan[COLOR_LEN + 1];
++ char white[COLOR_LEN + 1];
++ char none[COLOR_LEN + 1];
++} colortab_t;
++
++static colortab_t colortab;
+
+ int trans_init(alpm_transflag_t flags, int check_valid)
+ {
+@@ -463,10 +477,10 @@ static size_t string_length(const char *
+ return len;
+ }
+
+-void string_display(const char *title, const char *string)
++void string_display(const colordata_t *colors_title, const char *title, const char *string)
+ {
+ if(title) {
+- printf("%s ", title);
++ color_printf(colors_title, "%s ", title);
+ }
+ if(string == NULL || string[0] == '\0') {
+ printf(_("None"));
+@@ -599,14 +613,14 @@ int table_display(const char *title, con
+ return 0;
+ }
+
+-void list_display(const char *title, const alpm_list_t *list)
++void list_display(const colordata_t *colors_title, const char *title, const alpm_list_t *list)
+ {
+ const alpm_list_t *i;
+ size_t len = 0;
+
+ if(title) {
+ len = string_length(title) + 1;
+- printf("%s ", title);
++ color_printf(colors_title, "%s ", title);
+ }
+
+ if(!list) {
+@@ -640,13 +654,13 @@ void list_display(const char *title, con
+ }
+ }
+
+-void list_display_linebreak(const char *title, const alpm_list_t *list)
++void list_display_linebreak(const colordata_t *colors_title, const char *title, const alpm_list_t *list)
+ {
+ size_t len = 0;
+
+ if(title) {
+ len = string_length(title) + 1;
+- printf("%s ", title);
++ color_printf(colors_title, "%s ", title);
+ }
+
+ if(!list) {
+@@ -867,11 +881,11 @@ static void _display_targets(alpm_list_t
+ alpm_list_t *header = create_verbose_header(show_dl_size);
+ if(table_display(str, header, rows) != 0) {
+ /* fallback to list display if table wouldn't fit */
+- list_display(str, names);
++ list_display(COLOR_YELLOW_ALL, str, names);
+ }
+ alpm_list_free(header);
+ } else {
+- list_display(str, names);
++ list_display(COLOR_YELLOW_ALL, str, names);
+ }
+ printf("\n");
+
+@@ -886,21 +900,21 @@ static void _display_targets(alpm_list_t
+
+ if(dlsize > 0 || config->op_s_downloadonly) {
+ size = humanize_size(dlsize, 'M', 2, &label);
+- printf(_("Total Download Size: %.2f %s\n"), size, label);
++ color_printf(COLOR_WHITE_COLON, _("Total Download Size: %.2f %s\n"), size, label);
+ }
+ if(!config->op_s_downloadonly) {
+ if(isize > 0) {
+ size = humanize_size(isize, 'M', 2, &label);
+- printf(_("Total Installed Size: %.2f %s\n"), size, label);
++ color_printf(COLOR_WHITE_COLON, _("Total Installed Size: %.2f %s\n"), size, label);
+ }
+ if(rsize > 0 && isize == 0) {
+ size = humanize_size(rsize, 'M', 2, &label);
+- printf(_("Total Removed Size: %.2f %s\n"), size, label);
++ color_printf(COLOR_WHITE_COLON, _("Total Removed Size: %.2f %s\n"), size, label);
+ }
+ /* only show this net value if different from raw installed size */
+ if(isize > 0 && rsize > 0) {
+ size = humanize_size(isize - rsize, 'M', 2, &label);
+- printf(_("Net Upgrade Size: %.2f %s\n"), size, label);
++ color_printf(COLOR_WHITE_COLON, _("Net Upgrade Size: %.2f %s\n"), size, label);
+ }
+ }
+ }
+@@ -1115,7 +1129,7 @@ void display_new_optdepends(alpm_pkg_t *
+ alpm_list_t *optdeps = alpm_list_diff(new,old,str_cmp);
+ if(optdeps) {
+ printf(_("New optional dependencies for %s\n"), alpm_pkg_get_name(newpkg));
+- list_display_linebreak(" ", optdeps);
++ list_display_linebreak(NULL, " ", optdeps);
+ }
+ alpm_list_free(optdeps);
+ }
+@@ -1125,7 +1139,7 @@ void display_optdepends(alpm_pkg_t *pkg)
+ alpm_list_t *optdeps = alpm_pkg_get_optdepends(pkg);
+ if(optdeps) {
+ printf(_("Optional dependencies for %s\n"), alpm_pkg_get_name(pkg));
+- list_display_linebreak(" ", optdeps);
++ list_display_linebreak(NULL, " ", optdeps);
+ }
+ }
+
+@@ -1133,9 +1147,9 @@ static void display_repo_list(const char
+ {
+ const char *prefix= " ";
+
+- printf(":: ");
+- printf(_("Repository %s\n"), dbname);
+- list_display(prefix, list);
++ color_printf(COLOR_BLUE_ALL, ":: ");
++ color_printf(COLOR_WHITE_ALL, _("Repository %s\n"), dbname);
++ list_display(NULL, prefix, list);
+ }
+
+ void select_display(const alpm_list_t *pkglist)
+@@ -1354,7 +1368,7 @@ int select_question(int count)
+
+
+ /* presents a prompt and gets a Y/N answer */
+-static int question(short preset, char *fmt, va_list args)
++static int question(const colordata_t *colors, short preset, char *fmt, va_list args)
+ {
+ char response[32];
+ FILE *stream;
+@@ -1370,7 +1384,7 @@ static int question(short preset, char *
+ fflush(stdout);
+ fflush(stderr);
+
+- vfprintf(stream, fmt, args);
++ color_vfprintf(stream, colors, fmt, args);
+
+ if(preset) {
+ fprintf(stream, " %s ", _("[Y/n]"));
+@@ -1407,25 +1421,25 @@ static int question(short preset, char *
+ return 0;
+ }
+
+-int yesno(char *fmt, ...)
++int yesno(const colordata_t *colors, char *fmt, ...)
+ {
+ int ret;
+ va_list args;
+
+ va_start(args, fmt);
+- ret = question(1, fmt, args);
++ ret = question(colors, 1, fmt, args);
+ va_end(args);
+
+ return ret;
+ }
+
+-int noyes(char *fmt, ...)
++int noyes(const colordata_t *colors, char *fmt, ...)
+ {
+ int ret;
+ va_list args;
+
+ va_start(args, fmt);
+- ret = question(0, fmt, args);
++ ret = question(colors, 0, fmt, args);
+ va_end(args);
+
+ return ret;
+@@ -1474,22 +1488,42 @@ int pm_vasprintf(char **string, alpm_log
+ ret = vasprintf(&msg, format, args);
+
+ /* print a prefix to the message */
+- switch(level) {
+- case ALPM_LOG_ERROR:
+- pm_asprintf(string, _("error: %s"), msg);
+- break;
+- case ALPM_LOG_WARNING:
+- pm_asprintf(string, _("warning: %s"), msg);
+- break;
+- case ALPM_LOG_DEBUG:
+- pm_asprintf(string, "debug: %s", msg);
+- break;
+- case ALPM_LOG_FUNCTION:
+- pm_asprintf(string, "function: %s", msg);
+- break;
+- default:
+- pm_asprintf(string, "%s", msg);
+- break;
++ if(isatty(fileno(stdout))) {
++ switch(level) {
++ case ALPM_LOG_ERROR:
++ pm_asprintf(string, "%s%s%s%s", colortab.red, _("error: "), colortab.none, msg);
++ break;
++ case ALPM_LOG_WARNING:
++ pm_asprintf(string, "%s%s%s%s", colortab.yellow, _("warning: "), colortab.none, msg);
++ break;
++ case ALPM_LOG_DEBUG:
++ pm_asprintf(string, "debug: %s", msg);
++ break;
++ case ALPM_LOG_FUNCTION:
++ pm_asprintf(string, "function: %s", msg);
++ break;
++ default:
++ pm_asprintf(string, "%s", msg);
++ break;
++ }
++ } else {
++ switch(level) {
++ case ALPM_LOG_ERROR:
++ pm_asprintf(string, _("error: %s"), msg);
++ break;
++ case ALPM_LOG_WARNING:
++ pm_asprintf(string, _("warning: %s"), msg);
++ break;
++ case ALPM_LOG_DEBUG:
++ pm_asprintf(string, "debug: %s", msg);
++ break;
++ case ALPM_LOG_FUNCTION:
++ pm_asprintf(string, "function: %s", msg);
++ break;
++ default:
++ pm_asprintf(string, "%s", msg);
++ break;
++ }
+ }
+ free(msg);
+
+@@ -1524,10 +1558,10 @@ int pm_vfprintf(FILE *stream, alpm_logle
+ /* print a prefix to the message */
+ switch(level) {
+ case ALPM_LOG_ERROR:
+- fprintf(stream, _("error: "));
++ color_fprintf(stream, COLOR_RED_ALL, _("error: "));
+ break;
+ case ALPM_LOG_WARNING:
+- fprintf(stream, _("warning: "));
++ color_fprintf(stream, COLOR_YELLOW_ALL, _("warning: "));
+ break;
+ case ALPM_LOG_DEBUG:
+ fprintf(stream, "debug: ");
+@@ -1566,4 +1600,310 @@ char *strndup(const char *s, size_t n)
+ }
+ #endif
+
++/* pacman-color */
++
++int _set_color_sequence(const char* name, char* dest)
++{
++ int ret = 0;
++
++ if(strcmp(name, "black") == 0) {
++ strncpy(dest, "\033[0;30m", COLOR_LEN);
++ } else if(strcmp(name, "red") == 0) {
++ strncpy(dest, "\033[0;31m", COLOR_LEN);
++ } else if(strcmp(name, "green") == 0) {
++ strncpy(dest, "\033[0;32m", COLOR_LEN);
++ } else if(strcmp(name, "yellow") == 0) {
++ strncpy(dest, "\033[0;33m", COLOR_LEN);
++ } else if(strcmp(name, "blue") == 0) {
++ strncpy(dest, "\033[0;34m", COLOR_LEN);
++ } else if(strcmp(name, "magenta") == 0) {
++ strncpy(dest, "\033[0;35m", COLOR_LEN);
++ } else if(strcmp(name, "cyan") == 0) {
++ strncpy(dest, "\033[0;36m", COLOR_LEN);
++ } else if(strcmp(name, "white") == 0) {
++ strncpy(dest, "\033[0;37m", COLOR_LEN);
++ } else if(strcmp(name, "gray") == 0) {
++ strncpy(dest, "\033[1;30m", COLOR_LEN);
++ } else if(strcmp(name, "intensive red") == 0) {
++ strncpy(dest, "\033[1;31m", COLOR_LEN);
++ } else if(strcmp(name, "intensive green") == 0) {
++ strncpy(dest, "\033[1;32m", COLOR_LEN);
++ } else if(strcmp(name, "intensive yellow") == 0) {
++ strncpy(dest, "\033[1;33m", COLOR_LEN);
++ } else if(strcmp(name, "intensive blue") == 0) {
++ strncpy(dest, "\033[1;34m", COLOR_LEN);
++ } else if(strcmp(name, "intensive magenta") == 0) {
++ strncpy(dest, "\033[1;35m", COLOR_LEN);
++ } else if(strcmp(name, "intensive cyan") == 0) {
++ strncpy(dest, "\033[1;36m", COLOR_LEN);
++ } else if(strcmp(name, "intensive white") == 0) {
++ strncpy(dest, "\033[1;37m", COLOR_LEN);
++ } else if(strcmp(name, "intensive foreground") == 0) {
++ strncpy(dest, "\033[m\033[1m", COLOR_LEN);
++ } else if(strcmp(name, "none") == 0) {
++ strncpy(dest, "\033[m", COLOR_LEN);
++ } else {
++ ret = 1;
++ }
++ dest[COLOR_LEN] = '\0';
++ return(ret);
++}
++
++void _insert_color(FILE* stream, color_t color)
++{
++ switch(color) {
++ case COLOR_RED:
++ fprintf(stream, colortab.red);
++ break;
++ case COLOR_GREEN:
++ fprintf(stream, colortab.green);
++ break;
++ case COLOR_YELLOW:
++ fprintf(stream, colortab.yellow);
++ break;
++ case COLOR_BLUE:
++ fprintf(stream, colortab.blue);
++ break;
++ case COLOR_MAGENTA:
++ fprintf(stream, colortab.magenta);
++ break;
++ case COLOR_CYAN:
++ fprintf(stream, colortab.cyan);
++ break;
++ case COLOR_WHITE:
++ fprintf(stream, colortab.white);
++ break;
++ case COLOR_NONE:
++ fprintf(stream, colortab.none);
++ break;
++ default:;
++ }
++}
++
++int _parsecolorconfig(colortab_t* colortab, char* file)
++{
++ _set_color_sequence("intensive red", colortab->red);
++ _set_color_sequence("intensive green", colortab->green);
++ _set_color_sequence("intensive yellow", colortab->yellow);
++ _set_color_sequence("intensive blue", colortab->blue);
++ _set_color_sequence("intensive magenta", colortab->magenta);
++ _set_color_sequence("intensive cyan", colortab->cyan);
++ _set_color_sequence("intensive foreground", colortab->white);
++ _set_color_sequence("none", colortab->none);
++
++ FILE* fp = NULL;
++ int linenum = 0;
++ char line[PATH_MAX+1];
++ char* ptr;
++
++ fp = fopen(file, "r");
++ if(fp == NULL) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s could not be read.\n"), file);
++ return 1;
++ }
++ while(fgets(line, PATH_MAX, fp)) {
++ linenum++;
++ strtrim(line);
++
++ if(strlen(line) == 0 || line[0] == '#') {
++ continue;
++ }
++ if((ptr = strchr(line, '#'))) {
++ *ptr = '\0';
++ }
++
++ char* key = line;
++ ptr = line;
++ strsep(&ptr, "=");
++ strtrim(key);
++ strtrim(ptr);
++
++ if(key == NULL) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: syntax error in config file- missing key.\n"),
++ file, linenum);
++ return 1;
++ }
++ if(strcmp(key, "Red") == 0) {
++ if(_set_color_sequence(ptr, colortab->red)) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: color '%s' not recognized.\n"),
++ file, linenum, ptr);
++ }
++ } else if(strcmp(key, "Green") == 0) {
++ if(_set_color_sequence(ptr, colortab->green)) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: color '%s' not recognized.\n"),
++ file, linenum, ptr);
++ }
++ } else if(strcmp(key, "Yellow") == 0) {
++ if(_set_color_sequence(ptr, colortab->yellow)) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: color '%s' not recognized.\n"),
++ file, linenum, ptr);
++ }
++ } else if(strcmp(key, "Blue") == 0) {
++ if(_set_color_sequence(ptr, colortab->blue)) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: color '%s' not recognized.\n"),
++ file, linenum, ptr);
++ }
++ } else if(strcmp(key, "Magenta") == 0) {
++ if(_set_color_sequence(ptr, colortab->magenta)) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: color '%s' not recognized.\n"),
++ file, linenum, ptr);
++ }
++ } else if(strcmp(key, "Cyan") == 0) {
++ if(_set_color_sequence(ptr, colortab->cyan)) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: color '%s' not recognized.\n"),
++ file, linenum, ptr);
++ }
++ } else if(strcmp(key, "White") == 0) {
++ if(_set_color_sequence(ptr, colortab->white)) {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: color '%s' not recognized.\n"),
++ file, linenum, ptr);
++ }
++ } else {
++ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: directive '%s' not recognized.\n"),
++ file, linenum, key);
++ return(1);
++ }
++ }
++ return(0);
++}
++
++int parsecolorconfig()
++{
++ return(_parsecolorconfig(&colortab, "/etc/pacman.d/color.conf"));
++}
++
++int color_vfprintf(FILE* stream, const colordata_t* colors, const char* format, va_list args)
++{
++ int ret = 0;
++
++ if(isatty(fileno(stream)) && colors) {
++ char* msg = NULL;
++ ret = vasprintf(&msg, format, args);
++ if(msg == NULL) {
++ return(ret);
++ }
++
++ const colordata_t* colorpos = colors;
++ color_t colorlast = COLOR_NONE;
++ int len = strlen(msg) + 1;
++ wchar_t* wcstr = calloc(len, sizeof(wchar_t));
++ len = mbstowcs(wcstr, msg, len);
++ free(msg);
++ const wchar_t *strpos = wcstr;
++
++ while(*strpos) {
++ if(colorpos->color != COLOR_END &&
++ ((colorpos->separator == SEP_ANY) ||
++ (colorpos->separator == SEP_LINE && *strpos == L'\n') ||
++ (colorpos->separator == SEP_COLON && (*strpos == L':' || *strpos == L':')))) {
++ _insert_color(stream, colorpos->color);
++ colorlast = colorpos->color;
++ colorpos++;
++ }
++ fprintf(stream, "%lc", (wint_t)*strpos);
++ strpos++;
++ }
++ free(wcstr);
++
++ if(colorlast != COLOR_NONE) {
++ _insert_color(stream, COLOR_NONE);
++ }
++ } else {
++ ret = vfprintf(stream, format, args);
++ }
++ return(ret);
++}
++
++int color_fprintf(FILE* stream, const colordata_t* colors, const char* format, ...)
++{
++ int ret;
++ va_list args;
++ va_start(args, format);
++ ret = color_vfprintf(stream, colors, format, args);
++ va_end(args);
++ return(ret);
++}
++
++int color_printf(const colordata_t* colors, const char* format, ...)
++{
++ int ret;
++ va_list args;
++ va_start(args, format);
++ ret = color_vfprintf(stdout, colors, format, args);
++ va_end(args);
++ return(ret);
++}
++
++void color_string_display(const colordata_t* colors_title, const char* title, const colordata_t* colors_string, const char* string)
++{
++ if(title) {
++ color_printf(colors_title, "%s ", title);
++ }
++ if(string == NULL || string[0] == '\0') {
++ printf(_("None"));
++ } else {
++ color_printf(colors_string, "%s", string);
++ }
++ printf("\n");
++}
++
++const colordata_t COLOR_WHITE_ALL[] = {
++ { SEP_ANY, COLOR_WHITE },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_GREEN_ALL[] = {
++ { SEP_ANY, COLOR_GREEN },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_RED_ALL[] = {
++ { SEP_ANY, COLOR_RED },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_BLUE_ALL[] = {
++ { SEP_ANY, COLOR_BLUE },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_YELLOW_ALL[] = {
++ { SEP_ANY, COLOR_YELLOW },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_MAGENTA_ALL[] = {
++ { SEP_ANY, COLOR_MAGENTA },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_CYAN_ALL[] = {
++ { SEP_ANY, COLOR_CYAN },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_DOUBLECOLON[] = {
++ { SEP_ANY, COLOR_BLUE },
++ { SEP_ANY, COLOR_SAME },
++ { SEP_ANY, COLOR_WHITE },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_DOUBLECOLON2[] = {
++ { SEP_ANY, COLOR_BLUE },
++ { SEP_ANY, COLOR_SAME },
++ { SEP_ANY, COLOR_WHITE },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_BLUE },
++ { SEP_ANY, COLOR_SAME },
++ { SEP_ANY, COLOR_WHITE },
++ { SEP_LINE, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
++const colordata_t COLOR_WHITE_COLON[] = {
++ { SEP_ANY, COLOR_WHITE },
++ { SEP_COLON, COLOR_SAME },
++ { SEP_ANY, COLOR_NONE },
++ { SEP_ANY, COLOR_END } };
++
+ /* vim: set ts=2 sw=2 noet: */
+diff -up -Npaur a/src/pacman/util.h b/src/pacman/util.h
+--- a/src/pacman/util.h 2012-02-03 16:56:16.000000000 +0200
++++ b/src/pacman/util.h 2012-07-20 21:48:20.271827634 +0300
+@@ -45,6 +45,48 @@ typedef struct _pm_target_t {
+ int is_explicit;
+ } pm_target_t;
+
++/* pacman-color */
++typedef enum _separator_t {
++ SEP_ANY = 0,
++ SEP_LINE,
++ SEP_COLON,
++} separator_t;
++
++typedef enum _color_t {
++ COLOR_END = 0,
++ COLOR_SAME,
++ COLOR_RED,
++ COLOR_GREEN,
++ COLOR_YELLOW,
++ COLOR_BLUE,
++ COLOR_MAGENTA,
++ COLOR_CYAN,
++ COLOR_WHITE,
++ COLOR_NONE,
++} color_t;
++
++typedef struct _colordata_t {
++ separator_t separator;
++ color_t color;
++} colordata_t;
++
++extern const colordata_t COLOR_WHITE_ALL[];
++extern const colordata_t COLOR_GREEN_ALL[];
++extern const colordata_t COLOR_RED_ALL[];
++extern const colordata_t COLOR_BLUE_ALL[];
++extern const colordata_t COLOR_YELLOW_ALL[];
++extern const colordata_t COLOR_MAGENTA_ALL[];
++extern const colordata_t COLOR_CYAN_ALL[];
++extern const colordata_t COLOR_DOUBLECOLON[];
++extern const colordata_t COLOR_DOUBLECOLON2[];
++extern const colordata_t COLOR_WHITE_COLON[];
++
++int parsecolorconfig();
++int color_fprintf(FILE* stream, const colordata_t* colors, const char* format, ...) __attribute__((format(printf,3,4)));
++int color_printf(const colordata_t* colors, const char* format, ...) __attribute__((format(printf,2,3)));
++int color_vfprintf(FILE* stream, const colordata_t* colors, const char* format, va_list args) __attribute__((format(printf,3,0)));
++void color_string_display(const colordata_t* colors_title, const char* title, const colordata_t* colors_string, const char* string);
++
+ void trans_init_error(void);
+ int trans_init(alpm_transflag_t flags, int check_valid);
+ int trans_release(void);
+@@ -58,12 +100,12 @@ void indentprint(const char *str, size_t
+ char *strtrim(char *str);
+ char *strreplace(const char *str, const char *needle, const char *replace);
+ alpm_list_t *strsplit(const char *str, const char splitchar);
+-void string_display(const char *title, const char *string);
++void string_display(const colordata_t *colors_title, const char *title, const char *string);
+ double humanize_size(off_t bytes, const char target_unit, int precision,
+ const char **label);
+ int table_display(const char *title, const alpm_list_t *header, const alpm_list_t *rows);
+-void list_display(const char *title, const alpm_list_t *list);
+-void list_display_linebreak(const char *title, const alpm_list_t *list);
++void list_display(const colordata_t *colors_title, const char *title, const alpm_list_t *list);
++void list_display_linebreak(const colordata_t *colors_title, const char *title, const alpm_list_t *list);
+ void signature_display(const char *title, alpm_siglist_t *siglist);
+ void display_targets(void);
+ int str_cmp(const void *s1, const void *s2);
+@@ -73,8 +115,8 @@ void print_packages(const alpm_list_t *p
+ void select_display(const alpm_list_t *pkglist);
+ int select_question(int count);
+ int multiselect_question(char *array, int count);
+-int yesno(char *fmt, ...);
+-int noyes(char *fmt, ...);
++int yesno(const colordata_t *colors, char *fmt, ...);
++int noyes(const colordata_t *colors, char *fmt, ...);
+
+ int pm_printf(alpm_loglevel_t level, const char *format, ...) __attribute__((format(printf,2,3)));
+ int pm_asprintf(char **string, const char *format, ...);
diff --git a/pcr/pactools/PKGBUILD b/pcr/pactools/PKGBUILD
new file mode 100644
index 000000000..d05953b99
--- /dev/null
+++ b/pcr/pactools/PKGBUILD
@@ -0,0 +1,18 @@
+# Contributor: Pierluigi <pierluigi88@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=pactools
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="A collection of the best tools for pacman"
+arch=('i686' 'x86_64')
+url="http://pierloz.com/pactools"
+license=("GPL")
+depends=('perl' 'bash' 'python')
+source=(pactools pt-pacman-cage pt-pacman-uncage pt-pacsize \
+pt-deptree pt-pacman-info pt-repolist pt-pacfix)
+
+build() {
+ install -d $pkgdir/usr/bin
+ install -m 755 $srcdir/* $pkgdir/usr/bin
+}
diff --git a/pcr/pactools/pactools b/pcr/pactools/pactools
new file mode 100644
index 000000000..1fe3ddbe8
--- /dev/null
+++ b/pcr/pactools/pactools
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+green() {
+ echo -e "\033[1;32m${1}\033[1;0m"
+ }
+
+red() {
+ echo -e "\033[1;31m${1}\033[1;0m"
+ }
+
+
+echo 'pactools is a set of useful tools for pacman'
+echo
+echo 'Tools installed:'
+echo
+green ' * pt-pacman-cage'
+echo ' by: ody'
+echo ' A script to keep the pacman db in a contiguous as possible'
+echo ' place on your hd to make reading it quicker.'
+echo ' Attention: be sure to have the module loop loaded in rc.conf'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=20385'
+echo
+green ' * pt-pacman-uncage'
+echo ' by: ody'
+echo ' To uncage your pacman db, after pt-pacman-cage.'
+echo ' Use only if you have problem with pt-pacman-cage and you'
+echo ' want to come back to standard db system'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=20385'
+echo
+green ' * pt-pacsize'
+echo ' by: hads'
+echo ' How much disk space do my installed packages use?'
+echo ' This script answers to the question.'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=20971'
+echo
+green ' * pt-deptree'
+echo ' by: skoal'
+echo ' A visual representation of packages dependencies'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=10283'
+echo
+green ' * pt-pacman-info'
+echo ' by: Pvel Varela Rodrguez [aka NeOnsKuLL]'
+echo ' List the names of configured repos in your pacman.conf'
+echo ' Calculates the total number of available packages'
+echo ' in each repo;'
+echo ' calculates the number of installed packages.'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=23124'
+echo
+green ' * pt-repolist'
+echo ' by: dtw'
+echo ' Shows installed packages from a certain repo.'
+echo ' USAGE: pt-repolist <reponame> [all]'
+echo ' <reponame> is the repository name'
+echo ' [all] to include also NOT installed packages.'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=12369'
+echo
+green ' * pt-pacfix'
+echo ' by: pierluigi and fixed by Chris.Giles'
+echo ' A script to list all the packages currently installed,'
+echo ' according to /var/log/pacman.log'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?pid=227510'
+echo
+red 'Please remember: pactools comes with NO WARRANTY, use at your own risk'
diff --git a/pcr/pactools/pt-deptree b/pcr/pactools/pt-deptree
new file mode 100644
index 000000000..edb6f538b
--- /dev/null
+++ b/pcr/pactools/pt-deptree
@@ -0,0 +1,54 @@
+#!/bin/sh
+# Pacman Dependency Tree
+# does NOT handle group names -> unexpected results.
+# Package names using aliases, like x-server, should work.
+# Breaks on circular dependencies -> you better hit ctrl-c.
+
+export LC_ALL=en_US
+
+progname=`basename $0`
+pacexec='pacman'
+leafnull='None'
+branch=""
+vbranch="| "
+vprune=" "
+hbranch="+---"
+
+_showdep () {
+
+ # Try to use specific pkg req
+ if $pacexec -Qi $1 &> /dev/null ; then
+ # Grab deps list|from "Depends"|Remove Tag \| specific version req's.
+ deplist=`$pacexec -Qi $1|grep Depends|sed 's/^.*: \|>[^ ]*//g;s/ $//'`
+ else # Oops! Failed on alias, try this...
+ deplist=`$pacexec -Qs $1 | sed '1!d;s/\(^.*\/\)\(.*\)\( .*$\)/\2/'`
+ fi
+
+ [ "x$deplist" = "x$leafnull" ] && return
+
+ while [ -n "$deplist" ]
+ do
+ set -- $deplist && echo "$branch$hbranch$1"
+ if [ $# -gt 1 ] ; then
+ branch=${branch}$vbranch
+ else
+ branch=${branch}$vprune
+ fi
+
+ _showdep $1
+
+ deplist=${*:2}
+ branch=${branch:0:${#branch}-${#vprune}}
+ done
+}
+
+branch=$vprune
+
+for pkg in `$pacexec -Q $1 | sed 's/ .*//'`
+do
+ echo $pkg
+ _showdep $pkg
+done
+
+unset _showdep && set --
+exit 0
diff --git a/pcr/pactools/pt-pacfix b/pcr/pactools/pt-pacfix
new file mode 100644
index 000000000..cd128331e
--- /dev/null
+++ b/pcr/pactools/pt-pacfix
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+#
+# pacfix.py: a script by pierluigi to list all the packages currently installed according to /var/log/pacman.log
+# 2008-07-04: Modified by Chris Giles to prevent failure when "pacman.log" has lines with only two words
+
+
+pkg=[]
+
+logfile = open("/var/log/pacman.log","r")
+log=logfile.readlines()
+for myline in log:
+ myarray = myline.strip("\n").split(" ")
+ if len(myarray) >= 3 :
+ if (myarray[2]=="installed" or myarray[2]=="upgraded"):
+ if (pkg.count(myarray[3])==0):
+ pkg.append(myarray[3])
+ if (myarray[2]=="removed"):
+ if (pkg.count(myarray[3])!=0):
+ pkg.remove(myarray[3])
+pkg.sort()
+for p in pkg:
+ print(p)
diff --git a/pcr/pactools/pt-pacman-cage b/pcr/pactools/pt-pacman-cage
new file mode 100644
index 000000000..f9248e496
--- /dev/null
+++ b/pcr/pactools/pt-pacman-cage
@@ -0,0 +1,152 @@
+#!/bin/bash
+#
+# pacman-cage
+#
+# Copyright (c) 2002-2006 by Andrew Rose <rose.andrew@gmail.com>
+# I used Judds pacman-optimise as a framework.
+#
+# 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.
+#
+
+myver='2.9.8.1'
+dbroot="/var/lib/pacman"
+pacmandb="/var/lib/pacman.db"
+
+usage() {
+ echo "pacman-cage $myver"
+ echo "usage: $0 pacman_db_size(MB)"
+ echo
+ echo "pacman-cage creates a loopbacked filesystem in a contigious file."
+ echo "This will give better response times when using pacman"
+ echo "A safe value for pacman_db_size should be > 40"
+ echo
+ echo "If you are unsure, use this:"
+ echo " $0 60"
+ echo
+}
+
+die() {
+ echo "pacman-cage: $*" >&2
+ exit 1
+}
+
+die_r() {
+ rm -f /tmp/pacman.lck
+ die $*
+}
+
+loop_check=`zcat /proc/config.gz | grep CONFIG_BLK_DEV_LOOP | cut -d\= -f2`
+
+if [ "$loop_check" == "m" ]; then
+ if [ `lsmod | grep loop | cut -d\ -f1` != "loop" ]; then
+ echo "Error. You have to load the module 'loop' in rc.conf."
+ exit 1
+ fi
+fi
+
+if [ "$loop_check" == "CONFIG_BLK_DEV_LOOP" ]; then
+ echo "Error. Your kernel config doesn't include CONFIG_BLK_DEV_LOOP."
+ exit 1
+fi
+
+
+if [ "$#" != "1" ]; then echo "wrong number of parameters" 1>&2 ; usage; exit 0; fi
+
+if [ "$1" != "" ]; then
+ if [ "$1" = "-h" -o "$1" = "--help" ]; then
+ usage
+ exit 0
+ fi
+ dbsize=$1
+fi
+
+if [ "`id -u`" != 0 ]; then
+ die "You must be root to cage the database"
+fi
+
+# make sure pacman isn't running
+if [ -f /tmp/pacman.lck ]; then
+ die "Pacman lockfile was found. Cannot run while pacman is running."
+fi
+# make sure pacman.db hasnt already been made
+if [ -f $pacmandb ]; then
+ die "$pacmandb already exists!."
+fi
+
+if [ ! -d $dbroot ]; then
+ die "$dbroot does not exist or is not a directory"
+fi
+
+# don't let pacman run while we do this
+touch /tmp/pacman.lck
+
+# step 1: sum the old db
+echo "==> md5sum'ing the old database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.old
+
+echo "==> creating pacman.db loopback file..."
+dd if=/dev/zero of=$pacmandb bs=1M count=$dbsize > /dev/null 2>&1
+
+echo "==> creating ext2 -O dir_index -b 1024 -m 0 on $pacmandb..."
+yes | mkfs.ext2 -O dir_index -b 1024 -i 1024 -m 0 -F $pacmandb > /dev/null 2>&1
+
+echo "==> creating temporary mount point /mnt/tmp-pacman.."
+mkdir /mnt/tmp-pacman
+
+echo "==> mounting pacman.db to temporary mount point..."
+mount -o loop $pacmandb /mnt/tmp-pacman
+
+echo "==> copying pacman database to temporary mount point..."
+cp -a /var/lib/pacman/. /mnt/tmp-pacman
+
+echo "==> unmounting temporary mount point..."
+umount /mnt/tmp-pacman
+
+echo "==> removing temporary mount point..."
+rmdir /mnt/tmp-pacman
+
+echo "==> moving old /var/lib/pacman to /var/lib/pacman.bak..."
+mv /var/lib/pacman /var/lib/pacman.bak
+
+echo "==> createing new pacman db mount point @ $dbroot..."
+mkdir $dbroot
+
+echo "==> Mounting new pacman db..."
+mount -o loop $pacmandb $dbroot
+
+echo "==> md5sum'ing the new database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.new
+
+echo "==> checking integrity..."
+diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ # failed, move the old one back into place
+ umount $dbroot
+ rm $pacmandb
+ mv $dbroot.bak $dbroot
+ die_r "integrity check FAILED, reverting to old database"
+fi
+
+echo "==> Updating /etc/fstab to reflect changes..."
+echo "$pacmandb $dbroot ext2 loop,defaults 0 0" >> /etc/fstab
+
+rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new
+
+echo
+echo "Finished. Your pacman database has been caged!. May the speedy pacman be with you."
+echo
+
+exit 0
diff --git a/pcr/pactools/pt-pacman-info b/pcr/pactools/pt-pacman-info
new file mode 100644
index 000000000..c2c82f219
--- /dev/null
+++ b/pcr/pactools/pt-pacman-info
@@ -0,0 +1,77 @@
+#!/bin/sh
+# pacman-info
+# /usr/bin/pacman-info
+# GPL v2
+# neonskull [at] gmail.com
+
+VERSION="0.1"
+AUTHOR="Pvel Varela Rodrguez [aka NeOnsKuLL]"
+
+usage()
+{
+echo "pacman-info v$VERSION"
+echo "usage: `basename $0` [OPTION]
+
+OPTIONS:
+ -cr|--configured-repos List the names of configured repos in your
+ pacman.conf
+
+ -a|--all Calculates the total number of available
+ packages in your repos
+
+ -br|--by-repo Calculates the total number of available
+ packages in each repo
+
+ -i|--installed Calculates the number of installed packages
+
+ -f|--full Generates a full Report
+
+ -h|--help Show this message
+
+ -v|--version Show version
+"
+}
+
+[ "$#" -lt 1 ] && PARAM="-h";
+[ "$#" -gt 1 ] && PARAM="*";
+[ "$#" -eq 1 ] && PARAM="$1";
+
+case $PARAM in
+ "-a"|"--all")
+ echo -e "Repositories information (total of packages in repos): `pacman -Sl|wc -l`"
+ ;;
+ "-cr"|"--configured-repos")
+ echo "Repositories information (name of configured repos):"
+ pacman -Sl|awk '{print $1}'|cut -d"/" -f 2|uniq -c|awk '{print "* " $2}'
+ ;;
+ "-br"|"--by-repo")
+ echo "Repositories information (number of packages by repo):"
+ pacman -Sl|awk '{print $1}'|cut -d"/" -f 2|uniq -c|awk '{print ":: "$2 "\t-> " $1 "\tpkgs"}'
+ ;;
+ "-i"|"--installed")
+ echo -e "System information (total of installed packages): `pacman -Q|wc -l`"
+ ;;
+ "-f"|"--full")
+ echo -e "Full Report about Repositories and Packages for Archlinux"
+ echo -e "Node name: `uname -n`\n"
+ $0 -cr
+ echo
+ $0 -a
+ echo
+ $0 -br
+ echo
+ $0 -i
+ echo
+ echo -e "Generated using `$0 -v` by $AUTHOR"
+ ;;
+ "-h"|"--help")
+ usage
+ ;;
+ "-v"|"--version")
+ echo "`basename $0` v$VERSION"
+ ;;
+ *)
+ echo "Error! Unknown parameter."
+ usage
+ ;;
+esac
diff --git a/pcr/pactools/pt-pacman-uncage b/pcr/pactools/pt-pacman-uncage
new file mode 100644
index 000000000..12b7e41d3
--- /dev/null
+++ b/pcr/pactools/pt-pacman-uncage
@@ -0,0 +1,108 @@
+
+#!/bin/bash
+#
+# pacman-uncage
+#
+# Copyright (c) 2002-2006 by Andrew Rose <rose.andrew@gmail.com>
+# I used Judds pacman-optimise as a framework.
+#
+# 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.
+#
+
+myver='2.9.8'
+dbroot="/var/lib/pacman"
+tmproot="/var/lib/pacman.new"
+pacmandb="/var/lib/pacman.db"
+
+usage() {
+ echo "pacman-uncage $myver"
+ echo "usage: $0 [pacman_db_root]"
+ echo
+ echo "pacman-uncage returns your pacman db to the generic style."
+ echo
+}
+
+die() {
+ echo "pacman-uncage: $*" >&2
+ exit 1
+}
+
+die_r() {
+ rm -f /tmp/pacman.lck
+ die $*
+}
+
+if [ "$1" != "" ]; then
+ if [ "$1" = "-h" -o "$1" = "--help" ]; then
+ usage
+ exit 0
+ fi
+ dbroot=$1
+fi
+
+if [ "`id -u`" != 0 ]; then
+ die "You must be root to uncage the database"
+fi
+
+# make sure pacman isn't running
+if [ -f /tmp/pacman.lck ]; then
+ die "Pacman lockfile was found. Cannot run while pacman is running."
+fi
+
+if [ ! -d $dbroot ]; then
+ die "$dbroot does not exist or is not a directory"
+fi
+
+# don't let pacman run while we do this
+touch /tmp/pacman.lck
+
+# step 1: sum the old db
+echo "==> md5sum'ing the old database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.old
+
+echo "==> copying pacman.db contents back, note: the time needed to get a brew is now."
+mkdir $tmproot
+cp -a $dbroot/. $tmproot
+
+echo "==> unmounting old dbroot and moving new one in"
+umount $dbroot
+rmdir $dbroot
+mv $tmproot $dbroot
+
+echo "==> md5sum'ing the new database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.new
+
+echo "==> checking integrity..."
+diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ # failed, move the old one back into place
+ rm -rf $dbroot
+ mkdir $dbroot
+ mount -a
+ die_r "integrity check FAILED, reverting to old database"
+fi
+
+echo "==> Removing old pacman.db"
+rm $pacmandb
+
+rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new
+
+echo
+echo "Finished. Your pacman database has been uncaged!. Welcome home."
+echo "You will need to remove the old mount line from your /etc/fstab"
+echo
+
+exit 0
diff --git a/pcr/pactools/pt-pacsize b/pcr/pactools/pt-pacsize
new file mode 100644
index 000000000..e70a34597
--- /dev/null
+++ b/pcr/pactools/pt-pacsize
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+##AUTHOR: hads
+##See: http://bbs.archlinux.org/viewtopic.php?t=20971
+
+for i in /var/lib/pacman/local/*; do
+ PKG=`echo $i | cut -d '/' -f 6`
+ SIZE=`grep -A 1 SIZE $i/desc | tail -1`
+ if [ -x /usr/bin/bc ]; then
+ if [ $SIZE -gt 1024 ]; then
+ if [ $SIZE -gt 1048576 ]; then
+ SIZE=`echo "scale=1;$SIZE/1048576" | bc`M
+ else
+ SIZE=`echo "scale=1;$SIZE/1024" | bc`K
+ fi
+ else
+ SIZE={$SIZE}B
+ fi
+ fi
+ echo "$PKG | $SIZE"
+done
diff --git a/pcr/pactools/pt-repolist b/pcr/pactools/pt-repolist
new file mode 100644
index 000000000..5f15fe462
--- /dev/null
+++ b/pcr/pactools/pt-repolist
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+pacman -Qi >./all_files
+
+if [ -z "$1" ] ; then
+ echo -e "\033[0;37mNo repo given!"
+ echo " usage: scriptname reponame"
+fi
+
+reponame=$1
+list=$1_list
+pacman -Sl $reponame >./$list
+sed -i "s|\$reponame |g|" ./$list
+repo=`cat ./$list | cut --fields 2 --delim " "`
+
+for pkg in $repo ; do
+ if [[ $(cat ./all_files | grep -w "$pkg") ]] ; then
+ echo -e "\033[0;34m$pkg\033[0;37m is installed"
+ echo "$pkg" >>./installed_files
+ elif [ "$2" == "all" ] ; then
+ echo -e "\033[0;31m$pkg\033[0;37m is NOT installed"
+ fi
+done
+
+echo
+echo -n "Would you like to save the names of these pkgs to a file? (Y/n) "
+read choice
+if [ "$choice" == "Y" -o "$choice" == "y" ] ; then
+ echo "Currently in `pwd`"
+ echo -n " Save as: "
+ read filename
+ if [ -z $filename ] ; then
+ echo "No name given saved as ./installed_files_$reponame"
+ cp -u ./installed_files ./installed_files_$reponame
+ else
+ cp -u ./installed_files $filename
+ fi
+ rm ./installed_files
+else
+ rm ./installed_files
+fi
+rm ./$list ./all_files
diff --git a/pcr/pandoc/PKGBUILD b/pcr/pandoc/PKGBUILD
new file mode 100644
index 000000000..4802e5d46
--- /dev/null
+++ b/pcr/pandoc/PKGBUILD
@@ -0,0 +1,102 @@
+# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
+# Based on haskell-pandoc
+
+# Run `makepkg -sp SRCBUILD` if you want to update the source tarball
+
+pkgname=pandoc-static
+_pkgname=pandoc
+pkgver=1.12.3.1
+pkgrel=1
+pkgdesc='Conversion between markup formats (no Haskell libs)'
+url='http://johnmacfarlane.net/pandoc/'
+license=('GPL')
+arch=('i686' 'x86_64')
+# Needed for pandoc-citeproc
+depends=('icu>=52' 'icu<=53')
+makedepends=('ghc' 'sh' 'cabal-install' 'alex' 'happy')
+options=(strip !makeflags !distcc !emptydirs)
+source=(https://repo.parabolagnulinux.org/other/$pkgname/${_pkgname}-${pkgver}-1-any.src.tar.xz{,.sig}
+ SRCBUILD)
+sha256sums=('0fae0b3aaddd04219b882a421a6b977163ed9de8649c7023738e815661a77406'
+ 'SKIP'
+ '37af943126e85c2c6679d66f343d90b55e38429c9dec2f024afe9e191aa596f5')
+replaces=('pandoc')
+provides=('pandoc')
+optdepends=('texlive-most: for pdf creation')
+
+# PKGBUILD functions
+build() {
+ mkdir -p ${srcdir}/{build,${_pkgname}-${pkgver}}
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+# pandoc-citeproc needs hsb2hs
+ export PATH=${srcdir}/build/usr/bin:$PATH
+
+ while read _hkpkg; do
+# Skip already built
+ [ -d ${srcdir}/build/usr/lib/$_hkpkg ] && continue
+
+ pushd ${srcdir}/${_pkgname}-${pkgver}/${_hkpkg} >/dev/null
+
+ msg2 "Building $_hkpkg"
+
+ case $_hkpkg in
+ $_pkgname-$pkgver)
+ HOME=${srcdir}/${_pkgname}-${pkgver} \
+ cabal configure --prefix=/usr \
+ --libdir=${srcdir}/build/usr/lib -v
+
+ HOME=${srcdir}/${_pkgname}-${pkgver} \
+ cabal build
+
+ HOME=${srcdir}/${_pkgname}-${pkgver} \
+ cabal register --inplace
+ ;;
+
+ pandoc-citeproc*)
+ HOME=${srcdir}/${_pkgname}-${pkgver} \
+ cabal configure --flags='small_base embed_data_files bibutils hexpat unicode_collation' \
+ --libdir=${srcdir}/build/usr/lib \
+ --prefix=/usr -v
+
+ HOME=${srcdir}/${_pkgname}-${pkgver} \
+ cabal build
+ ;;
+
+ *)
+ HOME=${srcdir}/${_pkgname}-${pkgver} \
+ cabal install --prefix=${srcdir}/build/usr --flags="embed_data_files"
+ ;;
+ esac
+
+ popd >/dev/null
+ done <BUILDORDER
+
+}
+
+package() {
+ cd ${srcdir}/${_pkgname}-${pkgver}/${_pkgname}-${pkgver}
+
+ runghc Setup.hs copy --destdir=${pkgdir}/
+
+ cd ${srcdir}/${_pkgname}-${pkgver}/pandoc-citeproc*
+ runghc Setup.hs copy --destdir=${pkgdir}/
+
+# For some reason the library is installed anyway
+# Remove all files and !emptydirs takes care of the rest
+ msg2 "Removing lib files..."
+ find ${pkgdir} -iname lib -print0 | xargs -0 rm -rvf
+
+ cp -av ${srcdir}/build/usr/bin/* ${pkgdir}/usr/bin/
+
+# EC is unfree and makes Parabola TeXLive cry
+# besides, it's unneeded
+ sed "/fontenc/d" -i ${pkgdir}/usr/share/${_pkgname}-${pkgver}/data/templates/default.latex
+
+ find ${pkgdir}/usr/share -type f -exec chmod 644 {} \;
+ find ${pkgdir}/usr/share -type d -exec chmod 755 {} \;
+
+ msg2 "Installing licenses"
+ install -d ${pkgdir}/usr/share/licenses
+ cp -rv ${srcdir}/build/usr/share/doc/* ${pkgdir}/usr/share/licenses/
+}
diff --git a/pcr/pandoc/SRCBUILD b/pcr/pandoc/SRCBUILD
new file mode 100644
index 000000000..b18bad17b
--- /dev/null
+++ b/pcr/pandoc/SRCBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
+# Based on haskell-pandoc
+
+pkgname=pandoc
+pkgver=1.12.3.1
+pkgrel=1
+pkgdesc='Conversion between markup formats (no Haskell libs)'
+url='http://johnmacfarlane.net/pandoc/'
+license=('GPL')
+arch=('any')
+makedepends=('ghc' 'sh' 'cabal-install')
+source=()
+options=(!strip)
+
+# PKGBUILD functions
+build() {
+ mkdir -p ${srcdir}/{build,${pkgname}-${pkgver}}
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ HOME=${srcdir}/${pkgname}-${pkgver} \
+ cabal --verbose=3 update
+
+ HOME=${srcdir}/${pkgname}-${pkgver} \
+ cabal --verbose=3 fetch hs-bibutils network hexpat text-0.11.3.1 text-icu hsb2hs ${pkgname}-${pkgver} pandoc-citeproc
+
+ msg2 "Getting the dependency build order"
+# Ignore the cabal messages
+ HOME=${srcdir}/${pkgname}-${pkgver} \
+ cabal install --flags="embed_data_files bibutils hexpat unicode_collation" --dry-run text-0.11.3.1 hsb2hs ${pkgname}-${pkgver} pandoc-citeproc |
+ grep "\-[0-9]\+" |
+ tee BUILDORDER
+}
+
+package() {
+ export PKGEXT=.src.tar.xz
+ export PKGDEST=${SRCDEST}
+
+ mkdir -p ${pkgdir}/${pkgname}-${pkgver}
+ cd ${pkgdir}/${pkgname}-${pkgver}
+
+ find ${srcdir}/${pkgname}-${pkgver} -iname '*.tar.?z' -a \! -iname '00-index.tar.gz' -exec \
+ bsdtar xvf '{}' \;
+
+ cp ${srcdir}/${pkgname}-${pkgver}/BUILDORDER .
+}
diff --git a/pcr/pandoc/citeproc-hs-pre-0.3.7.patch b/pcr/pandoc/citeproc-hs-pre-0.3.7.patch
new file mode 100644
index 000000000..754a9ac2e
--- /dev/null
+++ b/pcr/pandoc/citeproc-hs-pre-0.3.7.patch
@@ -0,0 +1,292 @@
+Fri Nov 9 09:31:27 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ * fix issue #28
+ add support for generating links to the DOI database.
+Thu Nov 8 21:05:02 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ * fix issue #35
+Thu Nov 8 18:24:16 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ * a simple script for creating tests
+Thu Nov 8 18:21:56 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ * fix a bug in convertQuoted which was producing stack overflows with long strings
+Thu Nov 8 17:27:38 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ * fix editJsonInput in order to read the native JSON bibliographic data format
+Thu Nov 8 14:03:26 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ * fix issue #37
+Fri Oct 26 18:45:09 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ * bump version number
+Fri Oct 26 13:53:20 ART 2012 Andrea Rossato <andrea.rossato@unitn.it>
+ tagged 0.3.6
+diff -rN -u old-citeproc-hs/README new-citeproc-hs/README
+--- old-citeproc-hs/README 2013-01-22 22:19:52.097159333 -0300
++++ new-citeproc-hs/README 2013-01-22 22:19:52.107159567 -0300
+@@ -169,6 +169,21 @@
+
+ Summer, 2001 (the season)
+
++### The DOI variable
++
++If the DOI variable is prefixed by a `doi:` like:
++
++ doi = {doi:10.1038/171737a0}
++
++the processor will generate a link and produce this pandoc native
++representation:
++
++ Link [Str "10.1038/171737a0"] ("http://dx.doi.org/10.1038/171737a0", "10.1038/171737a0")
++
++that produces a link like:
++
++ <a href="http://dx.doi.org/10.1038/171737a0">10.1038/171737a0</a>
++
+ ### Running the test-suite
+
+ To run the test suite, you first need to grab it with [mercurial] by
+diff -rN -u old-citeproc-hs/citeproc-hs.cabal new-citeproc-hs/citeproc-hs.cabal
+--- old-citeproc-hs/citeproc-hs.cabal 2013-01-22 22:19:52.103826157 -0300
++++ new-citeproc-hs/citeproc-hs.cabal 2013-01-22 22:19:52.107159567 -0300
+@@ -1,5 +1,5 @@
+ name: citeproc-hs
+-version: 0.3.6
++version: 0.3.7
+ homepage: http://gorgias.mine.nu/repos/citeproc-hs/
+ synopsis: A Citation Style Language implementation in Haskell
+
+diff -rN -u old-citeproc-hs/src/Text/CSL/Eval/Output.hs new-citeproc-hs/src/Text/CSL/Eval/Output.hs
+--- old-citeproc-hs/src/Text/CSL/Eval/Output.hs 2013-01-22 22:19:52.097159333 -0300
++++ new-citeproc-hs/src/Text/CSL/Eval/Output.hs 2013-01-22 22:19:52.123826603 -0300
+@@ -29,7 +29,11 @@
+ appendOutput fm xs = if xs /= [] then [Output xs fm] else []
+
+ outputList :: Formatting -> Delimiter -> [Output] -> [Output]
+-outputList fm d = appendOutput fm . addDelim d
++outputList fm d = appendOutput fm . addDelim d . map cleanOutput'
++ where
++ cleanOutput' o
++ | Output xs f <- o = Output (cleanOutput xs) f
++ | otherwise = rmEmptyOutput o
+
+ cleanOutput :: [Output] -> [Output]
+ cleanOutput = flatten
+@@ -37,12 +41,16 @@
+ flatten [] = []
+ flatten (o:os)
+ | ONull <- o = flatten os
+- | Output [] _ <- o = flatten os
+- | OStr [] _ <- o = flatten os
+- | OUrl [] _ <- o = flatten os
+ | Output xs f <- o
+ , f == emptyFormatting = flatten xs ++ flatten os
+- | otherwise = o : flatten os
++ | otherwise = rmEmptyOutput o : flatten os
++
++rmEmptyOutput :: Output -> Output
++rmEmptyOutput o
++ | Output [] _ <- o = ONull
++ | OStr [] _ <- o = ONull
++ | OUrl t _ <- o = if null (fst t) then ONull else o
++ | otherwise = o
+
+ addDelim :: String -> [Output] -> [Output]
+ addDelim d = foldr (\x xs -> if length xs < 1 then x : xs else check x xs) []
+diff -rN -u old-citeproc-hs/src/Text/CSL/Eval.hs new-citeproc-hs/src/Text/CSL/Eval.hs
+--- old-citeproc-hs/src/Text/CSL/Eval.hs 2013-01-22 22:19:52.093825923 -0300
++++ new-citeproc-hs/src/Text/CSL/Eval.hs 2013-01-22 22:19:52.120493193 -0300
+@@ -25,6 +25,7 @@
+ import Control.Applicative ( (<$>) )
+ import Control.Monad.State
+ import Data.Char
++import Data.List
+ import qualified Data.Map as M
+ import Data.Maybe
+
+@@ -153,7 +154,12 @@
+ "title" -> formatTitle f fm
+ "locator" -> getLocVar >>= formatRange fm . snd
+ "url" -> getStringVar "url" >>= \k ->
+- if null k then return [] else return [OUrl k fm]
++ if null k then return [] else return [OUrl (k,k) fm]
++ "doi" -> getStringVar "doi" >>= \d ->
++ if "doi:" `isPrefixOf` d
++ then let d' = drop 4 d in
++ return [OUrl ("http://dx.doi.org/" ++ d', d') fm]
++ else return [OStr d fm]
+ _ -> gets (env >>> options &&& abbrevs) >>= \(opts,as) ->
+ getVar [] (getFormattedValue opts as f fm s) s >>= \r ->
+ consumeVariable s >> return r
+diff -rN -u old-citeproc-hs/src/Text/CSL/Input/Json.hs new-citeproc-hs/src/Text/CSL/Input/Json.hs
+--- old-citeproc-hs/src/Text/CSL/Input/Json.hs 2013-01-22 22:19:52.100492747 -0300
++++ new-citeproc-hs/src/Text/CSL/Input/Json.hs 2013-01-22 22:19:52.123826603 -0300
+@@ -106,6 +106,7 @@
+ , JSObject js <- j = (camel s , JSArray (editDate $ fromJSObject js))
+ | "family" <- s = ("familyName" , j)
+ | "suffix" <- s = ("nameSuffix" , j)
++ | "URL" <- s = ("url" , j)
+ | "edition" <- s = ("edition" , toString j)
+ | "volume" <- s = ("volume" , toString j)
+ | "issue" <- s = ("issue" , toString j)
+@@ -122,7 +123,7 @@
+ camel x
+ | '-':y:ys <- x = toUpper y : camel ys
+ | '_':y:ys <- x = toUpper y : camel ys
+- | y:ys <- x = toLower y : camel ys
++ | y:ys <- x = y : camel ys
+ | otherwise = []
+
+ format (x:xs) = toUpper x : xs
+diff -rN -u old-citeproc-hs/src/Text/CSL/Output/Pandoc.hs new-citeproc-hs/src/Text/CSL/Output/Pandoc.hs
+--- old-citeproc-hs/src/Text/CSL/Output/Pandoc.hs 2013-01-22 22:19:52.100492747 -0300
++++ new-citeproc-hs/src/Text/CSL/Output/Pandoc.hs 2013-01-22 22:19:52.123826603 -0300
+@@ -60,7 +60,7 @@
+ | FS str fm <- fo = toPandoc fm $ toStr str
+ | FN str fm <- fo = toPandoc fm $ toStr $ rmZeros str
+ | FO fm xs <- fo = toPandoc fm $ rest xs
+- | FUrl u fm <- fo = toPandoc fm [Link (toStr u) (u,u)]
++ | FUrl u fm <- fo = toPandoc fm [Link (toStr $ snd u) u]
+ | otherwise = []
+ where
+ addSuffix f i
+@@ -176,8 +176,10 @@
+ | Quoted t inls <- i
+ , b = case headInline is of
+ [x] -> if isPunctuation x
+- then Quoted t (reverseQuoted t inls ++ [Str [x]]) : clean' s b (tailInline is)
+- else Quoted t (reverseQuoted t inls ) : clean' s b is
++ then if lastInline inls `elem` [".",",",";",":","!","?"]
++ then Quoted t (reverseQuoted t inls ) : clean' s b (tailInline is)
++ else Quoted t (reverseQuoted t inls ++ [Str [x]]) : clean' s b (tailInline is)
++ else Quoted t (reverseQuoted t inls) : clean' s b is
+ _ -> Quoted t (reverseQuoted t inls) : clean' s b is
+ | Quoted t inls <- i = Quoted t (reverseQuoted t inls) : clean' s b is
+ | otherwise = if lastInline [i] == headInline is && isPunct
+@@ -232,7 +234,7 @@
+ startWithPunct = and . map (`elem` ".,;:!?") . headInline
+
+ convertQuoted :: Style -> [Inline] -> [Inline]
+-convertQuoted s = proc convertQuoted'
++convertQuoted s = convertQuoted'
+ where
+ locale = let l = styleLocale s in case l of [x] -> x; _ -> Locale [] [] [] [] []
+ getQuote x y = entityToChar . fst . fromMaybe (x,[]) . lookup (y,Long) . localeTermMap $ locale
+diff -rN -u old-citeproc-hs/src/Text/CSL/Parser.hs new-citeproc-hs/src/Text/CSL/Parser.hs
+--- old-citeproc-hs/src/Text/CSL/Parser.hs 2013-01-22 22:19:52.103826157 -0300
++++ new-citeproc-hs/src/Text/CSL/Parser.hs 2013-01-22 22:19:52.120493193 -0300
+@@ -23,7 +23,6 @@
+ #ifdef EMBED_DATA_FILES
+ import Data.FileEmbed
+ import qualified Data.ByteString as S
+-import Data.ByteString.UTF8 ( toString )
+ #else
+ import Paths_citeproc_hs ( getDataFileName )
+ import System.Directory ( doesFileExist )
+@@ -69,7 +68,7 @@
+ return s { styleLocale = mergeLocales (styleDefaultLocale s) l (styleLocale s)}
+
+ #ifdef EMBED_DATA_FILES
+-localeFiles :: [(FilePath, L.ByteString)]
++localeFiles :: [(FilePath, S.ByteString)]
+ localeFiles = $(embedDir "locales/")
+ #endif
+
+@@ -86,7 +85,7 @@
+ | otherwise -> case lookup ("locales-" ++ take 5 x ++ ".xml") localeFiles of
+ Just x' -> return x'
+ _ -> error "could not load the locale file"
+- return $ readXmlString xpLocale f
++ return $ readXmlString xpLocale $ L.fromChunks [f]
+ #else
+ f <- case s of
+ x | length x == 2 -> getDataFileName ("locales/locales-" ++
+diff -rN -u old-citeproc-hs/src/Text/CSL/Style.hs new-citeproc-hs/src/Text/CSL/Style.hs
+--- old-citeproc-hs/src/Text/CSL/Style.hs 2013-01-22 22:19:52.093825923 -0300
++++ new-citeproc-hs/src/Text/CSL/Style.hs 2013-01-22 22:19:52.120493193 -0300
+@@ -20,7 +20,7 @@
+ , everywhere', everything, mkT, mkQ)
+ import qualified Data.Map as M
+ import Text.JSON
+-import Text.Pandoc.Definition ( Inline )
++import Text.Pandoc.Definition ( Inline, Target )
+
+ -- | The representation of a parsed CSL style.
+ data Style
+@@ -309,8 +309,8 @@
+ = FO Formatting [FormattedOutput] -- ^ List of 'FormatOutput' items
+ | FN String Formatting -- ^ Formatted number
+ | FS String Formatting -- ^ Formatted string
+- | FUrl String Formatting -- ^ Formatted uniform resource locator (URL)
+ | FDel String -- ^ Delimeter string
++ | FUrl Target Formatting -- ^ Formatted URL
+ | FPan [Inline] -- ^ Pandoc inline elements
+ | FNull -- ^ Null formatting item
+ deriving ( Eq, Show )
+@@ -331,7 +331,7 @@
+ | OContrib String String [Output] [Output] [[Output]] -- ^ The citation key, the role (author, editor, etc.), the contributor(s),
+ -- the output needed for year suf. disambiguation, and everything used for
+ -- name disambiguation.
+- | OUrl String Formatting -- ^ A uniform resource locator (URL)
++ | OUrl Target Formatting -- ^ An URL
+ | OLoc [Output] Formatting -- ^ The citation's locator
+ | Output [Output] Formatting -- ^ Some nested 'Output'
+ deriving ( Eq, Ord, Show, Typeable, Data )
+diff -rN -u old-citeproc-hs/src/Text/CSL/Test.hs new-citeproc-hs/src/Text/CSL/Test.hs
+--- old-citeproc-hs/src/Text/CSL/Test.hs 2013-01-22 22:19:52.103826157 -0300
++++ new-citeproc-hs/src/Text/CSL/Test.hs 2013-01-22 22:19:52.120493193 -0300
+@@ -45,7 +45,8 @@
+ import Text.CSL.Style
+ import Text.Pandoc.Definition
+ #ifdef EMBED_DATA_FILES
+-import Data.ByteString.UTF8 ( toString )
++import qualified Data.ByteString.Lazy as L
++import qualified Data.ByteString.UTF8 as U
+ import Text.CSL.Parser ( localeFiles )
+ #else
+ import System.IO.Unsafe
+@@ -217,7 +218,7 @@
+ | otherwise -> take 5 x
+ #ifdef EMBED_DATA_FILES
+ ls <- case lookup ("locales-" ++ locale ++ ".xml") localeFiles of
+- Just x' -> return $ readXmlString xpLocale (toString x')
++ Just x' -> return $ readXmlString xpLocale $ L.fromChunks [x']
+ _ -> return $ Locale [] [] [] [] []
+ #else
+ ls' <- getCachedLocale locale
+diff -rN -u old-citeproc-hs/test/createTest.hs new-citeproc-hs/test/createTest.hs
+--- old-citeproc-hs/test/createTest.hs 1969-12-31 21:00:00.000000000 -0300
++++ new-citeproc-hs/test/createTest.hs 2013-01-22 22:19:52.123826603 -0300
+@@ -0,0 +1,37 @@
++import System.Environment
++import Text.CSL
++import Text.CSL.Test
++import Text.JSON.Generic
++
++main :: IO ()
++main = do
++ args <- getArgs
++ case args of
++ [c,r] -> readStruff c r [] >>= putStrLn
++ _ -> error "usage: kljlkjljlkjlkjl"
++
++readStruff :: String -> String -> String -> IO String
++readStruff c r s = do
++ c' <- readFile c
++ r' <- readBiblioFile r
++ return $ mode "citation" ++ result [] ++ citationItems r' ++ csl c' ++ input r'
++
++mode :: String -> String
++mode s = ">>===== MODE =====>>\n" ++ s ++ "\n<<===== MODE =====<<\n\n"
++
++result :: String -> String
++result s = ">>===== RESULT =====>>\n" ++ s ++ "\n<<===== RESULT =====<<\n\n"
++
++citationItems :: [Reference] -> String
++citationItems l = ">>===== CITATION-ITEMS =====>>\n[\n [\n" ++ toId ++
++ "\n ]\n]\n<<===== CITATION-ITEMS =====<<\n\n"
++ where
++ toId = foldr addComma [] toStringList
++ addComma x xs = if length xs < 1 then x ++ xs else x ++ ",\n" ++ xs
++ toStringList = flip map l $ \x -> " {\n \"id\": \"" ++ refId x ++ "\"\n }"
++
++csl :: String -> String
++csl s = ">>===== CSL =====>>\n" ++ s ++ "<<===== CSL =====<<\n\n"
++
++input :: [Reference] -> String
++input s = ">>===== INPUT =====>>\n" ++ encodeJSON s ++ "\n<<===== INPUT =====<<\n\n"
+\ No newline at end of file
diff --git a/pcr/par/PKGBUILD b/pcr/par/PKGBUILD
new file mode 100644
index 000000000..2a6c0fac3
--- /dev/null
+++ b/pcr/par/PKGBUILD
@@ -0,0 +1,38 @@
+# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
+# Contributor: quantax -- contact via Arch Linux forum or AUR
+
+pkgname=par
+pkgver=1.52
+pkgrel=3
+pkgdesc="Paragraph reformatter"
+url="http://www.nicemice.net/par/"
+depends=('glibc')
+arch=(i686 x86_64)
+license=('Custom')
+source=(http://www.nicemice.net/par/Par152-autoconf.tar.gz
+ http://www.nicemice.net/par/par_1.52-i18n.3.diff.gz
+ http://www.nicemice.net/par/Par152.tar.gz )
+md5sums=('83e4d23a943ab07c44dd995b73195c70'
+ 'e79b448cb14323a39d817afce4847cdf'
+ '4ccacd824171ba2c2f14fb8aba78b9bf')
+
+prepare() {
+ cd $srcdir/Par152
+
+ patch -p1 -i $srcdir/par_1.52-i18n.3.diff
+}
+
+build() {
+ cd $srcdir/Par152
+
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd $srcdir/Par152
+ install --mode=755 -D par "${pkgdir}/usr/bin/par"
+ install --mode=644 -D par.1 "${pkgdir}/usr/share/man/man1/par.1"
+ install --mode=644 -D par.doc "${pkgdir}/usr/share/licenses/${pkgname}/par.doc"
+}
diff --git a/pcr/pdsh/PKGBUILD b/pcr/pdsh/PKGBUILD
new file mode 100644
index 000000000..0f4fc2461
--- /dev/null
+++ b/pcr/pdsh/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: drrossum <d.r.vanrossum at gmx.de>
+# Contributor: sh0 <mee@sh0.org>
+# Maintainer : Aurelien Desbrieres <aurelien@xload.io>
+
+pkgname=pdsh
+pkgver=2.29
+pkgrel=2
+pkgdesc='Parallel Distributed Shell'
+url='http://code.google.com/p/pdsh/'
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc' 'openssh' 'readline')
+optdepends=('perl: required by the dshbak utility')
+options=('libtool')
+source=("http://pdsh.googlecode.com/files/$pkgname-$pkgver.tar.bz2")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --without-rsh \
+ --with-ssh \
+ --with-dshgroups \
+ --with-readline || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/" install || return 1
+ rmdir "${pkgdir}/usr/sbin"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/perl-astro-suntime/PKGBUILD b/pcr/perl-astro-suntime/PKGBUILD
new file mode 100644
index 000000000..d615aa3af
--- /dev/null
+++ b/pcr/perl-astro-suntime/PKGBUILD
@@ -0,0 +1,29 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: Ross melin <rdmelin@gmail.com>
+
+# Required by zoneminder
+
+pkgname=perl-astro-suntime
+pkgver=0.01
+pkgrel=2
+pkgdesc="Calculate sun rise/set times"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~ROBF/Astro-SunTime"
+license=('GPL' 'PerlArtistic')
+depends=('perl-time-modules')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/R/RO/ROBF/Astro-SunTime-$pkgver.tar.gz)
+md5sums=('4657927a49604494bfaaa153663b90b9')
+
+build() {
+ cd $startdir/src/Astro-SunTime-$pkgver
+ eval `perl -V:archname`
+ PERL_MM_USE_DEFAULT=1 /usr/bin/perl Makefile.PL \
+ INSTALLDIRS=vendor || return 1
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=$startdir/pkg install || return 1
+ /usr/bin/find $startdir/pkg -name '.packlist' -delete
+ /usr/bin/find $startdir/pkg -name '*.pod' -delete
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/perl-crypt-dh/PKGBUILD b/pcr/perl-crypt-dh/PKGBUILD
new file mode 100644
index 000000000..e2c9b5a3c
--- /dev/null
+++ b/pcr/perl-crypt-dh/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer (AUR): Michael Witten
+#
+# Derived from perl-crypt-blowfish:
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Charles Mauch <cmauch@gmail.com>
+#
+# Contributor: Pedro Alejandro López-Valencia <palopezv@gmail.com>
+
+pkgname=perl-crypt-dh
+pkgver=0.07
+pkgrel=3
+
+pkgdesc='Perl/CPAN Module Crypt::DH: Diffie-Hellman key exchange system'
+
+_cpan_name=Crypt-DH-$pkgver
+url=http://search.cpan.org/~mithaldu/$_cpan_name/lib/Crypt/DH.pm
+
+license=(GPL PerlArtistic)
+source=("http://search.cpan.org/CPAN/authors/id/M/MI/MITHALDU/$_cpan_name.tar.gz")
+md5sums=(5494c91420bf77de4af808fcafb6c3ce)
+
+arch=(any)
+makedepends=(make)
+depends=(perl perl-math-bigint-gmp)
+
+build()
+{
+ cd "$srcdir/$_cpan_name"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check()
+{
+ cd "$srcdir/$_cpan_name"
+ make test
+}
+
+package()
+{
+ cd "$srcdir/$_cpan_name"
+ make pure_install DESTDIR="$pkgdir"
+
+ cd "$pkgdir"
+ find . -name '.packlist' -delete
+ find . -name '*.pod' -delete
+}
diff --git a/pcr/perl-expect/PKGBUILD b/pcr/perl-expect/PKGBUILD
new file mode 100644
index 000000000..fefa03a0b
--- /dev/null
+++ b/pcr/perl-expect/PKGBUILD
@@ -0,0 +1,52 @@
+# CPAN Name : Expect
+# Contributor: Max Roder <maxroder@web.de>
+# Contributor: DarkHeart
+# Generator : CPANPLUS::Dist::Arch 1.19
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname='perl-expect'
+pkgver='1.21'
+pkgrel='2'
+pkgdesc="Perl version of Don Libes' Tcl-Expect"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl-io-tty>=1.03')
+makedepends=()
+url='http://search.cpan.org/dist/Expect'
+source=('http://search.cpan.org/CPAN/authors/id/R/RG/RGIERSIG/Expect-1.21.tar.gz')
+md5sums=('a151b0dc4d1a35c73941c65b7c26da5b')
+sha512sums=('496716b9e6544e9d6809b7f704df8199291d18ec9ec9ebb4fd2b7b341aa10d9b03989335c1f22d1faddbff0974ceba5b2823685fa08ce6a75e2f3ccaeb944e74')
+_distdir="${srcdir}/Expect-1.21"
+
+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/pcr/perl-file-find-rule/PKGBUILD b/pcr/perl-file-find-rule/PKGBUILD
new file mode 100644
index 000000000..7953217a3
--- /dev/null
+++ b/pcr/perl-file-find-rule/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Blaž Tomažič <blaz.tomazic@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=perl-file-find-rule
+_realname=File-Find-Rule
+pkgver=0.33
+pkgrel=1
+pkgdesc="Perl/CPAN Module File::Find::Rule."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://search.cpan.org/dist/File-Find-Rule/"
+depends=('perl-text-glob' 'perl-number-compare' 'perl')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/R/RC/RCLAMP/${_realname}-${pkgver}.tar.gz)
+
+build() {
+ cd $startdir/src/${_realname}-$pkgver
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
+
diff --git a/pcr/perl-geo-ipfree/PKGBUILD b/pcr/perl-geo-ipfree/PKGBUILD
new file mode 100644
index 000000000..394e38ca1
--- /dev/null
+++ b/pcr/perl-geo-ipfree/PKGBUILD
@@ -0,0 +1,28 @@
+_author=bricas
+_perlmod=Geo-IPfree
+pkgname=perl-geo-ipfree
+pkgver=1.131650
+pkgrel=1
+pkgdesc="An IPv4 to country lookup database"
+arch=('any')
+url="http://search.cpan.org/~$_author/$_perlmod-$pkgver/"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/B/BR/BRICAS/$_perlmod-$pkgver.tar.gz)
+md5sums=('23d71e4f9a872184d9b4c6903c5a2b98')
+
+build() {
+ cd "$srcdir/$_perlmod-$pkgver"
+
+ # Install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd "$srcdir/$_perlmod-$pkgver"
+ make install DESTDIR="$pkgdir/"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/perl-iptables-chainmgr/PKGBUILD b/pcr/perl-iptables-chainmgr/PKGBUILD
new file mode 100644
index 000000000..e45a1faf3
--- /dev/null
+++ b/pcr/perl-iptables-chainmgr/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Weirch Sodora <sodora@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=perl-iptables-chainmgr
+pkgver=1.2
+pkgrel=1
+pkgdesc="IPTables::ChainMgr - Perl extension for manipulating iptables and ip6tables policies"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~mrash/IPTables-ChainMgr/"
+license=('GPL' 'PerlArtistic')
+depends=('perl' 'iptables' 'perl-iptables-parse>=0.9' 'perl-netaddr-ip>=4.0')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/M/MR/MRASH/IPTables-ChainMgr-$pkgver.tar.gz)
+
+build() {
+ cd $startdir/src/IPTables-ChainMgr-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/pcr/perl-iptables-parse/PKGBUILD b/pcr/perl-iptables-parse/PKGBUILD
new file mode 100644
index 000000000..94fe8e17a
--- /dev/null
+++ b/pcr/perl-iptables-parse/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Weirch Sodora <sodora@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=perl-iptables-parse
+pkgver=1.1
+pkgrel=1
+pkgdesc="IPTables::Parse - Perl extension for parsing iptables and ip6tables firewall rulesets"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~mrash/IPTables-Parse/"
+license=('GPL' 'PerlArtistic')
+depends=('perl' 'iptables')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/M/MR/MRASH/IPTables-Parse-$pkgver.tar.gz)
+
+build() {
+ cd $startdir/src/IPTables-Parse-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/pcr/perl-latex-encode/PKGBUILD b/pcr/perl-latex-encode/PKGBUILD
new file mode 100644
index 000000000..ef7d98b37
--- /dev/null
+++ b/pcr/perl-latex-encode/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Moritz Bunkus <moritz@bunkus.org>
+
+pkgname=perl-latex-encode
+pkgver=0.08
+pkgrel=1
+pkgdesc="Encode characters for LaTeX formatting"
+arch=(any)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/Rose-Object/"
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/A/AN/ANDREWF/LaTeX-Encode-${pkgver}.tar.gz)
+md5sums=('0877ff573bbacdfcd6ceb130c4282ab6')
+sha1sums=('9d11a38a4eb07c86b6cc026a2163b7299bc64631')
+
+build() {
+ cd ${srcdir}/LaTeX-Encode-${pkgver}
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd ${srcdir}/LaTeX-Encode-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} '(' -name perllocal.pod -o -name .packlist ')' -delete
+}
diff --git a/pcr/perl-math-bigint-gmp/PKGBUILD b/pcr/perl-math-bigint-gmp/PKGBUILD
new file mode 100644
index 000000000..32923d432
--- /dev/null
+++ b/pcr/perl-math-bigint-gmp/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer (AUR): Pedro Alejandro López-Valencia <palopezv@gmail.com>
+
+_author=PJACKLAM
+_perlmod=Math-BigInt-GMP
+pkgname=perl-math-bigint-gmp
+pkgver=1.37
+pkgrel=2
+pkgdesc="Big integer calculations using the GNU Multiple Precision Arithmetic Library."
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~$_author/$_perlmod-$pkgver/"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.16.2' 'gmp')
+options=(!emptydirs)
+source=(http://cpan.perl.org/modules/by-authors/id/P/PJ/$_author/$_perlmod-$pkgver.tar.gz)
+md5sums=('d11bf69c0471e38191f33144079d0373')
+
+build() {
+ cd "$srcdir/$_perlmod-$pkgver"
+ # Install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "$srcdir/$_perlmod-$pkgver"
+ make test
+}
+
+package() {
+ cd "$srcdir/$_perlmod-$pkgver"
+ make install DESTDIR="$pkgdir/"
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
+
+# vim:set ts=2 sw=2 et ft=sh:
diff --git a/pcr/perl-mediawiki-api/PKGBUILD b/pcr/perl-mediawiki-api/PKGBUILD
new file mode 100644
index 000000000..7aa1fb64b
--- /dev/null
+++ b/pcr/perl-mediawiki-api/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Contributor (AUR): ryooichi <ryooichi+arch AT gmail DOT com>
+# Contributor (AUR): Uwe <keksvernichter AT gmail DOT com>
+
+_author=EXOBUZZ
+_perlmod=MediaWiki-API
+pkgname=perl-mediawiki-api
+pkgver=0.39
+pkgdesc="Perl interface to the MediaWiki API"
+license=('GPL3') # GPLv3+
+url="http://search.cpan.org/perldoc?MediaWiki::API"
+
+pkgrel=1
+
+depends=('perl-json-xs' 'perl-json')
+arch=('any')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/${_author:0:1}/${_author:0:2}/${_author}/${_perlmod}-${pkgver}.tar.gz)
+md5sums=('266b8f336241fd608b7094c830a30a55')
+
+build() {
+ cd "$srcdir/$_perlmod-$pkgver"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd "$srcdir/$_perlmod-$pkgver"
+ make install DESTDIR="$pkgdir/"
+}
diff --git a/pcr/perl-net-sftp-foreign/Changes b/pcr/perl-net-sftp-foreign/Changes
new file mode 100644
index 000000000..f730a8973
--- /dev/null
+++ b/pcr/perl-net-sftp-foreign/Changes
@@ -0,0 +1,839 @@
+Revision history for Net::SFTP::Foreign
+
+1.75 Apr 2, 2013
+ - release as stable
+
+1.74_07 Mar 21, 2013
+ - seek method was returning offset instead of success value
+ (bug report by Paul Kolano).
+
+1.74_06 Mar 12, 2013
+ - disconnect may kill some unrelated process when called
+ repeatly (bug report by Douglas Wilson)
+ - debug was clobbering $!
+
+1.74_05 Feb 5, 2013
+ - error was not being set on timeouts (bug report by Kqfh
+ Jjgrn)
+
+1.74_04 Oct 25, 2012
+ - overwriting rename of a file over itself was broken (bug
+ report by Mike Wilder)
+ - stat and lstat path arguments is now optional and defaults
+ to '.' (bug report by Paul Kolano)
+ - fstat was broken
+ - add git repository and bugtracker into meta files
+
+1.74_03 Sep 21, 2012
+ - put_content was broken (bug report by Caleb Cushing)
+ - document put_content method
+ - add more tests
+
+1.74_02 Jul 11, 2012
+ - rget was dieing when trying to copy remote symbolic links
+ - add support for get method slow-start feature: when file
+ size is unknown don't start asking for $queue_size packets
+ as it slows down the transfer of small files, instead,
+ starting from a queue size of one go gradually increasing it
+ until the stated maximum is reached (bug report by David
+ R. Wagner)
+ - parse supported2 extension
+
+1.74_01
+ - add support for password_prompt (feature request by Douglas
+ Wilson)
+
+1.73 May 11, 2012
+ - password authentication was broken on Solaris (maybe also on
+ others) due to an incorrect waitpid call (bug report and
+ solution by Douglas Wilson)
+ - disconnect was dieing when used with autodie on (bug report
+ by Douglas Wilson)
+
+1.72_02 May 4, 2012
+ - add methods truncate, chmod, chown and utime
+ - make setstat, stat and statvfs accept both a path and a
+ remote file/dir handle as its first argument
+ - deprecate fsetstat, fstat and fstatvfs
+ - refactor remove and rmdir generation
+ - add support for sparse file transfer
+ - minor doc improvements
+
+1.72_01 Mar 20, 2012
+ - add support for asks_for_username_at_login feature (feature
+ request by Horea Gligan)
+ - key_path now can accept an array
+
+1.71 Mar 14, 2012
+ - release as stable
+ - add support for vendor-id extension
+
+1.70_10 Mar 2, 2012
+ - now perm and umask can be used together on get method calls
+ - more cleanups for permission handling code on get method
+
+1.70_09 Mar 2, 2012
+ - autodie was no working for chmod errors on get
+ - get was unlinking the file when chmod failed even whith
+ append or resume set
+ - get was failing when chmod failed even if copy_perms was
+ dissabled (bug report by Rich Anderson)
+ - solve bad interaction between autodie, resume and append
+ - best_effort wrapped methods were not failing ever
+ - minor put method refactoring
+ - save globals on destructor entry
+ - better put method debugging
+
+1.70_08 Feb 19, 2012
+ - queue_size defaults per backend were using the wrong key
+ name and so being ignored. That was causing connections to
+ stall on Windows with the default backend.
+
+1.70_07 Feb 19, 2012
+ - put recovers from open calls failing due to the existence of
+ a remote file with the wrong permissions
+ - do not use accessors for status and error slots internally
+ - test_d and test_e methods where broken when used with
+ autodie, this bug may also affected rget, rput and other
+ high level methods
+
+1.70_06 Feb 13, 2012
+ - add put_content method
+ - support perm option in mget, mput, rget and rput methods
+ - better umask handling, now use an object to reset it at end
+ of scope
+ - improve debugging output
+
+1.70_05 Feb 5, 2012
+ - on Compat::get $remote argument is optional
+ - make Compat::(get|put) use best_effort by default
+ - add support for best_effort feature
+
+1.70_04 Jan 22, 2012
+ - check number of arguments passed to Compat methods
+
+1.70_03 Dec 11, 2011
+ - remove uninitialized warning when using a custom transport
+ (bug report by Kay-C. Baufeld)
+ - several spelling corrections (patch contributed by Nicholas
+ Bamber)
+
+1.70_02 Dec 10, 2011
+ - syntax error, POSIX::WNOHANG was recognized as bareword in
+ perl 5.8
+
+1.70_01 Dec 9, 2011
+ - do not use Expect to handle password authentication but a
+ hand-crafted method that uses IO::Pty directly
+ - solve problem with connections stalling when using password
+ authentication and the remote host was unreachable (bug
+ report by Srini T)
+
+1.69 Dec 9, 2011
+ - release as stable
+
+1.68_08 Oct 11, 2011
+ - accept an array reference in ssh_cmd
+ - use warnings::warnif to generate warnings
+ - minor doc improvements and corrections
+ - in case of sftp-server not found test were not skipped but
+ failed
+
+1.68_07 Oct 10, 2011
+ - password authentication was not working with the new
+ IPC::Open3 replacement code (bug report by Srini T)
+ - empty password handling was also broken
+ - allow setting the backend on all the tests
+
+1.68_06 Oct 9, 2011
+ - do not use the buggy IPC::Open3 under Unix/Linux. This is a
+ mayor internal change, please report any connection problems
+ that were not happening with previous versions of the module
+ - allow testing Windows backend under Unix
+
+1.68_05 Sep 27, 2011
+ - this version is more picky about incomplete responses to
+ stat requests when copy_perms or copy_time are enabled
+ (implicetly or explicitly) on get method
+ - handle incomplete attributes in stat response inside get
+ (bug report by Gus via the Perl Guru Forums).
+
+1.68_04 Sep 7, 2011
+ - accept passing undef as second argument to put, get, rput,
+ rget, mput and mget
+ - catch invalid undefined arguments in several places
+ - custom conversion usage was broken
+ - add %DEFAULTS to Compat package for setting default options
+ for Net::SFTP::Foreign methods called under the hood.
+
+1.68_03 Aug 28, 2011
+ - atomic feature added to get, put and higher level methods
+ using them
+ - cleanup feature added to get and put
+ - support for numbered feature added to rename
+ - save final target name when a reference is passed as
+ numbered option
+ - refactor rput and rget handling of put, put_symlink, get and
+ get_symlink options using hashes
+ - remove operation inside put_symlink was clobbering error and
+ status from previous symlink call
+ - solve several minor bugs related to autodie handling
+ - do not die from inside DESTROY methods when autodie is set
+ - resume feature in get method was broken
+ - refactor numbered logic inside _inc_numbered sub
+ - refactor _gen_save_status_method using local
+
+1.68_02 Jul 20, 2011
+ - make unix2dos clever so it doesn't convert CR+LF sequences
+ into CR+CR+LF (bug report by Pavel Albertyan).
+
+1.68_01 Jul 12, 2011
+ - add workaround for crippled versions of Scalar::Util
+ - document overwrite and numbered options as accepted by the
+ put method (reported by Paul Kolano)
+
+1.67 Jul 4, 2011
+ - released as stable in order to solve critical bug:
+ - solve regresion introduced in 1.63_05 that caused ssh to
+ hang when trying to access the tty
+ - pass password to plink via -pw and generate a warning when
+ doing so
+ - support for key_path constructor argument
+ - support for autodie mode
+ - docs misspelling errors corrected (reported by Michael
+ Stevens)
+
+1.66_01 Jun 3, 2011
+ - allow using regexp objects as patterns on glob and derived
+ methods
+ - some doc improvements
+
+1.65 May 17, 2011
+ - die_on_error was broken
+
+1.64 May 09, 2011
+ - release as stable
+ - document the write_delay and read_ahead options
+ - minor doc corrections
+
+1.63_10 Apr 13, 2011
+ - workaround bug in perl 5.6 calling STORE in a tied
+ filehandle
+ - solve "not enough arguments for grep" when using an old
+ version of Scalar::Util
+
+1.63_09 Apr 12, 2011
+ - an error in the handler accessors was adding and useless
+ wrapping layer
+
+1.63_08 Jan 22, 2011
+ - bad method call inside mkpath corrected (bug report and
+ solution by Adam Pingel)
+
+1.63_07 Jan 20, 2011
+ - do not override PreferredAuthentication when explicitly set
+ by the user (bug report and solution by Ave Wrigley)
+
+1.63_06 Dec 10, 2010
+ - redirect_stderr_to_tty was redirecting to the wrong side of
+ the tty (bug report by Russ Brewer)
+
+1.63_05 Dec 6, 2010
+ - add support for hardlink@openssh.com extension
+ - add die_on_error method
+ - create a new process group for slave ssh process so that
+ signals sent from the terminal are not propagated
+ - better error messages
+
+1.63_04 Nov 11, 2010
+ - workaround for IPC::Open3::open3 not working with tied file
+ handles on Windows (bug report by Barnabas Bona)
+ - several spelling corrections (contributed by Philippe Bruhat)
+
+1.63_03 Nov 10, 2010
+ - On some OSs (i.e. AIX) reading/writing from non-blocking fds
+ can result in EAGAIN even when select has indicated that
+ data was available (bug report and patch by Bill Godfrey)
+
+1.63_02 Nov 2, 2010
+ - Windows backend was not pipelining requests when called from
+ put method
+
+1.63_01
+ - support for Tectia client added (bug report by Russ Brewer)
+
+1.62 Oct 5, 2010
+ - _catch_tainted_args was not being imported from helpers (bug
+ report by rfbits at PerlMonks)
+
+1.61 Sep 22, 2010
+ - remove some dead code introducing unneeded constraints that
+ cause the Net::SSH2 backend to fail (bug report by Philippe
+ Vouters)
+
+1.60 Sep 20, 2010
+ - _ensure_list was not being imported from Helpers (bug report
+ and solution by Jean-Benoît Baudens)
+
+1.59 Sep 16, 2010
+ - kill ssh subprocess with KILL signal on Windows
+
+1.58_08 Aug 22, 2010
+ - import _hexdump from Helpers.pm (bug report by Chuck Kozak)
+ - call kill passing the signal name instead of using POSIX to
+ get its number
+
+1.58_07 Aug 2, 2010
+ - dump $! on failed sysreads and syswrites
+
+1.58_06 Jul 12, 2010
+ - rput was broken under Windows (bug report by Brian
+ E. Lozier)
+ - do not use Fcntl S_IS* macro wrappers as S_ISLNK is not
+ available under Windows
+ - new FAQ about put failing because of forbidden setstat
+ - minor doc improvements
+ - use "kill $name" instead of using POSIX to get the signal
+ number
+
+1.58_05 Jun 7, 2010
+ - add support for stderr_discard also in Windows backend
+
+1.58_04 Jun 7, 2010
+ - add support for stderr_discard
+
+1.58_03 May 27, 2010
+ - even more debugging for put method and the resume feature
+
+1.58_02
+ - add FAQ about strict host key checking
+ - better debugging for put method
+
+1.58_01 Apr 19, 2010
+ - add stderr redirection feature
+ - minor doc corrections
+ - add donating to OpenSSH entry in docs
+
+1.57 Mar 14, 2010
+ - release as stable
+
+1.56_09 Mar 11, 2010
+ - realpath feature was broken on find and ls methods (bug
+ report by Paul Kolano)
+ - taint checks on hashes were not reporting problems properly
+ - minor doc corrections
+
+1.56_08 Jan 5, 2010
+ - put'ting a tied file handle was generating some warnings
+ (bug report and patch by Gavin Carr)
+
+1.56_07 Dec 29, 2009
+ - new methods added: mget, mput, get_symlink, put_symlink
+ - new numbered feature
+ - some minor bugs corrected
+ - glob can now also be used from Net::SFTP::Foreign::Local
+ - some doc corrections and improvements
+ - _call_on_error was not cleaning up under some conditions
+
+1.56_06 Dec 14, 2009
+ - mkpath was broken, rewritten to not use the obsolete
+ _normalize_path method (bug report by Peter Edwards).
+ - add some tests for mkpath
+ - introduce internal _clear_error_and_status method
+ - completely remove _normalize_path
+ - correct bug in _debug not printing sub name under some
+ conditions
+
+1.56_05 Dec 9, 2009
+ - add support for plugable backends ***THIS IS A MAYOR
+ INTERNAL CHANGE THAT COULD INTRODUCE NEW BUGS***
+
+1.56_04 Dec 8, 2009
+ - remote file path joining sub rewritten (note: this could
+ change the module behaviour in some corner cases)
+ - new test file with path join operations
+ - rput('.',...) was failing due to bad path joining for local
+ filesystem (bug report by Aaron Paetznick).
+ - accept keyboard-interactive authentication
+ - some docs reorganization
+ - add pointer to my wish list :-)
+
+1.56_03 Nov 14, 2009
+ - use SIGTERM to kill children also on Windows
+ - workaround Cygwin bug, fopen(..., a); ftell() does not
+ return the size of the file
+
+1.56_01 Oct 26, 2009
+ - pass PreferredAuthentication option to SSH process to force
+ password authentication (bug and solution by Stewart
+ Heckenberg)
+ - use SIGTERM instead of SIGHUP to kill slave SSH process
+
+1.55 Sep 9, 2009
+ - re-release as stable
+
+1.54_03 Sep 4, 2009
+ - add debugging to _rel2abs
+
+1.54_02 Aug 19, 2009
+ - add extra sanity check to setcwd method. It seems that some
+ servers do not report an error when realpath is called on an
+ inexistent file (bug report by Ben Szulc)
+ - password authentication broken in AIX
+ - some documentation corrections
+ - more tests added
+
+1.54_01 Jul 22, 2009
+ - yet another "Password not requested as expected" bug solved,
+ $pty->close_slave was being called too soon (bug report by
+ Tim Rayner)
+
+1.53 Jul 6, 2009
+ - re-released as stable
+
+1.52_12 Jul 2, 2009
+ - also if using password authentication, detect when the
+ remote host key doesn't match the key stored in know_hosts
+ and abort the connection (bug report by Ryan Niebur).
+ - if using password authentication, detect when the target
+ host key has not been accepted yet (bug report by Ryan
+ Niebur)
+ - work around for IPC::Open3 feature missing in old versions
+ of that module that caused password authentication to fail
+ under 5.6.x perls (bug report by Vetrivel).
+ - find method would not follow links passed as arguments to
+ the method or others found when ordered mode was selected
+ (bug report by Paul Kolano)
+ - detect bad passwords and other password authentication
+ improvements
+ - sample scripts added
+ - atomic_rename was returning the wrong error code/string
+ - Perl 5.11 changes the EOF call interface for tied file
+ handles
+ - attributes flags slot was incorrectly set on new_from_buffer
+ - get/put_int64 optimization
+ - add calling function name to debug output
+ - add debug hexdumps for sysreads and syswrites
+ - optimize some common ls usages to reduce CPU utilization
+ - implement pipelining for ls command
+ - ls bug, wanted was being called with the wrong arguments
+ - add timestamps to debugging output
+ - ensure that attribute arguments are of class
+ Net::SFTP::Foreign::Attributes (feature request by Todd
+ Rinaldo)
+ - put_attributes was broken
+ - move _hexdump to Helpers package
+ - debug subsystem cleanup
+
+1.51 Apr 7, 2009
+ - "get" corrupted the fetched files if $\ was non empty (bug
+ report and solution by Dagfinn Ilmari Mannsaker)
+ - increment default packet and queue size
+
+1.50 Mar 18, 2009
+ - rel2abs was not collapsing duplicated slashes when joining
+ paths, generating paths as '//home' that have an unexpected
+ meaning under Windows (bug report and solution by Erik
+ Weidel)
+
+1.49 Mar 17, 2009
+ - use utf8::downgrade to handle data with may have its utf8
+ flag set (bug report by Jamie Lahowetz, solution by ikegami)
+ - emulate SSH2_FXF_APPEND mode not supported by OpenSSH SFTP
+ server
+ - open flags documented
+ - minor documentation corrections
+ - follow_links option from find method was broken (bug report
+ by Paul Kolano)
+ - spurious debugging message removed from statvfs
+ - put and get now accept a file handle instead of a file name
+ for the local file (feature request by David Morel)
+ - add support for append option in put and get
+ - put and get documentation reorganized
+ - improve write caching behavior, '_write_delay' is used to
+ control the write buffer size (feature request by David
+ Morel)
+
+1.47 Feb 13, 2009
+ - add support for per object dirty cleanup flag required by
+ proper Net::OpenSSH integration
+ - add support for old SSH1
+
+1.46 Dec 18, 2008
+ - release as stable version
+ - improve synopsis documentation
+ - commercial support offering note added
+
+1.45 Nov 11, 2008
+ - reduce localized scope for $SIG{__DIE__} and $@ (bug report
+ by David Serrano and David Riosalido)
+ - workaround incomplete unicode support in perl 5.6.x
+ - new FAQ entry about how to completely disable passwd
+ authentication
+ - add support for OpenSSH protocol extensions statvfs,
+ fstatvfs and posix-rename.
+ - add overwrite feature to rename method
+ - new fs_encoding feature added ***this is a mayor internal
+ change that could introduce new bugs***
+ - when parsing status msgs, the string was not being converted
+ to utf8
+ - croak when utf8 data is written to remote files in any way.
+ - binmode ssh_in and ssh_out
+ - some minor documentation corrections
+ - add support for mkpath (feature requested by Mark Murphy)
+ - add support for late_set_attr (bug report by Oliver Dunbar)
+ - add support for extended file attributes (bug report by
+ Oliver Dunbar)
+ - add support for the autodisconnect feature (bug report by
+ Jared Watkins).
+ - add support for multiprocess debugging
+
+1.44 Oct 9, 2008
+ - put was using block sizes 4 times bigger than
+ requested, bug introduced in 1.41 (reported by Hussain
+ Syed).
+
+1.43 Sep 8, 2008
+ - readline was slurping the full file contents (bug report by
+ Sylvain Cousineau).
+
+1.42 Jul 17, 2008
+ - experimental support for resuming file transfers
+ - some typos fixed
+ - TODO added
+
+1.41 Jul 16, 2008
+ - add support for on the fly data conversions including
+ dos2unix and unix2dos
+ - copy_perm => 0 was being ignored in several methods (bug
+ report by Dave Tauzell)
+
+1.40 Jun 24, 2008
+ - work around for servers that do not include the mandatory
+ error message on SSH_FXP_STATUS responses (bug report by
+ Hugh Lampert).
+
+1.39 Jun 23, 2008
+ - suppress warning on mod_perl environments (bug and solution
+ reported by Eric Rybski).
+
+1.38 May 20, 2008
+ - add experimental support for plink command
+ - on get, don't change file size passed to callback
+ - on get, survive stat failure for servers with stat/readdir
+ disabled (bug reported by Hussain Syed)
+ - default open mode set to read
+ - add support for block_size and queue_size constructor
+ arguments
+ - limit usage of Expect and PTYs to authentication phase (bug
+ reported by Tom Warkentin)
+ - honour copy_perm option in put method (bug report by Bruce
+ Harold)
+ - copy_perms option renamed to copy_perm for consistency
+ (copy_perms still supported)
+ - glob optimization
+ - typo in Net::SFTP::Foreign::Common::_set_errno was not
+ setting $! correctly (bug report by Rafael Kitover)
+ - add debugging support to _do_io and _set_(status|error)
+
+1.36 Apr 18, 2008
+ - forbid usage of Net::SFTP::Foreign methods from Compat
+ module (bug reported by Fred Zellinger)
+ - document the password and passphrase constructor
+ options.
+
+1.35 Feb 8, 2008
+ - put method was failing for binary files under Windows
+ because binmode was not set on the local filehandler (bug
+ report and patch by Patrick Frazer).
+
+1.34 Jan 8, 2008
+ - document rput. It said it was not implemented (bug report
+ by Paul Kolano).
+ - put method was failing for binary files under Windows
+ because binmode was not set on the local filehandler (bug
+ report and patch by Patrick Frazer).
+
+1.33 Jan 6, 2008
+ - rremove was not removing dirs (bug report by Paul Kolano).
+ - require perl >= 5.6
+ - add support for open/close and DESTROY debugging
+
+1.32 Dec 8, 2007
+ - add new question to FAQ
+ - document password and passphrase options (though, not
+ completely).
+ - somo minor documentation changes
+ - on testing look for sftp-server on libexec dirs
+ - and delete temporal files
+
+1.31 Oct 8, 2007
+ - remove Win32::Socketpair loading, it is not used anymore
+ - improve debugging
+ - do not croak when invalid data from the other side appears
+
+1.30 Aug 23, 2007
+ - add support for realpath option to ls method
+ - add support for realpath and names_only to glob method
+ - improve _set_status and _set_error methods
+ - add support for password authentication and for keys with
+ passphrases
+
+1.29 Aug 14, 2007
+ - add support for names_only option to ls and find methods
+ - make ls and find methods default to '.'
+ - DESTROY was also messing with $? and $! values (bug reported
+ by Dave Haywood)
+ - better usage checking for several methods
+ - add support for cwd (experimental)
+ - symlink docs corrected
+ - several other doc corrections
+
+1.28
+ - argument checking in rename was wrong (reported by Greg
+ Howard)
+ - disable DIE custom handlers when using eval
+
+1.27 Jul 7, 2007
+ - catch insecure $ENV{PATH} under taint mode (bug reported by
+ jmarshll).
+
+1.26 Jul 5, 2007
+ - my email was missing from the docs
+ - make it work under taint checking (experimental feature).
+ - work around bug in dualvar under taint checking
+
+1.25 Jun 19, 2007
+ - remove some obsolete tests not working on 5.9.x
+
+1.24 Jun 18, 2007
+ - DESTROY was messing up $@ (bug reported by Kai Grossjohann)
+ - set $SIG{PIPE} handler inside _do_io to catch IO errors
+ - don't execute external command when transport option is used
+ on constructor
+
+1.23 May 23, 2007
+ - release as stable!
+ - some doc improvements
+
+0.90_22 Apr 29, 2007
+ - experimental Windows support added
+
+0.90_21 Apr 25, 2007
+ - some documentation improvements
+ - check that ctor 'more' arguments are not joined
+ - eliminate "Password" prompt on passwd_auth sample (solution
+ suggested by Fletch on PerlMonks)
+
+0.90_20 Apr 20, 2007
+ - add support for "transport" options on the constructor that
+ allows to use password authentication and keys protected by
+ a passphrase
+ - add password authentication sample
+
+0.90_19 Apr 5, 2007
+ - add abort method (feature requested by Jamie Lahowetz)
+
+0.90_18 Mar 23, 2007
+ - fallback to dirty cleanup if ssh process doesn't exit cleanly in
+ 8 seconds (bug reported by Brandon Schendel).
+
+0.90_17 Mar 21, 2007
+ - add support for dont_save flag in get method, required for
+ Compat module (bug reported by Jamie Lahowetz).
+
+0.90_16 Mar 18, 2007
+ - new tests added
+ - mkdir, rmdir, remove, setstat, fsetstat and _close methods
+ argument parsing was wrong (bug #25101 reported by
+ funkonaut)
+ - wrong detection of Sort::Key corrected
+ - debug mode was broken
+ - network errors do not die anymore, documented
+
+0.90_15 Dec 19 2006
+ - messages were not being queued on get method and so,
+ performance was very bad (reported by "sched" via
+ Perlmonks).
+ - Auto reduce block size on get method.
+
+0.90_14 Nov 8 2006
+ - FAQ section added on the module documentation
+ - Net::SFTP supplant was not working, corrected
+
+0.90_13 Sep 22 2006
+ - fchmod is not available everywhere, don't use it (bug and
+ solution reported by Andre Tomt).
+
+0.90_12 Aug 21 2006
+ - syntax error on Net::SFTP::Foreign::Compat corrected
+ (reported by Hans Schligtenhorst).
+ - supplant was misspelled
+ - correct some dependency problems on Compat.
+ - add test for Compat.
+
+0.90_11 Jun 30 2006
+ - don't croak from connect on runtime errors
+ - workaround bug in IPC::Open3 that leaves two processes
+ running
+
+0.90_10 May 17 2006
+ - 0 is a valid sftp handler.
+
+0.90_09 Apr 25 2006
+ - bug on _do_io method corrected
+
+0.90_08 Apr 24 2006
+ - bug for copy_perms => 0 corrected (reported by Erik
+ Johansen).
+ - usage checks added to most commands.
+
+0.90_07 Apr 23 2006
+ - don't use pack for quads on little-endian systems (bug
+ reported by Mogens Hafsjold)
+
+0.90_06 Feb 24 2006
+ - implement rput
+ - use Win32::Socketpair on Windows
+ - implement API for local fs in Local
+ - move common functions to Common and Helpers packages
+
+0.90_05 Feb 23 2006
+ - convert remote file handle strings to tied file handles
+ - most methods changed to mimic perl buil-ins
+ - attach file position to file handles.
+
+0.90_04 Feb 22 2006
+ - remove bug in get that could left remote file handles open
+ - new methods readlink, symlink, rremove, rget.
+
+0.90_03 Feb 21 2006
+ - minor corrections to the docs
+ - new methods glob and join implemented.
+
+0.90_02 Feb 20 2006
+ - added new method find
+ - ls method expanded with callback
+ - contructor rewritten
+ - better docs for Constants package
+ - Compat module updated
+ - several corrections on the docs
+
+0.90_01 Feb 16 2006
+ - almost full rewrite exposing new much improved and
+ incompatible API!!!
+
+--------------------------------------------------------------------------
+
+0.57 Nov 29 2005
+ - check sysread return value when reading from pipe (bug
+ report and patch submited by Mina Naguib).
+
+0.56 Nov 14 2005
+ - correct bug on open2_cmd option
+
+0.55 Oct 24 2005
+ - kill ssh process when done (bug reported by Alf Carlsson).
+
+0.54 Sep 07 2005
+ - add support for transferring files bigger than 4GB
+
+0.53 May 03 2005
+ - link to SFTP draft actualised
+
+0.52 May 03 2005
+ - some typos corrected on the docs.
+
+0.51 May 03 2005
+ - Net::SFTP::Foreign::Buffer reimplemented from scratch. It
+ doesn't depend on Net::SSH::Perl::Buffer anymore.
+ - use foreign 'ssh' to open connections.
+
+0.50 May 02 2005
+ - Net::SFTP::Foreign FORKED !!!
+
+
+--------------------------------------------------------------------------
+Previous revision history for Net::SFTP
+
+0.09 2005.01.16
+ - New co-maintainer, David Robins (DBROBINS).
+ - Adds a 'warn' argument to the constructor to allow supression or
+ redirection of warnings.
+ - Allows the 'ssh_args' constructor argument to be either a hash ref or an
+ array ref.
+ - Adds a 'status' method which returns the last SSH2_FX_* status value, or
+ (status value, text) in list context (only useful after last failure).
+ - Adds brief summary comments to some methods.
+ - Returns failure if the remote open fails for 'get' (previous code ignored
+ it); also moves the remote open before the local open so that we don't
+ create empty local files if the remote file can't be opened.
+ - Changes 'ls' to return an array reference in scalar context.
+ - Documents: the fact that we die on protocol/local errors; the new option
+ and method; changes to 'get'/'put' (formerly 'put' didn't return anything
+ useful, and 'get's actual return values are the same, just better
+ documented).
+ - Adds a comprehensive remote test, but to use it one has to manually go in
+ and configure a server a certain way, so it defaults to skipping
+ everything; I'm including it as a base since there are currently no remote
+ tests at all.
+
+0.08 2003.12.12
+ - Net::SFTP::Buffer was passing an invalid option when loading
+ Net::SSH::Perl::Buffer.
+ - Add SUPPORT section to the docs.
+
+0.07 2003.11.14
+ - Require Net::SSH::Perl 1.24, which also includes circular
+ reference fixes.
+
+0.06 2003.11.14
+ - New maintainer, Dave Rolsky.
+ - Fixed a circular reference which caused connections to be held
+ open indefinitely in a persistent environment like mod_perl.
+ This uses weak references, so Perl 5.6.0+ is now required. This
+ work was funded by Kineticode, Inc.
+ - Added a LICENSE file.
+
+0.05 2001.05.24
+ - Added help ('h' or '?') command to psftp. Moved all shell
+ functionality into Net::SFTP::Shell.
+ - Net::SFTP::Util needed to 'use Exporter'.
+
+0.04 2001.05.16
+ - Fixed bug in put method when running fsetstat command; it
+ was trying to set the UID/GID on the remote file, which
+ was giving a permission denied message. Should not try to
+ set UID/GID, so had to adjust flags.
+ - Added eg/psftp, a working SFTP shell.
+ - Moved READ and WRITE commands into their own methods
+ (do_read and do_write, respectively).
+ - Changed semantics of get method. Returning the contents of
+ the remote file is no longer connected to whether a local
+ file is passed as an argument; it is instead based on the
+ calling context of 'get'. Updated docs to reflect this.
+
+0.03 2001.05.15
+ - Documentation for all extra classes: Attributes, Buffer,
+ Constants, and Util.
+ - Documentation for command methods in Net::SFTP.
+ - Added binmode when reading/writing from local files.
+ - Added methods for all remaining commands in SFTP protocol
+ version 3 (eg. remove, rmdir, mkdir, realpath, etc.).
+ - Added callbacks to get and put, eg. for status messages,
+ etc.
+ - Fixed typo in Net::SFTP::Buffer::get_int64 that was breaking
+ reading 64-bit ints.
+
+0.02 2001.05.14
+ - Fixed bug with SSH2 server not sending one message per
+ packet, ie. multiple packets have to be retrieved to make
+ up one SFTP message. This would show up as a "Message length
+ too long" error. Thanks to Matt Good for the spot.
+ - Fixed bug with OpenSSH and SSH2 SFTP servers where after
+ a certain amount of bytes the connection would hang. This
+ was a bug in Net::SSH::Perl (channel window sizes) that is
+ fixed in version 1.13.
+
+0.01 2001.05.13
+ - original version; created by h2xs 1.19
diff --git a/pcr/perl-net-sftp-foreign/PKGBUILD b/pcr/perl-net-sftp-foreign/PKGBUILD
new file mode 100644
index 000000000..5bb9a69a4
--- /dev/null
+++ b/pcr/perl-net-sftp-foreign/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Alessandro Sagratini <ale_sagra at hotmail dot com>
+pkgname=perl-net-sftp-foreign
+pkgver=1.75
+pkgrel=1
+pkgdesc="Perl SFTP client using the native SSH client application"
+arch=(any)
+url=http://search.cpan.org/~salva/Net-SFTP-Foreign
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+optdepends=('perl-file-which' 'perl-sort-key')
+options=(!emptydirs)
+changelog=Changes
+source=(http://search.cpan.org/CPAN/authors/id/S/SA/SALVA/Net-SFTP-Foreign-$pkgver.tar.gz)
+md5sums=('2545691cd69f8515dd9c126cc52e40c5')
+
+build() {
+ cd "$srcdir/Net-SFTP-Foreign-$pkgver"
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/Net-SFTP-Foreign-$pkgver"
+ make install DESTDIR=${pkgdir} || return 1
+ # remove perllocal.pod and .packlist
+ find "$pkgdir" -name perllocal.pod -delete
+ find "$pkgdir" -name .packlist -delete
+}
diff --git a/pcr/perl-number-compare/PKGBUILD b/pcr/perl-number-compare/PKGBUILD
new file mode 100644
index 000000000..64566aa10
--- /dev/null
+++ b/pcr/perl-number-compare/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Blaž Tomažič <blaz.tomazic@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=perl-number-compare
+_realname=Number-Compare
+pkgver=0.03
+pkgrel=1
+pkgdesc="Perl/CPAN Module Number::Compare."
+arch=('i686' 'x86_64')
+license=('unknown')
+url="http://search.cpan.org/dist/Number-Compare/"
+depends=('perl')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/R/RC/RCLAMP/${_realname}-${pkgver}.tar.gz)
+
+build() {
+ cd $startdir/src/${_realname}-$pkgver
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
+
diff --git a/pcr/perl-php-serialization/PKGBUILD b/pcr/perl-php-serialization/PKGBUILD
new file mode 100644
index 000000000..5ccc64e40
--- /dev/null
+++ b/pcr/perl-php-serialization/PKGBUILD
@@ -0,0 +1,51 @@
+# CPAN Name : PHP-Serialization
+# Contributor: John D Jones III <j[nospace]n[nospace]b[nospace]e[nospace]k[nospace]1972 -_AT_- the domain name google offers a mail service at ending in dot com>
+# Generator : CPANPLUS::Dist::Arch 1.25
+
+pkgname='perl-php-serialization'
+pkgver='0.34'
+pkgrel='2'
+pkgdesc="simple flexible means of converting the output of PHP's serialize() into the equivalent Perl memory structure, and vice versa."
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url='http://search.cpan.org/dist/PHP-Serialization'
+source=('http://search.cpan.org/CPAN/authors/id/B/BO/BOBTFISH/PHP-Serialization-0.34.tar.gz')
+md5sums=('333af0848ad79931875a35cc61dc22e0')
+sha512sums=('72218973f21ab71419751cf818e6bd998235aa74bf8ae60ec4a6080ba169d0d7fcefde4f433ce3f6f30ed3084a651deb8aa3a5dd818fc6ebf3fb6188def4efe7')
+_distdir="PHP-Serialization-0.34"
+
+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 "$srcdir/$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ cd "$srcdir/$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ make test
+ )
+}
+
+package() {
+ cd "$srcdir/$_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/pcr/perl-sys-mmap/PKGBUILD b/pcr/perl-sys-mmap/PKGBUILD
new file mode 100644
index 000000000..43540e07f
--- /dev/null
+++ b/pcr/perl-sys-mmap/PKGBUILD
@@ -0,0 +1,51 @@
+# CPAN Name : Sys-Mmap
+# Contributor: John D Jones III <j[nospace]n[nospace]b[nospace]e[nospace]k[nospace]1972 -_AT_- the domain name google offers a mail service at ending in dot com>
+# Generator : CPANPLUS::Dist::Arch 1.25
+
+pkgname='perl-sys-mmap'
+pkgver='0.16'
+pkgrel='3'
+pkgdesc="uses mmap to map in a file as a Perl variable"
+arch=('i686' 'x86_64')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url='http://search.cpan.org/dist/Sys-Mmap'
+source=('http://search.cpan.org/CPAN/authors/id/T/TO/TODDR/Sys-Mmap-0.16.tar.gz')
+md5sums=('faae869e876fa86f92e6de3f13af3aef')
+sha512sums=('9f533f8eaa2707a77fa69dc0163e5e55b13d6653ddb5f7850c3fcaa090c79069cccedb947c1b8cd5a125fd7b055803eff437697c120785f422bff0414be7cd05')
+_distdir="Sys-Mmap-0.16"
+
+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 "$srcdir/$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ cd "$srcdir/$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ make test
+ )
+}
+
+package() {
+ cd "$srcdir/$_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/pcr/perl-text-glob/PKGBUILD b/pcr/perl-text-glob/PKGBUILD
new file mode 100644
index 000000000..194ab831c
--- /dev/null
+++ b/pcr/perl-text-glob/PKGBUILD
@@ -0,0 +1,51 @@
+# CPAN Name : Text-Glob
+# Contributor: Alan Young <harleypig@gmail.com>
+# Generator : CPANPLUS::Dist::Arch 1.21
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname='perl-text-glob'
+pkgver='0.09'
+pkgrel='2'
+pkgdesc="match globbing patterns against text"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url='http://search.cpan.org/dist/Text-Glob'
+source=('http://search.cpan.org/CPAN/authors/id/R/RC/RCLAMP/Text-Glob-0.09.tar.gz')
+md5sums=('1daa10e087f891c49b720a5c551a024b')
+sha512sums=('9b729e4ece88ad79e1b637c7f35e5e1ecae3fd7f62c408ed4f3fcac2e8e8afff32d7d805e1b0269800aada5ae609d03335d42ac54def2797d301e91fa488ae47')
+_distdir="${srcdir}/Text-Glob-0.09"
+
+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 Build.PL
+ /usr/bin/perl Build
+ )
+}
+
+check() {
+ cd "$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ /usr/bin/perl Build test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ /usr/bin/perl Build 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/pcr/perl-unicode-map/PKGBUILD b/pcr/perl-unicode-map/PKGBUILD
new file mode 100644
index 000000000..1d03e867d
--- /dev/null
+++ b/pcr/perl-unicode-map/PKGBUILD
@@ -0,0 +1,30 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: Ross melin <rdmelin@gmail.com>
+
+# Required by zoneminder
+
+pkgname=perl-unicode-map
+pkgver=0.112
+pkgrel=2
+pkgdesc="Unicode::Map"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~MSCHWARTZ/Unicode-Map"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/M/MS/MSCHWARTZ/Unicode-Map-$pkgver.tar.gz)
+md5sums=('edaa8fc5ddf0e5d805e274283dd0625d')
+
+build() {
+ cd $startdir/src/Unicode-Map-$pkgver
+ eval `perl -V:archname`
+ PERL_MM_USE_DEFAULT=1 /usr/bin/perl Makefile.PL \
+ INSTALLDIRS=vendor || return 1
+
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=$startdir/pkg install || return 1
+ /usr/bin/find $startdir/pkg -name '.packlist' -delete
+ /usr/bin/find $startdir/pkg -name '*.pod' -delete
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/perl-unix-syslog/PKGBUILD b/pcr/perl-unix-syslog/PKGBUILD
new file mode 100644
index 000000000..5f4acd962
--- /dev/null
+++ b/pcr/perl-unix-syslog/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Justin Davis <jrcd83@gmail.com>
+# Generator : CPANPLUS::Dist::Arch 1.04
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname='perl-unix-syslog'
+pkgver='1.1'
+pkgrel='1'
+pkgdesc="Interface to syslog functions in a C-library"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('glibc>=2.12.1' 'perl')
+url='http://search.cpan.org/dist/Unix-Syslog'
+source=('http://search.cpan.org/CPAN/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.1.tar.gz')
+
+build() {
+ PERL=/usr/bin/perl
+ DIST_DIR="${srcdir}/Unix-Syslog-1.1"
+ 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 "$DIST_DIR" &&
+ $PERL Makefile.PL &&
+ make &&
+ make test &&
+ make install;
+ } || return 1;
+
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
diff --git a/pcr/perl-x10/PKGBUILD b/pcr/perl-x10/PKGBUILD
new file mode 100644
index 000000000..0a0d352cb
--- /dev/null
+++ b/pcr/perl-x10/PKGBUILD
@@ -0,0 +1,51 @@
+# CPAN Name : X10
+# Contributor: John D Jones III <j[nospace]n[nospace]b[nospace]e[nospace]k[nospace]1972 -_AT_- the domain name google offers a mail service at ending in dot com>
+# Generator : CPANPLUS::Dist::Arch 1.25
+
+pkgname='perl-x10'
+pkgver='0.03'
+pkgrel='3'
+pkgdesc=""
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl-astro-suntime>=0.01' 'perl-device-serialport' 'perl-time-modules')
+makedepends=()
+url='http://search.cpan.org/dist/X10'
+source=('http://search.cpan.org/CPAN/authors/id/R/RO/ROBF/X10-0.03.tar.gz')
+md5sums=('056b3d98fab545865148b948de6784c7')
+sha512sums=('6ed2b9526732dc5f704ceb94f3a9abb51c208aabb6f127480046ce1f01ecf763e4de2dcb5bf52ef598831dbd5ba78ff9d108238001070076b0cc05c7681dea2f')
+_distdir="X10-0.03"
+
+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 "$srcdir/$_distdir"
+ /usr/bin/perl Makefile.PL
+ make
+ )
+}
+
+check() {
+ cd "$srcdir/$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ make test
+ )
+}
+
+package() {
+ cd "$srcdir/$_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/pcr/perspectives-server/PKGBUILD b/pcr/perspectives-server/PKGBUILD
new file mode 100644
index 000000000..8867faa37
--- /dev/null
+++ b/pcr/perspectives-server/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: fauno
+# Based on the git version by
+# Maintainer: Robert Štětka <robert dot stetka at gmail dot com>
+pkgname=perspectives-server
+pkgver=3.4
+pkgrel=1
+url='https://perspectives-project.org/'
+pkgdesc='Perspectives notary server'
+arch=('any')
+license=('GPL3')
+depends=('openssl' 'python2>=2.7' 'python2-m2crypto'
+ 'python2-cherrypy' 'python2-sqlalchemy')
+source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ perspectives-server.{conf,cron,service,install})
+install="${pkgname}.install"
+optdepends=('python2-psycopg2: for postgresql storage'
+ 'memcache: for caching'
+ 'redis: for caching')
+md5sums=('de34f288c54cdfa81b6f8d67672515a0'
+ '00c42be9b00186cd660645a0cf20fa4b'
+ '2343fe5f9756ffd7a70e39d04ba21d46'
+ '870bf3020c73c02853cf1c0d1668d005'
+ '7d51646e864e895d13a3eb682ebf78ec')
+
+mkdepends=('git')
+mksource=("$pkgname-$pkgver::git+https://github.com/danwent/Perspectives-Server/#tag=v$pkgver")
+mkmd5sums=('SKIP')
+
+mksource() {
+ :
+}
+
+package() {
+ install -dm 750 ${pkgdir}/usr/share/webapps/${pkgname}
+ install -dm 750 ${pkgdir}/etc/webapps/${pkgname}
+
+ install -Dm 640 ${srcdir}/${pkgname}.conf \
+ ${pkgdir}/etc/conf.d/${pkgname}.conf
+
+ install -Dm 755 ${srcdir}/${pkgname}.cron \
+ ${pkgdir}/etc/cron.daily/${pkgname}
+
+ cp -av "$srcdir/$pkgname-$pkgver/"* \
+ "${pkgdir}/usr/share/webapps/${pkgname}/"
+
+ install -Dm 644 ${srcdir}/${pkgname}.service \
+ ${pkgdir}/usr/lib/systemd/system/${pkgname}.service
+}
+
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/perspectives-server/perspectives-server.conf b/pcr/perspectives-server/perspectives-server.conf
new file mode 100644
index 000000000..fad23db68
--- /dev/null
+++ b/pcr/perspectives-server/perspectives-server.conf
@@ -0,0 +1,17 @@
+# Perspectives env vars
+FLAGS="--sni --metricsdb"
+
+# See notary_http.py -h to get this working
+NOTARY_PUBLIC_KEY=/etc/webapps/perspectives-server/notary.pub
+NOTARY_PRIVATE_KEY=/etc/webapps/perspectives-server/notary.priv
+PORT=8080
+
+#MEMCACHE_SERVER=
+#MEMCACHE_USERNAME=
+#MEMCACHE_PASSWORD=
+#MEMCACHIER_SERVERS=
+#MEMCACHIER_USERNAME=
+#MEMCACHIER_PASSWORD=
+#REDISTOGO_URL=
+#DATABASE_URL=
+#NOTARY_DB_PASSWORD=
diff --git a/pcr/perspectives-server/perspectives-server.cron b/pcr/perspectives-server/perspectives-server.cron
new file mode 100644
index 000000000..73a18ec44
--- /dev/null
+++ b/pcr/perspectives-server/perspectives-server.cron
@@ -0,0 +1,7 @@
+#!/bin/bash
+set -e
+
+pushd /usr/share/webapps/perspectives-server &>/dev/null
+
+/usr/bin/python2 notary_util/list_services.py |
+/usr/bin/python2 notary_util/threaded_scanner.py
diff --git a/pcr/perspectives-server/perspectives-server.install b/pcr/perspectives-server/perspectives-server.install
new file mode 100644
index 000000000..d07664cb7
--- /dev/null
+++ b/pcr/perspectives-server/perspectives-server.install
@@ -0,0 +1,27 @@
+_chown() {
+ chown -R perspectives:perspectives \
+ /usr/share/webapps/perspectives-server \
+ /etc/webapps/perspectives-server \
+ /etc/conf.d/perspectives-server.conf
+}
+
+post_install() {
+ groupadd --system perspectives
+
+ useradd --system \
+ --comment "Perspectives Notary Server" \
+ --gid perspectives \
+ --home /usr/share/webapps/perspectives-server -M \
+ --shell /bin/false \
+ perspectives &>/dev/null
+ _chown
+}
+
+post_upgrade() {
+ _chown
+}
+
+post_remove() {
+ userdel perspectives
+ groupdel perspectives
+}
diff --git a/pcr/perspectives-server/perspectives-server.service b/pcr/perspectives-server/perspectives-server.service
new file mode 100644
index 000000000..db5ca8808
--- /dev/null
+++ b/pcr/perspectives-server/perspectives-server.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Perspectives notary server
+After=network.target
+
+[Service]
+User=perspectives
+Type=forking
+EnvironmentFile=/etc/conf.d/perspectives-server.conf
+WorkingDirectory=/usr/share/webapps/perspectives-server
+ExecStart=/bin/sh -c "/usr/bin/python2 notary_http.py $FLAGS &"
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pcr/petri-foo/PKGBUILD b/pcr/petri-foo/PKGBUILD
new file mode 100644
index 000000000..72ca1e45a
--- /dev/null
+++ b/pcr/petri-foo/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+# patch taken from https://aur.archlinux.org/packages/petri-foo/
+pkgname=petri-foo
+pkgver=0.1.87
+pkgrel=1
+pkgdesc="A fork of specimen, a MIDI controllable audio sampler, for JACK."
+arch=('i686')
+url="http://petri-foo.sourceforge.net/"
+license=('GPL2')
+depends=('jack' 'libgnomecanvas')
+makedepends=('cmake')
+optdepends=('liblo: Non Session Manager support')
+install='petri-foo.install'
+source=(http://sourceforge.net/projects/${pkgname}/files/Source/${pkgname}-${pkgver}.tar.bz2
+ petri-foo-0.1.87_fix_recent_file_not_exist.patch)
+md5sums=('40f8a224368187672f9f306f8a4fa8c5'
+ '964db40cc53d77d42f6593f2201b9c40')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 < ../petri-foo-0.1.87_fix_recent_file_not_exist.patch
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DUpdateMime:BOOL=OFF .
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/petri-foo/petri-foo-0.1.87_fix_recent_file_not_exist.patch b/pcr/petri-foo/petri-foo-0.1.87_fix_recent_file_not_exist.patch
new file mode 100644
index 000000000..3e88487b0
--- /dev/null
+++ b/pcr/petri-foo/petri-foo-0.1.87_fix_recent_file_not_exist.patch
@@ -0,0 +1,24 @@
+diff -Naur a/gui/bank-ops.c b/gui/bank-ops.c
+--- a/gui/bank-ops.c 2012-08-06 05:33:34.000000000 +0200
++++ b/gui/bank-ops.c 2012-08-07 17:57:28.580145691 +0200
+@@ -393,6 +393,8 @@
+ g_signal_connect_swapped(G_OBJECT(msg), "response",
+ G_CALLBACK(gtk_widget_destroy), msg);
+ gtk_widget_show (msg);
++
++ gtk_recent_manager_remove_item(recent_manager, filename, NULL);
+ }
+ else
+ {
+diff -Naur a/libpetrifui/dish_file.c b/libpetrifui/dish_file.c
+--- a/libpetrifui/dish_file.c 2012-08-06 05:33:34.000000000 +0200
++++ b/libpetrifui/dish_file.c 2012-08-07 17:56:09.063909801 +0200
+@@ -1440,7 +1440,7 @@
+
+ if (stat(path, &st) != 0)
+ {
+- msg_log(MSG_ERROR, "file '%s' does not exist\n");
++ msg_log(MSG_ERROR, "file '%s' does not exist\n", path);
+ return -1;
+ }
+
diff --git a/pcr/petri-foo/petri-foo.install b/pcr/petri-foo/petri-foo.install
new file mode 100644
index 000000000..5dd24bbe5
--- /dev/null
+++ b/pcr/petri-foo/petri-foo.install
@@ -0,0 +1,19 @@
+updatedesktopdtb() {
+ [ -x /usr/bin/update-desktop-database ] \
+ && update-desktop-database -q
+ [ -x /usr/bin/update-mime-database ] \
+ && update-mime-database usr/share/mime > /dev/null 2>&1
+}
+
+post_install() {
+ updatedesktopdtb
+}
+
+post_upgrade() {
+ updatedesktopdtb
+}
+
+post_remove() {
+ updatedesktopdtb
+}
+
diff --git a/pcr/pmount/PKGBUILD b/pcr/pmount/PKGBUILD
new file mode 100644
index 000000000..46c2b0358
--- /dev/null
+++ b/pcr/pmount/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 80202 2012-11-17 15:45:28Z eric $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=pmount
+pkgver=0.9.23
+pkgrel=7
+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' 'util-linux')
+makedepends=('intltool')
+source=(
+ https://alioth.debian.org/frs/download.php/3310/${pkgname}-${pkgver}.tar.bz2
+ 'http://anonscm.debian.org/gitweb/?p=pmount/pmount-debian.git;a=blob_plain;f=debian/completion/pmount'
+ https://alioth.debian.org/tracker/download.php/31157/412979/313576/4753/fix-pmount-segfault.diff
+)
+
+build() {
+ export CFLAGS="${CFLAGS} -fPIE -pie"
+ export CXXFLAGS="${CXXFLAGS} -fPIE -pie"
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/fix-pmount-segfault.diff
+ ./configure --prefix=/usr --disable-hal \
+ --with-cryptsetup-prog=/usr/sbin/cryptsetup
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 ${srcdir}/pmount ${pkgdir}/usr/share/bash-completion/completions/pmount
+ mkdir -p ${pkgdir}/media
+}
+md5sums=('db19f5bf3151b1b41705ec7bafa439d3'
+ '224f24127f8ab3605de8b9bcb433882f'
+ '5b223bce1fb262bbb98c541725f5e985')
diff --git a/pcr/poco/PKGBUILD b/pcr/poco/PKGBUILD
new file mode 100644
index 000000000..dad4788d1
--- /dev/null
+++ b/pcr/poco/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Rodrigo Grumiche Silva <grumiche at integrityit dot com dot br>
+# Contributor: nozog
+# Contributor: davidhjelm
+# Contributor: Ray Kohler <ataraxia937 at gmail dot com>
+# Contributor: Nathan Owe < ndowens04 at gmail dot com>
+
+pkgname=poco
+pkgver=1.4.2p1
+pkgrel=2
+pkgdesc="C++ class libraries for network-centric, portable applications,
+complete edition"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.pocoproject.org/"
+license=('custom:boost')
+depends=('unixodbc' 'libmysqlclient' 'openssl')
+makedepends=('gcc' 'make' 'unixodbc' 'libmysqlclient' 'openssl' 'chrpath')
+options=()
+source=(http://downloads.sourceforge.net/poco/$pkgname-$pkgver-all.tar.bz2)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-all
+ ./configure --prefix=/usr --no-samples --no-tests
+ make
+}
+
+
+package() {
+ cd $srcdir/$pkgname-$pkgver-all
+
+ make DESTDIR=$pkgdir install
+
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+ #removing rpath information from binaries
+ chrpath -d $pkgdir/usr/bin/cpspc
+ chrpath -d $pkgdir/usr/bin/cpspcd
+ chrpath -d $pkgdir/usr/bin/f2cpspd
+ chrpath -d $pkgdir/usr/bin/f2cpsp
+
+ #removing debugging libraries
+ rm $pkgdir/usr/lib/libPoco*d.so*
+}
+
+md5sums=('752e5f5545377be24ee7c7b6b479fbbe')
diff --git a/pcr/polarssl/PKGBUILD b/pcr/polarssl/PKGBUILD
new file mode 100644
index 000000000..9d547d1d1
--- /dev/null
+++ b/pcr/polarssl/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Mihai Militaru <mihai militaru at xmpp dot ro>
+
+pkgname=polarssl
+pkgver=1.2.8
+pkgrel=1
+pkgdesc="Portable cryptographic and SSL/TLS library"
+arch=('i686' 'x86_64')
+url="http://www.polarssl.org/"
+license=('GPL2')
+source=(http://www.polarssl.org/code/releases/polarssl-"$pkgver"-gpl.tgz)
+sha1sums=('a3e69d4e9302529c5006dcb7d8ecab9c99488036')
+depends=('glibc')
+
+build() {
+ cd "$pkgname"-"$pkgver"
+
+ sed -i 's^CFLAGS +=^CFLAGS += -fPIC^g' library/Makefile
+ sed -i 's#all: static#all: static shared#g' library/Makefile
+
+ make
+}
+
+package() {
+ cd "$pkgname"-"$pkgver"
+
+ make DESTDIR="$pkgdir/usr" install
+ echo "WARNING: in order to run the tests, execute in this directory, after you install the library: cd src/polarssl-$pkgver && make check"
+}
diff --git a/pcr/prboom/PKGBUILD b/pcr/prboom/PKGBUILD
new file mode 100644
index 000000000..03f53784e
--- /dev/null
+++ b/pcr/prboom/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 77655 2012-10-13 11:44:28Z allan $
+# 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=7
+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' 'sdl_mixer' 'sdl_net' 'glu')
+makedepends=('mesa')
+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/pcr/prboom/libpng-1.4.patch b/pcr/prboom/libpng-1.4.patch
new file mode 100644
index 000000000..a2215e37b
--- /dev/null
+++ b/pcr/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/pcr/psad/PKGBUILD b/pcr/psad/PKGBUILD
new file mode 100644
index 000000000..145625e89
--- /dev/null
+++ b/pcr/psad/PKGBUILD
@@ -0,0 +1,66 @@
+# Maintainer: Artur Wojcik <xartii at gmail dot com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=psad
+pkgver=2.2
+pkgrel=2
+pkgdesc="A collection of three lightweight system daemons (two main daemons and one helper daemon) that run on Linux machines and analyze iptables log messages to detect port scans and other suspicious traffic"
+arch=('i686 x86_64')
+url="http://cipherdyne.org/psad/"
+license=('GPL')
+depends=('perl-bit-vector' 'perl-date-calc' 'perl-iptables-chainmgr' 'perl-iptables-parse' 'perl-net-ipv4addr' 'perl-storable' 'perl-unix-syslog' 'net-tools')
+source=("http://cipherdyne.org/psad/download/$pkgname-$pkgver.tar.gz" "responses" "psad-sysvinit.archlinux" "psad-systemdinit.archlinux" "psad.patch1")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cp $srcdir/psad-sysvinit.archlinux init-scripts/psad-init.archlinux
+ if [ ! -e responses ]; then
+ ln $srcdir/responses responses -s;
+ fi
+ patch -p1 -i $srcdir/psad.patch1
+
+ #Create the dirs it will need to make the program
+ mkdir -p $pkgdir/etc/psad \
+ $pkgdir/etc/rc.d \
+ $pkgdir/usr/bin \
+ $pkgdir/usr/sbin \
+ $pkgdir/usr/share/man/man8 \
+ $pkgdir/var/lib/psad \
+ $pkgdir/var/log/psad \
+ $pkgdir/var/run/psad \
+ $pkgdir/usr/lib/psad \
+ $pkgdir/usr/lib/systemd/system
+ #Set the config dirs
+ sed -e "s|'/usr/sbin'|'$pkgdir/usr/sbin'|" \
+ -e "s|'/usr/bin'|'$pkgdir/usr/bin'|" \
+ -e "s|my \$mpath = \"/usr/share/man/man\$section\";|my \$mpath = \"$pkgdir/usr/share/man/man\$section\";|" \
+ ./install.pl -i
+ sed -e "s|/var/log/psad|$pkgdir&|" \
+ -e "s|/var/run/psad|$pkgdir&|" \
+ -e "s|/var/lib/psad|$pkgdir&|" \
+ -e "s|/usr/lib/psad|$pkgdir&|" \
+ -e "s|/etc/psad|$pkgdir&|" \
+ -e "s|/usr/bin/whois_psad|$pkgdir&|" \
+ -e "s|/usr/sbin/fwcheck_psad|$pkgdir&|" \
+ -e "s|/usr/sbin/psadwatchd|$pkgdir&|" \
+ -e "s|/usr/sbin/kmsgsd|$pkgdir&|" \
+ -e "s|/usr/sbin/psad|$pkgdir&|" \
+ ./psad.conf -i
+
+ #hope that things work
+ ./install.pl --init-dir "$pkgdir/etc/rc.d/" < responses
+
+ #add the systemd service file
+ cp $srcdir/psad-systemdinit.archlinux $pkgdir/usr/lib/systemd/system/psad.service
+
+ # Fix the config
+ sed -e "s|$pkgdir||" $pkgdir/etc/psad/psad.conf -i
+ sed -e "s|$pkgdir||" $pkgdir/var/log/psad/install.log -i
+
+ #Set correct permissions
+ chmod 0700 $pkgdir/var/lib/psad
+
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/psad/psad-systemdinit.archlinux b/pcr/psad/psad-systemdinit.archlinux
new file mode 100644
index 000000000..991aa7423
--- /dev/null
+++ b/pcr/psad/psad-systemdinit.archlinux
@@ -0,0 +1,12 @@
+[Unit]
+Description=Port scan attack detector
+After=iptables.service
+
+[Service]
+ExecStart=/usr/sbin/psad
+ExecStop=/usr/sbin/psad --Kill
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/psad/psad-sysvinit.archlinux b/pcr/psad/psad-sysvinit.archlinux
new file mode 100644
index 000000000..6b4e76042
--- /dev/null
+++ b/pcr/psad/psad-sysvinit.archlinux
@@ -0,0 +1,52 @@
+#!/bin/bash
+#
+# Startup script for psad
+#
+# chkconfig: 345 99 05
+# description: The Port Scan Attack Detector (psad)
+# processname: psad
+# pidfile: /var/run/psad.pid
+# config: /etc/psad/psad.conf
+#
+# $Id: psad-init.archlinux
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/sshd
+
+PID=`cat /var/run/psad.pid`
+# See how we were called.
+case "$1" in
+start)
+ stat_busy "Starting psad"
+ [ -z "$PID" ] && /usr/sbin/psad
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ #let psad take care of the pid; we don't need to
+ add_daemon psad
+ stat_done
+ fi
+ ;;
+stop)
+ stat_busy "Stopping psad"
+ /usr/sbin/psad --Kill
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ #let psad take care of the pid; we don't need to
+ rm_daemon psad
+ stat_done
+ fi
+ ;;
+status)
+ /usr/sbin/psad --Status
+ ;;
+restart)
+ $0 stop
+ $0 start
+ ;;
+*)
+ echo "Usage: psad {start|stop|status|restart}"
+ exit 1
+esac
diff --git a/pcr/psad/psad.patch1 b/pcr/psad/psad.patch1
new file mode 100644
index 000000000..98ddd9a60
--- /dev/null
+++ b/pcr/psad/psad.patch1
@@ -0,0 +1,37 @@
+--- psad-2.2/install.pl 2012-04-21 04:43:46.000000000 +0200
++++ psad-2.2/install.pl 2012-10-13 16:05:03.302818330 +0200
+@@ -752,6 +752,8 @@
+ $init_file = 'init-scripts/psad-init.fedora';
+ } elsif ($distro eq 'gentoo') {
+ $init_file = 'init-scripts/psad-init.gentoo';
++ } elsif ($distro eq 'archlinux') {
++ $init_file = 'init-scripts/psad-init.archlinux';
+ } else {
+ $init_file = 'init-scripts/psad-init.generic';
+ }
+@@ -773,13 +775,14 @@
+ if ($preserve_rv) {
+ &logr("\n[+] psad has been installed (with your original config merged).\n");
+ } else {
+- &logr("\n[+] psad has been installed.\n");
++ &logr("\n[+] psad has been compiled.\n");
++ &logr("\n[+] use pacman -U to install.\n");
+ }
+ if ($installed_init_script) {
+ if ($init_dir) {
+- &logr("\n[+] To start psad, run \"${init_dir}/psad start\"\n");
++ #&logr("\n[+] To start psad, run \"${init_dir}/psad start\"\n");
+ } else {
+- &logr("\n[+] To start psad, run ${USRSBIN_DIR}/psad\"\n");
++ #&logr("\n[+] To start psad, run ${USRSBIN_DIR}/psad\"\n");
+ }
+ }
+
+@@ -1748,6 +1751,7 @@
+
+ sub get_distro() {
+ return 'gentoo' if -e '/etc/gentoo-release';
++ return 'archlinux' if -e '/etc/archlinux-release';
+ if (-e '/etc/issue') {
+ ### Red Hat Linux release 6.2 (Zoot)
+ open ISSUE, '< /etc/issue' or
diff --git a/pcr/psad/responses b/pcr/psad/responses
new file mode 100644
index 000000000..715dfaf1a
--- /dev/null
+++ b/pcr/psad/responses
@@ -0,0 +1,7 @@
+n
+n
+y
+n
+n
+n
+
diff --git a/pcr/pspp/PKGBUILD b/pcr/pspp/PKGBUILD
new file mode 100644
index 000000000..d0042745f
--- /dev/null
+++ b/pcr/pspp/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Miguel Revilla <yo@miguelrevilla.com>
+# Contributor: joyfulgirl <joyfulgirl (at) archlinux.us>
+pkgname=pspp
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="Statistical analysis program"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/pspp/"
+license=('GPL3')
+depends=('gsl' 'gtksourceview2' 'postgresql-libs' 'desktop-file-utils')
+optdepends=('zlib: GNUmeric support'
+ 'libxml2: GNUMERIC support')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnu.org/gnu/pspp/pspp-${pkgver}.tar.gz)
+md5sums=('cba0b161bb69e1bbd71612d09694b0ec')
+install=pspp.install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --without-libreadline-prefix
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/share/info/dir"
+ install -d "${pkgdir}"/usr/share/pspp/contrib
+ install -m 644 pspp-mode.el "${pkgdir}"/usr/share/pspp/contrib/pspp-mode.el
+}
+
+# End of file
diff --git a/pcr/pspp/pspp.install b/pcr/pspp/pspp.install
new file mode 100644
index 000000000..def5ae5a5
--- /dev/null
+++ b/pcr/pspp/pspp.install
@@ -0,0 +1,18 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache /usr/share/icons/hicolor
+ cd /usr/share/info
+ install-info pspp.info.gz dir
+ install-info pspp-dev.info dir
+}
+
+pre_remove() {
+ cd /usr/share/info
+ install-info --remove pspp.info.gz dir
+ install-info --remove pspp-dev.info dir
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache /usr/share/icons/hicolor
+}
diff --git a/pcr/pulledpork/PKGBUILD b/pcr/pulledpork/PKGBUILD
new file mode 100644
index 000000000..db7aa9d0d
--- /dev/null
+++ b/pcr/pulledpork/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Isaac C. Aronson <i@pingas.org>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=pulledpork
+pkgver=0.6.1
+pkgrel=3
+pkgdesc="Tool to automatically update rules for snort"
+arch=('any')
+url="http://code.google.com/p/pulledpork"
+license=('GPL')
+depends=('perl' 'perl-lwp-protocol-https' 'perl-crypt-ssleay' 'perl-archive-tar' 'perl-switch')
+optdepends=('snort')
+source=(http://pulledpork.googlecode.com/files/pulledpork-0.6.1.tar.gz)
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -Dm644 etc/pulledpork.conf $pkgdir/etc/pulledpork.conf
+ install -Dm755 pulledpork.pl $pkgdir/usr/sbin/pulledpork.pl
+}
diff --git a/pcr/pumpa/PKGBUILD b/pcr/pumpa/PKGBUILD
new file mode 100644
index 000000000..a5f6ee21c
--- /dev/null
+++ b/pcr/pumpa/PKGBUILD
@@ -0,0 +1,84 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): speps <speps dot aur dot archlinux dot org>
+
+pkgbase=pumpa
+pkgname=(pumpa-qt4 pumpa-qt5 pumpa-l10n)
+pkgver=0.8.2
+pkgdesc="A simple pump.io client"
+url="http://sjoberg.fi/software/pumpa.html"
+license=('GPL3')
+
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('aspell' 'qjson' 'qt5-base')
+source=("http://gitorious.org/pumpa/pumpa/archive/v$pkgver.tar.gz")
+md5sums=('cb1a75b1365063198bd02b76e3fce2c5')
+
+prepare() {
+ cd $pkgbase-$pkgbase
+
+ # icon path fix
+ sed -i 's|/.*/||' $pkgbase.desktop
+}
+
+build() {
+ cd "$srcdir"/$pkgbase-$pkgbase
+ mkdir build-pumpa-qt4
+ cd build-pumpa-qt4
+ qmake-qt4 ..
+ make
+
+ cd "$srcdir"/$pkgbase-$pkgbase
+ mkdir build-pumpa-qt5
+ cd build-pumpa-qt5
+ qmake ..
+ make
+}
+
+package_pumpa-qt4() {
+ pkgdesc+=" (Qt4)"
+ depends+=('pumpa-l10n' 'aspell' 'qjson')
+ install="$pkgbase.install"
+ _package_common Qt4
+}
+
+package_pumpa-qt5() {
+ pkgdesc+=" (Qt5)"
+ depends=('pumpa-l10n' 'aspell' 'qt5-base')
+ install="$pkgbase.install"
+ _package_common Qt5
+}
+
+package_pumpa-l10n() {
+ pkgdesc+=" (localizations)"
+
+ cd $pkgbase-$pkgbase
+ install -d "$pkgdir/usr/share/locale"
+ install -Dm644 translations/*.qm \
+ "$pkgdir/usr/share/locale"
+}
+
+_package_common() {
+ local toolkit=$1
+ cd $pkgbase-$pkgbase
+
+ # bin
+ install -Dm755 build-$pkgname/$pkgbase \
+ "$pkgdir/usr/bin/$pkgname"
+
+ # icon
+ install -Dm644 images/$pkgbase.png \
+ "$pkgdir/usr/share/pixmaps/$pkgname.png"
+
+ # desktop file
+ install -d "$pkgdir/usr/share/applications"
+ sed -e "s|$pkgbase|$pkgname|" -e "s|Pumpa|& ($toolkit)|" \
+ < $pkgbase.desktop \
+ > "$pkgdir/usr/share/applications/$pkgname.desktop"
+
+ # man page
+ install -d "$pkgdir/usr/share/man/man1"
+ sed -e "s|$pkgbase|$pkgname|" -e "s|${pkgbase^^}|${pkgname^^}|" \
+ < docs/$pkgbase.1 \
+ > "$pkgdir/usr/share/man/man1/$pkgname.1"
+}
diff --git a/pcr/pumpa/pumpa.install b/pcr/pumpa/pumpa.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/pcr/pumpa/pumpa.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/puppet/PKGBUILD b/pcr/puppet/PKGBUILD
new file mode 100644
index 000000000..02e8f32c8
--- /dev/null
+++ b/pcr/puppet/PKGBUILD
@@ -0,0 +1,86 @@
+# Puppet: Installer: Arch
+# Contributor: Greg Sutcliffe <puppet-aur (at) emeraldreverie (dot) org>
+# Contributor: Hyacinthe Cartiaux <hyacinthe (dot) cartiaux (at) free (dot) fr>
+# Contributor: Thomas S Hatch <thatch45 (at) Gmail (dot) com>
+# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
+# Contributor: Miah Johnson <miah (at) chia-pet dot org>
+# Contributor: Dave Simons <miouhpi (at) Gmail (dot) com>
+# Contributor: Niels Abspoel <aboe76 (at) Gmail (dot) com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+# RC style, reserved for later use
+#pkgname=puppet
+#_rc=8
+#_pkgver=3.0.0
+#pkgver=${_pkgver}_rc${_rc}
+
+pkgname=puppet
+pkgver=3.0.1
+pkgrel=5
+pkgdesc="A system for automating system administration tasks."
+arch=("any")
+url="http://puppetlabs.com/projects/puppet/"
+license=("APACHE")
+depends=("ruby" "ruby-shadow" "facter" "ruby-hiera" "ruby-hiera-json")
+makedepends=('which')
+backup=("etc/puppet/puppet.conf")
+options=(emptydirs)
+provides=("puppet" "vim-puppet" "ruby-hiera-puppet")
+conflicts=("puppet3" "ruby-puppet" "vim-puppet" "ruby-hiera-puppet")
+install="puppet.install"
+source=(http://puppetlabs.com/downloads/puppet/puppet-${pkgver//_/-}.tar.gz
+ fileserver.conf
+ puppet
+ puppet.conf
+ puppetmaster)
+md5sums=('2117e3a1964ac54fcd36d926eed3db94'
+ 'ffacd9bfb9c7656a3a345dbc5eb0e67a'
+ '59dbf39e251bc4877e7604a5876c642d'
+ 'a7d61d20e46b411eb50ad5279987584a'
+ '4c507c580cb28d7a5adc9ea6b3626657')
+
+package() {
+ cd $srcdir/puppet-${pkgver//_/-}
+
+ # Install
+ ruby ./install.rb \
+ --destdir=$pkgdir \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --mandir=/usr/share/man
+
+
+ # Set up vim and emacs
+ install -Dp -m0644 ext/vim/ftdetect/puppet.vim $pkgdir/usr/share/vim/vimfiles/ftdetect/puppet.vim
+ install -Dp -m0644 ext/vim/syntax/puppet.vim $pkgdir/usr/share/vim/vimfiles/syntax/puppet.vim
+ install -Dp -m0644 ext/emacs/puppet-mode.el $pkgdir/usr/share/emacs/site-lisp/puppet-mode.el
+ install -Dp -m0644 ext/emacs/puppet-mode-init.el $pkgdir/usr/share/emacs/site-lisp/site-start.d/puppet-mode-init.el
+
+ # Configuration and rc scripts
+ install -d $pkgdir/etc/{puppet,rc.d}
+ install -m 644 $srcdir/puppet.conf $pkgdir/etc/puppet/puppet.conf
+ install -m 644 $srcdir/fileserver.conf $pkgdir/etc/puppet/fileserver.conf
+
+ # Setup tmpfiles.d config
+ install -d $pkgdir/etc/tmpfiles.d
+ echo "D /var/run/puppet 0755 puppet puppet -" > $pkgdir/etc/tmpfiles.d/puppet.conf
+
+ # Configuration for hiera / symlink is there to use hiera within puppet.
+ ln -snf /etc/hiera.yaml ${pkgdir}/etc/puppet/hiera.yaml
+
+ # Systemd files
+ install -Dm 644 $srcdir/puppet-${pkgver//_/-}/ext/systemd/puppetagent.service $pkgdir/usr/lib/systemd/system/puppetagent.service
+ install -Dm 644 $srcdir/puppet-${pkgver//_/-}/ext/systemd/puppetmaster.service $pkgdir/usr/lib/systemd/system/puppetmaster.service
+
+ # Create puppet homedir and hieradir
+ install -d $pkgdir/var/lib/puppet
+ install -d $pkgdir/var/lib/hiera
+
+ install -D $srcdir/puppet $pkgdir/etc/rc.d/puppet
+ install -D $srcdir/puppetmaster $pkgdir/etc/rc.d/puppetmaster
+
+ # Copy the LICENSE file in the usual directory
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m 644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+}
diff --git a/pcr/puppet/fileserver.conf b/pcr/puppet/fileserver.conf
new file mode 100644
index 000000000..67e387ca0
--- /dev/null
+++ b/pcr/puppet/fileserver.conf
@@ -0,0 +1,12 @@
+# This file consists of arbitrarily named sections/modules
+# defining where files are served from and to whom
+
+# Define a section 'files'
+# Adapt the allow/deny settings to your needs. Order
+# for allow/deny does not matter, allow always takes precedence
+# over deny
+# [files]
+# path /var/lib/puppet/files
+# allow *.example.com
+# deny *.evil.example.com
+# allow 192.168.0.0/24
diff --git a/pcr/puppet/puppet b/pcr/puppet/puppet
new file mode 100755
index 000000000..4126be850
--- /dev/null
+++ b/pcr/puppet/puppet
@@ -0,0 +1,45 @@
+#!/bin/bash
+DAEMON=$(type -p puppetd)
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/puppet ] && . /etc/conf.d/puppet
+
+PID=$(pidof -xo %PPID $DAEMON)
+case "$1" in
+ start)
+ stat_busy "Starting Puppet Daemon"
+ if [ -z "$PID" ]; then
+ [ -f /var/run/puppet.pid ] && rm -f /var/run/puppet.pid
+ $DAEMON $PUPPETD_ARGS
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -xo %PPID $DAEMON)
+ echo $PID > /var/run/puppet.pid
+ add_daemon puppet
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Puppet Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon puppet
+ rm -f /var/run/puppet.pid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ if [ ! -z $PID ]; then
+ while ps -p $PID > /dev/null; do sleep 1; done
+ fi
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/pcr/puppet/puppet.conf b/pcr/puppet/puppet.conf
new file mode 100644
index 000000000..aa5868dee
--- /dev/null
+++ b/pcr/puppet/puppet.conf
@@ -0,0 +1,32 @@
+[main]
+ # The Puppet var directory
+ # The default value is '/var/lib/puppet'
+ vardir = /var/lib/puppet
+
+ # The Puppet log directory.
+ # The default value is '$vardir/log'.
+ logdir = /var/log/puppet
+
+ # Where Puppet PID files are kept.
+ # The default value is '$vardir/run'.
+ rundir = /var/run/puppet
+
+ # Where SSL certificates are kept.
+ # The default value is '$confdir/ssl'.
+ pluginsync=true
+
+
+[agent]
+ # The file in which puppetd stores a list of the classes
+ # associated with the retrieved configuratiion. Can be loaded in
+ # the separate ``puppet`` executable using the ``--loadclasses``
+ # option.
+ # The default value is '$confdir/classes.txt'.
+ classfile = $vardir/classes.txt
+
+ # Where puppetd caches the local configuration. An
+ # extension indicating the cache format is added automatically.
+ # The default value is '$confdir/localconfig'.
+ localconfig = $vardir/localconfig
+
+#[master]
diff --git a/pcr/puppet/puppet.install b/pcr/puppet/puppet.install
new file mode 100644
index 000000000..928df566b
--- /dev/null
+++ b/pcr/puppet/puppet.install
@@ -0,0 +1,46 @@
+# Puppet: Installer: Arch
+# Maintainer: Thomas S Hatch <thatch45 (at) Gmail (dot) com>
+# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
+# Contributor: Miah Johnson <Miah (at) chia-pet dot org>
+
+pre_install() {
+ getent group puppet &>/dev/null || groupadd -r puppet -g 52 &>/dev/null
+ getent passwd puppet &>/dev/null || useradd -r -u 52 -g puppet -d /var/lib/puppet -s /sbin/nologin -c "Puppet" puppet &>/dev/null || :
+}
+
+pre_upgrade() {
+ pre_install
+ usermod -d /var/lib/puppet puppet &>/dev/null || :
+}
+
+post_install() {
+ :
+}
+
+pre_remove() {
+if [ -f /var/run/puppetmasterd.pid ]; then
+ PIDOF=$(pidof -xo %PPID puppetmasterd)
+ PIDFILE=$(cat /var/run/puppetmasterd.pid)
+ if [ $PIDOF -eq $PIDFILE ]; then
+ /etc/rc.d/puppetmaster stop
+ fi
+fi
+
+if [ -f /var/run/puppetd.pid ]; then
+ PIDOF=$(pidof -xo %PPID puppetd)
+ PIDFILE=$(cat /var/run/puppetd.pid)
+ if [ $PIDOF -eq $PIDFILE ]; then
+ /etc/rc.d/puppet stop
+ fi
+fi
+}
+
+post_remove() {
+ # Remove user and group
+ userdel puppet
+}
+
+op=$1
+shift
+
+$op "$@"
diff --git a/pcr/puppet/puppetmaster b/pcr/puppet/puppetmaster
new file mode 100755
index 000000000..8b3971053
--- /dev/null
+++ b/pcr/puppet/puppetmaster
@@ -0,0 +1,45 @@
+#!/bin/bash
+DAEMON=$(type -p puppetmasterd)
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/puppetmaster ] && . /etc/conf.d/puppetmaster
+
+PID=$(pidof -xo %PPID $DAEMON)
+case "$1" in
+ start)
+ stat_busy "Starting Puppet Master Daemon"
+ if [ -z "$PID" ]; then
+ [ -f /var/run/puppetmaster.pid ] && rm -f /var/run/puppetmaster.pid
+ $DAEMON $PUPPETMASTER_ARGS
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -xo %PPID $DAEMON)
+ echo $PID > /var/run/puppetmaster.pid
+ add_daemon puppetmaster
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Puppet Master Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon puppetmaster
+ rm -f /var/run/puppetmaster.pid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ if [ ! -z $PID ]; then
+ while ps -p $PID > /dev/null; do sleep 1; done
+ fi
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/pcr/pybitmessage-git/PKGBUILD b/pcr/pybitmessage-git/PKGBUILD
new file mode 100644
index 000000000..e6cad32b3
--- /dev/null
+++ b/pcr/pybitmessage-git/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Andreas Wagner <AndreasBWagner@pointfree.net>
+# Maintainer: Andy Weidenbaum <archbaum@gmail.com>
+# Contributor: Asta <gatien.bovyn@gmail.com>
+# Contributor: ptrv <mail@petervasil.net>
+
+pkgname=pybitmessage-git
+_gitname='PyBitmessage'
+_realname='pybitmessage'
+pkgver=7ad8ce7
+pkgrel=2
+pkgdesc="Bitcoin inspired P2P encrypted messenger"
+arch=('any')
+depends=('hicolor-icon-theme' 'python2' 'python2-pyqt' 'qt4')
+makedepends=('git')
+optdepends=('python2-gevent')
+url="https://github.com/Bitmessage/PyBitmessage"
+license=('MIT')
+source=(git+https://github.com/Bitmessage/PyBitmessage
+ pybitmessage.sh)
+sha256sums=('SKIP'
+ 'c20eeeffd4931d8bcd50de5e6e1a974323ebbd3f5ad1d34483c6adeb3b5f3ae1')
+provides=('pybitmessage')
+conflicts=('pybitmessage')
+
+pkgver() {
+ cd $_gitname
+ git describe --always | sed 's|-|.|g'
+}
+
+prepare() {
+ cd $_gitname
+
+ msg 'Fixing Python version...'
+ find . -type f -print0 | xargs -0 sed -i 's#/usr/bin/python#/usr/bin/python2#g'
+ find . -type f -print0 | xargs -0 sed -i 's#/usr/bin/env python#/usr/bin/env python2#g'
+}
+
+package() {
+ cd $_gitname
+
+ msg 'Installing shared files...'
+ mkdir -p "$pkgdir"/usr/share/${_realname}
+ cp -R src/* "$pkgdir"/usr/share/${_realname}
+
+ msg 'Installing desktop icons...'
+ install -D -m644 desktop/${_realname}.desktop "${pkgdir}/usr/share/applications/${_realname}.desktop"
+ install -D -m644 src/images/can-icon-24px.png "${pkgdir}/usr/share/icons/hicolor/24x24/apps/${_realname}.png"
+ install -D -m644 desktop/can-icon.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/${_realname}.svg"
+ install -D -m644 desktop/can-icon.svg "${pkgdir}/usr/share/pixmaps/${_realname}.svg"
+
+ msg 'Installing executable...'
+ install -D -m755 ${srcdir}/pybitmessage.sh "${pkgdir}/usr/bin/pybitmessage"
+
+ msg 'Cleaning up pkgdir...'
+ find "$pkgdir" -type d -name .git -exec rm -r '{}' +
+ find "$pkgdir" -type f -name .gitignore -exec rm -r '{}' +
+}
+
diff --git a/pcr/pybitmessage-git/pybitmessage.sh b/pcr/pybitmessage-git/pybitmessage.sh
new file mode 100644
index 000000000..117dce3bc
--- /dev/null
+++ b/pcr/pybitmessage-git/pybitmessage.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+python2 /usr/share/pybitmessage/bitmessagemain.py
diff --git a/pcr/pybonjour/PKGBUILD b/pcr/pybonjour/PKGBUILD
new file mode 100644
index 000000000..cb7d6bd45
--- /dev/null
+++ b/pcr/pybonjour/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Ruben Schuller <r.schuller@orgizm.net>
+
+pkgname=pybonjour
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="pybonjour provides a pure-Python interface to Apple Bonjour/Avahi"
+arch=('any')
+provides=('pybonjour')
+license=('MIT')
+url="http://code.google.com/p/pybonjour/"
+depends=('python2')
+makedepends=()
+source=(http://$pkgname.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('30cbfd3e9e9721b39f6aa67df1c315a2')
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/pycryptopp/PKGBUILD b/pcr/pycryptopp/PKGBUILD
new file mode 100644
index 000000000..f95654884
--- /dev/null
+++ b/pcr/pycryptopp/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+# Contributor: Peter Simons <simons@cryp.to>
+pkgname=pycryptopp
+pkgver=0.6.0
+_pkgtag=1206569328141510525648634803928199668821045408958
+pkgrel=2
+pkgdesc="Python wrappers for the Crypto++ library"
+arch=('i686' 'x86_64')
+url='http://allmydata.org/trac/pycryptopp'
+license=('GPL2' 'custom')
+depends=('python2' 'crypto++')
+makedepends=('darcsver' 'setuptools_darcs')
+source=( http://pypi.python.org/packages/source/p/$pkgname/$pkgname-$pkgver.$_pkgtag.tar.gz
+ http://pypi.python.org/packages/source/p/$pkgname/$pkgname-$pkgver.$_pkgtag.tar.gz.asc )
+md5sums=('ce38fbe03705d27da408c78b56eb1947'
+ '76fe2da5b1fc964d9e1ee4596c36d5bf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver.$_pkgtag"
+ export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1
+ python2 setup.py build
+ python2 setup.py test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver.$_pkgtag"
+ python2 setup.py install --root="$pkgdir"
+
+ install -d $pkgdir/usr/share/licenses/$pkgname/
+ install -m 644 COPYING* $pkgdir/usr/share/licenses/$pkgname/
+}
diff --git a/pcr/pysheng/PKGBUILD b/pcr/pysheng/PKGBUILD
new file mode 100644
index 000000000..4cbdf5d38
--- /dev/null
+++ b/pcr/pysheng/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: mutlu_inek@yahoo.de
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=pysheng
+pkgver=0.1
+pkgrel=1
+pkgdesc="CLI and GUI program to download pages from Google Books as PNG images"
+arch=(i686 x86_64)
+url="https://code.google.com/p/pysheng/"
+license=('GPL')
+depends=('python2')
+makedepends=()
+optdepends=('python2-reportlab: GUI')
+provides=()
+conflicts=()
+replaces=()
+options=()
+source=(http://pysheng.googlecode.com/files/$pkgname-$pkgver.tgz)
+
+package() {
+ cd $pkgname-$pkgver
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
+
diff --git a/pcr/python-anyjson/PKGBUILD b/pcr/python-anyjson/PKGBUILD
new file mode 100644
index 000000000..8ab20d1c9
--- /dev/null
+++ b/pcr/python-anyjson/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Benjamin A. Shelton <zancarius@gmail.com>
+# Contributor: p2k <Patrick.Schneider@uni-ulm.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-anyjson
+pkgver=0.3.3
+pkgrel=1
+pkgdesc="Wraps the best available JSON implementation available in a common interface."
+arch=('any')
+url="http://pypi.python.org/pypi/anyjson"
+license=('BSD')
+depends=('python2')
+makedepends=('python2-distribute')
+source=("http://pypi.python.org/packages/source/a/anyjson/anyjson-${pkgver}.tar.gz")
+
+build () {
+
+ cd "${srcdir}/anyjson-${pkgver}"
+ python2 setup.py install --root="${pkgdir}/" --optimize=1
+
+}
diff --git a/pcr/python-blinker/PKGBUILD b/pcr/python-blinker/PKGBUILD
new file mode 100644
index 000000000..00dc3cdad
--- /dev/null
+++ b/pcr/python-blinker/PKGBUILD
@@ -0,0 +1,19 @@
+pkgname=python-blinker
+pkgver=1.3
+pkgrel=1
+pkgdesc="Fast, simple object-to-object and broadcast signaling"
+arch=("any")
+url="http://pythonhosted.org/blinker/"
+license=('custom')
+depends=('python')
+options=(!emptydirs)
+source=("https://pypi.python.org/packages/source/b/blinker/blinker-$pkgver.tar.gz")
+md5sums=('66e9688f2d287593a0e698cd8a5fbc57')
+
+package() {
+ cd "$srcdir/blinker-$pkgver"
+ python setup.py install --root="$pkgdir/" --optimize=1
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python-feedgenerator/PKGBUILD b/pcr/python-feedgenerator/PKGBUILD
new file mode 100644
index 000000000..0f0d65952
--- /dev/null
+++ b/pcr/python-feedgenerator/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname=python-feedgenerator
+pkgver=1.6
+pkgrel=1
+pkgdesc="Standalone version of django.utils.feedgenerator"
+arch=("any")
+url="https://github.com/dmdm/feedgenerator-py3k.git"
+license=('custom:BSD')
+depends=('python' 'python-distribute' 'python-pytz' 'python-six')
+options=(!emptydirs)
+source=("https://pypi.python.org/packages/source/f/feedgenerator/feedgenerator-$pkgver.tar.gz")
+md5sums=('63f6f8529a1ae877715124328edea196')
+
+package() {
+ cd "$srcdir/feedgenerator-$pkgver"
+ python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python-jedi/PKGBUILD b/pcr/python-jedi/PKGBUILD
new file mode 100644
index 000000000..d34823097
--- /dev/null
+++ b/pcr/python-jedi/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Jesus Alvarez
+# Contributor: Danilo Bargen <gezuru@gmail.com>
+# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io>
+pkgname=python-jedi
+pkgver=0.7.0
+pkgrel=1
+pkgdesc="Awesome autocompletion for python. Official PKGBUILD."
+arch=('any')
+url="https://github.com/davidhalter/jedi"
+license=('LGPL3')
+depends=('python')
+makedepends=('python-distribute')
+conflicts=('jedi-git' 'python3-jedi-git')
+options=(!emptydirs)
+source=("https://pypi.python.org/packages/source/j/jedi/jedi-${pkgver}.tar.gz")
+
+
+package() {
+ cd "$srcdir/jedi-$pkgver"
+ python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python-lirc/PKGBUILD b/pcr/python-lirc/PKGBUILD
new file mode 100644
index 000000000..06e6988ef
--- /dev/null
+++ b/pcr/python-lirc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id$
+# Contributor: Eelco Cramer <eelco@servicelab.org>
+# Maintainer : Parabola Aurélien Desbrières <aurelien@xload.io>
+
+pkgname=python-lirc
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="LIRC extension written in Cython for Python 3"
+arch=('any')
+url="https://github.com/piface/pifacecad"
+license=('GPL3')
+depends=('python'
+ 'lirc'
+ 'cython')
+makedepends=('python-distribute')
+source=(https://github.com/tompreston/python-lirc/archive/v${pkgver}.tar.gz)
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+ make py3
+ python setup.py build
+}
+
+package() {
+ cd $srcdir/$pkgname-${pkgver}
+ python setup.py install --prefix=/usr --root=$pkgdir install
+}
+
diff --git a/pcr/python-paste-deploy/PKGBUILD b/pcr/python-paste-deploy/PKGBUILD
new file mode 100644
index 000000000..57b7ca0d3
--- /dev/null
+++ b/pcr/python-paste-deploy/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: David Campbell <davekong@archlinux.us>
+# Contributor: Cilyan Olowen <gaknar@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-paste-deploy
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="Load, configure, and compose WSGI applications and servers"
+arch=('any')
+url="http://pythonpaste.org/deploy/"
+license=('custom')
+depends=('python2')
+makedepends=('setuptools')
+source=(http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${pkgver}.tar.gz)
+
+
+build() {
+ cd $srcdir/PasteDeploy-${pkgver}
+ python2 setup.py install --root=$pkgdir --optimize=1
+ install -Dm644 docs/license.txt $pkgdir/usr/share/licenses/$pkgname/license.txt
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find $pkgdir -name '*.py')
+}
diff --git a/pcr/python-paste/PKGBUILD b/pcr/python-paste/PKGBUILD
new file mode 100644
index 000000000..3ffc12ca3
--- /dev/null
+++ b/pcr/python-paste/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: David Campbell <davekong@archlinux.us>
+# Contributor: Cilyan Olowen <gaknar@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-paste
+pkgver=1.7.5.1
+pkgrel=1
+pkgdesc="Tools for using a Web Server Gateway Interface stack."
+arch=('any')
+url="http://pythonpaste.org/index.html"
+license=('custom')
+depends=('python2')
+makedepends=('setuptools')
+source=(http://pypi.python.org/packages/source/P/Paste/Paste-${pkgver}.tar.gz)
+optdepends=('python-flup: WSGI utilities'
+ 'python-openid: Support for OpenID')
+
+build() {
+ cd ${srcdir}/Paste-${pkgver}
+ python2 setup.py install --root=${pkgdir} --optimize=1
+ install -Dm644 docs/license.txt ${pkgdir}/usr/share/licenses/$pkgname/license.txt
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find $pkgdir -name '*.py')
+}
diff --git a/pcr/python-pelican/PKGBUILD b/pcr/python-pelican/PKGBUILD
new file mode 100644
index 000000000..6d250a014
--- /dev/null
+++ b/pcr/python-pelican/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=python-pelican
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Static blog generator"
+arch=("any")
+url="http://getpelican.com/"
+license=('AGPL3')
+depends=('python' 'python-feedgenerator' 'python-jinja' 'python-pygments'
+ 'python-docutils' 'python-pytz' 'python-blinker' 'python-unidecode'
+ 'python-six' 'python-distribute')
+options=(!emptydirs)
+source=("https://pypi.python.org/packages/source/p/pelican/pelican-$pkgver.tar.gz")
+md5sums=('cf9af2669dbd84c3e83b546b70b1a78c')
+
+package() {
+ cd "$srcdir/pelican-$pkgver"
+ python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python-prettytable/PKGBUILD b/pcr/python-prettytable/PKGBUILD
new file mode 100644
index 000000000..92d42f18e
--- /dev/null
+++ b/pcr/python-prettytable/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
+# Contributor: Xiao Er <xia0er@gmail.com>
+# Contributor: Victor Noel <victor.noel@crazydwarves.org>
+
+# Hack for AUR
+pkgname='python2-prettytable'
+true && pkgname=('python-prettytable' 'python2-prettytable')
+
+pkgver=0.6.1
+pkgrel=2
+pkgdesc="A simple Python library for easily displaying tabular data in a visually appealing ASCII table format"
+url="http://pypi.python.org/pypi/PrettyTable"
+arch=('any')
+license=('BSD')
+makedepends=('python-distribute' 'python2-distribute')
+source=(http://pypi.python.org/packages/source/P/PrettyTable/prettytable-${pkgver}.tar.gz)
+md5sums=('8f97da999f52e47e28ec4ffe7f25c4d8')
+
+package_python-prettytable() {
+ depends=('python')
+ cd $srcdir/prettytable-$pkgver
+ python setup.py install --root="$pkgdir/"
+}
+
+package_python2-prettytable() {
+ depends=('python2')
+ cd $srcdir/prettytable-$pkgver
+ python2 setup.py install --root="$pkgdir/"
+}
diff --git a/pcr/python-pygame-hg/PKGBUILD b/pcr/python-pygame-hg/PKGBUILD
new file mode 100644
index 000000000..c48317b19
--- /dev/null
+++ b/pcr/python-pygame-hg/PKGBUILD
@@ -0,0 +1,72 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+_pkgname=pygame
+_pkgver=1.9.2
+_pyname=python
+_py3ver=3.3
+_py2ver=2.7
+_pkg3name=$_pyname-$_pkgname
+_pkg2name=${_pyname}2-$_pkgname
+_srcver=pre.d$(LC_ALL=C date -u +%Y%m%d)
+
+pkgbase=$_pyname-$_pkgname
+pkgname=(
+ $_pkg3name-hg
+ $_pkg2name-hg
+)
+pkgver=$_pkgver$_srcver
+pkgrel=1
+pkgdesc="${_pyname^} game library"
+arch=(
+ mips64el
+ x86_64
+ i686
+)
+url=http://www.$_pkgname.org/
+license=LGPL2.1
+depends=(
+ ffmpeg
+ portmidi
+ python
+ python2
+ #sdl_gfx
+ sdl_image
+ sdl_mixer
+ sdl_ttf
+)
+makedepends=mercurial
+source=hg+https://bitbucket.org/$_pkgname/$_pkgname
+sha512sums=SKIP
+
+package_python-pygame-hg() {
+ # disabled, due which conflicts with $_pkg2name
+ #provides=("$_pkg3name=$_pkgver")
+ #conflicts=$_pkg3name
+
+ cd $_pkgname
+
+ msg Building
+ find . -type f -exec sed -i "s|/usr/bin/env ${_pyname}2|/usr/bin/env $_pyname|" {} +
+ $_pyname config.py -auto
+ $_pyname setup.py install --root=$pkgdir --prefix=/usr
+
+ msg 'Copying the examples and tests'
+ cp -va examples lib/* $pkgdir/usr/lib/$_pyname$_py3ver/site-packages/$_pkgname
+ cp -va test/* $pkgdir/usr/lib/$_pyname$_py3ver/site-packages/$_pkgname/tests
+}
+
+package_python2-pygame-hg() {
+ provides=("$_pkg2name=$_pkgver")
+ conflicts=$_pkg2name
+
+ cd $_pkgname
+
+ msg Building
+ find . -type f -exec sed -i "s|/usr/bin/env $_pyname|/usr/bin/env ${_pyname}2|" {} +
+ ${_pyname}2 config.py -auto
+ ${_pyname}2 setup.py install --root=$pkgdir --prefix=/usr
+
+ msg 'Copying the examples and tests'
+ cp -va examples lib/* $pkgdir/usr/lib/$_pyname$_py2ver/site-packages/$_pkgname
+ cp -va test/* $pkgdir/usr/lib/$_pyname$_py2ver/site-packages/$_pkgname/tests
+}
diff --git a/pcr/python-repoze.lru/PKGBUILD b/pcr/python-repoze.lru/PKGBUILD
new file mode 100644
index 000000000..844658c27
--- /dev/null
+++ b/pcr/python-repoze.lru/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: speps <speps at aur dot archlinux dot org>
+# Contributor: DasIch <dasdasich@googlemail.com>
+# Maintainer : Paraobla GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+_name=repoze.lru
+pkgname=python-$_name
+pkgver=0.6
+pkgrel=1
+pkgdesc="A tiny LRU cache implementation and decorator"
+arch=('any')
+license=('custom:BSD')
+url="http://pypi.python.org/pypi/$_name"
+depends=('python')
+makedepends=('python-distribute')
+provides=(python-repoze-lru)
+conflicts=(python-repoze-lru)
+replaces=(python-repoze-lru)
+source=("http://pypi.python.org/packages/source/r/$_name/$_name-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/$_name-$pkgver"
+ python setup.py build
+}
+
+package() {
+ cd "$srcdir/$_name-$pkgver"
+ python setup.py install --root="$pkgdir/"
+
+ # license
+ install -Dm644 LICENSE.txt \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/pcr/python-routes/PKGBUILD b/pcr/python-routes/PKGBUILD
new file mode 100644
index 000000000..511934ef2
--- /dev/null
+++ b/pcr/python-routes/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: David Moore <davidm@sjsoft.com>
+# Contributor: Nathan Jones <nathanj@insightbb.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-routes
+pkgver=1.13
+pkgrel=2
+pkgdesc="A routing package for Python that matches URL's to dicts and vice versa"
+arch=('any')
+url="http://pypi.python.org/pypi/Routes"
+license=('custom:BSD')
+depends=('python-repoze.lru')
+makedepends=('python-distribute')
+source=("http://pypi.python.org/packages/source/R/Routes/Routes-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/Routes-$pkgver"
+ python setup.py build
+}
+
+package() {
+ cd "$srcdir/Routes-$pkgver"
+
+ python setup.py install --root="$pkgdir/"
+ install -Dm644 LICENSE \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
diff --git a/pcr/python-unidecode/PKGBUILD b/pcr/python-unidecode/PKGBUILD
new file mode 100644
index 000000000..1a605c28e
--- /dev/null
+++ b/pcr/python-unidecode/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname=python-unidecode
+pkgver=0.04.13
+pkgrel=1
+pkgdesc="ASCII transliterations of Unicode text"
+arch=("any")
+url="https://pypi.python.org/pypi/Unidecode"
+license=('GPL2')
+depends=('python')
+options=(!emptydirs)
+source=("https://pypi.python.org/packages/source/U/Unidecode/Unidecode-$pkgver.tar.gz")
+md5sums=('74fabcc0aa3c3b185181df7fce8cab09')
+
+package() {
+ cd "$srcdir/Unidecode-$pkgver"
+ python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python-wsgiref/PKGBUILD b/pcr/python-wsgiref/PKGBUILD
new file mode 100644
index 000000000..3f3b38bd2
--- /dev/null
+++ b/pcr/python-wsgiref/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Philipp Schmidt <philschmidt at gmx dot net>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-wsgiref
+pkgver=0.1.2
+pkgrel=2
+pkgdesc="WSGI (PEP 333) Reference Library"
+arch=('i686' 'x86_64')
+url="http://cheeseshop.python.org/pypi/wsgiref"
+license=('PSF or ZPL')
+depends=('python2')
+makedepends=('unzip' 'setuptools')
+source=("http://pypi.python.org/packages/source/w/wsgiref/wsgiref-$pkgver.zip")
+
+build() {
+ cd "$srcdir/wsgiref-$pkgver"
+
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/python-xattr/PKGBUILD b/pcr/python-xattr/PKGBUILD
new file mode 100644
index 000000000..d6977f435
--- /dev/null
+++ b/pcr/python-xattr/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-xattr
+pkgver=20111028
+pkgrel=1
+pkgdesc="module for manipulating filesystem extended attributes"
+arch=('i686' 'x86_64')
+url="http://undefined.org/python/#xattr"
+license=('MIT')
+conflicts=('pyattr')
+provied=('pyattr')
+makedepends=('setuptools')
+depends=('python2' 'git')
+
+_gitroot=https://github.com/xattr/xattr.git
+_gitname=xattr
+
+build() {
+ cd $srcdir/
+
+ if [ -e ${_gitname} ] ; then
+ cd ${_gitname}
+ git pull
+ cd ..
+ else
+ git clone ${_gitroot} ${_gitname}
+ fi
+
+ cd $srcdir/xattr/
+ python2 setup.py install --prefix=/usr --root=$pkgdir
+}
diff --git a/pcr/python2-amqplib/PKGBUILD b/pcr/python2-amqplib/PKGBUILD
new file mode 100644
index 000000000..d67800a06
--- /dev/null
+++ b/pcr/python2-amqplib/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Tevin Zhang <mail2tevin {at} gmail {dot} com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-amqplib
+pkgver=1.0.2
+pkgrel=3
+pkgdesc="Python client for the Advanced Message Queuing Procotol (AMQP). Uses Python2."
+arch=('any')
+url="http://code.google.com/p/py-amqplib/"
+license=("LGPL")
+depends=('python2>=2.6' 'setuptools')
+source=(http://py-amqplib.googlecode.com/files/amqplib-$pkgver.tgz)
+
+build() {
+ cd $srcdir/amqplib-$pkgver
+
+ # replace /usr/bin/env python with python2
+ find . -name '*.py' -exec sed -i -e '1 s/python\s*$/python2/' {} \;
+
+ python2 ./setup.py install --root=$pkgdir --prefix=/usr || return 1
+}
+
diff --git a/pcr/python2-argparse/PKGBUILD b/pcr/python2-argparse/PKGBUILD
new file mode 100644
index 000000000..cda95c0e2
--- /dev/null
+++ b/pcr/python2-argparse/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Lukas Linhart <bugs@almad.net>
+# Contributor: Changaco <changaco ατ changaco δοτ net>
+# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-argparse
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Command line parsing library for python"
+arch=('any')
+url='http://code.google.com/p/argparse/'
+conflicts=('argparse')
+license=('Apache')
+depends=('python2')
+makedepends=('setuptools')
+source=("http://argparse.googlecode.com/files/argparse-$pkgver.tar.gz")
+
+# While python 2.7 has a builtin argparse module,
+# packages built with setuptools still needs this one.
+
+build() {
+ cd ${srcdir}/argparse-$pkgver
+ python2 setup.py build || return 1
+ python2 setup.py install --root=${pkgdir} || return 1
+}
diff --git a/pcr/python2-carrot/PKGBUILD b/pcr/python2-carrot/PKGBUILD
new file mode 100644
index 000000000..b620eca9e
--- /dev/null
+++ b/pcr/python2-carrot/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Lukas Linhart <bugs@almad.net>
+# Contributor: Marco Elver <marco.elver AT gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-carrot
+pkgver=0.10.5
+pkgrel=1
+pkgdesc="AMQP Messaging Framwork for Python"
+arch=('any')
+url='http://ask.github.com/carrot/'
+license=('BSD')
+depends=('python2' 'python2-amqplib')
+makedepends=('setuptools')
+source=("http://pypi.python.org/packages/source/c/carrot/carrot-$pkgver.tar.gz")
+options=(!emptydirs)
+
+build() {
+ cd ${srcdir}/carrot-$pkgver
+ python2 setup.py install --root=$pkgdir/ --optimize=1 || return 1
+}
+
diff --git a/pcr/python2-cheetah/Changelog b/pcr/python2-cheetah/Changelog
new file mode 100644
index 000000000..e95e8c91f
--- /dev/null
+++ b/pcr/python2-cheetah/Changelog
@@ -0,0 +1,12 @@
+2012-03-25 Julien Nicoulaud <julien.nicoulaud@gmail.com>
+
+ * 2.4.4-5 :
+ Change dependency on 'python-markdown' to 'python2-markdown' since
+ FS#28265 is solved.
+
+2012-01-31 Julien Nicoulaud <julien.nicoulaud@gmail.com>
+
+ * 2.4.4-4 :
+ Add changelog.
+ Remove unneeded shebang modification.
+
diff --git a/pcr/python2-cheetah/PKGBUILD b/pcr/python2-cheetah/PKGBUILD
new file mode 100644
index 000000000..ea6b1036b
--- /dev/null
+++ b/pcr/python2-cheetah/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Julien Nicoulaud <julien.nicoulaud@gmail.com>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Todd Maynard <arch@toddmaynard.com>
+# Source: https://github.com/nicoulaj/archlinux-packages
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-cheetah
+pkgver=2.4.4
+pkgrel=5
+pkgdesc="A Python-powered template engine and code generator"
+arch=(i686 x86_64)
+url="http://www.cheetahtemplate.org"
+license=(custom)
+depends=(python2 python2-markdown)
+makedepends=(python2-distribute)
+optdepends=('python2-pygments: for the CodeHighlighter filter')
+provides=(cheetah python-cheetah)
+conflicts=(cheetah python-cheetah)
+changelog=Changelog
+source=(http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${pkgver}.tar.gz)
+
+build() {
+ cd "${srcdir}/Cheetah-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ msg "Install..."
+ cd "${srcdir}/Cheetah-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" || return 1
+
+ msg2 "Install copyright resources in /usr/share/licenses/${pkgname}..."
+ install -Dm644 "${srcdir}/Cheetah-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/pcr/python2-daemon/PKGBUILD b/pcr/python2-daemon/PKGBUILD
new file mode 100644
index 000000000..18358f9cb
--- /dev/null
+++ b/pcr/python2-daemon/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-daemon
+pkgver=1.6
+pkgrel=2
+pkgdesc="Library to implement a well-behaved Unix daemon process"
+license=("PSF-2+")
+url="http://pypi.python.org/pypi/python-daemon"
+depends=('python2-lockfile')
+makedepends=('python2-distribute')
+source=(http://pypi.python.org/packages/source/p/python-daemon/python-daemon-$pkgver.tar.gz)
+arch=('any')
+options=(!emptydirs)
+
+build() {
+ cd "$srcdir/python-daemon-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+}
+
diff --git a/pcr/python2-empy/PKGBUILD b/pcr/python2-empy/PKGBUILD
new file mode 100644
index 000000000..3c4cd7bee
--- /dev/null
+++ b/pcr/python2-empy/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Andrew Conkling <andrewski@fr.st>
+# Contributor: hauptmech <hauptmech@gmail.com>
+# Maintainer : Parabola GNU / LInux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-empy
+realname=empy
+pkgver=3.3
+pkgrel=2
+pkgdesc="A powerful and robust templating system for Python."
+arch=(i686 x86_64)
+url="http://www.alcyone.com/software/empy"
+depends=('python2')
+license=('LGPL')
+source=("http://www.alcyone.com/software/empy/empy-$pkgver.tar.gz")
+
+build() {
+ cd $startdir/src/empy-$pkgver
+ python2 setup.py install --prefix=$startdir/pkg/usr
+}
+
diff --git a/pcr/python2-eventlet/PKGBUILD b/pcr/python2-eventlet/PKGBUILD
new file mode 100644
index 000000000..d9dc41d8d
--- /dev/null
+++ b/pcr/python2-eventlet/PKGBUILD
@@ -0,0 +1,22 @@
+# -*- shell-script -*-
+#Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+python=python2
+name=eventlet
+
+pkgname=$python-$name
+pkgver=0.9.16
+pkgrel=1
+pkgdesc="Highly concurrent networking library"
+arch=(any)
+url="http://eventlet.net"
+license=(MIT)
+depends=('python2-greenlet' 'python' 'python2-distribute')
+makedepends=("$python")
+source=("http://pypi.python.org/packages/source/e/$name/$name-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/$name-$pkgver"
+ $python setup.py install --prefix=/usr --root=$pkgdir
+}
+
diff --git a/pcr/python2-fabric/PKGBUILD b/pcr/python2-fabric/PKGBUILD
new file mode 100644
index 000000000..7552eaabc
--- /dev/null
+++ b/pcr/python2-fabric/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Francois Boulogne <fboulogne at april dot org>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-fabric
+pkgver=1.5.0
+pkgrel=2
+pkgdesc="Python library and command-line tool designed to streamline deploying applications or performing system administration tasks via the SSH protocol"
+url="http://fabfile.org/"
+license=('BSD')
+arch=('any')
+depends=('python2>=2.5' 'pycrypto' 'python2-paramiko>=1.9.0' 'python2-distribute' 'python2-ssh')
+source=("http://pypi.python.org/packages/source/F/Fabric/Fabric-${pkgver}.tar.gz")
+md5sums=('13b7b98149497fb7ab6f880e3e875f89')
+
+build() {
+ cd ${srcdir}/Fabric-${pkgver}
+ python2 setup.py install --root=${pkgdir} --optimize=1
+
+ install -D -m644 README.rst ${pkgdir}/usr/share/doc/${pkgname}/README.rst
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+md5sums=('13b7b98149497fb7ab6f880e3e875f89')
diff --git a/pcr/python2-flask-lesscss/PKGBUILD b/pcr/python2-flask-lesscss/PKGBUILD
new file mode 100644
index 000000000..3f2aecb73
--- /dev/null
+++ b/pcr/python2-flask-lesscss/PKGBUILD
@@ -0,0 +1,17 @@
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname="python2-flask-lesscss"
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="A small Flask extension that adds LessCSS support to Flask."
+arch=("any")
+url="http://pypi.python.org/pypi/flask-lesscss"
+license=("MIT")
+depends=("python2" "lessc" "python2-flask")
+makedepends=("setuptools")
+source=("http://pypi.python.org/packages/source/f/flask-lesscss/flask-lesscss-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/flask-lesscss-${pkgver}"
+ python2 ./setup.py install --root="${pkgdir}" --prefix="/usr" || return 1
+}
diff --git a/pcr/python2-iso8601/PKGBUILD b/pcr/python2-iso8601/PKGBUILD
new file mode 100644
index 000000000..08ca49004
--- /dev/null
+++ b/pcr/python2-iso8601/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: WU Jun <quark at lihdd dot net>
+# Contributor: Vsevolod Balashov <vsevolod@balashov.name>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+name=iso8601
+pkgname=python2-$name
+pkgver=0.1.4
+pkgrel=3
+pkgdesc="Simple module to parse ISO 8601 dates"
+arch=(any)
+url="http://pypi.python.org/pypi/$name"
+license=(MIT)
+depends=(python2)
+makedepends=(python2-distribute)
+source=("http://pypi.python.org/packages/source/i/$name/$name-$pkgver.tar.gz")
+build() {
+ cd "$srcdir/$name-$pkgver"
+ python2 setup.py install --prefix=/usr --root=$pkgdir || return 1
+}
diff --git a/pcr/python2-kombu/PKGBUILD b/pcr/python2-kombu/PKGBUILD
new file mode 100644
index 000000000..ef99b0beb
--- /dev/null
+++ b/pcr/python2-kombu/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Felix Yan <felixonmars@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-kombu
+pkgver=2.4.10
+pkgrel=1
+pkgdesc="AMQP Messaging Framework for Python 2.x"
+arch=('any')
+url="http://pypi.python.org/pypi/kombu/"
+license=('BSD')
+depends=('python2' 'python-anyjson')
+optdepends=(
+ "python2-librabbitmq: High performance AMQP transport written in C"
+)
+makedepends=('setuptools')
+source=("http://pypi.python.org/packages/source/k/kombu/kombu-$pkgver.tar.gz")
+options=(!emptydirs)
+
+build() {
+ cd "$srcdir"/kombu-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir"/kombu-$pkgver
+ python2 setup.py install --root="$pkgdir/"
+ install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/pcr/python2-mock/PKGBUILD b/pcr/python2-mock/PKGBUILD
new file mode 100644
index 000000000..5647c15d2
--- /dev/null
+++ b/pcr/python2-mock/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Felix Kaiser <felix.kaiser@fxkr.net>
+
+pkgname=python2-mock
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="A Python Mocking and Patching Library for Testing"
+url='http://www.voidspace.org.uk/python/mock/'
+license=('BSD')
+depends=('python2')
+arch=('i686' 'x86_64')
+source=("http://pypi.python.org/packages/source/m/mock/mock-$pkgver.tar.gz")
+md5sums=('c3971991738caa55ec7c356bbc154ee2')
+
+build() {
+ cd "$srcdir/mock-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/mock-$pkgver"
+ python2 setup.py install --optimize=1 --root="$pkgdir"
+ install -Dm644 LICENSE* $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/pcr/python2-netaddr/PKGBUILD b/pcr/python2-netaddr/PKGBUILD
new file mode 100644
index 000000000..8d9f2a827
--- /dev/null
+++ b/pcr/python2-netaddr/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Sebastien LEDUC <sebastien@sleduc.fr>
+# Contributor: Gilles CHAUVIN <gcnweb at gmail dot com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-netaddr
+pkgver=0.7.10
+pkgrel=1
+pkgdesc="A pure Python network address representation and manipulation library"
+arch=('i686' 'x86_64')
+license=('BSD')
+url="http://github.com/drkjam/netaddr/"
+depends=('python2')
+source=("http://github.com/downloads/drkjam/netaddr/netaddr-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/netaddr-$pkgver/"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
+
diff --git a/pcr/python2-oauth2/PKGBUILD b/pcr/python2-oauth2/PKGBUILD
new file mode 100644
index 000000000..c58e86f9c
--- /dev/null
+++ b/pcr/python2-oauth2/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-oauth2
+pkgver=1.5.211
+pkgrel=1
+_libname=${pkgname/python2-/}
+pkgdesc="A fully tested, abstract interface to creating OAuth clients and servers"
+arch=(any)
+url="https://github.com/simplegeo/python-oauth2"
+license=('GPL')
+depends=(python2-httplib2)
+makedepends=(python2-distribute)
+source=(http://pypi.python.org/packages/source/${_libname:0:1}/$_libname/$_libname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$_libname-$pkgver"
+ python2 setup.py install --root=$pkgdir
+ rm -rf "$pkgdir"/usr/lib/python*/site-packages/tests
+}
diff --git a/pcr/python2-passlib/PKGBUILD b/pcr/python2-passlib/PKGBUILD
new file mode 100644
index 000000000..753677827
--- /dev/null
+++ b/pcr/python2-passlib/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: onny <onny@project-insanity.org>
+# Contributor: onny <onny@project-insanity.org>
+# Maintainer : Parabola GNU /Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-passlib
+pkgver=1.6.1
+pkgrel=1
+pkgdesc="A password hashing library for Python."
+arch=('i686' 'x86_64')
+url=("https://code.google.com/p/passlib/")
+license=('custom')
+depends=('python2')
+source=("https://passlib.googlecode.com/files/passlib-${pkgver}.tar.gz")
+sha512sums=('93c047dc0a06f19a20e5da97db43c5c76e06d69baeac15cc932ef0306ae22dac5c1a3925889a140fd181ab4e00ac513ec829951e15babf5aad89bd2d08dc9907')
+
+build() {
+ cd "$srcdir/passlib-${pkgver}"
+ python2 setup.py build install --root="${pkgdir}" || return 1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python2-pillow/PKGBUILD b/pcr/python2-pillow/PKGBUILD
new file mode 100644
index 000000000..5840a5f82
--- /dev/null
+++ b/pcr/python2-pillow/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-pillow
+_appname=Pillow
+pkgver=1.7.8
+pkgrel=2
+pkgdesc="Python Imaging Library (PIL) fork."
+arch=(i686 x86_64)
+url="https://github.com/dwaiter/django-ckeditor"
+license=('BSD')
+depends=('python2')
+provides=('python2-imaging')
+conflicts=('python2-imaging')
+makedepends=('python2-distribute')
+source=("http://pypi.python.org/packages/source/P/${_appname}/${_appname}-${pkgver}.zip")
+md5sums=('41d8688d4db72673069a6dc63b5289d6')
+
+package() {
+ cd "$srcdir/$_appname-$pkgver"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
+
diff --git a/pcr/python2-pkgtools/PKGBUILD b/pcr/python2-pkgtools/PKGBUILD
new file mode 100644
index 000000000..7060dc416
--- /dev/null
+++ b/pcr/python2-pkgtools/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Fabien Devaux <fdev31 at gmail dot com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-pkgtools
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Python packages tools"
+arch=('any')
+url="http://pkgtools.readthedocs.org/en/latest/"
+license=('MIT')
+depends=('python2')
+makedepends=('python2-distribute')
+source=(http://pypi.python.org/packages/source/p/pkgtools/pkgtools-${pkgver}.tar.gz)
+
+build() {
+ cd "${srcdir}/pkgtools-${pkgver}"
+ python2 setup.py build || exit 1
+ python2 setup.py install --root="${pkgdir}" --optimize=1 || exit 1
+}
+
diff --git a/pcr/python2-polib/PKGBUILD b/pcr/python2-polib/PKGBUILD
new file mode 100644
index 000000000..50047ac3e
--- /dev/null
+++ b/pcr/python2-polib/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Esteban V. Carnevale <alfplayer@mailoo.com>
+
+pkgname=python2-polib
+_pkgname='polib'
+pkgver=1.0.3
+pkgrel=1
+pkgdesc='A library to manipulate gettext files'
+url='http://polib.readthedocs.org/en/latest/index.html'
+arch=('any')
+license=('MIT')
+depends=('python2')
+
+source=("https://bitbucket.org/izi/polib/downloads/polib-${pkgver}.tar.gz")
+md5sums=('dc9dc39d4053cfe030155891f3043cb1')
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ 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/pcr/python2-postfix-policyd-spf/PKGBUILD b/pcr/python2-postfix-policyd-spf/PKGBUILD
new file mode 100644
index 000000000..f5b96f752
--- /dev/null
+++ b/pcr/python2-postfix-policyd-spf/PKGBUILD
@@ -0,0 +1,28 @@
+# From https://aur.archlinux.org/packages.php?ID=42275
+# Maintainer: Filip S. Adamsen <fsa [at] fsadev [dot] com>
+# Contributor: Samed Beyribey <ras0ir@eventualis.org>
+pkgname=python2-postfix-policyd-spf
+_pkgname=pypolicyd-spf
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="Python2 Postfix Sender Policy Framework (SPF) filter"
+arch=('any')
+url="http://www.openspf.org/Software"
+license=('GPL')
+depends=('postfix' 'python2-pyspf' 'python2')
+conflicts=('python-postfix-policyd-spf')
+options=(!emptydirs)
+backup=(etc/python-policyd-spf/policyd-spf.conf)
+source=(http://launchpad.net/pypolicyd-spf/1.1/$pkgver/+download/$_pkgname-$pkgver.tar.gz)
+sha256sums=('f8999a9febc5ccb4a66f9961e4ec2d8f81b407bdc3ac1c84563cd5085429cdea')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ python2 setup.py install --root=$pkgdir/ --optimize=1
+ install -m644 policyd-spf.conf.commented $pkgdir/etc/python-policyd-spf
+}
diff --git a/pcr/python2-potr/PKGBUILD b/pcr/python2-potr/PKGBUILD
new file mode 100644
index 000000000..39613ad95
--- /dev/null
+++ b/pcr/python2-potr/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Michael Düll <mail@akurei.me> PGP-Key: AAAEE882
+
+pkgname=python2-potr
+pkgver=1.0.0beta6
+pkgrel=3
+pkgdesc="This is a pure Python OTR implementation; it does not bind to libotr."
+arch=(any)
+url="https://github.com/afflux/pure-python-otr"
+license=('LGPL')
+depends=('python2' 'python2-crypto')
+conflicts=('python-potr-git' 'python-potr')
+replaces=('python-potr')
+options=(!emptydirs)
+source=("https://github.com/afflux/pure-python-otr/tarball/${pkgver}")
+
+PYTHON=`which python2`
+
+build() {
+ cd $srcdir/afflux*
+ set_python2
+ $PYTHON ./setup.py build
+}
+
+package() {
+ cd $srcdir/afflux*
+ $PYTHON ./setup.py install --root=$pkgdir/
+}
+
+# To use python2 instead of default python v3.
+set_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
+}
+
+
+# vim:set ts=2 sw=2 et:
+sha512sums=('323ad31e782409b7bd93539dfc0088de8b114075b88de81123b732aff609fbb2a2c06221c52266225ce54e20e9856b25759bae84c93244a1258ccba3825c8b1c')
diff --git a/pcr/python2-pycha/PKGBUILD b/pcr/python2-pycha/PKGBUILD
new file mode 100644
index 000000000..cc6662f70
--- /dev/null
+++ b/pcr/python2-pycha/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Jakub Klinkovský <kuba.klinkovsky@gmail.com>
+# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=python2-pycha
+pkgver=279
+pkgrel=1
+pkgdesc="Pycha is a very simple Python package for drawing charts using the great Cairo library."
+arch=('any')
+url="http://bitbucket.org/lgs/pycha/"
+license=('LGPL')
+depends=('pycairo')
+makedepends=('mercurial' 'python2-distribute')
+
+_hgroot="https://bitbucket.org/lgs/pycha"
+_hgrepo="pycha"
+
+build() {
+ 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"
+}
+
+package() {
+ cd "$srcdir/$_hgrepo"
+ msg "Starting build..."
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/python2-pydns/PKGBUILD b/pcr/python2-pydns/PKGBUILD
new file mode 100644
index 000000000..cf5f4b388
--- /dev/null
+++ b/pcr/python2-pydns/PKGBUILD
@@ -0,0 +1,25 @@
+# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# From https://aur.archlinux.org/packages.php?ID=42273
+# Maintainer: Filip S. Adamsen <fsa [at] fsadev [dot] com>
+# Contributor: Samed Beyribey <ras0ir AT eventualis DOT org>
+pkgname=python2-pydns
+_pkgname=pydns
+pkgver=2.3.6
+pkgrel=1
+pkgdesc="Python2 module for performing DNS queries"
+arch=('any')
+url="http://pydns.sourceforge.net"
+license=('custom')
+depends=('python2')
+options=(!emptydirs)
+source=(http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.gz)
+md5sums=('d12ca75251854ab6fcabbaff6909b690')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ python2 setup.py build || return 1
+ python2 setup.py install --root=$pkgdir/ --optimize=1 || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/$pkgname"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/$pkgname"
+}
diff --git a/pcr/python2-pyspf/PKGBUILD b/pcr/python2-pyspf/PKGBUILD
new file mode 100644
index 000000000..abb3bfa5f
--- /dev/null
+++ b/pcr/python2-pyspf/PKGBUILD
@@ -0,0 +1,35 @@
+# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# From https://aur.archlinux.org/packages.php?ID=42274
+# Maintainer: Filip S. Adamsen <fsa [at] fsadev [dot] com>
+# Contributor: Samed Beyribey <ras0ir AT eventualis DOT org>
+pkgname=python2-pyspf
+_pkgname=pyspf
+pkgver=2.0.7
+pkgrel=1
+pkgdesc="Python2 implementation of the Sender Policy Framework (SPF) protocol"
+arch=('any')
+url="http://pypi.python.org/pypi/pyspf"
+license=('PSF')
+depends=('python2-pydns' 'python2')
+checkdepends=('python2-yaml')
+conflicts=('python-pyspf')
+options=(!emptydirs)
+source=(http://downloads.sourceforge.net/pymilter/$_pkgname-$pkgver.tar.gz)
+md5sums=('df47e2c04054a89da8b46b7f67e704ae')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ python2 setup.py build || return 1
+ python2 setup.py install --root=$pkgdir/ --optimize=1 || return 1
+
+ # See http://allanmcrae.com/2010/10/big-python-transition-in-arch-linux/
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find $pkgdir -name '*.py') || return 1
+}
+
+check() {
+ cd "$srcdir/$_pkgname-$pkgver/test"
+ PYTHONPATH="$srcdir/$_pkgname-$pkgver:$PYTHONPATH" python2 testspf.py
+}
diff --git a/pcr/python2-pywebdav/PKGBUILD b/pcr/python2-pywebdav/PKGBUILD
new file mode 100644
index 000000000..994bd4c4f
--- /dev/null
+++ b/pcr/python2-pywebdav/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Dan Serban (dserban01 => gmail)
+# Contributor: Gour <gour@gour-nitai.com>
+
+pkgname=python2-pywebdav
+pkgver=0.9.8
+pkgrel=2
+pkgdesc="A standards compliant WebDAV server and library written in Python"
+arch=('any')
+url="http://code.google.com/p/pywebdav/"
+license=('GPLv2')
+depends=('python2')
+conflicts=('python-pywebdav')
+makedepends=('python2-distribute')
+source=(http://pywebdav.googlecode.com/files/PyWebDAV-$pkgver.tar.gz)
+md5sums=('2fd2aca0074f0d0ac2701c9c0cadb89e')
+
+package()
+{
+ cd $srcdir/PyWebDAV-$pkgver
+ python2 setup.py install --root=$pkgdir/
+ install -D doc/LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/python2-qrcode/PKGBUILD b/pcr/python2-qrcode/PKGBUILD
new file mode 100644
index 000000000..a0d2377cb
--- /dev/null
+++ b/pcr/python2-qrcode/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Francois Boulogne <fboulogne at april dot org>
+# Maintainer: Francois Boulogne <fboulogne at april dot org>
+
+pkgname=python2-qrcode
+pkgver=2.7
+pkgrel=1
+pkgdesc="Python library to generate QR codes"
+arch=('any')
+url="https://github.com/lincolnloop/python-qrcode"
+license=('BSD')
+depends=('python2-imaging' 'python2')
+source=(http://pypi.python.org/packages/source/q/qrcode/qrcode-${pkgver}.tar.gz)
+md5sums=("9c0c3d85aae468ac5ed9a501306d00d0")
+
+package() {
+ cd "$srcdir/qrcode-$pkgver"
+
+ python2 setup.py install --root="${pkgdir}"
+}
+
+# vim:ts=2:sw=2:et:
diff --git a/pcr/python2-qrencode/PKGBUILD b/pcr/python2-qrencode/PKGBUILD
new file mode 100644
index 000000000..dd58c1885
--- /dev/null
+++ b/pcr/python2-qrencode/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: ValHue <vhuelamo at gmail dot com>
+# https://github.com/ValHue/AUR-PKGBUILDs
+#
+# Contributor: sevkin <vsevolod at balashov dot name>
+
+_python=python2
+_name=qrencode
+pkgname="${_python}-${_name}"
+pkgver=1.01
+pkgrel=4
+pkgdesc="Encodes QR-codes."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://pypi.python.org/pypi/${_name}"
+license=('Apache')
+depends=("${_python}" 'qrencode')
+makedepends=('gcc')
+source=("http://pypi.python.org/packages/source/q/${_name}/${_name}-${pkgver}.tar.gz")
+md5sums=('5a1addd4d6e6412116fcfeb9661831a9')
+
+build() {
+ cd "${_name}-${pkgver}"
+ export PYTHON="/usr/bin/${_python}"
+ ${_python} setup.py build
+}
+
+package() {
+ cd "${_name}-${pkgver}"
+ ${_python} setup.py install --root="${pkgdir}" --prefix="/usr" --optimize=1
+}
diff --git a/pcr/python2-relatorio/PKGBUILD b/pcr/python2-relatorio/PKGBUILD
new file mode 100644
index 000000000..888cda81d
--- /dev/null
+++ b/pcr/python2-relatorio/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Florian Walch <florian.walch@gmx.at>
+# Maintainer: Thomas Bahn <Thomas-Bahn@gmx.net>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+pkgname=python2-relatorio
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="A templating library able to output odt and pdf files"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://relatorio.openhex.org"
+license=('GPL')
+depends=('python2-genshi>=0.7' 'python2-lxml>=3.2.1')
+makedepends=('python2-distribute')
+source=("http://pypi.python.org/packages/source/r/relatorio/relatorio-$pkgver.tar.gz")
+
+build() {
+ cd $srcdir/relatorio-$pkgver
+ chmod 644 relatorio.egg-info/*
+ python2 setup.py install --root=$pkgdir
+}
+
+md5sums=('170eeb4102a92b9ddc554799a1503cee')
diff --git a/pcr/python2-renpy/PKGBUILD b/pcr/python2-renpy/PKGBUILD
new file mode 100644
index 000000000..db2a94428
--- /dev/null
+++ b/pcr/python2-renpy/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+_pkgname=renpy
+pkgname=python2-renpy
+pkgver=6.16.2
+pkgrel=1
+pkgdesc="Platform-dependant Ren'Py libraries."
+arch=(
+ mips64el
+ x86_64
+ i686
+)
+license=MIT
+url=http://www.$_pkgname.org/
+depends=(
+ ffmpeg
+ fribidi
+ glew
+ python2-pygame=1.9.1
+)
+makedepends='python2>=2.7'
+provides="python-$_pkgname=$pkgver"
+conflicts=(
+ python-$_pkgname
+ "$_pkgname<$pkgver"
+ ${_pkgname}64
+ $_pkgname-bin
+)
+renplaces=python-$_pkgname
+source=http://www.$_pkgname.org/dl/$pkgver/$_pkgname-$pkgver-source.tar.bz2
+sha512sums=fc3b40f01f2d1e820a05f90a2d85e42986aaa4840e506d18ea76a78527d2f98ca6cf832ebde3e1f996b94f4ce4b175856da913f3de7f1a9db48aba0eea84b52d
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver-source
+
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|;' module/setup.py
+
+ python2 module/setup.py build
+}
+
+package(){
+ cd $srcdir/$_pkgname-$pkgver-source
+
+ msg "install $pkgname"
+ python2 module/setup.py install --root=$pkgdir/ --prefix=/usr --optimize=1
+ install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/python2-ropemacs/PKGBUILD b/pcr/python2-ropemacs/PKGBUILD
new file mode 100644
index 000000000..84c5661ba
--- /dev/null
+++ b/pcr/python2-ropemacs/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Renato Garcia <fgarcia.renato@gmail.com>
+# Contributor: yescalona <yescaloan[at]ug[dot]uchile[dot]cl>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-ropemacs
+_pkgname=ropemacs
+pkgver=0.7
+pkgrel=1
+pkgdesc='Emacs mode that uses rope_ library to provide features like python refactorings and code-assists.'
+url='http://bitbucket.org/agr/ropemacs'
+arch=('any')
+license=('GPL')
+depends=('python2-ropemode' 'pymacs')
+install=python2-ropemacs.install
+source=("http://bitbucket.org/agr/${_pkgname}/get/${pkgver}.tar.bz2")
+md5sums=('0034d77822728da561b8ef213eea0762')
+
+package() {
+ cd "${srcdir}/agr-ropemacs-93721bd03667"
+ python2 ./setup.py install --root="${pkgdir}" --prefix=/usr
+}
diff --git a/pcr/python2-ropemacs/python2-ropemacs.install b/pcr/python2-ropemacs/python2-ropemacs.install
new file mode 100644
index 000000000..4b303b8b4
--- /dev/null
+++ b/pcr/python2-ropemacs/python2-ropemacs.install
@@ -0,0 +1,8 @@
+post_install() {
+
+echo "After installing pymacs, add these lines to your ``~/.emacs`` file:"
+echo "(require 'pymacs)"
+echo "(pymacs-load \"ropemacs\" \"rope-\")"
+/bin/true
+}
+
diff --git a/pcr/python2-ropemode/PKGBUILD b/pcr/python2-ropemode/PKGBUILD
new file mode 100644
index 000000000..bdeb58a68
--- /dev/null
+++ b/pcr/python2-ropemode/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Renato Garcia <fgarcia.renato@gmail.com>
+# Contributor: Nicolás de la Torre <ndelatorre@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=python2-ropemode
+_pkgname=ropemode
+pkgver=0.2
+pkgrel=1
+pkgdesc="A helper for using rope refactoring library in IDEs"
+url='http://bitbucket.org/agr/ropemode'
+arch=('any')
+license=('GPL')
+depends=('python2-rope')
+source=("http://bitbucket.org/agr/${_pkgname}/get/${pkgver}.tar.bz2")
+md5sums=('6c1cb705e360251ac4bccc33b74ae892')
+
+package() {
+ cd "${srcdir}/agr-ropemode-61c99582317d"
+ python2 ./setup.py install --root="${pkgdir}" --prefix=/usr --optimize=1
+}
diff --git a/pcr/python2-rospkg/PKGBUILD b/pcr/python2-rospkg/PKGBUILD
new file mode 100644
index 000000000..cf6116ba0
--- /dev/null
+++ b/pcr/python2-rospkg/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Somebody <somebody[at]foo[dot]tld>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+_name=rospkg
+pkgname=python2-rospkg
+pkgver=1.0.15
+pkgrel=1
+pkgdesc="provides basic utilities for querying information about ROS packages, stacks, and distributions."
+url="http://ros.org/doc/api/rospkg/html/python_api.html"
+arch=('x86_64' 'i686')
+license=('BSD')
+depends=('python2')
+optdepends=()
+makedepends=('python2-distribute')
+conflicts=()
+replaces=()
+backup=()
+source=(http://pr.willowgarage.com/downloads/${_name}/${_name}-${pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${_name}-${pkgver}
+ find -type f -print0 | xargs -0 sed -i -e 's/#!\/usr\/bin\/env python/#!\/usr\/bin\/env python2/g'
+ python2 setup.py install --root="${pkgdir}" --optimize=1 || return 1
+}
diff --git a/pcr/python2-sendfile/PKGBUILD b/pcr/python2-sendfile/PKGBUILD
new file mode 100644
index 000000000..3de2d5a48
--- /dev/null
+++ b/pcr/python2-sendfile/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Josh Chase <jcjoshuachase@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-sendfile
+_pkgname=py-sendfile
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="pysendfile"
+url="http://code.google.com/p/pysendfile"
+license=('MIT')
+arch=('i686' 'x86_64')
+depends=('python2' 'setuptools')
+conflicts=()
+replaces=()
+backup=()
+source=("http://pypi.python.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+ python2 setup.py install --root=$pkgdir
+ }
diff --git a/pcr/python2-setuptools/PKGBUILD b/pcr/python2-setuptools/PKGBUILD
new file mode 100644
index 000000000..85f0caf32
--- /dev/null
+++ b/pcr/python2-setuptools/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: cwchen <linuxisfun0104@gmail.com>
+# Contributor: Florian Friesdorf <archlinux@chaoflow.net>
+# Contributor: simo <simo@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Todd Maynard <arch@toddmaynard.com>
+
+pkgname=python2-setuptools
+_pkgname=setuptools
+pkgver=0.6c11
+pkgrel=2
+pkgdesc="A collection of enhancements to the Python distutils"
+arch=('any')
+url="http://peak.telecommunity.com/DevCenter/setuptools"
+license=('PSF')
+depends=('python2')
+provides=('setuptools')
+conflicts=('python2-distribute')
+source=(http://pypi.python.org/packages/source/s/${_pkgname}/${_pkgname}-${pkgver}.tar.gz)
+md5sums=('7df2a529a074f613b509fb44feefe74e')
+
+package() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+ python2 setup.py install --root=${pkgdir} --prefix=/usr
+
+# we don't provide a non-suffixed easy_install
+ echo "Removing non-suffixed easy_install"
+ rm ${pkgdir}/usr/bin/easy_install
+}
diff --git a/pcr/python2-sexy/PKGBUILD b/pcr/python2-sexy/PKGBUILD
new file mode 100644
index 000000000..81c4e453e
--- /dev/null
+++ b/pcr/python2-sexy/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=python2-sexy
+pkgver=0.1.9
+pkgrel=1
+pkgdesc="Python bindings for libsexy"
+arch=('i686')
+url='http://chipx86.com/wiki/Libsexy'
+license=('LGPL')
+depends=('libsexy' 'pygtk')
+options=(!libtool)
+source=(http://releases.chipx86.com/libsexy/sexy-python/sexy-python-$pkgver.tar.gz)
+sha256sums=('2d8d257bbfa498a89792e0405ed8cf70396648b3df3c8e32cdc3dcc9bb666f15')
+sha512sums=('e735f06efce302e10b89cfd3d6c641d523cd29517792ccaa4d022d7be6f6a350fff180f1c94d255ccbc82891cac7346520dfed2a88d828fbd7e891aa56396530')
+
+build() {
+ cd sexy-python-$pkgver/
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make -C sexy-python-$pkgver DESTDIR="$pkgdir" install
+}
diff --git a/pcr/python2-sql/PKGBUILD b/pcr/python2-sql/PKGBUILD
new file mode 100644
index 000000000..4ad9ed510
--- /dev/null
+++ b/pcr/python2-sql/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=python2-sql
+pkgver=r84.7f7e8fb84cdc
+pkgrel=1
+pkgdesc="Python 2 SQL library"
+arch=('any')
+url="https://code.google.com/p/python-sql/"
+license=('GPL3')
+depends=('python2')
+optdepends=()
+makedepends=('python2-setuptools' 'mercurial')
+md5sums=('SKIP')
+source=('hg+https://code.google.com/p/python-sql/')
+pkgver() {
+ cd $srcdir/python-sql
+ printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)"
+}
+package() {
+ cd $srcdir/python-sql
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
diff --git a/pcr/python2-ssh/PKGBUILD b/pcr/python2-ssh/PKGBUILD
new file mode 100644
index 000000000..84005f0ac
--- /dev/null
+++ b/pcr/python2-ssh/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Your Name <youremail@domain.com>
+
+pkgname=python2-ssh
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="Python SSH2 protocol library"
+arch=(any)
+url="http://pypi.python.org/pypi/ssh"
+license=('LGPL')
+depends=('python2' 'pycrypto')
+makedepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=(!emptydirs)
+install=
+source=("http://pypi.python.org/packages/source/s/ssh/ssh-$pkgver.tar.gz")
+
+package() {
+ cd "$srcdir/ssh-$pkgver"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+md5sums=('bc4dd59ec0c7bdf78a3840652cac824e')
diff --git a/pcr/python2-suds/PKGBUILD b/pcr/python2-suds/PKGBUILD
new file mode 100644
index 000000000..a45009a2b
--- /dev/null
+++ b/pcr/python2-suds/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Jonathan Liu <net147@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-suds
+pkgver=0.4
+pkgrel=3
+pkgdesc="A lightweight SOAP python client."
+arch=('any')
+url="https://fedorahosted.org/suds/"
+license=('LGPL')
+depends=('python2')
+makedepends=('python2-distribute')
+source=("https://fedorahosted.org/releases/s/u/suds/python-suds-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/python-suds-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/python-suds-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" -O1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python2-webob/Changelog b/pcr/python2-webob/Changelog
new file mode 100644
index 000000000..d67f3b16b
--- /dev/null
+++ b/pcr/python2-webob/Changelog
@@ -0,0 +1,26 @@
+2012-10-30 Aaron DeVore <aaron.devore@gmail.com> (1.2.3-1)
+- Version bump to 1.2.3
+- Change WebOb-${pkgver}.zip to WebOb-${pkgver}.tar.gz
+2012-06-07 Aaron DeVore <aaron.devore@gmail.com> (1.2.2-1)
+- Version bump to 1.2.2
+2012-06-07 Aaron DeVore <aaron.devore@gmail.com> (1.2-1)
+- Version bump to 1.2
+2012-10-07 Aaron DeVore <aaron.devore@gmail.com>
+- Version bump to 1.1.1
+2011-8-8 Aaron DeVore <aaron.devore@gmail.com> (1.1b2)
+- Version bump to 1.1b2
+- Add python-sphinx to makedepends
+2011-5-14 Aaron DeVore <aaron.devore@gmail.com> (1.0.7-2)
+- Revert from split build (AUR doesn't work with split builds)
+2011-5-14 Aaron DeVore <aaron.devore@gmail.com> (1.0.7-1)
+- Version bump to 1.0.7
+- Switch to split build
+- Split Sphinx html docs into python-webob-docs package
+- Don't bundle license file (upstream has restored it)
+2011-4-13 Aaron DeVore <aaron.devore@gmail.com> (1.0.6-1)
+- Version bump to 1.0.6
+- Bundle the license file (upstream removed it from the Pypi zip file)
+2011-3-24 Aaron DeVore <aaron.devore@gmail.com> (1.0.5-1)
+- Version bump to 1.0.5
+- Fix source URL (file extension changed on Pypi)
+- Fix some recently change idioms
diff --git a/pcr/python2-webob/PKGBUILD b/pcr/python2-webob/PKGBUILD
new file mode 100644
index 000000000..8dd0df386
--- /dev/null
+++ b/pcr/python2-webob/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Aaron DeVore <aaron.devore@gmail.com>
+# Contributor: Cilyan Olowen <gaknar@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname='python2-webob'
+pkgver='1.2.3'
+pkgrel='1'
+pkgdesc="WebOb provides objects for HTTP requests and responses."
+arch=('any')
+url="http://webob.org/"
+license=('MIT')
+depends=('python2')
+makedepends=('python2-distribute')
+optdepends=('python-webob-docs: documentation')
+changelog='Changelog'
+source=("http://pypi.python.org/packages/source/W/WebOb/WebOb-${pkgver}.tar.gz")
+
+build() {
+ cd "$srcdir/WebOb-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/WebOb-${pkgver}"
+ python2 setup.py install "--root=$pkgdir" --optimize=1
+ install -D -m644 "docs/license.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+}
+
+check() {
+ cd "$srcdir/WebOb-${pkgver}"
+ python2 setup.py test
+}
+
diff --git a/pcr/pyutil/PKGBUILD b/pcr/pyutil/PKGBUILD
new file mode 100644
index 000000000..7c3ca9f60
--- /dev/null
+++ b/pcr/pyutil/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+# Contributor: Peter Simons <simons@cryp.to>
+pkgname=pyutil
+pkgver=1.9.4
+pkgrel=2
+pkgdesc="general-purpose python library (used by tahoe-lafs)"
+arch=('any')
+url='http://pypi.python.org/pypi/pyutil'
+license=('GPL2' 'custom')
+depends=('python2')
+makedepends=('setuptools' 'darcsver' 'setuptools_darcs' 'python2-simplejson') # 'zbase32') # missing: setuptools_trial
+source=( http://pypi.python.org/packages/source/p/pyutil/pyutil-$pkgver.tar.gz )
+md5sums=('af51cf296b574112e115c9dfba51464d')
+
+build(){
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+ python2 setup.py trial
+}
+
+package(){
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+
+ install -d $pkgdir/usr/share/licenses/$pkgname/
+ install -m644 COPYING* $pkgdir/usr/share/licenses/$pkgname/
+
+}
diff --git a/pcr/pyzenity/PKGBUILD b/pcr/pyzenity/PKGBUILD
new file mode 100644
index 000000000..364cb56a1
--- /dev/null
+++ b/pcr/pyzenity/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: lang2 <wenzhi.liang@gmail.com>
+# Contributor: sylvain alborini <sylvain dot alborini at gmail dot com>
+# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io>
+
+pkgname=pyzenity
+_pkg_name=PyZenity
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="python bindings for zenity"
+url="http://www.brianramos.com/?page_id=38"
+depends=('python2' 'zenity')
+ arch=('any')
+license=('GPL')
+source=(http://brianramos.com/software/${_pkg_name}/${_pkg_name}-${pkgver}.tar.gz)
+
+build()
+{
+ cd "$srcdir/$_pkg_name-$pkgver"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
diff --git a/pcr/qemu-usbredir/65-kvm.rules b/pcr/qemu-usbredir/65-kvm.rules
new file mode 100644
index 000000000..569ded9f9
--- /dev/null
+++ b/pcr/qemu-usbredir/65-kvm.rules
@@ -0,0 +1,2 @@
+KERNEL=="kvm", GROUP="kvm", MODE="0660"
+KERNEL=="vhost-net", GROUP="kvm", MODE="0660", TAG+="uaccess", OPTIONS+="static_node=vhost-net"
diff --git a/pcr/qemu-usbredir/PKGBUILD b/pcr/qemu-usbredir/PKGBUILD
new file mode 100644
index 000000000..35f945d0e
--- /dev/null
+++ b/pcr/qemu-usbredir/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id$
+# Maintainer (Arch GNU/Linux): Tobias Powalowski <tpowa@archlinux.org>
+_pkgname=qemu
+pkgname=qemu-usbredir
+pkgver=1.7.0
+pkgrel=1
+pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL2.1')
+url="http://wiki.qemu.org/Index.html"
+makedepends=('texi2html' 'perl' 'python2' 'spice-protocol')
+depends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2'
+ 'gnutls>=2.4.1' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl'
+ 'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp'
+ 'libiscsi' 'libcacard' 'spice' 'usbredir')
+backup=('etc/qemu/target-x86_64.conf')
+install=qemu.install
+source=(http://wiki.qemu.org/download/${_pkgname}-${pkgver}.tar.bz2
+ 65-kvm.rules)
+makedepends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2'
+ 'gnutls>=2.4.1' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl'
+ 'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp'
+ 'libiscsi' 'libcacard' 'spice' 'spice-protocol' 'python2'
+ 'usbredir')
+provides=("$_pkgname=$pkgver")
+conflicts=("$_pkgname")
+replaces=('qemu-kvm')
+options=(!strip)
+
+build ()
+{
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ # qemu vs. make 4 == bad
+ export ARFLAGS="rv"
+ # http://permalink.gmane.org/gmane.comp.emulators.qemu/238740
+ # gtk gui breaks keymappings at the moment
+ ./configure --prefix=/usr --sysconfdir=/etc --audio-drv-list='pa alsa sdl' \
+ --python=/usr/bin/python2 --smbd=/usr/bin/smbd \
+ --enable-docs --libexecdir=/usr/lib/qemu \
+ --disable-gtk --enable-linux-aio --enable-seccomp \
+ --enable-spice --localstatedir=/var --enable-usb-redir
+ make V=99
+}
+
+package ()
+{
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" libexecdir="/usr/lib/qemu" install
+ # provided by seabios package
+ rm "${pkgdir}/usr/share/qemu/bios.bin"
+ rm "${pkgdir}/usr/share/qemu/acpi-dsdt.aml"
+ rm "${pkgdir}/usr/share/qemu/q35-acpi-dsdt.aml"
+ # remove conflicting /var/run directory
+ rm -r "${pkgdir}/var"
+ install -D -m644 "${srcdir}/65-kvm.rules" \
+ "${pkgdir}/usr/lib/udev/rules.d/65-kvm.rules"
+ # bridge_helper needs suid
+ # https://bugs.archlinux.org/task/32565
+ chmod u+s "${pkgdir}/usr/lib/qemu/qemu-bridge-helper"
+ # add sample config
+ echo "allow br0" > ${pkgdir}/etc/qemu/bridge.conf.sample
+ # 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
+ # remove libcacard files
+ rm -rf ${pkgdir}/usr/include/cacard
+ rm -rf ${pkgdir}/usr/lib/libcacard*
+ rm -rf ${pkgdir}/usr/lib/pkgconfig/libcacard.pc
+ rm -rf ${pkgdir}/usr/bin/vscclient
+}
+
+md5sums=('32893941d40d052a5e649efcf06aca06'
+ '33ab286a20242dda7743a900f369d68a')
diff --git a/pcr/qemu-usbredir/qemu.install b/pcr/qemu-usbredir/qemu.install
new file mode 100644
index 000000000..79ee83536
--- /dev/null
+++ b/pcr/qemu-usbredir/qemu.install
@@ -0,0 +1,23 @@
+# kvm: the new package version
+post_install() {
+ #
+ groupadd kvm -f -g 78
+}
+
+post_upgrade() {
+ 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
+ if [ "$(vercmp $2 1.3.1)" -lt 0 ]; then
+ echo "With the release of qemu 1.3.0, qemu-kvm binary is removed."
+ echo "You need to change the emulator path, if you use libvirt by using:"
+ echo "'virsh edit <vm-name>'"
+ fi
+}
+
+post_remove() {
+ #
+ groupdel kvm
+}
diff --git a/pcr/qgis/PKGBUILD b/pcr/qgis/PKGBUILD
new file mode 100644
index 000000000..a5c6b48eb
--- /dev/null
+++ b/pcr/qgis/PKGBUILD
@@ -0,0 +1,65 @@
+# Maintainer: Lantald < lantald at gmx.com
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+# Contributor: Eric Forgeot < http://esclinux.tk >
+
+pkgname=qgis
+pkgver=1.8.0
+pkgrel=6
+pkgdesc='Quantum GIS is a Geographic Information System (GIS) that supports vector, raster & database formats'
+url='http://qgis.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+# update to http://www.qgis.org/wiki/Building_QGIS_from_Source#Overview
+depends=('libmysqlclient' 'postgresql-libs' 'sqlite3' 'jasper' 'curl' 'pyqt' 'python2' 'python2-pyqt' 'giflib' 'cfitsio' 'qwt' 'gdal' 'flex' 'bison' 'libspatialite' 'spatialindex')
+makedepends=('cmake' 'grass' 'gsl' 'postgis' 'netcdf' 'fcgi' 'python2-sip')
+optdepends=('postgis: postgis support and SPIT plugin'
+ 'fcgi: qgis mapserver'
+ 'python2-sip: python-support'
+ 'grass: grass plugin'
+ 'gsl: georeferencer')
+options=('!makeflags')
+source=("http://qgis.org/downloads/qgis-${pkgver}.tar.bz2"
+ 'qgis.desktop')
+
+md5sums=('1d60520f81d7763c026d0af887ac9a05'
+ '8ab66039f2aba519b92f52272ec3c13e')
+
+build() {
+ # Fix insecure RPATH is weird, but just works ;)
+ # echo "os.system(\"sed -i '/^LFLAGS/s|-Wl,-rpath,.\+ ||g' gui/Makefile core/Makefile\")" >> python/configure.py.in
+ #cd qgis-${pkgver}
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake ../qgis-${pkgver} \
+ -DENABLE_TESTS=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DGRASS_PREFIX=/opt/grass \
+ -DQGIS_MANUAL_SUBDIR=share/man \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python2.7/site-packages \
+ -DPYTHON_INCLUDE_PATH=/usr/include/python2.7 \
+ -DQT_QMAKE_EXECUTABLE=qmake4
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # create a more user-friendly application name link
+ ln -s /usr/bin/qgis $pkgdir/usr/bin/quantum-gis
+
+ # install some freedesktop.org compatibility
+ install -D -m644 ${srcdir}/qgis.desktop \
+ ${pkgdir}/usr/share/applications/qgis.desktop
+}
diff --git a/pcr/qgis/qgis.desktop b/pcr/qgis/qgis.desktop
new file mode 100644
index 000000000..c3db5ad08
--- /dev/null
+++ b/pcr/qgis/qgis.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Quantum GIS
+GenericName="GIS"
+Comment="Geographic Information System (GIS) that supports vector, raster & database formats"
+Exec=/usr/bin/qgis
+Icon=/usr/share/qgis/images/icons/qgis-icon.png
+Terminal=false
+MultipleArgs=false
+Type=Application
+Categories=Application;Science
diff --git a/pcr/qt-at-spi-git/PKGBUILD b/pcr/qt-at-spi-git/PKGBUILD
new file mode 100644
index 000000000..d69e670c6
--- /dev/null
+++ b/pcr/qt-at-spi-git/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Kyle <kyle@gmx.ca>
+
+_pkgname=qt-at-spi
+pkgname=$_pkgname-git
+_pkgver=0.3.1
+pkgver=2013.02.08
+#_gitver="tag=v$pkgver"
+_gitver="commit=adb0b04d129132dcfa289184eba5b122bfd1ca52"
+pkgdesc="A Qt plugin that bridges the QAccessible API’s to the AT-SPI 2 protocol, giving blind and visually impaired users access to qt applications"
+url="http://projects.kde.org/qtatspi"
+license=('LGPL')
+
+provides=("$_pkgname=$_pkgver")
+
+pkgrel=1
+arch=('i686' 'x86_64')
+depends=('at-spi2-core' 'qt4>=4.8' 'kdelibs>=4.8')
+makedepends=('cmake' 'automoc4')
+
+source=("libre://$pkgname-$pkgver.tar.gz" 'qt-accessibility.sh')
+
+mkdepends=('git')
+mksource=("$pkgname-$pkgver::git://anongit.kde.org/qtatspi#$_gitver")
+mksource() {
+ cd "$srcdir/$pkgname-$pkgver"
+ rm -f examples/tabbar/{simple,tabbar}
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cmake .
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ install -D -m755 "$srcdir/qt-accessibility.sh" "$pkgdir/etc/profile.d/qt-accessibility.sh"
+}
+
+mkmd5sums=('SKIP')
+md5sums=('d48fbf6d429260f7b279964972b7ab25'
+ 'f0c8551ed54f5d4e5daf7ddac9189aaa')
diff --git a/pcr/qt-at-spi-git/qt-accessibility.sh b/pcr/qt-at-spi-git/qt-accessibility.sh
new file mode 100644
index 000000000..d7c67d605
--- /dev/null
+++ b/pcr/qt-at-spi-git/qt-accessibility.sh
@@ -0,0 +1 @@
+export QT_ACCESSIBILITY=1
diff --git a/pcr/qtkeychain/PKGBUILD b/pcr/qtkeychain/PKGBUILD
new file mode 100644
index 000000000..152971751
--- /dev/null
+++ b/pcr/qtkeychain/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Kuba Serafinowski <zizzfizzix(at)gmail(dot)com>
+# Maintainer: Jorge Araya Navarro <shackra@riseup.net>
+# Contributor: Teo Mrnjavac <teo@kde.org>
+# https://github.com/zizzfizzix/pkgbuilds
+
+_buildtype="Release"
+
+pkgname=qtkeychain
+pkgver=0.1
+pkgrel=3
+pkgdesc="Provides support for secure credentials storage."
+arch=('i686' 'x86_64')
+url="https://github.com/frankosterfeld/qtkeychain"
+license=('BSD2')
+depends=('qt4')
+makedepends=('cmake')
+source=("${pkgname}-${pkgver}.zip::https://github.com/frankosterfeld/qtkeychain/archive/${pkgver}.zip" 'prefer-qt4.patch')
+md5sums=('a1d11a611b27759a531896b57be15947'
+ 'a2c46e61af02100a6f67487ffeb8a3d0')
+
+if [[ ! ${_buildtype} == "Release" ]] && [[ ! ${_buildtype} == "release" ]]; then
+ options=(!strip)
+fi
+
+prepare() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/prefer-qt4.patch
+
+ if [[ -e ${srcdir}/${pkgname}-${pkgver}-build ]]; then rm -rf ${srcdir}/${pkgname}-${pkgver}-build; fi
+ mkdir ${srcdir}/${pkgname}-${pkgver}-build
+}
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}-build
+ cmake -DBUILD_WITH_QT4=on \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_LIBEXECDIR=lib/${pkgname} \
+ -DCMAKE_BUILD_TYPE=${_buildtype} \
+ ../${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}-build
+ make DESTDIR=${pkgdir} install
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/pcr/qtkeychain/prefer-qt4.patch b/pcr/qtkeychain/prefer-qt4.patch
new file mode 100644
index 000000000..0e264aad1
--- /dev/null
+++ b/pcr/qtkeychain/prefer-qt4.patch
@@ -0,0 +1,17 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aba9032..4de64c8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,8 +11,10 @@ set(QTKEYCHAIN_SOVERSION 0)
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${PROJECT_SOURCE_DIR}/cmake/Modules")
+ include(GNUInstallDirs)
+
+-# try Qt5 first, and prefer that if found
+-find_package(Qt5Core QUIET)
++# try Qt5 first, and prefer that if found, unless BUILD_WITH_QT4 is set
++if (NOT BUILD_WITH_QT4)
++ find_package(Qt5Core QUIET)
++endif()
+ if (Qt5Core_FOUND)
+ if(UNIX AND NOT APPLE)
+ find_package(Qt5DBus REQUIRED)
diff --git a/pcr/qtkeychain/qtkeychain-0.1.zip b/pcr/qtkeychain/qtkeychain-0.1.zip
new file mode 100644
index 000000000..400552c62
--- /dev/null
+++ b/pcr/qtkeychain/qtkeychain-0.1.zip
Binary files differ
diff --git a/pcr/qtoctave/PKGBUILD b/pcr/qtoctave/PKGBUILD
new file mode 100644
index 000000000..d84dfa3a2
--- /dev/null
+++ b/pcr/qtoctave/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Michael Schubert <mschu.dev at gmail>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=qtoctave
+pkgver=0.10.1
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc="Qt4 frontend for octave"
+url="https://forja.rediris.es/projects/csl-qtoctave/"
+license=('GPL2')
+depends=('qt4' 'octave' 'hicolor-icon-theme')
+makedepends=('cmake')
+source=("http://forja.rediris.es/frs/download.php/2054/${pkgname}-${pkgver}.tar.gz")
+md5sums=('f23afd8eb850b950f51b65f256a83835')
+install="qtoctave.install"
+options=('!libtool' '!emptydirs')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i "s/lrelease/lrelease-qt4/" qtoctave/src/CMakeLists.txt
+
+ 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/pcr/qtoctave/qtoctave.install b/pcr/qtoctave/qtoctave.install
new file mode 100644
index 000000000..28fdb48fb
--- /dev/null
+++ b/pcr/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/pcr/quack/PKGBUILD b/pcr/quack/PKGBUILD
new file mode 100644
index 000000000..18aa1025d
--- /dev/null
+++ b/pcr/quack/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Geoffrey Teale <tealeg@member.fsf.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=quack
+pkgver=0.45
+pkgrel=1
+pkgdesc="[Emacs] enhanced support for editing and running Scheme code."
+url="http://www.neilvandyke.org/quack"
+arch=('any')
+license=('GPL')
+depends=('emacs')
+makedepends=('emacs')
+install=quack.install
+source=("http://www.neilvandyke.org/${pkgname}/${pkgname}.el")
+md5sums=('40c52d0076c95c125e57ef6496ee881e')
+EMACS=emacs # or sxemacs, or xemacs
+
+build() {
+ $EMACS --batch --eval '(byte-compile-file "quack.el")'
+}
+
+package() {
+ install -Dm644 $pkgname.el $pkgdir/usr/share/$EMACS/site-lisp/$pkgname.el
+ install -Dm644 $pkgname.elc $pkgdir/usr/share/$EMACS/site-lisp/$pkgname.elc
+}
diff --git a/pcr/quack/quack.install b/pcr/quack/quack.install
new file mode 100644
index 000000000..f92194ee6
--- /dev/null
+++ b/pcr/quack/quack.install
@@ -0,0 +1,18 @@
+### quack.install:
+post_install () {
+cat << EOF
+==> Put this in your $HOME/.emacs file to enable quack
+
+(require 'quack)
+
+EOF
+}
+
+post_upgrade () {
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
+########################
diff --git a/pcr/quackle/PKGBUILD b/pcr/quackle/PKGBUILD
new file mode 100644
index 000000000..02f5ac568
--- /dev/null
+++ b/pcr/quackle/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Guillaume ALAUX <Guillaume at ALAUX dot net>
+pkgname=quackle
+pkgver=0.97
+pkgrel=2
+pkgdesc='Free crossword game (Scrabble-like) artificial intelligence and analysis tool'
+arch=('i686' 'x86_64')
+url='http://people.csail.mit.edu/jasonkb/quackle'
+license=('GPL')
+depends=('qt4')
+makedepends=('qt4')
+source=(http://people.csail.mit.edu/jasonkb/${pkgname}/downloads/${pkgname}-${pkgver}/${pkgname}-${pkgver}-source.tar.gz
+ quacker.sh)
+md5sums=('f744484e916f4cbbcffe6c13d772aee7'
+ '0c3cf80395db58959c8ae825b917a19f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ qmake-qt4
+ make clean
+ make
+
+ cd "${srcdir}/${pkgname}-${pkgver}/quackleio"
+ qmake-qt4
+ make clean
+ make
+
+ cd "${srcdir}/${pkgname}-${pkgver}/quacker"
+ qmake-qt4
+ make clean
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -dm755 ${pkgdir}/opt/${pkgname}
+ cp -r quacker/quacker data ${pkgdir}/opt/${pkgname}
+ install -Dm755 ${srcdir}/quacker.sh ${pkgdir}/usr/bin/quacker
+}
diff --git a/pcr/quackle/quacker.sh b/pcr/quackle/quacker.sh
new file mode 100755
index 000000000..702c262bf
--- /dev/null
+++ b/pcr/quackle/quacker.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/quackle
+./quacker
diff --git a/pcr/quvi-current/PKGBUILD b/pcr/quvi-current/PKGBUILD
new file mode 100644
index 000000000..8acfc507f
--- /dev/null
+++ b/pcr/quvi-current/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 98182 2013-10-07 12:06:30Z jgc $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: joyfulgirl@archlinux.us
+
+pkgname=quvi-current
+_pkgname=quvi
+provides=(quvi)
+pkgver=0.9.5
+pkgrel=1
+pkgdesc='Command-line tool for parsing video download links.'
+arch=('i686' 'x86_64')
+url='http://quvi.sourceforge.net/'
+license=('AGPL3')
+depends=('libquvi')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/${_pkgname}/${_pkgname}-${pkgver}.tar.xz"{,.sig})
+
+build() {
+ cd "${_pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${_pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('baa1d7b25e9fd173e952e27d4aa4b933'
+ 'SKIP')
diff --git a/pcr/radicale/PKGBUILD b/pcr/radicale/PKGBUILD
new file mode 100644
index 000000000..b4f76f6ab
--- /dev/null
+++ b/pcr/radicale/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Guillaume Bouchard <guillaume.bouchard@liris.cnrs.fr>
+pkgname=radicale
+pkgver=0.7.1
+pkgrel=2
+pkgdesc="A Simple Calendar Server"
+arch=any
+url="http://www.radicale.org/"
+license=('GPL3')
+depends=('python')
+backup=('etc/radicale/config')
+source=(http://pypi.python.org/packages/source/R/Radicale/Radicale-$pkgver.tar.gz
+ radicale.service)
+
+package() {
+ cd "$srcdir/Radicale-$pkgver"
+ python setup.py install --prefix=/usr --root="$pkgdir" || return 1
+
+ install -D "$srcdir/Radicale-$pkgver/config" "$pkgdir/etc/radicale/config"
+ install -m744 -D "$srcdir/radicale.service" "$pkgdir/usr/lib/systemd/system/radicale.service"
+}
+
+md5sums=('ab1167b1ee713a7a58d843c5921f3327'
+ 'dbdfedb46af4ceed0ad0db3441b5a266')
diff --git a/pcr/radicale/radicale.install b/pcr/radicale/radicale.install
new file mode 100644
index 000000000..2bd33ed49
--- /dev/null
+++ b/pcr/radicale/radicale.install
@@ -0,0 +1,10 @@
+post_install() {
+ useradd --create-home \
+ --home-dir /srv/cal \
+ --user-group \
+ --system \
+ --comment "Radicale" \
+ --skel /dev/null \
+ --shell /usr/bin/nologin \
+ cal
+}
diff --git a/pcr/radicale/radicale.service b/pcr/radicale/radicale.service
new file mode 100644
index 000000000..293cad6e2
--- /dev/null
+++ b/pcr/radicale/radicale.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Radicale caldav server
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/radicale
+ExecStop=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/radiusclient-ng/PKGBUILD b/pcr/radiusclient-ng/PKGBUILD
new file mode 100644
index 000000000..437030401
--- /dev/null
+++ b/pcr/radiusclient-ng/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Jonathan Liu <net147@gmail.com>
+pkgname=radiusclient-ng
+pkgver=0.5.6
+pkgrel=1
+pkgdesc="Client library and basic utilities for RADIUS AAA"
+arch=(i686 x86_64)
+url="http://wiki.freeradius.org/Radiusclient"
+license=('custom:NetBSD')
+depends=('bash')
+conflicts=('freeradius-client')
+source=(http://download.berlios.de/radiusclient-ng/$pkgname-$pkgver.tar.gz)
+md5sums=('6fb7d4d0aefafaee7385831ac46a8e9c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ install -D -m644 "$srcdir/$pkgname-$pkgver/COPYRIGHT" \
+ "$pkgdir/usr/share/licenses/${pkgver}/COPYRIGHT"
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/rakarrack/PKGBUILD b/pcr/rakarrack/PKGBUILD
new file mode 100644
index 000000000..4bdfe7c94
--- /dev/null
+++ b/pcr/rakarrack/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+# patch taken from https://aur.archlinux.org/packages/rakarrack/
+
+pkgname=rakarrack
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="Versatile guitar multi-effects processor"
+arch=('i686')
+license=('GPL')
+url="http://rakarrack.sourceforge.net"
+depends=('alsa-utils' 'jack' 'fltk' 'libxpm')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2"
+ 'fltk_include.patch')
+md5sums=('56b1e04779ae3d56cc8a3ad3c4e25152'
+ 'd43512466f514434daaf16bd72951ea0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fix for latest fltk include dir name
+ patch -Np1 -i "$srcdir/fltk_include.patch"
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/rakarrack/fltk_include.patch b/pcr/rakarrack/fltk_include.patch
new file mode 100644
index 000000000..447e8d539
--- /dev/null
+++ b/pcr/rakarrack/fltk_include.patch
@@ -0,0 +1,24 @@
+diff -baur rakarrack-0.6.1.orig/src/global.h rakarrack-0.6.1/src/global.h
+--- rakarrack-0.6.1.orig/src/global.h 2011-07-12 05:13:31.367583829 +0800
++++ rakarrack-0.6.1/src/global.h 2011-07-12 05:15:20.670325018 +0800
+@@ -99,7 +99,7 @@
+ #include <X11/xpm.h>
+ #include <jack/jack.h>
+ #include <jack/midiport.h>
+-#include <Fl/Fl_Preferences.H>
++#include <FL/Fl_Preferences.H>
+ #include "FPreset.h"
+ #include "Reverb.h"
+ #include "Chorus.h"
+diff -baur rakarrack-0.6.1.orig/src/process.C rakarrack-0.6.1/src/process.C
+--- rakarrack-0.6.1.orig/src/process.C 2011-07-12 05:13:31.367583829 +0800
++++ rakarrack-0.6.1/src/process.C 2011-07-12 05:15:31.293600800 +0800
+@@ -28,7 +28,7 @@
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+-#include <Fl/Fl_Preferences.H>
++#include <FL/Fl_Preferences.H>
+ #include "global.h"
+
+ int Pexitprogram, preset;
diff --git a/pcr/re2-hg/PKGBUILD b/pcr/re2-hg/PKGBUILD
new file mode 100644
index 000000000..915af840b
--- /dev/null
+++ b/pcr/re2-hg/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=re2-hg
+pkgver=1
+pkgrel=1
+pkgdesc='Fast, safe and thread-friendly alternative to backtracking regular expression engines'
+arch=('i686' 'x86_64')
+url='http://code.google.com/p/re2/'
+license=('GPL2')
+provides=('re2')
+makedepends=('mercurial')
+
+build() {
+ rm -rf re2
+ hg clone https://re2.googlecode.com/hg re2
+
+ cd re2
+
+ sed -i 's_prefix=/usr/local_prefix=/usr_' Makefile
+
+ make
+}
+
+package() {
+ cd re2
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/pcr/recutils/ChangeLog b/pcr/recutils/ChangeLog
new file mode 100644
index 000000000..02a3a418d
--- /dev/null
+++ b/pcr/recutils/ChangeLog
@@ -0,0 +1,36 @@
+recutils (1.5-1)
+
+ * New upstream release
+ - Version 1.5 (13 January 2012)
+ - The utilities will now ask interactively for a password
+ if it was not provided with the -s command line option.
+ This avoids security problems related to shell history files.
+ - Support for octal and hexadecimal numbers has been added.
+ They can be used in both the records and selection expressions.
+ - It is now possible to select a given number of random records
+ in many of the utilities using the -m command line option.
+ - The -n option now accepts a list of indexes, supporting ranges.
+ - The new -U (uniq) option for recsel removes duplicated fields
+ in the output records.
+ - The new -q option allows to quickly search for the desired record
+ without having to provide a complete selection expression.
+ - Auto generated fields are now considered integers by default.
+ This avoids repetitive patterns involving %auto and %type.
+ - Tab characters are now allowed in blank lines betwwen records.
+ - The API in rec.h is now better documented with comments, and improved.
+ - recfix now exits with an error status
+ if there is a parse error in some input file.
+ - The usage of the internal data structures has been _vastly_ improved,
+ resulting in a much faster operation.
+ - Internal cleanup and code factorization.
+ - Many, many, many bug fixes :D
+ * PKGBUILD
+ - commenting out "makedepends=(mdbtools)" for now
+ because the current "mdbtools" package from the AUR
+ is missing 'MDB_NOFLAGS' in the "mdbtools.h" file.
+ - all other dependencies to compile and run recutils
+ are already satisfied through the 'base' group.
+ * Added some examples
+
+ -- Sven Wick <sven.wick@gmx.de> Fri, 20 Jan 2012 16:04:02 +0100
+
diff --git a/pcr/recutils/PKGBUILD b/pcr/recutils/PKGBUILD
new file mode 100644
index 000000000..ddf47243a
--- /dev/null
+++ b/pcr/recutils/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Max Meyer <dev@fedux.org>
+# Contributor: Sven Wick <sven.wick@gmx.de>
+#
+# Please fork and send me a pull request for changes to package build file(s)
+# Url: https://github.com/maxmeyer/archlinux-recutils
+#
+
+pkgname=recutils
+pkgver=1.5
+pkgrel=2
+pkgdesc="GNU tools and libraries to access human-editable, text-based databases."
+arch=(i686 x86_64 mips64el)
+url="http://www.gnu.org/software/recutils/"
+license=('GPL3')
+depends=(libgcrypt curl)
+optdepends=("mdbtools: for processing M$ Access databases")
+#options=()
+install=recutils.install
+changelog=ChangeLog
+source=("http://ftp.gnu.org/gnu/recutils/$pkgname-$pkgver.tar.gz"
+ "recutils-1.5-glibc-2.16.patch")
+sha256sums=('7ed67e74468084f52ad9341e4b11c44e5fd9d5325b93b7eb2cb230c839ff5dec'
+ '28c169df3573748215a78b78793d45a09aeefc6194cf1185c7c0f11881eb289a')
+options=(!libtool)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i ${srcdir}/recutils-1.5-glibc-2.16.patch
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/recutils/recutils-1.5-glibc-2.16.patch b/pcr/recutils/recutils-1.5-glibc-2.16.patch
new file mode 100644
index 000000000..8b4997f09
--- /dev/null
+++ b/pcr/recutils/recutils-1.5-glibc-2.16.patch
@@ -0,0 +1,29 @@
+--- recutils-1.5/lib/stdio.in.h
++++ recutils-1.5/lib/stdio.in.h
+@@ -699,22 +699,11 @@
+ # endif
+ #endif
+
+-#if @GNULIB_GETS@
+-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+-# undef gets
+-# define gets rpl_gets
+-# endif
+-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
+-_GL_CXXALIAS_RPL (gets, char *, (char *s));
+-# else
+-_GL_CXXALIAS_SYS (gets, char *, (char *s));
+-# undef gets
+-# endif
+-_GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+- so any use of gets warrants an unconditional warning. Assume it is
+- always declared, since it is required by C89. */
++ so any use of gets warrants an unconditional warning; besides, C11
++ removed it. */
++#undef gets
++#if HAVE_RAW_DECL_GETS
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
+
diff --git a/pcr/recutils/recutils.install b/pcr/recutils/recutils.install
new file mode 100644
index 000000000..245c7ae01
--- /dev/null
+++ b/pcr/recutils/recutils.install
@@ -0,0 +1,36 @@
+_infodir=/usr/share/info
+_infofiles=( recutils.info.gz )
+
+_mandir=/usr/share/man/man1
+_manfiles=( csv2rec.1.gz rec2csv.1.gz recdel.1.gz recfix.1.gz recfmt.1.gz recinf.1.gz recins.1.gz recsel.1.gz recset.1.gz)
+
+## arg 1: the new package version
+post_install() {
+ [ -x /usr/bin/mandb ] || return 0
+ for _file in ${_manfiles[@]}; do
+ mandb -f $_mandir/$_file
+ done
+
+ [ -x /usr/bin/install-info ] || return 0
+ for _file in ${_infofiles[@]}; do
+ install-info $_infodir/$_file $_infodir/dir #2> /dev/null
+ done
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x /usr/bin/mandb ] || return 0
+ mandb
+
+ [ -x /usr/bin/install-info ] || return 0
+ for _file in ${_infofiles[@]}; do
+ install-info --delete $_infodir/$_file $_infodir/dir #2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/renpy/PKGBUILD b/pcr/renpy/PKGBUILD
new file mode 100644
index 000000000..61874b5ba
--- /dev/null
+++ b/pcr/renpy/PKGBUILD
@@ -0,0 +1,62 @@
+# Maintainer: AlexanderR <rvacheva at nxt dot ru>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname=renpy
+pkgver=6.16.2
+pkgrel=1
+pkgdesc="Ren'Py is a visual novel engine that helps you use words, images, and sounds to tell stories with the computer. This package contains both player and development tools."
+arch=any
+license=MIT
+url=http://www.$pkgname.org/
+depends=(
+ python2-$pkgname=$pkgver
+ ttf-dejavu
+)
+conflicts=(
+ $pkgname-bin
+ ${pkgname}64
+)
+replaces=${pkgname}64
+install=$pkgname.install
+source=(
+ http://www.$pkgname.org/dl/$pkgver/$pkgname-$pkgver-source.tar.bz2
+ $pkgname.desktop
+ $pkgname.{sh,csh}
+ $pkgname-launcher.sh
+)
+sha512sums=(
+ fc3b40f01f2d1e820a05f90a2d85e42986aaa4840e506d18ea76a78527d2f98ca6cf832ebde3e1f996b94f4ce4b175856da913f3de7f1a9db48aba0eea84b52d
+ 1af85c7a0c10662bfa4c03611fed695325f5953ac0f2c913f5342b1dca22b22115f07e69d646d92a3b95f5b896283e9b1bc7fe3e0a338536b5d9d48beedae8d5
+ 2a9302adbc6ff45e048d42487ac86e7501f90b2d393933af5d39d663a0b3707f795a04f65598e356a64809dfa0175a4ad860b355e5337ee149692c21caf339df
+ bcb3152a88d5f913a99855e9d6fa5d0019e310ba9d55a6288d2d8b60cb6c9ab3ddf8c772dfd23a2851d52479adc2a16bd3ffe25ff7fb50d222ec1f55eaa48b09
+ 727f9f16e1cff76c279d6e1578572a92c7b21ec34c6cb2841a04ac7b5cf6d2836487293744a9541993ee2e3a8dae927feb4e78f1afd01a748f5489090453cdd7
+)
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver-source"
+
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' $pkgname.py
+
+ msg 'fonts are provided by ttf-dejavu'
+ cd $pkgname
+ rm -v common/DejaVuSans.ttf common/DejaVuSans.txt
+}
+
+package(){
+ cd $pkgname-$pkgver-source
+
+ install -vd $pkgdir/{usr/share/{$pkgname,doc/$pkgname},etc/profile.d}
+ install -vm755 $srcdir/$pkgname.{sh,csh} $pkgdir/etc/profile.d
+ install -vDm755 $srcdir/$pkgname-launcher.sh $pkgdir/usr/bin/$pkgname
+ install -vDm644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+
+ cp -va launcher $pkgname{,.py} templates the_question tutorial $pkgdir/usr/share/$pkgname
+ ln -vs $pkgname/common $pkgdir/usr/share/$pkgname/common
+ cp -va doc/* $pkgdir/usr/share/doc/$pkgname
+
+ install -vDm644 launcher/game/logo.png $pkgdir/usr/share/pixmaps/$pkgname.png
+ install -vDm644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+ chgrp -vR games $pkgdir/usr/share/$pkgname/{the_question,tutorial}
+ chmod -vR g+w $pkgdir/usr/share/$pkgname/{the_question,tutorial}
+}
diff --git a/pcr/renpy/renpy-launcher.sh b/pcr/renpy/renpy-launcher.sh
new file mode 100644
index 000000000..605c0c1fd
--- /dev/null
+++ b/pcr/renpy/renpy-launcher.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+mkdir -p ~/renpy_projects
+cd ~/renpy_projects
+exec env python2 -OO /usr/share/renpy/renpy.py "$@"
diff --git a/pcr/renpy/renpy.csh b/pcr/renpy/renpy.csh
new file mode 100644
index 000000000..71269b48c
--- /dev/null
+++ b/pcr/renpy/renpy.csh
@@ -0,0 +1 @@
+setenv RENPY_BASE /usr/share/renpy/
diff --git a/pcr/renpy/renpy.desktop b/pcr/renpy/renpy.desktop
new file mode 100644
index 000000000..5cd64ea94
--- /dev/null
+++ b/pcr/renpy/renpy.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Ren'Py
+GenericName= renpy
+GenericName[fr]= renpy
+Comment=A programming language and runtime, intended to ease the creation of visual-novel type games.
+Comment[fr]=Un langage de programmation et un excutable conus pour faciliter la cration de jeux de type "visual-novel"
+Icon=renpy.png
+Exec=renpy
+Categories=Game;AdventureGame;
+
diff --git a/pcr/renpy/renpy.install b/pcr/renpy/renpy.install
new file mode 100644
index 000000000..bfe161cdb
--- /dev/null
+++ b/pcr/renpy/renpy.install
@@ -0,0 +1,21 @@
+post_install() {
+ ln -vsf /usr/share/doc/renpy /usr/share/renpy/doc
+
+ cat << EOF
+This package sets global environment variable RENPY_BASE, forcing all RenPy
+games, including incompatible ones, to use system-wide interpreter. Undefine
+this variable to launch games, you downloaded somewhere, with their built-in
+versions of interpreter.
+
+To run two example games: The Question and RenPy Tutorial you should be
+member of "games" group.
+EOF
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -v /usr/share/renpy/doc
+}
diff --git a/pcr/renpy/renpy.sh b/pcr/renpy/renpy.sh
new file mode 100644
index 000000000..32b2e6d29
--- /dev/null
+++ b/pcr/renpy/renpy.sh
@@ -0,0 +1 @@
+export RENPY_BASE=/usr/share/renpy/
diff --git a/pcr/retroshare/PKGBUILD b/pcr/retroshare/PKGBUILD
new file mode 100644
index 000000000..36bfeb18e
--- /dev/null
+++ b/pcr/retroshare/PKGBUILD
@@ -0,0 +1,148 @@
+# Maintainer: stqn
+# Contributor: JHeaton <jheaton at archlinux dot us>
+# Contributor: Tristero <tristero at online dot de>
+# Contributor: funkyou
+
+# Set this to true to build and install retroshare-nogui
+_build_nogui=false
+
+# Set this to true to build and install the plugins
+_build_linkscloud=true
+_build_feedreader=true
+_build_voip=true
+
+### Nothing to be changed below this line ###
+
+pkgname=retroshare
+pkgver=0.5.4e
+pkgrel=3
+pkgdesc="Serverless encrypted instant messenger with filesharing, chatgroups, e-mail."
+arch=('i686' 'x86_64')
+url="http://retroshare.sourceforge.net/"
+license=('LGPL' 'GPL')
+depends=('qt4' 'libupnp' 'libgnome-keyring' 'libxss')
+install="${pkgname}.install"
+
+source=(http://sourceforge.net/projects/retroshare/files/RetroShare/${pkgver}/RetroShare-v${pkgver}.tar.gz \
+ ${pkgname}.install \
+ ${pkgname}.desktop)
+
+sha256sums=('a1cc85327213aa3bab0eac0923b546472bb41aacd56a11f5f3be1ba2315a0bda'
+ '4b50547648612e9091536205402a4da9ddea9c18c0f71e5d6cd30b2226f206d9'
+ '70be00968f2477e368f75393f193e76f366fff2dadab869c855e92048060cf29')
+
+# Add missing dependencies if needed
+[[ $_build_nogui == true ]] && depends=(${depends[@]} 'libssh' 'protobuf')
+[[ $_build_voip == true ]] && depends=(${depends[@]} 'speex')
+[[ $_build_feedreader == true ]] && depends=(${depends[@]} 'curl' 'libxslt')
+
+build() {
+ local _srcdir="${srcdir}/retroshare-0.5.4/src"
+ local _qmake='qmake-qt4'
+
+ msg "Compiling OpenPGP-SDK..."
+ cd "${_srcdir}/openpgpsdk/src"
+ $_qmake
+ make
+
+ msg "Compiling libbitdht..."
+ cd "${_srcdir}/libbitdht/src"
+ $_qmake
+ make
+
+ msg "Compiling libretroshare..."
+ cd "${_srcdir}/libretroshare/src"
+ $_qmake
+ make
+
+ msg "Compiling retroshare-gui..."
+ cd "${_srcdir}/retroshare-gui/src"
+ $_qmake
+ make
+
+ if [[ "$_build_voip" == "true" ]] ; then
+ msg "Compiling VOIP plugin..."
+ cd "${_srcdir}/plugins/VOIP"
+ sed -i 's/lessThan.*/true {/' VOIP.pro
+ $_qmake
+ make
+ fi
+
+ if [[ "$_build_feedreader" == "true" ]] ; then
+ msg "Compiling FeedReader plugin..."
+ cd "${_srcdir}/plugins/FeedReader"
+ $_qmake
+ make
+ fi
+
+ if [[ "$_build_linkscloud" == "true" ]] ; then
+ msg "Compiling LinksCloud plugin..."
+ cd "${_srcdir}/plugins/LinksCloud"
+ $_qmake
+ make
+ fi
+
+ if [[ $_build_nogui == "true" ]] ; then
+ msg "Compiling retroshare-nogui..."
+ cd "${_srcdir}/rsctrl/src"
+ make
+ cd "${_srcdir}/retroshare-nogui/src"
+ sed -i 's/pkg-config --atleast-version 0.5.4 libssh/pkg-config --atleast-version 0.5 libssh/' retroshare-nogui.pro
+ $_qmake
+ make
+ fi
+}
+
+package() {
+ local _srcdir="${srcdir}/retroshare-0.5.4/src"
+
+ # --- Install Files ---
+
+ msg "Installing files to fakeroot-environment..."
+
+ install -D -m 755 \
+ "${_srcdir}/retroshare-gui/src/RetroShare" \
+ "${pkgdir}/usr/bin/${pkgname}"
+
+ if [[ "$_build_nogui" == "true" ]] ; then
+ install -D -m 755 \
+ "${_srcdir}/retroshare-nogui/src/retroshare-nogui" \
+ "${pkgdir}/usr/bin/${pkgname}-nogui"
+ fi
+
+ # Plugins
+ if [[ "$_build_linkscloud" == "true" ]] ; then
+ install -D -m 755 \
+ "${_srcdir}/plugins/LinksCloud/libLinksCloud.so" \
+ "${pkgdir}/usr/lib/retroshare/extensions/libLinksCloud.so"
+ fi
+ if [[ "$_build_voip" == "true" ]] ; then
+ install -D -m 755 \
+ "${_srcdir}/plugins/VOIP/libVOIP.so" \
+ "${pkgdir}/usr/lib/retroshare/extensions/libVOIP.so"
+ fi
+ if [[ "$_build_feedreader" == "true" ]] ; then
+ install -D -m 755 \
+ "${_srcdir}/plugins/FeedReader/libFeedReader.so" \
+ "${pkgdir}/usr/lib/retroshare/extensions/libFeedReader.so"
+ fi
+
+ # Icons
+ install -D -m 644 \
+ "${_srcdir}/retroshare-gui/src/gui/images/retrosharelogo2.png" \
+ "${pkgdir}/usr/share/pixmaps/retroshare.png"
+
+ # Desktop File
+ install -D -m 644 \
+ "${srcdir}/${pkgname}.desktop" \
+ "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+
+ # bdboot (needed to bootstrap the DHT)
+ install -D -m 644 \
+ "${_srcdir}/libbitdht/src/bitdht/bdboot.txt" \
+ "${pkgdir}/usr/share/RetroShare/bdboot.txt"
+
+ # Skins
+ cp -r "${_srcdir}/retroshare-gui/src/qss" "${pkgdir}/usr/share/RetroShare/"
+ find "${pkgdir}/usr/share/RetroShare/" -depth -type d -name ".svn" -exec rm -r {} \;
+}
diff --git a/pcr/retroshare/retroshare.desktop b/pcr/retroshare/retroshare.desktop
new file mode 100644
index 000000000..0c3f56180
--- /dev/null
+++ b/pcr/retroshare/retroshare.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=RetroShare
+GenericName=Sharing Network
+Comment=Secure Communication with Your Friends
+Icon=/usr/share/pixmaps/retroshare.png
+Exec=/usr/bin/retroshare
+Terminal=false
+StartupNotify=true
+Categories=Network;InstantMessaging;FileTransfer;Chat;Email;
diff --git a/pcr/retroshare/retroshare.install b/pcr/retroshare/retroshare.install
new file mode 100644
index 000000000..e48df1361
--- /dev/null
+++ b/pcr/retroshare/retroshare.install
@@ -0,0 +1,15 @@
+post_install() {
+ # Update Desktop DB
+ if [[ -x /usr/bin/update-desktop-database ]]; then
+ echo "Update desktop database..."
+ update-desktop-database -q ;
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/rfc5766-turn-server/ChangeLog b/pcr/rfc5766-turn-server/ChangeLog
new file mode 100644
index 000000000..5accefa5b
--- /dev/null
+++ b/pcr/rfc5766-turn-server/ChangeLog
@@ -0,0 +1,5 @@
+2013-06-05 Vladimir Tsanev <tsachev@gamil.com>
+
+ * 1.8.6.0-1 :
+ Initial package created.
+
diff --git a/pcr/rfc5766-turn-server/PKGBUILD b/pcr/rfc5766-turn-server/PKGBUILD
new file mode 100644
index 000000000..c070ad309
--- /dev/null
+++ b/pcr/rfc5766-turn-server/PKGBUILD
@@ -0,0 +1,64 @@
+# Maintainer: Vladimir Tsanev <tsachev@gmail.com>
+
+pkgname=rfc5766-turn-server
+_portname=turnserver
+pkgver=2.6.2.1
+pkgrel=1
+pkgdesc="STUN and TURN Relay Server for VoIP and WebRTC"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://code.google.com/p/rfc5766-turn-server/"
+license=('custom:BSDNew')
+depends=('libevent' 'postgresql-libs' 'libmysqlclient' 'hiredis')
+optdepends=('postgresql-client: to use postgresql'
+ 'mariadb: mariadb backend'
+ 'redis: redis backend')
+backup=("etc/turnserver.conf" "etc/turnuserdb.conf")
+changelog=ChangeLog
+source=(https://${pkgname}.googlecode.com/files/${_portname}-$pkgver.tar.gz
+ turn.service stun.service)
+
+build() {
+ cd "${srcdir}/$_portname-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --manprefix=/usr/share \
+ --examplesdir="/usr/share/$_portname/examples"
+
+ make
+}
+
+check() {
+ cd "${srcdir}/$_portname-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/$_portname-${pkgver}"
+ make DESTDIR="$pkgdir" install
+
+
+ install -D "$pkgdir/usr/share/$_portname/examples/etc/turnserver.conf" \
+ "$pkgdir/etc/turnserver.conf"
+ install -D "$pkgdir/usr/share/$_portname/examples/etc/turnuserdb.conf" \
+ "$pkgdir/etc/turnuserdb.conf"
+ install -D "$srcdir/stun.service" \
+ "$pkgdir/usr/lib/systemd/system/stun.service"
+ install -D "$srcdir/turn.service" \
+ "$pkgdir/usr/lib/systemd/system/turn.service"
+ rm -r "$pkgdir/usr/etc"
+
+ chmod 644 "$pkgdir/usr/lib/libturnclient.a"
+
+ install -Dm 644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+ install -dm 755 "$pkgdir/var/log/$_portname"
+
+ sed \
+ -e '/^#log-file=\/var\/tmp\/turn.log$/c log-file=\/var\/log\/turnserver\/turn.log' \
+ -i "${pkgdir}"/etc/turnserver.conf
+}
+sha1sums=('d7f01e6fadbe56fe4535d67a7d178a9cfba110b8'
+ '0c5b348e793bd52ce0ee38d420b26c9b2a2e2ca5'
+ 'b12805c049787cd1433181afaba4111f89740e63')
+sha256sums=('4d131f353aadb15901d175755075af65abf2a0e820d7281c9c164285642ff9c1'
+ '319030c1916d353bfc3375626cc7f60d6eeca762fe4fce354f010212902c49dc'
+ '63198e4f802c7b4b44e671e0fcaebca36589ebb11405e51ab9f36c80327ac4d9')
diff --git a/pcr/rfc5766-turn-server/stun.service b/pcr/rfc5766-turn-server/stun.service
new file mode 100644
index 000000000..bddb6168a
--- /dev/null
+++ b/pcr/rfc5766-turn-server/stun.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=STUN Server
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/turnserver --stun-only
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/rfc5766-turn-server/turn.service b/pcr/rfc5766-turn-server/turn.service
new file mode 100644
index 000000000..54cc5f01a
--- /dev/null
+++ b/pcr/rfc5766-turn-server/turn.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=TURN Server
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/turnserver
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/rosinstall/PKGBUILD b/pcr/rosinstall/PKGBUILD
new file mode 100644
index 000000000..3f91dbe6c
--- /dev/null
+++ b/pcr/rosinstall/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Georg Bremer <pkgbuild@dschoordsch.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgdesc='Tool to download/boostrap the ROS stack'
+url='http://www.ros.org/'
+
+pkgname='rosinstall'
+pkgver='0.6.20'
+pkgrel='1'
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('python2' 'cmake' 'wget' 'vcstools'
+ 'git' 'python2-distribute' 'python2-yaml')
+
+source=("http://pr.willowgarage.com/downloads/$pkgname/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/env python /env python2 /' src/rosinstall/setupfiles.py
+ python2 setup.py install --root=$pkgdir --optimize=1
+}
diff --git a/pcr/roundcube-carddav/PKGBUILD b/pcr/roundcube-carddav/PKGBUILD
new file mode 100644
index 000000000..840834106
--- /dev/null
+++ b/pcr/roundcube-carddav/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id$
+# Contributor: tang francescoallara.it
+# Maintainer : Parabola Aurélien Desbrières <aurelien@hackers.guru>
+
+pkgname=roundcube-carddav
+pkgver=git
+pkgrel=1
+pkgdesc="This plugin allows users to export their contacts via CardDAV"
+arch=('any')
+url="http://www.graviox.de/"
+license=('GPL')
+depends=('roundcubemail>=0.9.0')
+makedepends=('git')
+source=(https://github.com/graviox/Roundcube-CardDAV.git)
+
+package() {
+ _instdir=${pkgdir}/usr/share/webapps/roundcubemail/plugins/carddav
+ git clone ${source} ${_instdir}
+ install -dm755 ${_instdir}
+
+ # fix all the 644 perms on files
+ find ${_instdir} -type f -exec chmod 644 {} \;
+}
+md5sums=('a7c2e71f5d7a0d36c6682be6ff3413bd')
diff --git a/pcr/roundcube-rcguard-plugin-git/PKGBUILD b/pcr/roundcube-rcguard-plugin-git/PKGBUILD
new file mode 100644
index 000000000..d19298af7
--- /dev/null
+++ b/pcr/roundcube-rcguard-plugin-git/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: achterin
+# Maintainer : Parabola Aurélien Desbrières <aurelien@hackers.guru>
+
+pkgname=roundcube-rcguard-plugin-git
+_gitname=rcguard
+pkgver=47.baadec2
+pkgrel=1
+pkgdesc="Roundcube plugin that enforces reCAPTCHA for users that have too many failed logins"
+arch=('any')
+url="https://github.com/dennylin93/rcguard"
+license=('BSD')
+depends=('roundcubemail>=0.9.0')
+makedepends=('git')
+optdepends=('mysql'
+ 'sqlite'
+ 'postgresql')
+source=(git+https://github.com/dennylin93/rcguard.git)
+
+pkgver() {
+ cd $_gitname
+ echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD)
+}
+
+package() {
+ _instdir=${pkgdir}/usr/share/webapps/roundcubemail/plugins
+ install -dm755 ${_instdir}
+ rm -r ${srcdir}/rcguard/.git
+ cp -r ${srcdir}/rcguard ${_instdir}
+
+ # fix all the 644 perms on files
+ find ${_instdir} -type f -exec chmod 644 {} \;
+}
diff --git a/pcr/rstudio-desktop/PKGBUILD b/pcr/rstudio-desktop/PKGBUILD
new file mode 100644
index 000000000..569df2b33
--- /dev/null
+++ b/pcr/rstudio-desktop/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: TDY <tdy@archlinux.info>
+# Contributor: Ben Ward <benjamin.ward@bathspa.org>
+
+pkgname=rstudio-desktop
+pkgver=0.97.332
+_commit=e65a459
+pkgrel=1
+pkgdesc="A powerful and productive user interface for R"
+arch=('i686' 'x86_64')
+url="http://www.rstudio.org/"
+license=('AGPL')
+depends=('r>=2.11.1' 'qtwebkit' 'boost-libs>=1.50' 'shared-mime-info')
+makedepends=('git' 'cmake>=2.8' 'boost>=1.50' 'java-environment' 'apache-ant' 'unzip' 'openssl' 'pam' 'wget')
+install=rstudio.install
+source=($pkgname-$pkgver.tgz::https://github.com/rstudio/rstudio/tarball/v$pkgver)
+md5sums=('0197506486c76ed1bff71a534072e0e9')
+
+build() {
+ cd "$srcdir/rstudio-rstudio-$_commit/dependencies/common"
+ sh install-gwt
+ sh install-dictionaries
+ sh install-mathjax
+
+ rm -rf "$srcdir/rstudio-rstudio-$_commit/build"
+ install -dm755 "$srcdir/rstudio-rstudio-$_commit/build"
+ cd "$srcdir/rstudio-rstudio-$_commit/build"
+ cmake -DRSTUDIO_TARGET=Desktop \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/rstudio ..
+}
+
+package() {
+ cd "$srcdir/rstudio-rstudio-$_commit/build"
+ make DESTDIR="$pkgdir/" install
+ install -Dm644 ../COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/rstudio-desktop/rstudio.install b/pcr/rstudio-desktop/rstudio.install
new file mode 100644
index 000000000..d0192c8c0
--- /dev/null
+++ b/pcr/rstudio-desktop/rstudio.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() {
+ post_install "$1"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/ruby-bundler/PKGBUILD b/pcr/ruby-bundler/PKGBUILD
new file mode 100644
index 000000000..44a1a883b
--- /dev/null
+++ b/pcr/ruby-bundler/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Alexsandr Pavlov <kidoz at mail dot ru>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+_pkgname=bundler
+pkgname=ruby-$_pkgname
+pkgver=1.3.5
+pkgrel=1
+pkgdesc="Is manages an application's dependencies through its entire life, across many machines, systematically and repeatably."
+arch=any
+url=http://gem$_pkgname.com
+license=MIT
+depends=ruby
+source=http://rubygems.org/downloads/$_pkgname-$pkgver.gem
+noextract=$_pkgname-$pkgver.gem
+sha256sums=08b89047f7b829f3e197a28fb1bde74c3f5cfea1552f99dfba237fee30eaffe4
+
+package() {
+ cd $srcdir
+
+ local _gemdir=$(ruby -rubygems -e'puts Gem.default_dir')
+ HOME=/tmp gem install --no-user-install --ignore-dependencies\
+ -i $pkgdir$_gemdir -n $pkgdir/usr/bin\
+ $_pkgname-$pkgver.gem
+}
diff --git a/pcr/ruby-haml/PKGBUILD b/pcr/ruby-haml/PKGBUILD
new file mode 100644
index 000000000..37290484a
--- /dev/null
+++ b/pcr/ruby-haml/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: Renzo Carbonara <gnuk0001@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=ruby-haml
+pkgver=3.1.6
+pkgrel=1
+pkgdesc="An elegant, structured XHTML/XML templating engine. Comes with Sass, a similar CSS templating engine."
+arch=('any')
+url="http://haml-lang.com/"
+license=('MIT')
+groups=()
+depends=('ruby' 'ruby-yard>=0.5.3' 'maruku>=0.5.9')
+makedepends=('rubygems')
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=()
+install=
+source=("http://gems.rubyforge.org/gems/haml-${pkgver}.gem")
+noextract=("haml-${pkgver}.gem")
+
+build() {
+ cd $srcdir
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+ gem install --ignore-dependencies -i "$pkgdir$_gemdir" haml-$pkgver.gem \
+ -n "$pkgdir/usr/bin"
+}
+
+md5sums=('c73b2755a56cf5461f6a5e430052f436')
+
+# vim:set ts=2 sw=2 et:
+md5sums=('c73b2755a56cf5461f6a5e430052f436')
+md5sums=('c73b2755a56cf5461f6a5e430052f436')
diff --git a/pcr/ruby-headers/PKGBUILD b/pcr/ruby-headers/PKGBUILD
new file mode 100644
index 000000000..7b20fc288
--- /dev/null
+++ b/pcr/ruby-headers/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Contributor: Hilton Medeiros <medeiros.hilton at gmail dot com>
+
+pkgname=ruby-headers
+_pkgname=ruby
+pkgver=2.0.0_p195
+_pkgver=2.0.0-p195
+pkgrel=1
+pkgdesc="A package of all Ruby headers needed by some gems like ruby-debug."
+arch=('any')
+url="http://www.ruby-lang.org/en/"
+license=('GPL2' 'custom:Ruby')
+depends=("ruby=$pkgver")
+source=("http://ftp.ruby-lang.org/pub/ruby/2.0/$_pkgname-$_pkgver.tar.bz2")
+
+package() {
+ cd "$srcdir/$_pkgname-$_pkgver"
+
+ _hdrdir=`ruby -e "require 'rbconfig'; puts RbConfig::CONFIG['rubyhdrdir']"`
+
+ install -d "$pkgdir$_hdrdir/$_pkgname-$_pkgver"
+ install -m644 *.{h,inc} "$pkgdir$_hdrdir/$_pkgname-$_pkgver"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+md5sums=('2f54faea6ee1ca500632ec3c0cb59cb6')
diff --git a/pcr/ruby-hiera-json/PKGBUILD b/pcr/ruby-hiera-json/PKGBUILD
new file mode 100644
index 000000000..4d80244c8
--- /dev/null
+++ b/pcr/ruby-hiera-json/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Jochen Schalanda <jochen+aur@schalanda.name>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+_gemname=hiera-json
+pkgname=ruby-$_gemname
+pkgver=0.4.0
+pkgrel=1
+pkgdesc='Store Hiera data in JSON'
+arch=(any)
+url='http://projects.puppetlabs.com/projects/hiera/'
+license=('MIT')
+depends=('ruby')
+makedepends=('rubygems' 'ruby-hiera')
+source=(http://gems.rubyforge.org/gems/$_gemname-$pkgver.gem)
+noextract=($_gemname-$pkgver.gem)
+
+package() {
+ cd "$srcdir"
+ # _gemdir is defined inside package() because if ruby[gems] is not installed on
+ # the system, makepkg will exit with an error when sourcing the PKGBUILD.
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+
+ gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" \
+ -n "$pkgdir/usr/bin" "$_gemname-$pkgver.gem"
+}
+
diff --git a/pcr/ruby-hiera/PKGBUILD b/pcr/ruby-hiera/PKGBUILD
new file mode 100644
index 000000000..c4d51fe44
--- /dev/null
+++ b/pcr/ruby-hiera/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Jochen Schalanda <jochen+aur@schalanda.name>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+_gemname=hiera
+pkgname=ruby-$_gemname
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="A pluggable data store for hierarcical data."
+arch=(any)
+url='http://projects.puppetlabs.com/projects/hiera/'
+license=('MIT')
+depends=('ruby')
+makedepends=('rubygems')
+source=(
+ "http://gems.rubyforge.org/gems/$_gemname-$pkgver.gem"
+ 'hiera.yaml')
+noextract=($_gemname-$pkgver.gem)
+
+package() {
+ cd "$srcdir"
+ # _gemdir is defined inside package() because if ruby[gems] is not installed on
+ # the system, makepkg will exit with an error when sourcing the PKGBUILD.
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+
+ gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" \
+ -n "$pkgdir/usr/bin" "$_gemname-$pkgver.gem"
+
+ # Create hiera default directory
+ install -d $pkgdir/var/lib/hiera
+
+ # Create hiera default configuration
+ install -d $pkgdir/etc
+ install -m 644 $srcdir/hiera.yaml $pkgdir/etc/
+}
diff --git a/pcr/ruby-hiera/hiera.yaml b/pcr/ruby-hiera/hiera.yaml
new file mode 100644
index 000000000..cd0be3fec
--- /dev/null
+++ b/pcr/ruby-hiera/hiera.yaml
@@ -0,0 +1,21 @@
+---
+:backend:
+ - yaml
+ - json
+:hierarchy:
+ - defaults
+ - global
+
+:yaml:
+# datadir is empty here, so hiera uses its defaults:
+# - /var/lib/hiera on *nix
+# - %CommonAppData%\PuppetLabs\hiera\var on Windows
+# When specifying a datadir, make sure the directory exists.
+ :datadir:
+
+:json:
+# datadir is empty here, so hiera uses its defaults:
+# - /var/lib/hiera on *nix
+# - %CommonAppData%\PuppetLabs\hiera\var on Windows
+# When specifying a datadir, make sure the directory exists.
+ :datadir:
diff --git a/pcr/ruby-libnotify/PKGBUILD b/pcr/ruby-libnotify/PKGBUILD
new file mode 100644
index 000000000..f38e10d2d
--- /dev/null
+++ b/pcr/ruby-libnotify/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Luca Russo <vargolo@gmail.com>
+# Contributor: Sigitas Mazaliauskas <sigisnn@gmail.com>
+# Contributor: Andreas W. Hauser <andy-aur@splashground.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=ruby-libnotify
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="ruby bindings for libnotify, a library for desktop notifications"
+arch=('i686' 'x86_64')
+url="http://rubygems.org/downloads"
+license=('LGPL')
+depends=('ruby' 'libnotify' 'ruby-gtk2')
+makedepends=('ruby-pkgconfig')
+source=(http://rubygems.org/downloads/${pkgname}-${pkgver}.gem)
+noextract=(${pkgname}-${pkgver}.gem)
+
+build() {
+ cd $srcdir
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+
+ gem install --ignore-dependencies -i "$pkgdir$_gemdir" ${pkgname}-${pkgver}.gem
+}
diff --git a/pcr/ruby-maruku/PKGBUILD b/pcr/ruby-maruku/PKGBUILD
new file mode 100644
index 000000000..786b03e98
--- /dev/null
+++ b/pcr/ruby-maruku/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainter: Aurelien Desbrieres <aurelien@cwb.io>
+# Contributer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Adam Lloyd <lloyda2@rpi.edu>
+
+_gemname=maruku
+pkgname=ruby-$_gemname
+pkgver=0.6.1
+pkgdesc="A Markdown-superset interpreter"
+url="http://maruku.rubyforge.org/"
+
+license=('GPL') # GPL2+
+
+pkgrel=1
+arch=(any)
+depends=(ruby ruby-syntax)
+makedepends=(rubygems)
+source=(http://gems.rubyforge.org/gems/$_gemname-$pkgver.gem)
+noextract=($_gemname-$pkgver.gem)
+
+package() {
+ cd "$srcdir"
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+ gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" -n "$pkgdir/usr/bin" \
+ "$_gemname-$pkgver.gem"
+}
+
+md5sums=('b919c2b706ca83502a8bec0be5c16c6d')
diff --git a/pcr/ruby-mustache/PKGBUILD b/pcr/ruby-mustache/PKGBUILD
new file mode 100644
index 000000000..ddb5215d3
--- /dev/null
+++ b/pcr/ruby-mustache/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: David Campbell <davekong@archlinux.us>
+pkgname=ruby-mustache
+pkgver=0.99.4
+pkgrel=3
+pkgdesc="A framework-agnostic way to render logic-free views."
+arch=('any')
+url="http://github.com/defunkt/mustache"
+license=(MIT)
+depends=('ruby>=2')
+makedepends=('rubygems')
+source=("http://gems.rubyforge.org/gems/mustache-${pkgver}.gem"
+ "https://raw.github.com/defunkt/mustache/master/LICENSE")
+md5sums=('650194ec2c166feb087377647414b9dc'
+ 'fbbd010314b3f1554733123ecde55a52')
+noextract=("mustache-${pkgver}.gem")
+
+build() {
+ cd $srcdir
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+ gem install \
+ --no-user-install \
+ --ignore-dependencies \
+ -i "$pkgdir$_gemdir" mustache-$pkgver.gem \
+ -n "$pkgdir/usr/bin"
+
+ install -Dm644 $srcdir/LICENSE \
+ $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/ruby-shadow/PKGBUILD b/pcr/ruby-shadow/PKGBUILD
new file mode 100644
index 000000000..155835a3f
--- /dev/null
+++ b/pcr/ruby-shadow/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Thomas S Hatch <thatch45@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=ruby-shadow
+pkgver=2.1.4
+pkgrel=5
+pkgdesc="Interface for shadow passwords for Ruby"
+arch=(i686 x86_64 arm)
+depends=('ruby')
+license=('publicdomain')
+url=('https://github.com/apalmblad/ruby-shadow.git')
+source=("https://github.com/apalmblad/ruby-shadow/archive/$pkgver.tar.gz")
+
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ruby extconf.rb
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/pcr/ruby-syntax/PKGBUILD b/pcr/ruby-syntax/PKGBUILD
new file mode 100644
index 000000000..36d38a725
--- /dev/null
+++ b/pcr/ruby-syntax/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainter: Aurelien Desbrieres <aurelien@cwb.io>
+# Contributer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Adam Lloyd <lloyda2@rpi.edu>
+
+_gemname=syntax
+pkgname=ruby-$_gemname
+pkgver=1.0.0
+pkgdesc="A Ruby library for performing simple syntax highlighting"
+url="http://syntax.rubyforge.org/"
+license=('custom:BSD3')
+
+pkgrel=2
+arch=(any)
+depends=(ruby)
+makedepends=(rubygems)
+source=("https://rubyforge.org/frs/download.php/4952/$_gemname-$pkgver.tar.bz2" $_gemname.gemspec)
+md5sums=('bcb53b7d0847190c40a993c3fe1f1611'
+ '6e9a615fd9ba73335b16e5cc8762667d')
+
+build() {
+ cd "$srcdir/$_gemname-$pkgver"
+ gem build ../$_gemname.gemspec
+}
+
+package() {
+ cd "$srcdir/$_gemname-$pkgver"
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+ gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" -n "$pkgdir/usr/bin" \
+ "$_gemname-$pkgver.gem"
+ install -Dm644 "$pkgdir$_gemdir"/gems/$_gemname-$pkgver/LICENSE \
+ "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/ruby-yard/PKGBUILD b/pcr/ruby-yard/PKGBUILD
new file mode 100644
index 000000000..a686f937d
--- /dev/null
+++ b/pcr/ruby-yard/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Matt Harrison <matt at mistbyte dot com>
+# Contributor: Renzo Carbonara <gnuk0001@gmail.com>
+
+pkgname=ruby-yard
+_gemname=${pkgname#ruby-}
+pkgver=0.8.2.1
+pkgrel=2
+pkgdesc="Documentation tool for consistent and usable documentation in Ruby."
+arch=('any')
+url="http://yardoc.org"
+license=('MIT')
+groups=()
+depends=()
+makedepends=('rubygems')
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=()
+install=
+source=("http://gems.rubyforge.org/gems/yard-${pkgver}.gem")
+noextract=("yard-${pkgver}.gem")
+
+build() {
+ cd $srcdir
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+ gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" \
+ -n "$pkgdir/usr/bin" ${_gemname}-$pkgver.gem
+ install -D "$pkgdir$_gemdir/gems/${_gemname}-$pkgver/LICENSE" \
+ "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+md5sums=('08a48d23f8729b68945011cae7d121fe')
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/ruby1-bundler/PKGBUILD b/pcr/ruby1-bundler/PKGBUILD
new file mode 100644
index 000000000..d06f7af08
--- /dev/null
+++ b/pcr/ruby1-bundler/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Alexsandr Pavlov <kidoz at mail dot ru>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+_pkgname=bundler
+pkgname=ruby1-$_pkgname
+pkgver=1.3.5
+pkgrel=1
+pkgdesc="Is manages an application's dependencies through its entire life, across many machines, systematically and repeatably."
+arch=any
+url=http://gem$_pkgname.com
+license=MIT
+depends=ruby1
+source=http://rubygems.org/downloads/$_pkgname-$pkgver.gem
+noextract=$_pkgname-$pkgver.gem
+sha256sums=08b89047f7b829f3e197a28fb1bde74c3f5cfea1552f99dfba237fee30eaffe4
+
+package() {
+ cd $srcdir
+
+ local _gemdir=$(ruby1 -rubygems -e'puts Gem.default_dir')
+ HOME=/tmp gem1 install --no-user-install --ignore-dependencies\
+ -i $pkgdir$_gemdir -n $pkgdir/usr/bin\
+ $_pkgname-$pkgver.gem
+
+ msg "renaming $_pkgname to ${_pkgname}1"
+ mv -v $pkgdir/usr/bin/${_pkgname%r}{,1}
+}
diff --git a/pcr/ruby1/PKGBUILD b/pcr/ruby1/PKGBUILD
new file mode 100644
index 000000000..4a441bc1c
--- /dev/null
+++ b/pcr/ruby1/PKGBUILD
@@ -0,0 +1,84 @@
+# Maintainer: Thomas Dziedzic <gostrc@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Jeramy Rutley <jrutley@gmail.com>
+
+_pkgname=ruby
+pkgname=("${_pkgname}1" "${_pkgname}1-docs")
+pkgver=1.9.3_p448
+pkgrel=2
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.ruby-lang.org/en/'
+license=('BSD' 'custom')
+makedepends=('gdbm' 'openssl' 'tk' 'libffi' 'doxygen' 'graphviz' 'libyaml')
+options=('!emptydirs' '!makeflags' '!staticlibs')
+source=("ftp://ftp.ruby-lang.org/pub/ruby/${pkgver%.*}/ruby-${pkgver//_/-}.tar.bz2"
+ 'gemrc')
+md5sums=('aa710d386e5903f78f0231868255e6af'
+ '6fb8e7a09955e0f64be3158fb4a27e7a')
+
+build() {
+ cd ruby-${pkgver//_/-}
+
+ msg 'use gdbm because db v6 changed the license to AGPL'
+ sed -i 's|db db2 db1 db5 db4 db3||
+ \|db[1-5]/n\{0,1\}dbm\{0,1\}[.]h|d
+ \|traditional ndbm [(]4[.]3BSD[)]|d
+ ' ext/dbm/extconf.rb
+
+ msg 'fixing gemrc to gem1rc'
+ sed -i 's|gemrc|gem1rc|g
+ ' doc/rubygems/{ChangeLog,History.txt} \
+ lib/rubygems{,/command,/commands/environment_command,/config_file}.rb \
+ test/rubygems/test_gem_{config_file,gem_runner,remote_fetcher}.rb
+
+ PKG_CONFIG=/usr/bin/pkg-config ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --disable-rpath \
+ --program-suffix=1
+
+ make
+}
+
+check() {
+ cd ruby-${pkgver//_/-}
+
+ make test
+}
+
+package_ruby1() {
+ pkgdesc='An object-oriented language for quick and easy programming (1.9 ver.)'
+ depends=('gdbm' 'openssl' 'libffi' 'libyaml')
+ optdepends=('tk: for Ruby/TK'
+ 'ruby1-docs: Ruby documentation')
+ backup=('etc/gem1rc')
+ install='ruby.install'
+
+ cd ruby-${pkgver//_/-}
+
+ make DESTDIR="${pkgdir}" install-nodoc
+
+ install -D -m644 ${srcdir}/gemrc "${pkgdir}/etc/gem1rc"
+
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/ruby1/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/ruby1/BSDL"
+
+ msg 'remove useless files'
+ rm -v "${pkgdir}/usr/lib/libruby.so"
+}
+
+package_ruby1-docs() {
+ pkgdesc='Documentation files for ruby (1.9 ver.)'
+
+ cd ruby-${pkgver//_/-}
+
+ make DESTDIR="${pkgdir}" install-doc install-capi
+
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/ruby1-docs/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/ruby1-docs/BSDL"
+
+ msg 'fixing doc path'
+ mv -v ${pkgdir}/usr/share/doc/ruby{,1}
+}
diff --git a/pcr/ruby1/gemrc b/pcr/ruby1/gemrc
new file mode 100644
index 000000000..3d11de1ec
--- /dev/null
+++ b/pcr/ruby1/gemrc
@@ -0,0 +1,5 @@
+# Read about the gemrc format at http://docs.rubygems.org/read/chapter/11
+
+# --user-install is used to install to $HOME/.gem/ by default since we want to separate
+# pacman installed gems and gem installed gems
+gem: --user-install
diff --git a/pcr/ruby1/ruby.install b/pcr/ruby1/ruby.install
new file mode 100644
index 000000000..21e9b98a2
--- /dev/null
+++ b/pcr/ruby1/ruby.install
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+print_gem_default_target() {
+ echo 'The default location of gem installs is $HOME/.gem/ruby'
+ echo 'Add the following line to your PATH if you plan to install using gem'
+ echo '$(ruby1 -rubygems -e "puts Gem.user_dir")/bin'
+ echo 'If you want to install to the system wide location, you must either:'
+ echo 'edit /etc/gem1rc or run gem with the --no-user-install flag.'
+}
+
+# arg 1: the new package version
+post_install() {
+ print_gem_default_target
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ "$(vercmp $2 1.9.3_p125-4)" -lt 0 ]; then
+ print_gem_default_target
+ fi
+}
diff --git a/pcr/ryzom-data/PKGBUILD b/pcr/ryzom-data/PKGBUILD
new file mode 100644
index 000000000..9f33a6794
--- /dev/null
+++ b/pcr/ryzom-data/PKGBUILD
@@ -0,0 +1,45 @@
+# Mantainer: Jorge Araya Navarro <jorgean@lavabit.com>
+pkgname='ryzom-data'
+group='ryzom'
+pkgver=0.8.0
+pkgrel=1
+arch=('any')
+url="http://media.ryzom.com/"
+license=('CCPL:by-sa')
+makedepends=('rsync' 'p7zip')
+conflicts=('ryzom-data')
+pkgdesc="An awesome free software 3D MMORPG game. Game data."
+source=("http://sourceforge.net/projects/ryzom/files/ryzom_client.7z/download" "updateryzomdata")
+noextract=("download")
+sha256sums=('fa9e44e1014f4ae8639f1ec092391a41f69fc343ce48dd39b55ffae06ec3291f'
+ 'b42f74fd21cdbf6734214e5576dbbe7e4cf171bf5d712011fbea6529bd0123fd')
+
+package() {
+ cd "$srcdir/"
+
+ if [[ -d "data" ]]; then
+ rm -rf data
+ fi
+
+ mv "download" "ryzom_client.7z"
+ msg "Extracting game data..."
+ 7z x ryzom_client.7z ryzom/data/ >& /dev/null
+ cd ryzom/data/
+
+ msg "Updating the official Ryzom game data, this can take a while..."
+ rsync -rtzvu --progress --stats --recursive --timeout=30 www.ryzom.com::ryzom/data/ ./ >& /dev/null
+ msg 'Update completed...'
+
+ cd "$srcdir/ryzom/data"
+
+ # creating directories
+ install -d -m 755 "${pkgdir}/usr/share/ryzom/data/fonts/"
+ install -d -m 755 "${pkgdir}/etc/cron.d/"
+
+ # installing files
+ install -m 644 fonts/* "${pkgdir}/usr/share/ryzom/data/fonts/"
+ rm -rf fonts
+
+ install -m 644 * "${pkgdir}/usr/share/ryzom/data/"
+ install -m 644 ${srcdir}/updateryzomdata "${pkgdir}/etc/cron.d/"
+}
diff --git a/pcr/ryzom-hg/PKGBUILD b/pcr/ryzom-hg/PKGBUILD
new file mode 100644
index 000000000..2aa501159
--- /dev/null
+++ b/pcr/ryzom-hg/PKGBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Jorge Araya Navarro <jorgean@lavabit.com>
+# Maintainer (aur): Bjoern Bidar <theodorstormgrade@gmail.com>
+
+pkgname='ryzom-hg'
+_hgver=923522b
+pkgver=20131215
+pkgrel=3
+pkgdesc="An awesome free software 3D MMORPG game"
+arch=('i686' 'x86_64')
+url="http://www.ryzom.com/"
+license=('AGPL3')
+depends=('curl' 'hicolor-icon-theme' 'libvorbis' 'libjpeg' 'libwww-hg' 'luabind' 'ryzom-data')
+conflicts=('ryzom')
+makedepends=('mercurial' 'cpptest' 'cmake' 'bison' 'freealut' 'rrdtool' 'boost' 'freetype2')
+source=("libre://$pkgname-$pkgver.tar.gz")
+
+mksource=(".$pkgname-$pkgver::hg+https://bitbucket.org/ryzom/ryzomcore#revision=${_hgver}")
+
+mksource() {
+ rm -rf "$srcdir/$pkgname-$pkgver"
+ cp -a "$srcdir/.$pkgname-$pkgver/code" "${srcdir}/${pkgname}-${pkgver}"
+ # some patching required...
+ sed -i 's|<freetype/|<freetype2/|g' "${srcdir}/${pkgname}-${pkgver}/nel/src/3d/font_generator.cpp"
+}
+
+build() {
+ mkdir -p "$srcdir/build"
+ cd "$srcdir/build"
+ cmake -Wno-dev "$srcdir/${pkgname}-${pkgver}" -DFINAL_VERSION=ON -DWITH_STATIC=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NEL_TESTS=OFF -DWITH_LUA51=ON -DWITH_NEL_SAMPLES=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DCMAKE_INSTALL_PREFIX=/usr -DRYZOM_ETC_PREFIX=/etc/ryzom -DRYZOM_SHARE_PREFIX=/usr/share/ryzom -DRYZOM_BIN_PREFIX=/usr/bin -DRYZOM_GAMES_PREFIX=/usr/bin -DFREETYPE_INCLUDE_DIRS="/usr/include;/usr/include/freetype2"
+
+ make all
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ cd "$pkgdir/etc/ryzom/"
+ # instead of the open shard, we point to the actual ryzom shard.
+ # this cannot be on prepare(), I tried that already and didn't work
+ sed -i 's|"ryzom_open"|"ryzom_live"|g' client_default.cfg
+ sed -i 's|PatchServer = "";|PatchServer = "http://dl.ryzom.com/patch_live";|g' client_default.cfg
+ sed -i 's|SignUpURL = "";|SignUpURL = "http://www.ryzom.com/subscribe";|g' client_default.cfg
+ sed -i 's|"open.ryzom.com:40916";|"shard.ryzom.com:40916";|g' client_default.cfg
+ sed -i 's|CreateAccountURL = "";|CreateAccountURL = "https://secure.ryzom.com/signup/from_client.php";|g' client_default.cfg
+ sed -i 's|InstallWebPage = "";|InstallWebPage = "http://dl.ryzom.com/installer/";|g' client_default.cfg
+ sed -i 's|"http://open.ryzom.com:50000/stats/stats.php";|"http://shard.ryzom.com:50000/stats/stats.php";|g' client_default.cfg
+ sed -i 's|atys.|app.|g' client_default.cfg
+ sed -i 's|"app.ryzom.com" |"api.ryzom.com", "app.ryzom.com" |g' client_default.cfg
+}
+
+mksha256sums=('SKIP')
+sha256sums=('187e9a508be4c3c07f768fc98497941ac4946caf2202d24311aac81d73cff5a5')
diff --git a/pcr/ryzom-hg/ryzom.desktop b/pcr/ryzom-hg/ryzom.desktop
new file mode 100644
index 000000000..d90063593
--- /dev/null
+++ b/pcr/ryzom-hg/ryzom.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Name=Ryzom
+Type=Application
+GenericName=ryzom
+Comment=Ryzom
+Exec=/usr/bin/ryzom
+Icon=/usr/share/ryzom/data/ryzom.png
+Terminal=false
+Hidden=false
+Categories=Game;RolePlaying;
diff --git a/pcr/samba4/PKGBUILD b/pcr/samba4/PKGBUILD
new file mode 100644
index 000000000..09c55781d
--- /dev/null
+++ b/pcr/samba4/PKGBUILD
@@ -0,0 +1,93 @@
+# Maintainer: Michael Hansen <zrax0111 gmail com>
+# Contributor: Marco A Rojas <marquicus at gmail.com>
+# Contributor: Netanel Shine <netanel at archlinux.org.il >
+# Contributor: ngoonee <ngoonee.talk@gmail.com>
+# Contributor: Adam Russell <adamlr6+arch@gmail.com>
+# Contributor: Dhananjay Sathe <dhananjaysathe@gmail.com>
+pkgname=samba4
+pkgver=4.0.0rc5
+pkgrel=1
+pkgdesc="Samba 4.0 Release Candidate"
+arch=('i686' 'x86_64')
+url="http://www.samba.org"
+license=('GPL3')
+depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'libcap>=2.16' 'pam' 'gamin' 'gnutls>=2.4.1' 'talloc' 'tdb')
+makedepends=('python2' 'docbook-xsl' 'pkg-config')
+options=(!makeflags)
+source=(http://us1.samba.org/samba/ftp/rc/samba-${pkgver}.tar.gz
+ samba4.rc samba4.confd)
+md5sums=('24d4b715a46c5f111b08b87975a27b1e'
+ '01deaef9cd21dff7586a7221d1a6d300'
+ 'e1b2671dc1d1371a3628235a818debab')
+_prefix="/opt/samba4"
+
+build() {
+ cd ${srcdir}/samba-${pkgver}
+
+ # change to use python2
+ SAVEIFS=${IFS}
+ IFS=$(echo -en "\n\b")
+ PYTHON_CALLERS="$(find ${srcdir}/samba-${pkgver} -name '*.py')
+$(find ${srcdir}/samba-${pkgver} -name 'wscript*')
+$(find ${srcdir}/samba-${pkgver} -name 'configure.ac')
+$(find ${srcdir}/samba-${pkgver} -name 'upgrade_from_s3')
+$(find ${srcdir}/samba-${pkgver}/buildtools -type f)
+$(find ${srcdir}/samba-${pkgver}/source4/scripting -type f)"
+ sed -i -e "s|/usr/bin/env python$|/usr/bin/env python2|" \
+ -e "s|python-config|python2-config|" \
+ -e "s|bin/python|bin/python2|" \
+ ${PYTHON_CALLERS}
+ IFS=${SAVEIFS}
+
+ export PYTHON=/usr/bin/python2
+
+ cd ${srcdir}/samba-${pkgver}/lib/tdb
+ ./configure --prefix=${_prefix}/samba
+ make
+ make DESTDIR="$pkgdir/" install
+
+ cd ${srcdir}/samba-${pkgver}/lib/tevent
+ ./configure --prefix=${_prefix}/samba
+ make
+ make DESTDIR="$pkgdir/" install
+
+ cd ${srcdir}/samba-${pkgver}/lib/ldb
+ ./configure --prefix=${_prefix}/samba
+ make
+ make DESTDIR="$pkgdir/" install
+
+ cd ${srcdir}/samba-${pkgver}
+ ./configure --prefix=${_prefix}
+ make
+}
+
+package() {
+ _pyver=`python2 -c 'import sys; print(sys.version[:3])'`
+
+ cd ${srcdir}/samba-${pkgver}
+ make DESTDIR="$pkgdir/" install
+
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo "${_prefix}/samba/lib" > ${pkgdir}/etc/ld.so.conf.d/samba4.conf
+
+ cd ${pkgdir}/${_prefix}/lib/
+ ln -s samba/libldb-samba4.so.0 libldb.so
+ ln -s samba/libldb-samba4.so.0 libldb.so.0
+
+ find ${pkgdir}/${_prefix}/lib/python${_pyver}/site-packages/ -name '*.py' | \
+ xargs sed -i "s|#!/usr/bin/env python$|#!/usr/bin/env python2|"
+ find ${pkgdir}/${_prefix}/bin ${pkgdir}/${_prefix}/sbin -type f -executable | \
+ xargs sed -i "s|#!/usr/bin/env python$|#!/usr/bin/env python2|"
+
+ # Make admin scripts look in the right place for the samba python module
+ for script in sbin/samba_dnsupdate sbin/samba_kcc sbin/samba_spnupdate \
+ sbin/samba_upgradeprovision sbin/samba_upgradedns bin/samba-tool
+ do
+ sed -i "/^sys\.path\.insert/ a\
+sys.path.insert(0, '${_prefix}/lib/python${_pyver}/site-packages')" \
+ ${pkgdir}/${_prefix}/${script}
+ done
+
+ install -D -m755 ${srcdir}/samba4.rc ${pkgdir}/etc/rc.d/samba4
+ install -D -m644 ${srcdir}/samba4.confd ${pkgdir}/etc/conf.d/samba4
+}
diff --git a/pcr/samba4/samba4.confd b/pcr/samba4/samba4.confd
new file mode 100644
index 000000000..3c29c49cf
--- /dev/null
+++ b/pcr/samba4/samba4.confd
@@ -0,0 +1,5 @@
+#
+# Additional parameters to be passed to Samba4
+#
+
+SAMBA4_ARGS=""
diff --git a/pcr/samba4/samba4.rc b/pcr/samba4/samba4.rc
new file mode 100644
index 000000000..73d09fe30
--- /dev/null
+++ b/pcr/samba4/samba4.rc
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f /etc/conf.d/samba4 ] && . /etc/conf.d/samba4
+
+function call_samba4() {
+ /opt/samba4/sbin/samba -D $SAMBA4_ARGS
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting Samba4 Server"
+ if [ ! -x /opt/samba4/var ] ; then
+ install -m755 -d /opt/samba4/var
+ fi
+ if [ ! -x /opt/samba4/var/run ] ; then
+ install -m755 -d /opt/samba4/var/run
+ fi
+ PID=`pidof -o %PPID /opt/samba4/sbin/samba`
+ [ -z "$PID" ] && call_samba4
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon samba4
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Samba4 Server"
+ PID=`pidof -o %PPID /opt/samba4/sbin/samba`
+ [ -z "$PID" ] || kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /opt/samba4/var/run/samba.pid &> /dev/null
+ rm_daemon samba4
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/pcr/samplv1/PKGBUILD b/pcr/samplv1/PKGBUILD
new file mode 100644
index 000000000..33be54edf
--- /dev/null
+++ b/pcr/samplv1/PKGBUILD
@@ -0,0 +1,30 @@
+
+pkgname=samplv1
+pkgver=0.3.4
+pkgrel=1
+pkgdesc="Polyphonic sampler synthesizer with stereo fx"
+arch=(i686 x86_64)
+url="http://$pkgname.sourceforge.net/$pkgname-index.html"
+license=('GPL')
+groups=('lv2-plugins')
+depends=('jack' 'liblo' 'lv2' 'qt4' 'shared-mime-info')
+install="$pkgname.install"
+source=("http://download.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('32e920ff8457bb94f301a657d55f90a8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # x86_64 lib path fix
+ sed -i "s/lib64/lib/" src/src_lv2.pro
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/samplv1/samplv1.install b/pcr/samplv1/samplv1.install
new file mode 100644
index 000000000..ec1a84bbb
--- /dev/null
+++ b/pcr/samplv1/samplv1.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ update-mime-database usr/share/mime
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/seeks/PKGBUILD b/pcr/seeks/PKGBUILD
new file mode 100644
index 000000000..32abb13f8
--- /dev/null
+++ b/pcr/seeks/PKGBUILD
@@ -0,0 +1,65 @@
+# Maintainer: Kete < kete at ninthfloor dot org >
+
+pkgname=seeks
+pkgver=0.4.1
+pkgrel=6
+pkgdesc="A social decentralized internet overlay for collaborative searches"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.seeks-project.info/site/"
+license=('AGPL3' 'LGPL' 'BSD')
+backup=('etc/logrotate.d/seeks'
+ 'etc/conf.d/seeks'
+ 'etc/seeks/config')
+depends=('curl' 'libevent>=2.0' 'libxml2' 'opencv' 'protobuf' 'icu' 'tokyotyrant')
+makedepends=('pkg-config' 'docbook-xml' 'docbook2x')
+source=("http://downloads.sourceforge.net/project/${pkgname}/hippy/${pkgname}-${pkgver}.tar.gz"
+'seeks.conf.d'
+ 'seeks.rc.d'
+ 'img_websearch.patch'
+ 'conf.patch'
+ 'seeks.logrotate')
+install=seeks.install
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # replace <cxflann.h> by <cv.h>
+ patch -p1 -i "$srcdir/img_websearch.patch"
+
+ # linking issue with --as-needed linker flag, Cli not building with RC2
+ LDFLAGS="-Wl,--no-as-needed" \
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-httpserv-plugin \
+ --enable-extended-host-patterns
+ #--disable-cli \
+
+ sed -i s/,--as-needed,/,/ config.status
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check-local
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # Patch config file to make seeks log in /var/log instead of ./ (needed for rc.d)
+ patch -p1 -i "$srcdir/conf.patch"
+ make DESTDIR="$pkgdir/" install
+
+ install -D -m644 Licenses "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -D -m644 ../seeks.conf.d "${pkgdir}/etc/conf.d/seeks"
+ install -D -m755 ../seeks.rc.d "${pkgdir}/etc/rc.d/seeks"
+ install -D -m600 ../seeks.logrotate "${pkgdir}/etc/logrotate.d/seeks"
+ install -d -m755 "${pkgdir}/var/log/seeks"
+ install -d -m755 "${pkgdir}/var/lib/seeks"
+}
+
+# vim:set ts=2 sw=2 et:
+md5sums=('2545192be5fa2e70d850f7395d039a0f'
+ 'ed29089d43873600726d570e63a5043d'
+ '72a00a931363edd2ed11c0072bfd5b10'
+ '2554e9f9f733d83203d0926e599e66db'
+ '71a99dafa726539b9de9055468e2f56c'
+ '5fbdf9c327999605b0f124132f27a27d')
diff --git a/pcr/seeks/conf.patch b/pcr/seeks/conf.patch
new file mode 100644
index 000000000..93e12c311
--- /dev/null
+++ b/pcr/seeks/conf.patch
@@ -0,0 +1,20 @@
+--- a/src/config 2011-11-13 15:21:14.000000000 +0100
++++ b/src/config 2011-11-13 15:46:15.856186336 +0100
+@@ -148,7 +148,7 @@
+ #
+ # No trailing "/", please.
+ #
+-confdir .
++confdir /etc/seeks
+ #
+ #
+ # 2.2. templdir
+@@ -193,7 +193,7 @@
+ #
+ # No trailing "/", please.
+ #
+-logdir .
++logdir /var/log/seeks
+ #
+ #
+ # 2.4. logfile
diff --git a/pcr/seeks/docbook2man.patch b/pcr/seeks/docbook2man.patch
new file mode 100644
index 000000000..c5de2e063
--- /dev/null
+++ b/pcr/seeks/docbook2man.patch
@@ -0,0 +1,24 @@
+--- seeks/configure 2011-07-30 15:16:27.000000000 +0200
++++ seeks/configure.patch 2011-07-30 16:04:34.000000000 +0200
+@@ -16726,10 +16726,10 @@ PCRE_CFLAGS=`$PCRE_CONFIG --cflags`
+
+
+ #==========================================================================
+-# Finding docbook2x-man
++# Finding docbook2man
+ #==========================================================================
+-# Extract the first word of "docbook2x-man", so it can be a program name with args.
+-set dummy docbook2x-man; ac_word=$2
++# Extract the first word of "docbook2man", so it can be a program name with args.
++set dummy docbook2man; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_docbook+:} false; then :
+--- seeks/doc/Makefile.am 2011-07-30 16:51:14.000000000 +0200
++++ seeks/doc/Makefile.am.patch 2011-07-30 16:55:58.000000000 +0200
+@@ -8,4 +8,4 @@ endif
+
+ EXTRA_DIST=seeks.1.docbook
+ seeks.1:
+- docbook2x-man ${srcdir}/seeks.1.docbook
++ docbook2man ${srcdir}/seeks.1.docbook
diff --git a/pcr/seeks/img_websearch.patch b/pcr/seeks/img_websearch.patch
new file mode 100644
index 000000000..94362e2fc
--- /dev/null
+++ b/pcr/seeks/img_websearch.patch
@@ -0,0 +1,13 @@
+diff --git a/src/plugins/img_websearch/ocvsurf.cpp b/src/plugins/img_websearch/ocvsurf.cpp
+index 5caa9dd..c3cccb4 100644
+--- a/src/plugins/img_websearch/ocvsurf.cpp
++++ b/src/plugins/img_websearch/ocvsurf.cpp
+@@ -29,7 +29,7 @@
+ #include "miscutil.h"
+ #include "errlog.h"
+
+-#include <cxflann.h>
++#include <cv.h>
+
+ #include <iostream>
+ #include <fstream>
diff --git a/pcr/seeks/install b/pcr/seeks/install
new file mode 100644
index 000000000..35f383a3c
--- /dev/null
+++ b/pcr/seeks/install
@@ -0,0 +1,18 @@
+post_install() {
+ getent group seeks >/dev/null || groupadd -r seeks
+ getent passwd seeks >/dev/null || useradd -r -c "Seeks daemon" -g seeks -M -d /var/run/seeks -s /bin/false seeks
+ passwd -l seeks &>/dev/null
+ touch var/log/seeks.log
+ chown seeks:log var/log/seeks.log
+ mkdir -p var/lib/seeks
+ touch var/lib/seeks/seeks.db
+ chown -R seeks:seeks var/lib/seeks
+}
+
+pre_remove() {
+ getent passwd seeks &>/dev/null && userdel seeks >/dev/null
+ getent group seeks &>/dev/null && groupdel seeks >/dev/null
+ return 0
+}
+
+
diff --git a/pcr/seeks/logfile.patch b/pcr/seeks/logfile.patch
new file mode 100644
index 000000000..9f4ab9b02
--- /dev/null
+++ b/pcr/seeks/logfile.patch
@@ -0,0 +1,29 @@
+--- config 2011-10-21 10:42:20.000000000 +0200
++++ config.patch 2011-11-17 18:48:48.914516206 +0100
+@@ -193,7 +193,7 @@
+ #
+ # No trailing "/", please.
+ #
+-logdir .
++logdir /var/log/
+ #
+ #
+ # 2.4. logfile
+@@ -239,7 +239,7 @@
+ # Any log files must be writable by whatever user Seeks is
+ # being run as.
+ #
+-logfile logfile
++logfile seeks.log
+ #
+ #
+ # 2.5. plugindir
+@@ -377,7 +377,7 @@
+ # Unset. This means the db is located in $HOME/.seeks/seeks_user.db
+ # as default location.
+ #
+-# user-db-file /path/to/file.db
++user-db-file /var/lib/seeks/seeks.db
+ #
+ # 2.10. user-db-address
+ # =====================
diff --git a/pcr/seeks/seeks b/pcr/seeks/seeks
new file mode 100755
index 000000000..01f34a432
--- /dev/null
+++ b/pcr/seeks/seeks
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+daemon_name="seeks"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/$daemon_name
+
+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 $SEEKS_ARGS 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/pcr/seeks/seeks.conf.d b/pcr/seeks/seeks.conf.d
new file mode 100644
index 000000000..c28382aca
--- /dev/null
+++ b/pcr/seeks/seeks.conf.d
@@ -0,0 +1,11 @@
+#
+# Arguments to be passed to the Seeks daemon
+#
+
+# User
+SEEKS_USER="seeks"
+# Config file (default if empty)
+SEEKS_CONFIG=""
+# Args
+SEEKS_ARGS=""
+
diff --git a/pcr/seeks/seeks.install b/pcr/seeks/seeks.install
new file mode 100644
index 000000000..bf9849e78
--- /dev/null
+++ b/pcr/seeks/seeks.install
@@ -0,0 +1,12 @@
+post_install() {
+ getent group seeks >/dev/null || groupadd -r seeks
+ getent passwd seeks >/dev/null || useradd -r -c "Seeks daemon" -g seeks -M -d /var/lib/seeks -s /bin/false seeks
+ passwd -l seeks &>/dev/null
+ chown seeks:seeks var/log/seeks var/lib/seeks
+}
+
+pre_remove() {
+ getent passwd seeks &>/dev/null && userdel seeks >/dev/null
+ getent group seeks &>/dev/null && groupdel seeks >/dev/null
+ return 0
+}
diff --git a/pcr/seeks/seeks.logrotate b/pcr/seeks/seeks.logrotate
new file mode 100644
index 000000000..98b411884
--- /dev/null
+++ b/pcr/seeks/seeks.logrotate
@@ -0,0 +1,6 @@
+/var/log/seeks/logfile {
+ missingok
+ notifempty
+ size 30k
+ create
+}
diff --git a/pcr/seeks/seeks.rc.d b/pcr/seeks/seeks.rc.d
new file mode 100644
index 000000000..67de9251a
--- /dev/null
+++ b/pcr/seeks/seeks.rc.d
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/seeks
+
+PIDFILE="/var/run/seeks.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 Seeks"
+ if [[ $PID ]]; then
+ stat_fail
+ exit 1
+ fi
+ if /usr/bin/seeks --daemon --pidfile "$PIDFILE" --user $SEEKS_USER $SEEKS_ARGS $SEEKS_CONFIG 2>&1 > /dev/null; then
+ add_daemon seeks
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Seeks"
+ if [[ ! $PID ]]; then
+ stat_fail
+ exit 1
+ fi
+ if { kill $PID && rm -f "$PIDFILE"; } &>/dev/null; then
+ rm_daemon seeks
+ 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/pcr/seeks/seeksdaemon b/pcr/seeks/seeksdaemon
new file mode 100644
index 000000000..551197d28
--- /dev/null
+++ b/pcr/seeks/seeksdaemon
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/seeks
+
+PID=`pidof -o %PPID /usr/bin/seeks`
+
+case "$1" in
+ start)
+ stat_busy "Starting seeks daemon"
+ [ -z "$PID" ] && /usr/bin/seeks $SEEKS_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon seeks
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping seeks daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon seeks
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ while [ ! -z "$PID" -a -d "/proc/$PID" ]; do sleep 1; done
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+
+esac
+exit 0
+
diff --git a/pcr/send-to-torrent/PKGBUILD b/pcr/send-to-torrent/PKGBUILD
new file mode 100644
index 000000000..110ba0b1a
--- /dev/null
+++ b/pcr/send-to-torrent/PKGBUILD
@@ -0,0 +1,19 @@
+pkgname=send-to-torrent
+pkgver=0.0.3
+pkgrel=1
+pkgdesc="Share files from the file browser"
+arch=('any')
+url="http://repo.hackcoop.com.ar/send-to-torrent.git/"
+license=("AGPL3")
+source=("http://repo.hackcoop.com.ar/${pkgname}.git/snapshot/${pkgname}-${pkgver}.tar.xz")
+md5sums=('e9d465ebec3abd1e142731f53adf8cf2')
+depends=("bash" "mktorrent" "xdg-utils")
+optdepends=("libnotify: desktop notifications"
+ "transmission-cli: transmission support"
+ "opentracker: local sharing support")
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/"
+
+ make TARGET="${pkgdir}" PREFIX="/usr" install
+}
diff --git a/pcr/setbfree/PKGBUILD b/pcr/setbfree/PKGBUILD
new file mode 100644
index 000000000..c17511f47
--- /dev/null
+++ b/pcr/setbfree/PKGBUILD
@@ -0,0 +1,45 @@
+
+pkgname=setbfree
+pkgver=0.7.3
+pkgrel=1
+pkgdesc="A DSP Tonewheel Organ emulator."
+arch=(i686 x86_64)
+url="http://setbfree.org/"
+license=('GPL')
+depends=('jack' 'liblo' 'tk' 'desktop-file-utils')
+makedepends=('lv2')
+install="$pkgname.install"
+source=("https://github.com/pantherb/setBfree/tarball/v$pkgver"
+ "https://raw.github.com/pantherb/setBfree/master/debian/setbfree.desktop")
+md5sums=('8b7b077dfb784927c7103948083e1f04'
+ '8c2a863562f26856dcff0a456cf36dcf')
+
+build() {
+ cd "$srcdir/pantherb"*
+ make PREFIX=/usr
+}
+
+package() {
+ cd "$srcdir/pantherb"*
+ make DESTDIR="$pkgdir/" PREFIX=/usr install
+
+ # desktop file
+ install -Dm644 ../$pkgname.desktop \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+
+ # icon
+ install -Dm644 doc/setBfree.png \
+ "$pkgdir/usr/share/icons/setBfree.png"
+
+ # man
+ install -d "$pkgdir/usr/share/man/man1"
+ install -Dm644 doc/*.1 \
+ "$pkgdir/usr/share/man/man1"
+
+ # docs
+ install -d "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm644 doc/{midi.txt,signal_flow.png} \
+ "$pkgdir/usr/share/doc/$pkgname"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/setbfree/setbfree.install b/pcr/setbfree/setbfree.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/pcr/setbfree/setbfree.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/setuptools_darcs/PKGBUILD b/pcr/setuptools_darcs/PKGBUILD
new file mode 100644
index 000000000..285214db8
--- /dev/null
+++ b/pcr/setuptools_darcs/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Peter Simons <simons@cryp.to>
+# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+pkgname=setuptools_darcs
+pkgver=1.2.11
+pkgrel=3.1
+pkgdesc="Python setuptools plugin for darcs"
+arch=('any')
+url='http://pypi.python.org/pypi/setuptools_darcs'
+license=('BSD')
+depends=('python2' 'setuptools')
+makedepends=('darcsver')
+source=( http://pypi.python.org/packages/source/s/$pkgname/$pkgname-$pkgver.tar.gz )
+md5sums=('79451a8e77b9692861a655e53df094f0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+ install -Dm644 PKG-INFO $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/sfml-git/PKGBUILD b/pcr/sfml-git/PKGBUILD
new file mode 100644
index 000000000..94f89f7e7
--- /dev/null
+++ b/pcr/sfml-git/PKGBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Ondrej Martinak <omartinak@gmail.com>
+# Contributor: Jorge Araya Navarro <jorgean@lavabit.com>
+
+pkgname=sfml-git
+pkgver=20120805
+pkgrel=4
+pkgdesc='A simple, fast, cross-platform, and object-oriented multimedia API.'
+arch=('i686' 'x86_64')
+url='http://www.sfml-dev.org/'
+license=('zlib')
+depends=('libsndfile' 'libxrandr' 'libjpeg' 'openal' 'glew' 'freetype2')
+makedepends=('git' 'mesa' 'cmake' 'doxygen')
+conflicts=('sfml' 'sfml-git')
+source=("arial.patch")
+
+_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"
+ #Applying the patch
+ # cp "$srcdir/arial.patch" "$srcdir/$_gitname/src/$_gitname/"
+ # cd "$srcdir/$_gitname/src/$_gitname/"
+ # patch -p3 -i arial.patch
+
+ cp -r "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+ cd "$srcdir/$_gitname-build"
+
+ mkdir build && cd build
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSFML_BUILD_DOC=true \
+ -DSFML_BUILD_EXAMPLES=true
+ make
+ make doc
+}
+
+package() {
+ cd "$srcdir/$_gitname-build/build"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 "$pkgdir/usr/share/SFML/cmake/Modules/FindSFML.cmake" "$pkgdir/usr/share/cmake-2.8/Modules/FindSFML.cmake"
+
+ install -Dm644 ../license.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ make clean
+}
+
+sha256sums=('4a1a0991b45c93584405be7c7920d92ec95f39d2af533f6d09b0094e4110eae8')
diff --git a/pcr/shflags/PKGBUILD b/pcr/shflags/PKGBUILD
new file mode 100644
index 000000000..c4f3ee7a9
--- /dev/null
+++ b/pcr/shflags/PKGBUILD
@@ -0,0 +1,31 @@
+#Maintainer max_meyer
+pkgname=shflags
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Shell Flags (shFlags) is a library written to greatly simplify the handling of command-line flags"
+arch=(any)
+url="http://code.google.com/p/shflags/"
+license=('LGPL')
+depends=(sh)
+provides=(shflags)
+optdepends=(bash zsh dash ksh)
+options=(zipman)
+source=(http://shflags.googlecode.com/files/$pkgname-$pkgver.tgz{,.sig})
+md5sums=('b4d7133696ec05b71b27d8df5e278f0f'
+ 'SKIP')
+
+package() {
+ src="$srcdir/$pkgname-$pkgver/src/"
+ dst="$pkgdir/usr/share/lib/shflags"
+ mkdir -p "$dst"
+
+ if [ -f "$src/shflags" ]; then
+ cp "$src/shflags" "$dst/shflags.sh"
+ else
+ msg "Warning shflags not found"
+ exit 1
+ fi
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/shocco/PKGBUILD b/pcr/shocco/PKGBUILD
new file mode 100644
index 000000000..32baa6d2d
--- /dev/null
+++ b/pcr/shocco/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+pkgname="shocco"
+pkgver=1.0
+pkgdesc="Docco-like documentation generator for POSIX shell"
+url="http://rtomayko.github.com/shocco/"
+license=('custom:MIT')
+
+pkgrel=1
+arch=('any')
+depends=('markdown' 'python2-pygments')
+optdepends=('ronn: builds man pages')
+
+source=("libre://$pkgname-$pkgver.tar.gz")
+md5sums=('edaed31d14a2c16e6303c07e24e7bc9a')
+
+mksource=("git://github.com/rtomayko/shocco.git#tag=${pkgver}")
+mkmd5sums=('SKIP')
+
+build() {
+ cd "$srcdir/$pkgname"
+ ./configure --prefix="$pkgdir"/usr
+ make -j1
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+ make -j1 install
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/pcr/sic/PKGBUILD b/pcr/sic/PKGBUILD
new file mode 100644
index 000000000..b006f95b5
--- /dev/null
+++ b/pcr/sic/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Dag Odenhall <dag.odenhall@gmail.com>
+# Contributor: Giorgio Lando <patroclo7@gmail.com>
+
+pkgname=sic
+pkgver=1.2
+pkgrel=1
+pkgdesc='An extremely simple IRC client.'
+license=('MIT')
+arch=('i686' 'x86_64')
+url='http://tools.suckless.org/sic'
+depends=('glibc')
+source=("http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz")
+
+prepare() {
+ cd $pkgname-$pkgver
+ sed -i "s/CFLAGS = /CFLAGS = ${CFLAGS} /" config.mk
+}
+build() {
+ cd $pkgname-$pkgver
+
+ make PREFIX=/usr MANPREFIX=/usr/share/man
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make PREFIX=/usr MANPREFIX=/usr/share/man DESTDIR="$pkgdir" install
+
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+sha1sums=('a91a603d536ae9cff9a806d6b2737053d262e722')
+sha256sums=('ac07f905995e13ba2c43912d7a035fbbe78a628d7ba1c256f4ca1372fb565185')
diff --git a/pcr/sigil/PKGBUILD b/pcr/sigil/PKGBUILD
new file mode 100644
index 000000000..0d5802ac1
--- /dev/null
+++ b/pcr/sigil/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 59836 2011-11-30 22:56:23Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
+# Contributor: Jorge Araya Navarro <jorgean@lavabit.com>
+
+pkgname=sigil
+pkgver=0.7.2
+pkgrel=1
+pkgdesc="A WYSIWYG ebook editor"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/sigil/"
+license=('GPL3')
+depends=('qt5-base' 'qt5-svg' 'qt5-webkit' 'qt5-xmlpatterns' 'qt5-tools')
+makedepends=('cmake')
+provides=('sigil')
+conflicts=('sigil')
+install=sigil.install
+source=("http://sigil.googlecode.com/files/Sigil-0.7.2-Code.zip"
+ "sigil.desktop")
+
+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}"/sigil.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/sigil.png
+ done
+}
+sha256sums=('8a6f5fd7c59fd8524ce0f48e7d13d13bad137053c9071fe2e1653ea55d5ed940'
+ '92a1014794dbf81fa997449338ded9a0e84593e3552020eb9269039b916bea36')
diff --git a/pcr/sigil/sigil.desktop b/pcr/sigil/sigil.desktop
new file mode 100755
index 000000000..cdb4ce1b2
--- /dev/null
+++ b/pcr/sigil/sigil.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Sigil
+Comment=WYSIWYG ebook editor
+TryExec=sigil
+Exec=sigil %F
+Icon=sigil
+Terminal=false
+StartupNotify=false
+Categories=Application;Office;
+MimeType=application/epub+zip;
diff --git a/pcr/sigil/sigil.install b/pcr/sigil/sigil.install
new file mode 100644
index 000000000..ec506fa93
--- /dev/null
+++ b/pcr/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/pcr/sineshaper/PKGBUILD b/pcr/sineshaper/PKGBUILD
new file mode 100644
index 000000000..61560a770
--- /dev/null
+++ b/pcr/sineshaper/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer : Guest One <theguestone at gmail dot com>
+# patch taken from https://aur.archlinux.org/packages/sineshaper/
+pkgname=sineshaper
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="A monophonic DSSI synth plugin."
+arch=('i686')
+url="http://www.student.nada.kth.se/~d00-llu/music_dssi.php?lang=en"
+license=('GPL')
+depends=('libglademm' 'dssi')
+makedepends=('ladspa')
+source=("http://ll-plugins.sourceforge.net/release/$pkgname-$pkgver.tar.gz" gcc-4.3.patch)
+md5sums=('952cb5bde0ae4fe2274859df5ed1ee61'
+ '78c44bb7b1586917224f26aaa9545e9e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # gcc 4.3 patch
+ patch -Np1 -i "$srcdir/${source[1]}"
+
+ # DSO link fix
+ LDFLAGS+="-lgthread-2.0" \
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ # rename launcher
+ mv "$pkgdir/usr/bin/$pkgname.sh" \
+ "$pkgdir/usr/bin/$pkgname"
+}
diff --git a/pcr/sineshaper/gcc-4.3.patch b/pcr/sineshaper/gcc-4.3.patch
new file mode 100644
index 000000000..c62220608
--- /dev/null
+++ b/pcr/sineshaper/gcc-4.3.patch
@@ -0,0 +1,57 @@
+diff -aur sineshaper-0.4.2/src/common/dssiplugin.hpp sineshaper-0.4.2-patched/src/common/dssiplugin.hpp
+--- sineshaper-0.4.2/src/common/dssiplugin.hpp 2005-10-29 01:14:08.000000000 +0200
++++ sineshaper-0.4.2-patched/src/common/dssiplugin.hpp 2009-01-29 15:19:40.000000000 +0100
+@@ -25,6 +25,7 @@
+ #define DSSIPLUGIN_HPP
+
+ #include <unistd.h>
++#include <cstdlib>
+
+ #include <cstring>
+ #include <string>
+diff -aur sineshaper-0.4.2/src/common/dssiuiclient.hpp sineshaper-0.4.2-patched/src/common/dssiuiclient.hpp
+--- sineshaper-0.4.2/src/common/dssiuiclient.hpp 2005-10-29 01:14:08.000000000 +0200
++++ sineshaper-0.4.2-patched/src/common/dssiuiclient.hpp 2009-01-29 15:19:48.000000000 +0100
+@@ -99,13 +99,13 @@
+ // Host to UI
+ /** This signal is emitted when the host sends a new control value.
+ The parameters are the control port number and the new control value. */
+- signal<void, int, float> control_received;
++ sigc::signal<void, int, float> control_received;
+ /** Emitted when the host sends a program change. The parameters are the
+ bank and program numbers. */
+- signal<void, int, int> program_received;
++ sigc::signal<void, int, int> program_received;
+ /** Emitted when the host sends a configuration value. The parameters are
+ the configuration key and the configuration value. */
+- signal<void, const string, const string> configure_received;
++ sigc::signal<void, const string, const string> configure_received;
+ /** Emitted when the host wants the UI to be visible. A DSSI GUI should not
+ show any windows until this signal is emitted. */
+ Dispatcher show_received;
+@@ -134,7 +134,7 @@
+ void* allocate_shared_memory(int bytes);
+
+ /** Emitted when the plugin has attached to the shared memory segment. */
+- signal<void> plugin_attached;
++ sigc::signal<void> plugin_attached;
+
+ /** Returns true if the plugin has attached to the shared memory segment. */
+ bool plugin_has_attached();
+diff -aur sineshaper-0.4.2/src/sineshaper/sineshapergui.hpp sineshaper-0.4.2-patched/src/sineshaper/sineshapergui.hpp
+--- sineshaper-0.4.2/src/sineshaper/sineshapergui.hpp 2005-10-29 01:14:08.000000000 +0200
++++ sineshaper-0.4.2-patched/src/sineshaper/sineshapergui.hpp 2009-01-29 15:20:31.000000000 +0100
+@@ -31,11 +31,11 @@
+ void program_selected(int bank, int program);
+
+ /** This signal is emitted when the user selects a program in the GUI. */
+- signal<void, unsigned long, unsigned long> signal_select_program;
++ sigc::signal<void, unsigned long, unsigned long> signal_select_program;
+
+ /** This signal is emitted when the user has edited the programs and
+ the plugin needs to reload the file with the user presets. */
+- signal<void> signal_programs_changed;
++ sigc::signal<void> signal_programs_changed;
+
+ protected:
+
diff --git a/pcr/sipwitch/PKGBUILD b/pcr/sipwitch/PKGBUILD
new file mode 100644
index 000000000..fbaf88141
--- /dev/null
+++ b/pcr/sipwitch/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Dan Serban
+# Contributors: David Zaragoza, Andrea Scarpino
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+pkgname=sipwitch
+pkgver=1.2.4
+pkgrel=2
+pkgdesc="A call and registration server for the SIP protocol"
+arch=(i686 x86_64 mips64el)
+url=http://www.gnutelephony.org/index.php/GNU_SIP_Witch
+license=(GPL)
+depends=(libexosip2 ucommon)
+makedepends=(lynx)
+options=('!libtool')
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('6119cecb062ba4d0af18b427b01c41e2')
+
+build()
+{
+ cd "${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package()
+{
+ cd "${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ mkdir -p "${pkgdir}"/etc/rc.d
+ touch "${pkgdir}"/etc/rc.d/"${pkgname}"
+}
+
diff --git a/pcr/skanlite/PKGBUILD b/pcr/skanlite/PKGBUILD
new file mode 100644
index 000000000..b0fa953e5
--- /dev/null
+++ b/pcr/skanlite/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: birdflesh <antkoul at gmail dot com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=skanlite
+pkgver=1.0
+pkgrel=1.1
+pkgdesc="Image Scanning Application for KDE"
+arch=('i686' 'x86_64')
+url='http://www.kde.org/applications/graphics/skanlite'
+license=('GPL')
+depends=('kdebase-runtime' 'libksane')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/$pkgname/$pkgver/src/$pkgname-$pkgver.tar.bz2")
+md5sums=('e22b2719f134d2483591082026961bf5')
+
+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/pcr/sltv/PKGBUILD b/pcr/sltv/PKGBUILD
new file mode 100644
index 000000000..0669c5110
--- /dev/null
+++ b/pcr/sltv/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: farid abdelnour <farid at archlinux-br.org>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Wille Marcel <wille at wille.blog.br>
+
+pkgname=sltv
+pkgver=0.91
+pkgrel=1
+pkgdesc="An audio and video streamer that receives streams from several sources (V4L2, Firewire, ALSA, Pulseaudio, files...) and sends a stream using Icecast or to files (Vorbis+Theora)."
+arch=('any')
+url="http://sltv.holoscopio.com"
+license=('GPL')
+depends=('pygtk' 'python2-configobj' 'gstreamer0.10-python' 'gstreamer-hplugins' 'gstreamer0.10-bad' 'gstreamer0.10-good' 'gstreamer0.10-ffmpeg' 'python2' 'gstreamer0.10' 'gstreamer0.10-base' )
+install="$pkgname.install"
+source=("http://sltv.holoscopio.com/$pkgname-$pkgver.tar.gz")
+md5sums=(b5f9b2d7102ca0a4068ebe1783699764)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Python2 fix
+ sed -i "s#python#python2#" src/sltv.in
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/sltv/PKGBUILD.new b/pcr/sltv/PKGBUILD.new
new file mode 100644
index 000000000..9a3f6b6a8
--- /dev/null
+++ b/pcr/sltv/PKGBUILD.new
@@ -0,0 +1,32 @@
+# Maintainer: farid abdelnour <farid at archlinux-br.org>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Wille Marcel <wille at wille.blog.br>
+
+pkgname=sltv
+pkgver=0.92
+pkgrel=1
+pkgdesc="An audio and video streamer that receives streams from several sources (V4L2, Firewire, ALSA, Pulseaudio, files...) and sends a stream using Icecast or to files (Vorbis+Theora)."
+arch=('any')
+url="http://sltv.holoscopio.com"
+license=('GPL')
+depends=('pygtk' 'python2-configobj' 'gstreamer0.10-python' 'gstreamer-hplugins' 'gstreamer0.10-bad' 'gstreamer0.10-good' 'gstreamer0.10-ffmpeg' 'python2' 'gstreamer0.10' 'gstreamer0.10-base' )
+install="$pkgname.install"
+source=("http://sltv.holoscopio.com/$pkgname-$pkgver.tar.gz")
+md5sums=(a1dc9a09b29b817e74f87d673aff2310)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Python2 fix
+ sed -i "s#python#python2#" src/landell.in
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/sltv/sltv.install b/pcr/sltv/sltv.install
new file mode 100644
index 000000000..16b4ff953
--- /dev/null
+++ b/pcr/sltv/sltv.install
@@ -0,0 +1,7 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/pcr/snort/PKGBUILD b/pcr/snort/PKGBUILD
new file mode 100644
index 000000000..2439a1c73
--- /dev/null
+++ b/pcr/snort/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 78820 2012-10-25 06:47:28Z foutrelis $
+# Contributor: 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>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=snort
+pkgver=2.9.3.1
+pkgrel=1
+pkgdesc='A lightweight network intrusion detection system.'
+arch=('i686' 'x86_64')
+url='http://www.snort.org'
+license=('GPL')
+depends=('libdaq' 'libdnet' 'libpcap' 'pcre' 'zlib')
+makedepends=('ca-certificates')
+backup=('etc/conf.d/snort'
+ 'etc/snort/snort.conf'
+ 'etc/snort/threshold.conf'
+ 'etc/snort/confreference.config'
+ 'etc/snort/classification.config')
+options=('!makeflags' '!libtool')
+install='snort.install'
+source=("http://www.snort.org/dl/snort-current/${pkgname}-${pkgver}.tar.gz"{,.sig}
+ 'snort'
+ 'snort.conf.d')
+
+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/pcr/snort/snort b/pcr/snort/snort
new file mode 100644
index 000000000..5dfa72fbf
--- /dev/null
+++ b/pcr/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/pcr/snort/snort.conf.d b/pcr/snort/snort.conf.d
new file mode 100644
index 000000000..86b566abc
--- /dev/null
+++ b/pcr/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/pcr/snort/snort.install b/pcr/snort/snort.install
new file mode 100644
index 000000000..673f22c6c
--- /dev/null
+++ b/pcr/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/pcr/sobby/PKGBUILD b/pcr/sobby/PKGBUILD
new file mode 100644
index 000000000..892d88cee
--- /dev/null
+++ b/pcr/sobby/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Thomas Jost <schnouki@schnouki.net>
+pkgname=sobby
+pkgver=0.4.8
+pkgrel=2
+pkgdesc="Standalone obby server"
+url="http://gobby.0x539.de/trac/"
+license="GPL"
+depends=('obby=0.4.8' 'libxml++')
+makedepends=('pkgconfig' 'net6>=1.3.12')
+arch=('i686' 'x86_64' 'mips64el')
+source=(http://releases.0x539.de/sobby/sobby-$pkgver.tar.gz{,.sig})
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+md5sums=('1f7cf8c09cdeddbf2152843b28f73ce1'
+ '96822427ab95289ebb1520e6353c5d3c')
diff --git a/pcr/softhsm/PKGBUILD b/pcr/softhsm/PKGBUILD
new file mode 100644
index 000000000..f3fbcecaf
--- /dev/null
+++ b/pcr/softhsm/PKGBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Javier Torres <javitonino [at] gmail [dot] com>
+
+pkgname=softhsm
+pkgver=1.3.4
+pkgrel=1
+pkgdesc="Software PKCS11 store"
+arch=('i686' 'x86_64')
+url="http://www.opendnssec.org/softhsm/"
+license=('custom' 'BSD')
+depends=('botan' 'sqlite3')
+backup=("etc/softhsm.conf")
+source=("http://www.opendnssec.org/files/source/${pkgname}-${pkgver}.tar.gz"{,.sig})
+sha1sums=('f09b6828776bcf9fef1dd46cfa7a495da01c7747'
+ 'SKIP')
+sha256sums=('f10319dfa651023dad3d0845d284ec08ef982c1fc1bdb55cf8a725f762961e97'
+ 'SKIP')
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # /usr/lib/softhsm -> /usr/bin (no subdirectory)
+ sed -i \
+ -e "s/full_libdir=\"\$full_libdir\/softhsm\"/#full_libdir=\"\$full_libdir\/softhsm\"/" \
+ -e "s/libdir=\$full_libdir/#libdir=\$full_libdir/" \
+ configure
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sbindir=/usr/bin \
+ --datarootdir=/usr/share \
+ --localstatedir=/var/lib \
+ --sysconfdir=/etc \
+ --with-botan=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}/" install
+
+ install -Dm0644 "LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/pcr/spacenav-daemon/PKGBUILD b/pcr/spacenav-daemon/PKGBUILD
new file mode 100644
index 000000000..fb1229ae4
--- /dev/null
+++ b/pcr/spacenav-daemon/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=spacenav-daemon
+_pkgname=${pkgname%-daemon}
+pkgver=0.5
+pkgrel=3
+pkgdesc="Free Spacenav Daemon is a free alternative to the 3Dconnexion device driver, for their 3D input devices."
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+conflicts=${_pkgname}d
+replaces=${_pkgname}d
+url=http://$_pkgname.sourceforge.net/
+license=GPL2
+depends=libx11
+backup=etc/spnavrc
+source=(
+ http://downloads.sourceforge.net/$_pkgname/${_pkgname}d-$pkgver.tar.gz
+ $_pkgname.service
+ spnavrc
+)
+sha512sums=(
+ 908f598e4ba5febbc1191cc32cd444817acd40c22e79b1f139c50787e1e25d4cd8328dc3fd6d9dde09bb80232b52f0e75ae429fb3345eb51fbe5a47577b038e2
+ 61397646f7dda23b2cef5168f23e21c017801f156374c7fab7bae650cd3cee0ea173d3cb65ae2f0be580aa399999a388df2d804b9d00c01db430c820dbc60160
+ f97866a77fe9e6bee8df046ad62576a1cdbba26323218cd6336de66e0898f403bb33da12666fe75f00bb9bf078f895e8e7de360196079f83082fc94a23f71728
+)
+
+build() {
+ cd $srcdir/${_pkgname}d-$pkgver
+ ./configure --prefix=$pkgdir/usr
+ make
+}
+
+package() {
+ cd $srcdir/${_pkgname}d-$pkgver
+ make DESTDIR=$pkgdir install
+
+ install -Dm644 $srcdir/$_pkgname.service $pkgdir/usr/lib/systemd/system/$_pkgname.service
+ install -Dm644 $srcdir/spnavrc $pkgdir/etc/spnavrc
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/spacenav-daemon/spacenav.service b/pcr/spacenav-daemon/spacenav.service
new file mode 100644
index 000000000..30e8019e9
--- /dev/null
+++ b/pcr/spacenav-daemon/spacenav.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Spacenavigator Daemon Service
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/spacenavd
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pcr/spacenav-daemon/spnavrc b/pcr/spacenav-daemon/spnavrc
new file mode 100644
index 000000000..7d19ae03b
--- /dev/null
+++ b/pcr/spacenav-daemon/spnavrc
@@ -0,0 +1,8 @@
+# sensitivity is multiplied with every motion (1.0 normal).
+sensitivity = 1.000
+
+# dead zone; any motion less than this number, is discarded as noise.
+dead-zone = 2
+
+# disable led
+led = 0
diff --git a/pcr/spatialindex/LICENSE b/pcr/spatialindex/LICENSE
new file mode 100644
index 000000000..888f4e789
--- /dev/null
+++ b/pcr/spatialindex/LICENSE
@@ -0,0 +1,9 @@
+Permission is hereby granted, free of charge, to any person obtaining acopy of this software and associated documentation files (the "Software"),to deal in the Software without restriction, including without limitationthe rights to use, copy, modify, merge, publish, distribute, sublicense,and/or sell copies of the Software, and to permit persons to whom theSoftware is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included inall 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/pcr/spatialindex/PKGBUILD b/pcr/spatialindex/PKGBUILD
new file mode 100644
index 000000000..ac2e1122e
--- /dev/null
+++ b/pcr/spatialindex/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Lantald <lantald at Gmx dot com>
+pkgname=spatialindex
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="An extensible framework that supports robust spatial indexing methods and sophisticated spatial queries."
+arch=('i686' 'x86_64')
+url="http://libspatialindex.github.com/"
+license=('MIT')
+depends=(gcc-libs)
+provides=(spatialindex)
+conflicts=(libspatialindex-git)
+source=("http://download.osgeo.org/libspatialindex/$pkgname-src-$pkgver.tar.gz"
+ 'LICENSE')
+md5sums=('aa78e2c641c472df257f49cd140669c4'
+ '6a9a7d8158edbf1529ca46aae5a76752')
+
+build() {
+ cd "$srcdir/$pkgname-src-$pkgver/"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-src-$pkgver/"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-src-$pkgver/"
+ make DESTDIR="$pkgdir/" install
+ install -D -m644 ${srcdir}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/spectrum/PKGBUILD b/pcr/spectrum/PKGBUILD
new file mode 100644
index 000000000..250840fb7
--- /dev/null
+++ b/pcr/spectrum/PKGBUILD
@@ -0,0 +1,81 @@
+# Maintainer: Clément Démoulins <clement@archivel.fr>
+# Contributor: Sonny Piers <sonny.piers@gmail.com>
+# Contributor: Tim Besard <tim.besard@gmail.com>
+# Contributor: miniature <miniature@archlinux.us>
+
+pkgname=spectrum
+pkgver=1.4.8
+pkgrel=4
+pkgdesc="XMPP libpurple transport/gateway."
+arch=('i686' 'x86_64' 'mips64el')
+url="http://spectrum.im"
+license=('GPL')
+depends=('gloox' 'libpurple-minimal' 'poco' 'python2' libev)
+replaces=('spectrum-git')
+makedepends=('cmake' 'gettext')
+optdepends=('mysql: MySQL database backend support'
+ 'postgresql-libs: PostgreSQL database backend support'
+ 'sqlite3: SQLite database backend support'
+ 'libevent: support for libevent'
+ 'imagemagick: support for avatars synchronization with legacy networks'
+
+ # Protocols plugins
+ 'mbpurple-svn: microblogging services support like Twitter or identi.ca/StatusNet'
+ 'msn-pecan: a different implementation of the MSN protocol for libpurple'
+ 'pidgin-facebookchat: Facebook support, with more features than Facebook XMPP server'
+ 'pidgin-sipe: SIPE protocol support'
+)
+backup=('etc/conf.d/spectrum')
+install='spectrum.install'
+
+source=('https://github.com/downloads/hanzz/libtransport/spectrum-1.4.8.tar.gz'
+ 'logrotate.spectrum'
+ 'gcc47.patch'
+ 'spectrum@.service'
+ 'spectrum.tmpfiles')
+md5sums=('edd88e1e70f86fe9aa4b43d787529a47'
+ '4f9cbfe3878fe5f4137d1bb5acc9e850'
+ '7a3de7e91d581b6c9119965ac34b9510'
+ '8abfd4926fec074847c4d28465af22bb'
+ '21dc715b3b2fb90c5349a12966277bc6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ msg "Starting make..."
+
+ sed -i -e 's/${PYTHON_EXECUTABLE}/python2/g' CMakeLists.txt
+ patch -p1 < ../gcc47.patch
+ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .
+ make
+
+ cd spectrumctl
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Various needed folders -- correct permissions are set in spectrum.install
+ install -d "${pkgdir}/etc/spectrum"
+ install -d "${pkgdir}/var/log/spectrum"
+ install -d "${pkgdir}/var/lib/spectrum"
+
+ # Install binaries and Python control script
+ make DESTDIR="${pkgdir}" install
+
+ cd spectrumctl
+ python2 setup.py install --root="${pkgdir}"
+
+ # Install initscript and logrotate config
+ install -Dm755 "${srcdir}/${pkgname}-${pkgver}/initscripts/archlinux/spectrum-rc.d" "${pkgdir}/etc/rc.d/spectrum"
+ install -Dm644 "${srcdir}/${pkgname}-${pkgver}/initscripts/archlinux/spectrum-conf.d" "${pkgdir}/etc/conf.d/spectrum"
+ install -Dm644 "${srcdir}/logrotate.spectrum" "${pkgdir}/etc/logrotate.d/spectrum"
+
+ # Install systemd related files
+ install -Dm644 "${srcdir}/spectrum@.service" "${pkgdir}/usr/lib/systemd/system/spectrum@.service"
+ install -Dm644 "${srcdir}/spectrum.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/spectrum.conf"
+
+ # Patch to use python2
+ sed -i -e "s|#!/usr/bin/env python|#!/usr/bin/env python2|" "${pkgdir}/usr/bin/spectrumctl"
+}
diff --git a/pcr/spectrum/gcc47.patch b/pcr/spectrum/gcc47.patch
new file mode 100644
index 000000000..82cc58677
--- /dev/null
+++ b/pcr/spectrum/gcc47.patch
@@ -0,0 +1,97 @@
+diff -rupN spectrum-1.4.8/src/configinterface.cpp spectrum-1.4.8_gcc47/src/configinterface.cpp
+--- spectrum-1.4.8/src/configinterface.cpp 2011-06-11 15:17:44.000000000 +0200
++++ spectrum-1.4.8_gcc47/src/configinterface.cpp 2012-04-14 18:27:14.000000000 +0200
+@@ -18,6 +18,7 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ */
+
++#include <unistd.h>
+ #include "configinterface.h"
+ #include "sys/un.h"
+ #include "sys/socket.h"
+diff -rupN spectrum-1.4.8/src/spectrum_util.cpp spectrum-1.4.8_gcc47/src/spectrum_util.cpp
+--- spectrum-1.4.8/src/spectrum_util.cpp 2011-06-11 15:17:44.000000000 +0200
++++ spectrum-1.4.8_gcc47/src/spectrum_util.cpp 2012-04-14 18:26:33.000000000 +0200
+@@ -28,6 +28,7 @@
+ #include "protocols/abstractprotocol.h"
+ #include "transport.h"
+ #include <sys/param.h>
++#include <unistd.h>
+ #ifdef BSD
+ #include <sys/types.h>
+ #include <sys/sysctl.h>
+diff -rupN spectrum-1.4.8/src/utf8/checked.h spectrum-1.4.8_gcc47/src/utf8/checked.h
+--- spectrum-1.4.8/src/utf8/checked.h 2010-10-08 09:15:22.000000000 +0200
++++ spectrum-1.4.8_gcc47/src/utf8/checked.h 2012-04-14 18:26:31.000000000 +0200
+@@ -65,6 +65,35 @@ namespace utf8
+
+ /// The library API - functions intended to be called by the users
+
++ template <typename octet_iterator>
++ octet_iterator append(uint32_t cp, octet_iterator result)
++ {
++ if (!internal::is_code_point_valid(cp))
++ throw invalid_code_point(cp);
++
++ if (cp < 0x80) // one octet
++ *(result++) = static_cast<uint8_t>(cp);
++ else if (cp < 0x800) { // two octets
++ *(result++) = static_cast<uint8_t>((cp >> 6) | 0xc0);
++ *(result++) = static_cast<uint8_t>((cp & 0x3f) | 0x80);
++ }
++ else if (cp < 0x10000) { // three octets
++ *(result++) = static_cast<uint8_t>((cp >> 12) | 0xe0);
++ *(result++) = static_cast<uint8_t>(((cp >> 6) & 0x3f) | 0x80);
++ *(result++) = static_cast<uint8_t>((cp & 0x3f) | 0x80);
++ }
++ else if (cp <= internal::CODE_POINT_MAX) { // four octets
++ *(result++) = static_cast<uint8_t>((cp >> 18) | 0xf0);
++ *(result++) = static_cast<uint8_t>(((cp >> 12)& 0x3f) | 0x80);
++ *(result++) = static_cast<uint8_t>(((cp >> 6) & 0x3f) | 0x80);
++ *(result++) = static_cast<uint8_t>((cp & 0x3f) | 0x80);
++ }
++ else
++ throw invalid_code_point(cp);
++
++ return result;
++ }
++
+ template <typename octet_iterator, typename output_iterator>
+ output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out, uint32_t replacement)
+ {
+@@ -104,35 +133,6 @@ namespace utf8
+ }
+
+ template <typename octet_iterator>
+- octet_iterator append(uint32_t cp, octet_iterator result)
+- {
+- if (!internal::is_code_point_valid(cp))
+- throw invalid_code_point(cp);
+-
+- if (cp < 0x80) // one octet
+- *(result++) = static_cast<uint8_t>(cp);
+- else if (cp < 0x800) { // two octets
+- *(result++) = static_cast<uint8_t>((cp >> 6) | 0xc0);
+- *(result++) = static_cast<uint8_t>((cp & 0x3f) | 0x80);
+- }
+- else if (cp < 0x10000) { // three octets
+- *(result++) = static_cast<uint8_t>((cp >> 12) | 0xe0);
+- *(result++) = static_cast<uint8_t>(((cp >> 6) & 0x3f) | 0x80);
+- *(result++) = static_cast<uint8_t>((cp & 0x3f) | 0x80);
+- }
+- else if (cp <= internal::CODE_POINT_MAX) { // four octets
+- *(result++) = static_cast<uint8_t>((cp >> 18) | 0xf0);
+- *(result++) = static_cast<uint8_t>(((cp >> 12)& 0x3f) | 0x80);
+- *(result++) = static_cast<uint8_t>(((cp >> 6) & 0x3f) | 0x80);
+- *(result++) = static_cast<uint8_t>((cp & 0x3f) | 0x80);
+- }
+- else
+- throw invalid_code_point(cp);
+-
+- return result;
+- }
+-
+- template <typename octet_iterator>
+ uint32_t next(octet_iterator& it, octet_iterator end)
+ {
+ uint32_t cp = 0;
diff --git a/pcr/spectrum/logrotate.spectrum b/pcr/spectrum/logrotate.spectrum
new file mode 100644
index 000000000..ae52ff156
--- /dev/null
+++ b/pcr/spectrum/logrotate.spectrum
@@ -0,0 +1,10 @@
+/var/log/spectrum/*.log {
+ notifempty
+ missingok
+ sharedscripts
+ postrotate
+ for P in /var/run/spectrum/*.pid; do
+ /bin/kill -HUP `cat "$P" 2>/dev/null` 2>/dev/null || true
+ done
+ endscript
+}
diff --git a/pcr/spectrum/spectrum.install b/pcr/spectrum/spectrum.install
new file mode 100644
index 000000000..d3e0449fc
--- /dev/null
+++ b/pcr/spectrum/spectrum.install
@@ -0,0 +1,45 @@
+# arg 1: the new package version
+post_install() {
+ if [ -z "`grep '^spectrum:' /etc/group`" ]; then
+ groupadd -g 417 spectrum
+ fi
+ if [ -z "`grep '^spectrum:' /etc/passwd`" ]; then
+ useradd -u 417 -d /etc/spectrum -g spectrum -s /bin/false spectrum
+ fi
+
+ chown spectrum:spectrum var/lib/spectrum
+ chown spectrum:spectrum var/log/spectrum
+
+cat << EOF
+
+==> Documentation: http://spectrum.im/
+
+==> You must now customize the configuration file located in /etc/spectrum/. Copy and reconfigure for each seperate protocol.
+
+EOF
+
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+post_remove() {
+ userdel spectrum
+
+ paths=(/etc/spectrum /var/lib/spectrum /var/log/spectrum)
+
+ 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/pcr/spectrum/spectrum.tmpfiles b/pcr/spectrum/spectrum.tmpfiles
new file mode 100644
index 000000000..cabe97bc5
--- /dev/null
+++ b/pcr/spectrum/spectrum.tmpfiles
@@ -0,0 +1 @@
+d /run/spectrum 0750 spectrum spectrum -
diff --git a/pcr/spectrum/spectrum@.service b/pcr/spectrum/spectrum@.service
new file mode 100644
index 000000000..8e1338543
--- /dev/null
+++ b/pcr/spectrum/spectrum@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Spectrum XMPP transport for %i
+After=network.service prosody.service ejabberd.service
+
+[Service]
+Type=forking
+PIDFile=/run/spectrum/%i.pid
+ExecStart=/usr/bin/spectrumctl --su=spectrum -c /etc/spectrum/%i.cfg start
+ExecStop=/usr/binspectrumctl --su=spectrum -c /etc/spectrum/%i.cfg stop
+ExecReload=/usr/binspectrumctl --su=spectrum -c /etc/spectrum/%i.cfg reload
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pcr/spice-gtk3/PKGBUILD b/pcr/spice-gtk3/PKGBUILD
new file mode 100644
index 000000000..903b9b56b
--- /dev/null
+++ b/pcr/spice-gtk3/PKGBUILD
@@ -0,0 +1,38 @@
+# Contributor: Stefano Facchini <stefano.facchini@gmail.com>
+# Contributor: Jonathan Lestrelin <zanko@daemontux.org>
+# Derived from the spice-gtk PKGBUILD by
+# Contributor: Lucio Zara <pennega@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=spice-gtk3
+_pkgname=spice-gtk
+pkgver=0.14
+pkgrel=1
+pkgdesc="A Gtk client and libraries for SPICE remote desktop servers (gtk3 version)."
+arch=('x86_64' 'i686')
+url="http://spice-space.org"
+license=('GPL')
+makedepends=('intltool' 'vala' 'python2-pyparsing')
+depends=('libpulse' 'gtk3' 'spice' 'libusb' 'usbredir')
+conflicts=('spice-gtk')
+options=('!libtool')
+source=("http://www.spice-space.org/download/gtk/$_pkgname-$pkgver.tar.bz2")
+sha256sums=('a16fa27364541493b886cc943f72c8f96ec251083af0a29d405a2c4f490274f5')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ sed -i 's,/usr/bin/env python,/usr/bin/python2,' spice-common/spice_codegen.py
+
+ ./configure --prefix=/usr \
+ --with-gtk=3.0 \
+ --enable-vala \
+ --enable-smartcard=no
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/pcr/spice-protocol/PKGBUILD b/pcr/spice-protocol/PKGBUILD
new file mode 100644
index 000000000..03c122275
--- /dev/null
+++ b/pcr/spice-protocol/PKGBUILD
@@ -0,0 +1,36 @@
+# Contributor: Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+ pkgname=spice-protocol
+ pkgver=0.12.2
+ pkgrel=1
+ pkgdesc="SPICE protocol"
+ arch=('x86_64' 'i686')
+ url="http://spice-space.org"
+ license=('GPL')
+ makedepends=(python2-pyparsing)
+ depends=(pixman celt cegui alsa-utils libxrandr libxinerama libsasl
+libcacard)
+
+ source=(http://spice-space.org/download/releases/$pkgname-$pkgver.tar.bz2)
+
+ build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's,/usr/bin/env python,/usr/bin/python2,' spice-common/spice_codegen.py
+ PYTHON=python2 \
+ ./configure --prefix=/usr \
+ --enable-gui \
+ --enable-opengl \
+ --enable-smartcard \
+ # --enable-tunnel
+ make
+ }
+
+ package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ }
+
+ # vim:set ts=2 sw=2 et:
+md5sums=('8bab5b67a00ec8429334963d361692ab')
+md5sums=('8bab5b67a00ec8429334963d361692ab')
diff --git a/pcr/spice/PKGBUILD b/pcr/spice/PKGBUILD
new file mode 100644
index 000000000..d54f1657d
--- /dev/null
+++ b/pcr/spice/PKGBUILD
@@ -0,0 +1,38 @@
+# Contributor: Lucio Zara <pennega@gmail.com>
+# Contributor: Jameson Pugh <imntreal@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+ pkgname=spice
+ pkgver=0.12.0
+ pkgrel=1
+ pkgdesc="SPICE client and server"
+ arch=('x86_64' 'i686')
+ url="http://spice-space.org"
+ license=('GPL')
+ makedepends=(python2-pyparsing)
+ depends=(pixman celt cegui alsa-utils libxrandr libxinerama libsasl
+libcacard )
+
+ source=(http://spice-space.org/download/releases/$pkgname-$pkgver.tar.bz2)
+ md5sums=('12c6ea4938215f8f9f10d2925f7bec9b')
+
+ build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's,/usr/bin/env python,/usr/bin/python2,' spice-common/spice_codegen.py
+ PYTHON=python2 \
+ ./configure --prefix=/usr \
+ --enable-gui \
+ --enable-opengl \
+ --enable-smartcard \
+ # --enable-tunnel
+ make
+ }
+
+ package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ }
+
+ # vim:set ts=2 sw=2 et:
+
diff --git a/pcr/spnavcfg/PKGBUILD b/pcr/spnavcfg/PKGBUILD
new file mode 100644
index 000000000..cbea06d01
--- /dev/null
+++ b/pcr/spnavcfg/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Jan Hambrecht <jaham at gmx dot net>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgname=spnavcfg
+pkgver=0.2.1
+pkgrel=1
+pkgdesc='A libre version of 3Dconnexion'\''s 3D input device drivers configuration'
+arch=(i686 x86_64 mips64el)
+url=http://spacenav.sourceforge.net/
+license=(GPL)
+depends=(gtk2)
+source=(http://downloads.sourceforge.net/spacenav/$pkgname-$pkgver.tar.gz)
+sha512sums=(8cda7e8c9c2aa0875c6cf19e96ec47b9492acdcb110e9845f278ede44bee733876a56e2aa2d1198f54d8fecb978fcfe0a61e8f7b7fe19c2754eceec957172e34)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i -e 's/$(LDFLAGS)/$(LDFLAGS) -lX11/' Makefile.in
+ ./configure --prefix=$pkgdir/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/pcr/sqlcipher/PKGBUILD b/pcr/sqlcipher/PKGBUILD
new file mode 100644
index 000000000..45a3efbe9
--- /dev/null
+++ b/pcr/sqlcipher/PKGBUILD
@@ -0,0 +1,31 @@
+pkgname=sqlcipher
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="SQLite extension that provides transparent 256-bit AES encryption of database files"
+arch=('i686' 'x86_64')
+url="http://sqlcipher.net/"
+license=('BSD')
+makedepends=('tcl' 'openssl' 'sqlite3' 'git')
+source=($pkgname-$pkgver::git+https://github.com/sqlcipher/sqlcipher#tag=v${pkgver})
+sha1sums=('SKIP')
+sha256sums=('SKIP')
+
+pkgver() {
+ echo $pkgver
+}
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --disable-tcl \
+ --enable-tempstore=yes \
+ CFLAGS="$CFLAGS -DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir/" install
+ install -D -m 0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/pcr/squirm/PKGBUILD b/pcr/squirm/PKGBUILD
new file mode 100644
index 000000000..a1249c39d
--- /dev/null
+++ b/pcr/squirm/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Spider.007 <archPackage@spider007.net>
+# Contributor: Spider.007 <archPackage@spider007.net>
+pkgname=squirm
+pkgver=1.26
+pkgrel=2
+pkgdesc="Fast & configurable proxy redirector"
+url="http://squirm.foote.com.au/"
+source=("$url/$pkgname-$pkgver.tgz")
+md5sums=('54ac1d208620ec1e4419f97315d38848')
+license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+# make install uses a weird prefix
+ install -d $pkgdir/etc/squirm $pkgdir/var/log/squirm
+ install -Dm755 squirm $pkgdir/usr/bin/squirm
+ install -m644 squirm.conf.dist $pkgdir/etc/squirm/squirm.conf
+ install -m644 squirm.patterns.dist $pkgdir/etc/squirm/squirm.patterns
+
+# use absolute path files
+ sed -e "s,logs,/var/log/squirm,g" \
+ -e "s,pattern ,& /etc/squirm/,g" \
+ -i $pkgdir/etc/squirm/squirm.conf
+}
diff --git a/pcr/startupmanager/PKGBUILD b/pcr/startupmanager/PKGBUILD
new file mode 100644
index 000000000..4b33f36a9
--- /dev/null
+++ b/pcr/startupmanager/PKGBUILD
@@ -0,0 +1,45 @@
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Chris Giles <Chris.G.27 (at) Gmail.com>
+# Contributor: fernando < arch at liquuid dot net>
+# Contributor: Juan Pablo González Tognarelli <lord_jotape@yahoo.com.ar>
+# Maintainer : Parabola GNU / Linux-libre Aurlien Desbrires <aurelien@cwb.io>
+
+pkgname=startupmanager
+pkgver=1.9.13
+pkgrel=4
+pkgdesc="GUI app for changing the settings of GRUB, GRUB2, Usplash and Splashy"
+arch=("any")
+url="http://sourceforge.net/projects/startup-manager/"
+license=("MIT")
+depends=("gnome-python" "imagemagick" "yelp" "python2" "xorg-xrandr>=1.3.3")
+makedepends=("intltool" "setconf")
+source=("http://downloads.sourceforge.net/sourceforge/startup-manager/${pkgname}_${pkgver}.tar.gz")
+sha1sums=('b82a65ac6ec488ca7fe16fd3ea277cd15a3627c6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Make the startup script use python2
+ echo "#!/usr/bin/env python2" > pyfix
+ tail -n +2 startupmanager >> pyfix
+ cat pyfix > startupmanager
+
+ # Change the grub2 detection to be Arch-friendly
+ setconf bootconfig/grub.py self.update_grub_command \'/sbin/grub-mkconfig\'
+ setconf bootconfig/grub.py self.grub_install_command \'/sbin/grub-install\'
+
+ # TIP: bug-workaround: If you have problems with resolution-detection when starting
+ # startupmanager, try changing line 159 in /usr/lib/python2.7/site-packages/bootconfig/utils.py to:
+ #
+ # try:
+ # return matches.group(1) + 'x' + matches.group(2)
+ # except:
+ # return "640x480"
+ #
+ # Where "640x480" is just an example (but should make it work)
+
+ python2 setup.py install --prefix="$pkgdir/usr/"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/steadyflow/PKGBUILD b/pcr/steadyflow/PKGBUILD
new file mode 100644
index 000000000..a9381448e
--- /dev/null
+++ b/pcr/steadyflow/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: M0Rf30
+# Contributor: Dan Serban
+# Contributor: zbito <ztokarczyk at gmail dot com
+
+pkgname=steadyflow
+pkgver=0.2.0
+pkgrel=3
+pkgdesc="A download manager that aims for minimalism, ease of use, and a
+clean, malleable codebase"
+arch=('i686' 'x86_64')
+url=https://launchpad.net/steadyflow
+license=('GPL3')
+install=steadyflow.install
+depends=('desktop-file-utils' 'glib2' 'gtk3' 'gvfs' 'libgee' 'libnotify'
+'libunique' 'libgee06')
+makedepends=('cmake' 'vala')
+conflicts=('steadyflow-bzr')
+source=(http://launchpad.net/$pkgname/trunk/$pkgver/+download/$pkgname-$pkgver.tar.xz https://launchpadlibrarian.net/55910801/steadyflow-64px.png)
+md5sums=('16b9907c1d681e7f0a861f066d4fda0e' 'bbe025886f071ebfffa5fed350cced0c')
+
+build() {
+ cd $pkgname-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX='/usr' -DCOMPILE_GSETTINGS_ON_INSTALL=NO -DWANT_AYATANA=NO
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make install DESTDIR="$pkgdir"
+ mkdir -p "$pkgdir"/usr/share/pixmaps
+ cp "$srcdir"/steadyflow-64px.png "$pkgdir"/usr/share/pixmaps/steadyflow.png
+}
+
diff --git a/pcr/steadyflow/steadyflow.install b/pcr/steadyflow/steadyflow.install
new file mode 100644
index 000000000..01434bc04
--- /dev/null
+++ b/pcr/steadyflow/steadyflow.install
@@ -0,0 +1,17 @@
+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
+}
+
+post_upgrade()
+{
+ post_install $1
+}
+
+post_remove()
+{
+ post_install $1
+}
+
diff --git a/pcr/stow/PKGBUILD b/pcr/stow/PKGBUILD
new file mode 100644
index 000000000..a3024b7e9
--- /dev/null
+++ b/pcr/stow/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+pkgname=stow
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="A program for managing the installation of software packages, keeping them separate while making them appear to be installed in the same place."
+arch=(any)
+url="https://www.gnu.org/software/$pkgname/"
+license=('GPL2')
+depends=('perl>=5.6.1')
+source=(https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+md5sums=('902564d502975f353d3b0514a21863b1')
diff --git a/pcr/strongswan/CHANGELOG b/pcr/strongswan/CHANGELOG
new file mode 100644
index 000000000..a798a08c4
--- /dev/null
+++ b/pcr/strongswan/CHANGELOG
@@ -0,0 +1,20 @@
+strongswan-5.0.4
+----------------
+
+- Fixed a security vulnerability in the openssl plugin which was reported by
+ Kevin Wojtysiak. The vulnerability has been registered as CVE-2013-2944.
+ Before the fix, if the openssl plugin's ECDSA signature verification was used,
+ due to a misinterpretation of the error code returned by the OpenSSL
+ ECDSA_verify() function, an empty or zeroed signature was accepted as a
+ legitimate one.
+
+- The handling of a couple of other non-security relevant openssl return codes
+ was fixed as well.
+
+- The tnc_ifmap plugin now publishes virtual IPv4 and IPv6 addresses via its
+ TCG TNC IF-MAP 2.1 interface.
+
+- The charon.initiator_only option causes charon to ignore IKE initiation
+ requests.
+
+- The openssl plugin can now use the openssl-fips library.
diff --git a/pcr/strongswan/PKGBUILD b/pcr/strongswan/PKGBUILD
new file mode 100644
index 000000000..6a53609e9
--- /dev/null
+++ b/pcr/strongswan/PKGBUILD
@@ -0,0 +1,51 @@
+# Contributor: nikicat <develniks at gmail dot com>
+# Contributor: danilo <gezuru at gmail dot com>
+# Contributor: Jason Begley <jayray at digitalgoat dot com>
+# Contributor: Ray Kohler <ataraxia937 at gmail dot com>
+# Contributor: Daniel Riedemann <daniel.riedemann [at] googlemail [dot] com>
+# Contributor: 458italia <svenskaparadox [at] gmail dot com>
+# Maintainer: dkorzhevin <dkorzhevin at gmail dot com>
+
+pkgname=strongswan
+pkgver=5.1.0
+pkgrel=2
+pkgdesc="open source IPsec implementation"
+url='http://www.strongswan.org'
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('curl' 'gmp' 'iproute2' 'openssl' 'sqlite')
+conflicts=('openswan')
+options=(!libtool)
+backup=(etc/ipsec.conf etc/strongswan.conf)
+source=(http://download.strongswan.org/${pkgname}-${pkgver}.tar.bz2 strongswan.rc::https://gist.github.com/raw/3106703/96d2ce9683f1e33ef14c679880ddc298e9673508/strongswan.rc)
+changelog='CHANGELOG'
+md5sums=('c1cd0a3ba9960f590cae28c8470800e8'
+ 'cf815adef48a1ffee34517380c731277')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --sbindir=/usr/bin \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --with-ipsecdir=/usr/lib/strongswan \
+ --enable-sqlite \
+ --enable-openssl --enable-curl \
+ --enable-sql --enable-attr-sql \
+ --enable-farp --enable-dhcp \
+ --enable-eap-sim --enable-eap-sim-file --enable-eap-simaka-pseudonym \
+ --enable-eap-simaka-reauth --enable-eap-identity --enable-eap-md5 \
+ --enable-eap-gtc --enable-eap-aka --enable-eap-aka-3gpp2 \
+ --enable-eap-mschapv2 --enable-eap-radius --enable-xauth-eap \
+ --enable-ha \
+ --disable-mysql --disable-ldap \
+ --enable-cmd
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/pcr/stumpwm-git/PKGBUILD b/pcr/stumpwm-git/PKGBUILD
new file mode 100644
index 000000000..986a8f740
--- /dev/null
+++ b/pcr/stumpwm-git/PKGBUILD
@@ -0,0 +1,151 @@
+# Contributor: M Rawash <mrawash@gmail.com>
+# Contributor: olvar <beren dot olvar (at) gmail dot com>
+# Contributor: Andrew Antle <andrew dot antle at gmail dot com>
+# Contributor: joyfulgirl <joyfulgirl (at) archlinux.us>
+# Contributor: Jonathan Friedman <jonf@gojon.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=stumpwm-git
+pkgver=20110924
+pkgrel=1
+pkgdesc="A tiling, keyboard-driven window manager written in common lisp"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/stumpwm/"
+license=('GPL2')
+provides=('stumpwm')
+
+if pacman -Qq sbcl &>/dev/null; then
+ depends=('sbcl' 'clx' 'cl-ppcre')
+ _lisp=sbcl
+elif pacman -Qq clisp-new-clx &>/dev/null; then
+ # If somebody compiled this specially, chances are they want to use it
+ depends=('clisp-new-clx' 'cl-ppcre' 'cl-asdf')
+ _lisp=clisp
+ source=(http://common-lisp.net/project/asdf/asdf.lisp)
+ md5sums=('0f172cc814e11054c37c29fa2acfbfae')
+else
+ # No, this isn't redundant.
+ depends=('sbcl' 'clx' 'cl-ppcre')
+ _lisp=sbcl
+fi
+
+makedepends=('git' 'texinfo' 'autoconf')
+optdepends=('emacs: Edit and eval stumpwm code with M-x stumpwm-mode'
+ 'alsa-utils: Use contrib/amixer.lisp to control audio volume'
+ 'aumix: Use contrib/aumix.lisp to control audio volume'
+ 'mpd: Use contrib/mpd.lisp to control the mpd'
+ 'surfraw: Use contrib/surfraw.lisp to surf the Internet')
+install=stumpwm.install
+options=(!strip) # Thanks to sidereus for pointing this out
+
+_gitroot="git://git.savannah.nongnu.org/stumpwm.git"
+_gitname="stumpwm"
+
+build() {
+ msg "Connecting to ${_gitroot}..."
+
+ if [ -d ${srcdir}/${_gitname} ] ; then
+ cd ${srcdir}/${_gitname} && git pull origin master
+ else
+ git clone $_gitroot
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf ${srcdir}/${_gitname}-build
+ cp -a ${srcdir}/${_gitname} ${srcdir}/${_gitname}-build
+ cd ${srcdir}/${_gitname}-build
+
+ autoconf
+ if [ "$_lisp" = "sbcl" ]; then
+
+ ./configure --prefix=/usr \
+ --with-lisp=$_lisp \
+ --with-ppcre=/usr/share/common-lisp/source/cl-ppcre
+
+ # this is necesary since the AUR packages do not modify the asdf's registry by default
+ _sbcl_bopt="sbcl_BUILDOPTS=--eval \"(require :asdf)\" \
+ --eval \"(pushnew #p\\\"/usr/share/common-lisp/systems/\\\" asdf:*central-registry* :test #'equal)\" \
+ --eval \"(asdf:operate 'asdf:load-op 'clx)\" \
+ --load ./make-image.lisp"
+ _sbcl_iopt="sbcl_INFOOPTS=--eval \"(require 'asdf)\" \
+ --eval \"(pushnew #p\\\"/usr/share/common-lisp/systems/\\\" asdf:*central-registry* :test #'equal)\" \
+ --eval \"(asdf:operate 'asdf:load-op 'clx)\" \
+ --eval \"(require 'stumpwm)\" \
+ --load ./manual.lisp \
+ --eval \"(progn (stumpwm::generate-manual) (sb-ext:quit))\""
+
+ make "$_sbcl_bopt" "$_sbcl_iopt"
+
+ elif [ "$_lisp" = "clisp" ]; then
+ _lisp_source=/usr/share/common-lisp/source/
+ _ppcre_source=${_lisp_source}cl-ppcre/
+
+ # Sometimes there are no compiled versions of ppcre.
+ # in this case we need to compile and use our own, and then we install them
+ if [ ! -f ${_ppcre_source}/api.fas ]; then
+
+ _own_fas=1
+
+ mkdir ${srcdir}/cl-ppcre_temp
+ mkdir ${srcdir}/cl-ppcre_temp/systems
+ mkdir ${srcdir}/cl-ppcre_temp/source
+
+ export ASDF_OUTPUT_TRANSLATIONS="/usr/share/common-lisp/source/:${srcdir}/cl-ppcre_temp/source/"
+ # for compiling we use the asdf source we donwloaded
+ clisp -norc -K full -on-error exit \
+ -x "(require 'asdf '(\"${srcdir}/asdf.lisp\"))" \
+ -x "(pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)" \
+ -x "(asdf:operate 'asdf:compile-op 'cl-ppcre)"
+
+ # once we have cl-ppcre compiled we copy the necesary files to
+ # this new location, and set the necessary options for make
+ cp $_ppcre_source/cl-ppcre.asd ${srcdir}/cl-ppcre_temp/source/cl-ppcre/
+ cp $_ppcre_source/*.lisp ${srcdir}/cl-ppcre_temp/source/cl-ppcre/
+ _ppcre_source=${srcdir}/cl-ppcre_temp/source/cl-ppcre/
+
+ _clisp_bopt="clisp_BUILDOPTS=-K full -on-error exit \
+ -x \"(require 'asdf '(\\\"asdf.lisp\\\"))\" \
+ -x \"(pushnew \\\"${srcdir}/cl-ppcre_temp/systems/\\\" \
+ asdf:*central-registry* \
+ :test #'equal)\" \
+ -x \"(load \\\"./make-image.lisp\\\")\""
+ fi
+
+ ./configure --prefix=/usr \
+ --with-lisp=$_lisp \
+ --with-ppcre=$_ppcre_source
+
+ if [ -z "$_clisp_bopt" ]; then
+ make
+ else
+ make "$_clisp_bopt"
+ fi
+ fi
+
+ make destdir=$pkgdir install
+
+ rm -f ${pkgdir}/usr/share/info/dir
+
+ # Installation of stumpish, the contributed lisp,
+ # and the emacs stumpwm mode.
+ install -m 755 ${srcdir}/${_gitname}-build/contrib/stumpish ${pkgdir}/usr/bin
+
+ install -Dm 644 sample-stumpwmrc.lisp ${pkgdir}/etc/stumpwmrc.sample
+ install -d ${pkgdir}/usr/share/${_gitname}
+ install -m 644 ${srcdir}/${_gitname}-build/contrib/*.lisp ${pkgdir}/usr/share/${_gitname}
+
+ install -Dm 644 ${srcdir}/${_gitname}-build/contrib/stumpwm-mode.el \
+ ${pkgdir}/usr/share/emacs/site-lisp/stumpwm-mode.el
+
+
+ # if we had to compile our own fas files, then we need to install them too.
+ if [ "x$_own_fas" = "x1" ]; then
+ install -d ${pkgdir}/usr/share/common-lisp/source/cl-ppcre
+ install -m 644 ${srcdir}/cl-ppcre_temp/source/cl-ppcre/*.fas \
+ ${pkgdir}/usr/share/common-lisp/source/cl-ppcre/
+ fi
+}
+
+# vim:sw=2 ts=2 et si:
diff --git a/pcr/stumpwm-git/stumpwm.install b/pcr/stumpwm-git/stumpwm.install
new file mode 100644
index 000000000..3661fa6e3
--- /dev/null
+++ b/pcr/stumpwm-git/stumpwm.install
@@ -0,0 +1,17 @@
+post_install() {
+ cd /usr/share/info
+ install-info stumpwm.info dir
+ cat << "EOM"
+ To load contrib/ modules, put the following line in your ~/.stumpwmrc:
+ (set-contrib-dir "/usr/share/stumpwm")
+EOM
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ cd /usr/share/info
+ install-info --remove stumpwm.info dir
+}
diff --git a/pcr/supermodel/PKGBUILD b/pcr/supermodel/PKGBUILD
new file mode 100644
index 000000000..fd22bea59
--- /dev/null
+++ b/pcr/supermodel/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Anton Shestakov <engored*ya.ru>
+
+pkgname=supermodel
+pkgver=0.2a
+pkgrel=1
+pkgdesc='A Sega Model 3 Arcade Emulator'
+arch=('i686' 'x86_64')
+url='http://www.supermodel3.com/'
+license=('GPL3')
+depends=('mesa' 'glu' 'sdl' 'zlib')
+install=supermodel.install
+source=('multiuser.patch' 'supermodel.sh'
+ "http://www.supermodel3.com/Files/Supermodel_${pkgver}_Src.zip")
+md5sums=('a7cf136e412a0d927b099c15793b658d' 'ea8274c2a37acddd026fce9c831530cc'
+ 'd22359fbe277fe8f6fe0a06524350fc1')
+
+MAKEFLAGS="-j1"
+
+build() {
+ cd "$srcdir/Supermodel_${pkgver}_Src"
+ sed -e "s/-Wall -O3/$CFLAGS/" -i 'Makefiles/Makefile.SDL.UNIX.GCC'
+ patch -p1 < ../multiuser.patch
+ make -f 'Makefiles/Makefile.SDL.UNIX.GCC'
+}
+
+package() {
+ cd "$srcdir/Supermodel_${pkgver}_Src"
+
+ install -Dm755 "$srcdir/supermodel.sh" "$pkgdir/usr/bin/supermodel"
+
+ install -Dm755 "bin/Supermodel" "$pkgdir/usr/share/supermodel/Supermodel"
+
+ install -Dm644 "Docs/LICENSE.txt" "$pkgdir/usr/share/licenses/supermodel/LICENSE"
+ install -Dm644 "Docs/README.txt" "$pkgdir/usr/share/doc/supermodel/README"
+
+ install -d "$pkgdir/usr/share/supermodel/Config"
+ install -m644 Config/* "$pkgdir/usr/share/supermodel/Config/"
+}
diff --git a/pcr/supermodel/multiuser.patch b/pcr/supermodel/multiuser.patch
new file mode 100644
index 000000000..9cb93e02c
--- /dev/null
+++ b/pcr/supermodel/multiuser.patch
@@ -0,0 +1,107 @@
+diff --git a/Src/OSD/SDL/Main.cpp b/Src/OSD/SDL/Main.cpp
+--- a/Src/OSD/SDL/Main.cpp
++++ b/Src/OSD/SDL/Main.cpp
+@@ -307,7 +307,6 @@
+ Configuration file management and input settings.
+ ******************************************************************************/
+
+-#define CONFIG_FILE_PATH "Config/Supermodel.ini"
+ #define CONFIG_FILE_COMMENT ";\n" \
+ "; Supermodel Configuration File\n" \
+ ";\n"
+@@ -315,9 +314,13 @@
+ // Create and configure inputs
+ static bool ConfigureInputs(CInputs *Inputs, bool configure)
+ {
++ char configFilePath[512];
++
++ sprintf(configFilePath, "%s/.supermodel/supermodel.ini", getenv("HOME"));
++
+ // Open and parse configuration file
+ CINIFile INI;
+- INI.Open(CONFIG_FILE_PATH); // doesn't matter if it exists or not, will get overwritten
++ INI.Open(configFilePath); // doesn't matter if it exists or not, will get overwritten
+ INI.SetDefaultSectionName("Global");
+ INI.Parse();
+
+@@ -338,9 +341,9 @@
+ Inputs->WriteToINIFile(&INI, "Global");
+
+ if (OKAY != INI.Write(CONFIG_FILE_COMMENT))
+- ErrorLog("Unable to save configuration to '%s'.", CONFIG_FILE_PATH);
++ ErrorLog("Unable to save configuration to '%s'.", configFilePath);
+ else
+- printf("Configuration successfully saved to '%s'.\n", CONFIG_FILE_PATH);
++ printf("Configuration successfully saved to '%s'.\n", configFilePath);
+ }
+ else
+ puts("Configuration aborted...");
+@@ -412,9 +415,13 @@
+ // Read settings (from a specific section) from the config file
+ static void ReadConfigFile(const char *section)
+ {
++ char configFilePath[512];
++
++ sprintf(configFilePath, "%s/.supermodel/supermodel.ini", getenv("HOME"));
++
+ CINIFile INI;
+
+- INI.Open(CONFIG_FILE_PATH);
++ INI.Open(configFilePath);
+ INI.SetDefaultSectionName("Global"); // required to read settings not associated with a specific section
+ INI.Parse();
+ ApplySettings(&INI, section);
+@@ -498,10 +505,10 @@
+ static void SaveState(CModel3 *Model3)
+ {
+ CBlockFile SaveState;
+- char filePath[24];
++ char filePath[512];
+ int fileVersion = STATE_FILE_VERSION;
+
+- sprintf(filePath, "Saves/%s.st%d", Model3->GetGameInfo()->id, saveSlot);
++ sprintf(filePath, "%s/.supermodel/saves/%s.st%d", getenv("HOME"), Model3->GetGameInfo()->id, saveSlot);
+ if (OKAY != SaveState.Create(filePath, "Supermodel Save State", "Supermodel Version " SUPERMODEL_VERSION))
+ {
+ ErrorLog("Unable to save state to '%s'.", filePath);
+@@ -522,11 +529,11 @@
+ static void LoadState(CModel3 *Model3)
+ {
+ CBlockFile SaveState;
+- char filePath[24];
++ char filePath[512];
+ int fileVersion;
+
+ // Generate file path
+- sprintf(filePath, "Saves/%s.st%d", Model3->GetGameInfo()->id, saveSlot);
++ sprintf(filePath, "%s/.supermodel/saves/%s.st%d", getenv("HOME"), Model3->GetGameInfo()->id, saveSlot);
+
+ // Open and check to make sure format is correct
+ if (OKAY != SaveState.Load(filePath))
+@@ -558,10 +565,10 @@
+ static void SaveNVRAM(CModel3 *Model3)
+ {
+ CBlockFile NVRAM;
+- char filePath[24];
++ char filePath[512];
+ int fileVersion = NVRAM_FILE_VERSION;
+
+- sprintf(filePath, "NVRAM/%s.nv", Model3->GetGameInfo()->id);
++ sprintf(filePath, "%s/.supermodel/NVRAM/%s.nv", getenv("HOME"), Model3->GetGameInfo()->id);
+ if (OKAY != NVRAM.Create(filePath, "Supermodel NVRAM State", "Supermodel Version " SUPERMODEL_VERSION))
+ {
+ ErrorLog("Unable to save NVRAM to '%s'. Make sure directory exists!", filePath);
+@@ -581,11 +588,11 @@
+ static void LoadNVRAM(CModel3 *Model3)
+ {
+ CBlockFile NVRAM;
+- char filePath[24];
++ char filePath[512];
+ int fileVersion;
+
+ // Generate file path
+- sprintf(filePath, "NVRAM/%s.nv", Model3->GetGameInfo()->id);
++ sprintf(filePath, "%s/.supermodel/NVRAM/%s.nv", getenv("HOME"), Model3->GetGameInfo()->id);
+
+ // Open and check to make sure format is correct
+ if (OKAY != NVRAM.Load(filePath))
diff --git a/pcr/supermodel/supermodel.install b/pcr/supermodel/supermodel.install
new file mode 100644
index 000000000..94ef82c48
--- /dev/null
+++ b/pcr/supermodel/supermodel.install
@@ -0,0 +1,12 @@
+# Message displayed for a fresh install.
+post_install() {
+ echo ""
+ echo "***************************************************************"
+ echo " Supermodel has been installed in /usr/share/supermodel."
+ echo " However, Supermodel can be run by typing supermodel and it's options:"
+ echo " supermodel <romset> [options]"
+ echo ""
+ echo " Note: You need to provide the full path to the romset."
+ echo "***************************************************************"
+ echo ""
+}
diff --git a/pcr/supermodel/supermodel.sh b/pcr/supermodel/supermodel.sh
new file mode 100644
index 000000000..992dd406d
--- /dev/null
+++ b/pcr/supermodel/supermodel.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+mkdir -p ~/.supermodel/NVRAM
+mkdir -p ~/.supermodel/saves
+
+cd /usr/share/supermodel
+
+if [[ ! -f ~/.supermodel/supermodel.ini ]]; then
+ cp ./Config/Supermodel.ini ~/.supermodel/supermodel.ini
+fi
+
+./Supermodel "$@"
diff --git a/pcr/swig1/PKGBUILD b/pcr/swig1/PKGBUILD
new file mode 100644
index 000000000..4cb83afd2
--- /dev/null
+++ b/pcr/swig1/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Hilton Medeiros <medeiros.hilton at gmail dot com>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=swig1
+_pkgname=swig
+pkgver=1.3.40
+pkgrel=1
+pkgdesc="A compiler that integrates C and C++ code with scripting languages (legacy version)"
+arch=('i686' 'x86_64')
+url="http://www.swig.org/"
+license=('custom')
+depends=('gcc-libs' 'zlib')
+conflicts=('swig' 'swig-pantheon')
+provides=('swig')
+source=("http://downloads.sourceforge.net/${_pkgname}/${_pkgname}-${pkgver}.tar.gz")
+
+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/pcr/sword-svn/PKGBUILD b/pcr/sword-svn/PKGBUILD
new file mode 100644
index 000000000..8e29cdab8
--- /dev/null
+++ b/pcr/sword-svn/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=sword-svn
+pkgver=2793
+pkgrel=1
+pkgdesc="Libraries for Bible programs - svn -version"
+arch=('i686' 'x86_64')
+url="http://www.crosswire.org/sword/"
+license=('GPL')
+depends=('curl' 'clucene' 'swig')
+makedepends=('subversion')
+provides=('sword')
+conflicts=('sword')
+source=('sword::svn+https://www.crosswire.org/svn/sword/trunk/' 'automake.patch')
+md5sums=('SKIP' '24a4821088da78725b9374807d0d3508')
+options=('!makeflags')
+_svnmod=sword
+
+pkgver() {
+ cd $SRCDEST/${_svnmod}
+ svnversion
+}
+
+prepare() {
+ cd "$srcdir/$_svnmod"
+ patch -p1 < $srcdir/automake.patch
+}
+
+build() {
+ cd "$srcdir/$_svnmod"
+ ./autogen.sh
+ CPPFLAGS+="-fpermissive" ./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$_svnmod"
+ make DESTDIR="$pkgdir/" install
+ make DESTDIR="$pkgdir/" install_config
+}
diff --git a/pcr/sword-svn/automake.patch b/pcr/sword-svn/automake.patch
new file mode 100644
index 000000000..3cfd5eb44
--- /dev/null
+++ b/pcr/sword-svn/automake.patch
@@ -0,0 +1,52 @@
+diff -Naur sword.orig/configure.ac sword.new/configure.ac
+--- sword.orig/configure.ac 2013-01-13 12:46:13.000000000 +0100
++++ sword.new/configure.ac 2013-01-13 12:47:34.000000000 +0100
+@@ -13,7 +13,7 @@
+ AC_CANONICAL_TARGET
+ AM_INIT_AUTOMAKE
+
+-AM_CONFIG_HEADER(include/config.h)
++AC_CONFIG_HEADERS(include/config.h)
+
+ AC_CONFIG_MACRO_DIR([m4])
+
+diff -Naur sword.orig/examples/cmdline/Makefile.am sword.new/examples/cmdline/Makefile.am
+--- sword.orig/examples/cmdline/Makefile.am 2013-01-13 12:46:13.000000000 +0100
++++ sword.new/examples/cmdline/Makefile.am 2013-01-13 12:53:55.000000000 +0100
+@@ -1,7 +1,7 @@
+ AUTOMAKE_OPTIONS = 1.6
+-INCLUDES = -I $(top_srcdir)/include
++AM_CPPFLAGS = -I $(top_srcdir)/include
+ if USE_INTERNAL_REGEX
+-INCLUDES += -I$(top_srcdir)/include/internal/regex
++AM_CPPFLAGS += -I$(top_srcdir)/include/internal/regex
+ endif
+ LDADD = $(top_builddir)/lib/libsword.la
+
+diff -Naur sword.orig/tests/Makefile.am sword.new/tests/Makefile.am
+--- sword.orig/tests/Makefile.am 2013-01-13 12:46:14.000000000 +0100
++++ sword.new/tests/Makefile.am 2013-01-13 12:54:33.000000000 +0100
+@@ -1,7 +1,7 @@
+ AUTOMAKE_OPTIONS = 1.6
+-INCLUDES = -I $(top_srcdir)/include
++AM_CPPFLAGS = -I $(top_srcdir)/include
+ if USE_INTERNAL_REGEX
+-INCLUDES += -I$(top_srcdir)/include/internal/regex
++AM_CPPFLAGS += -I$(top_srcdir)/include/internal/regex
+ endif
+ LDADD = $(top_builddir)/lib/libsword.la
+
+diff -Naur sword.orig/utilities/Makefile.am sword.new/utilities/Makefile.am
+--- sword.orig/utilities/Makefile.am 2013-01-13 12:46:13.000000000 +0100
++++ sword.new/utilities/Makefile.am 2013-01-13 12:56:12.000000000 +0100
+@@ -1,8 +1,8 @@
+ AUTOMAKE_OPTIONS = 1.6
+ SUBDIRS = diatheke
+-INCLUDES = -I $(top_srcdir)/include
++AM_CPPFLAGS = -I $(top_srcdir)/include
+ if USE_INTERNAL_REGEX
+-INCLUDES += -I$(top_srcdir)/include/internal/regex
++AM_CPPFLAGS += -I$(top_srcdir)/include/internal/regex
+ endif
+ LDADD = $(top_builddir)/lib/libsword.la
+ noinst_PROGRAMS = cipherraw lexdump \
diff --git a/pcr/sword/PKGBUILD b/pcr/sword/PKGBUILD
new file mode 100644
index 000000000..78ab4e646
--- /dev/null
+++ b/pcr/sword/PKGBUILD
@@ -0,0 +1,68 @@
+# Maintainer:
+# Contributor: Alexander Rødseth
+# Contributor: Andrea Scarpino
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: TripleE <eric1548@yahoo.com>
+# Contributor: Dominic Tubach
+
+pkgname=sword
+pkgver=1.6.2
+pkgrel=9
+pkgdesc="Library for Bible study programs"
+arch=('x86_64' 'i686')
+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"
+ "multimap.patch")
+sha256sums=('af76c7d54135c444b09eeaafb49229ef5201a4e1d44539d9341dceaeb60a87b9'
+ '3c2676b6dc1d56b08b2532f46af32c54e91ea71ed92a5d7a30ee29ed7ff09124'
+ 'ddcde54fbd9b29585c03565bff7891622cb2cc0a6381047d5f566987a7cb1b8c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 -i ../curl.patch
+ patch -p1 -i ../multimap.patch
+
+ [[ -d ../build ]] || mkdir ../build
+ cd ../build
+
+ CXXFLAGS=-fpermissive cmake "../$pkgname-$pkgver" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DSWORD_GLOBAL_CONF_DIR=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+
+ make DESTDIR="$pkgdir" install
+
+ install -d "$pkgdir/usr/lib/sword"
+ mv "$pkgdir"/usr/lib/${pkgver}_icu_* \
+ "$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/pcr/sword/curl.patch b/pcr/sword/curl.patch
new file mode 100644
index 000000000..63fd4433c
--- /dev/null
+++ b/pcr/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/pcr/sword/multimap.patch b/pcr/sword/multimap.patch
new file mode 100644
index 000000000..7957ab2d8
--- /dev/null
+++ b/pcr/sword/multimap.patch
@@ -0,0 +1,39 @@
+--- sword-1.6.2/include/multimapwdef.h 2004-05-04 23:01:39.000000000 +0200
++++ /usr/include/sword/multimapwdef.h 2012-06-02 13:37:47.816457345 +0200
+@@ -7,26 +7,26 @@
+
+ // multmap that still lets you use [] to reference FIRST
+ // entry of a key if multiples exist
+-template <class Key, class T, class Compare>
+-class multimapwithdefault : public std::multimap<Key, T, Compare> {
++template < class Key, class T, class Compare >
++class multimapwithdefault : public std::multimap< Key, T, Compare > {
+ public:
+- typedef std::pair<const Key, T> value_type;
++ typedef std::pair< const Key, T > value_type;
+ T& getWithDefault(const Key& k, const T& defaultValue) {
+- if (find(k) == this->end()) {
+- insert(value_type(k, defaultValue));
++ if (this->find(k) == this->end()) {
++ this->insert(value_type(k, defaultValue));
+ }
+ return (*(find(k))).second;
+ }
+
+ T& operator[](const Key& k) {
+- if (find(k) == this->end()) {
+- insert(value_type(k, T()));
++ if (this->find(k) == this->end()) {
++ this->insert(value_type(k, T()));
+ }
+- return (*(find(k))).second;
++ return (*(this->find(k))).second;
+ }
+ bool has(const Key& k, const T &val) const {
+- typename std::multimap<Key, T, Compare>::const_iterator start = lower_bound(k);
+- typename std::multimap<Key, T, Compare>::const_iterator end = upper_bound(k);
++ typename std::multimap< Key, T, Compare >::const_iterator start = this->lower_bound(k);
++ typename std::multimap< Key, T, Compare >::const_iterator end = this->upper_bound(k);
+ for (; start!=end; start++) {
+ if (start->second == val)
+ return true;
diff --git a/pcr/synthv1/PKGBUILD b/pcr/synthv1/PKGBUILD
new file mode 100644
index 000000000..2cce2ef0b
--- /dev/null
+++ b/pcr/synthv1/PKGBUILD
@@ -0,0 +1,30 @@
+
+pkgname=synthv1
+pkgver=0.3.4
+pkgrel=1
+pkgdesc="An old-school all-digital 4-oscillator subtractive polyphonic synthesizer with stereo fx"
+arch=(i686 x86_64)
+url="http://$pkgname.sourceforge.net/$pkgname-index.html"
+license=('GPL')
+groups=('lv2-plugins')
+depends=('jack' 'liblo' 'lv2' 'qt4' 'shared-mime-info')
+install="$pkgname.install"
+source=("http://download.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('63ca2f7961bbc708928d2f792e32d166')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # x86_64 lib path fix
+ sed -i "s/lib64/lib/" src/src_lv2.pro
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/synthv1/synthv1.install b/pcr/synthv1/synthv1.install
new file mode 100644
index 000000000..ec1a84bbb
--- /dev/null
+++ b/pcr/synthv1/synthv1.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ update-mime-database usr/share/mime
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/tahoe-lafs/PKGBUILD b/pcr/tahoe-lafs/PKGBUILD
new file mode 100644
index 000000000..8ace70679
--- /dev/null
+++ b/pcr/tahoe-lafs/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Peter Simons <simons@cryp.to>
+# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+pkgname=tahoe-lafs
+pkgver=1.10.0
+pkgrel=1
+pkgdesc="a secure, decentralized, fault-tolerant filesystem"
+arch=('any')
+url='http://tahoe-lafs.org/'
+license=('GPL')
+# net-tools is needed because Tahoe-LAFS uses /sbin/ifconfig
+depends=('net-tools' 'python2' 'python2-zope-interface>=3.6.5'
+ 'twisted' 'python2-pyasn1' 'python2-crypto' 'pycryptopp' 'nevow'
+ 'python2-foolscap' 'python2-simplejson' 'zfec' 'python2-pyopenssl'
+ 'pyutil' 'python2-argparse' 'zbase32' 'python2-mock>=0.8.0')
+source=(nodaemon.patch https://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-$pkgver.tar.bz2)
+sha256sums=('7fb13a50bdca729b9c78f12369e56fccf55594b646bddb270d55c08c83ce3449'
+ '9c5516700fe95fdf8c57eca1e2a7b4aebf2de9a4d327d50afd684ebf833ccfe2')
+
+build(){
+ cd "$srcdir/allmydata-tahoe-$pkgver"
+ patch -p0 < ../nodaemon.patch
+ python2 setup.py build
+ # disabled due to the nodaemon patch and the test_filesystem* tests
+ #python2 setup.py test || return 1
+}
+
+package(){
+ cd "$srcdir/allmydata-tahoe-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+}
diff --git a/pcr/tahoe-lafs/nodaemon.patch b/pcr/tahoe-lafs/nodaemon.patch
new file mode 100644
index 000000000..dfcc0b8ae
--- /dev/null
+++ b/pcr/tahoe-lafs/nodaemon.patch
@@ -0,0 +1,19 @@
+--- src/allmydata/scripts/startstop_node.py 2011-10-30 22:54:34.000000000 +0100
++++ src/allmydata/scripts/startstop_node.py 2011-11-10 15:22:21.432711365 +0100
+@@ -10,6 +10,7 @@
+ optFlags = [
+ ["profile", "p", "Run under the Python profiler, putting results in 'profiling_results.prof'."],
+ ["syslog", None, "Tell the node to log to syslog, not a file."],
++ ["nodaemon", "n", "Do not daemonize."],
+ ]
+
+ def getSynopsis(self):
+@@ -70,6 +71,8 @@
+ args.extend(["--logfile", os.path.join("logs", "twistd.log")])
+ if opts["profile"]:
+ args.extend(["--profile=profiling_results.prof", "--savestats",])
++ if opts["nodaemon"]:
++ args.extend(["--nodaemon", "--umask=0077"])
+ # now we're committed
+ os.chdir(basedir)
+ from twisted.scripts import twistd
diff --git a/pcr/tanglet/PKGBUILD b/pcr/tanglet/PKGBUILD
new file mode 100644
index 000000000..a8114ba62
--- /dev/null
+++ b/pcr/tanglet/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer (AUR): Graeme Gott <graeme@gottcode.org>
+# Maintainer: Alon Ivtsan <alonivtsan@lavabit.com>
+# Based on https://aur.archlinux.org/packages.php?ID=32311
+
+pkgname=tanglet
+pkgver=1.2.2
+pkgrel=1
+pkgdesc="A single player word finding game based on Boggle."
+arch=('i686' 'x86_64')
+url="http://gottcode.org/${pkgname}/"
+license=('GPL3')
+depends=('qt5-base')
+install=${pkgname}.install
+source=(http://gottcode.org/${pkgname}/${pkgname}-${pkgver}-src.tar.bz2)
+md5sums=('584e50d01323c0686ff094195eba4341')
+sha256sums=('c90d5c36b7e6cca54cdc001c7eecfb333795add16e6ae01f100026c61f4a84da')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ qmake-qt5 PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}/" install
+}
+
diff --git a/pcr/tanglet/tanglet.install b/pcr/tanglet/tanglet.install
new file mode 100644
index 000000000..81f2ba659
--- /dev/null
+++ b/pcr/tanglet/tanglet.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/pcr/ted/PKGBUILD b/pcr/ted/PKGBUILD
new file mode 100644
index 000000000..aa085dc62
--- /dev/null
+++ b/pcr/ted/PKGBUILD
@@ -0,0 +1,60 @@
+# Contributor: willemw <willemw12@gmail.com>
+# Contributor: shirokuro <tod dot jackson at gmail dot com>
+# Contributor: sergej
+# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@xload.IO>
+
+pkgname=ted
+pkgver=2.23
+pkgrel=2
+pkgdesc="A lightweight rtf text processor"
+arch=('i686' 'x86_64')
+url="http://www.nllgg.nl/Ted/"
+depends=('zlib' 'pcre' 'libxpm' 'libjpeg' 'libtiff' 'libpng' 'gtk2' 'libpaper' 'desktop-file-utils')
+license=('GPL')
+install=$pkgname.install
+source=(http://ftp.nluug.nl/pub/editors/$pkgname/$pkgname-$pkgver.src.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_nl_NL.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_en_GB.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_de_DE.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_es_ES.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_es_AR.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_pt_PT.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_pt_BR.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_fr_FR.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_it_IT.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_cs_CZ.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_da_DK.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_sv_SE.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_nb_NO.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_pl_PL.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_sk_SK.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_hu_HU.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_mg_MG.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_bg_BG.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_ru_RU.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_hr_HR.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/ted_fi_FI.tar.gz
+ http://ftp.nluug.nl/pub/editors/ted/TedDocument-de_DE.rtf
+ http://ftp.nluug.nl/pub/editors/ted/TedDocument-fr_FR.rtf
+ http://ftp.nluug.nl/pub/editors/ted/TedDocument-mg_MG.rtf)
+
+
+build() {
+ cd Ted-$pkgver
+ make
+ make package
+}
+
+package() {
+ install -dm755 "$pkgdir/usr/share/Ted"
+ install -m644 TedDocument-*_*.rtf "$pkgdir/usr/share/Ted"
+
+ cd Ted-$pkgver/tedPackage
+ DESTDIR="$pkgdir" make install
+
+ cd "$pkgdir"
+ for i in "$srcdir/"ted_*_*.tar.gz; do
+ tar xzf "$i"
+ done
+}
+
diff --git a/pcr/ted/ted.install b/pcr/ted/ted.install
new file mode 100644
index 000000000..f98ba7338
--- /dev/null
+++ b/pcr/ted/ted.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/pcr/textext/LICENSE.txt b/pcr/textext/LICENSE.txt
new file mode 100644
index 000000000..69f5d4720
--- /dev/null
+++ b/pcr/textext/LICENSE.txt
@@ -0,0 +1,28 @@
+Copyright (c) 2007-2008 Pauli Virtanen.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ a. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ b. 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.
+ c. Neither the name of the copyright holder nor the names of the contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/pcr/textext/PKGBUILD b/pcr/textext/PKGBUILD
new file mode 100644
index 000000000..8a1897dc4
--- /dev/null
+++ b/pcr/textext/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Joel Schaerer <joel.schaerer@laposte.net>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=textext
+pkgver=0.4.4
+pkgrel=3
+pkgdesc="An inkscape extension which lets you add LaTeX equations to your drawings"
+arch=('i686' 'x86_64')
+license=('BSD')
+url="http://pav.iki.fi/software/textext/"
+depends=('inkscape' 'texlive-core' 'python2-lxml' 'pdf2svg')
+source=(http://pav.iki.fi/software/textext/$pkgname-$pkgver.tar.gz LICENSE.txt)
+md5sums=('5dbb18bf762565196f8ac1f68f8607e3'
+ '91da7de463147c1c78b1c2e6f24da380')
+build() {
+ cd "$srcdir"
+ install -Dm 644 LICENSE.txt \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt"
+ install -Dm 755 textext.py \
+ "${pkgdir}/usr/share/inkscape/extensions/textext.py"
+ install -Dm 644 textext.inx \
+ "${pkgdir}/usr/share/inkscape/extensions/textext.inx"
+ }
diff --git a/pcr/theide/PKGBUILD b/pcr/theide/PKGBUILD
new file mode 100644
index 000000000..26dc34f0f
--- /dev/null
+++ b/pcr/theide/PKGBUILD
@@ -0,0 +1,54 @@
+# Contributor: Jan Dolinar <dolik.rce@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=theide
+pkgver=5485
+pkgrel=1
+pkgdesc="Modern IDE designed for developping large U++/C++ applications"
+arch=('i686' 'x86_64')
+url="http://www.ultimatepp.org"
+license=('BSD')
+groups=()
+depends=('gtk2' 'libnotify' 'desktop-file-utils')
+makedepends=()
+provides=('theide')
+conflicts=('theide')
+replaces=()
+backup=()
+options=(!makeflags emptydirs)
+install='theide.install'
+source=('http://downloads.sourceforge.net/project/upp/upp/'$pkgver'/upp-x11-src-'$pkgver'.tar.gz'
+ 'http://upp-mirror.googlecode.com/svn-history/r'$pkgver'/trunk/uppbox/lpbuild2/mkfile'
+ 'http://upp-mirror.googlecode.com/svn-history/r'$pkgver'/trunk/uppbox/lpbuild2/theide.1'
+ 'http://upp-mirror.googlecode.com/svn-history/r'$pkgver'/trunk/uppbox/lpbuild2/umk.1'
+ 'license.txt')
+noextract=()
+
+build() {
+ cd "$srcdir/upp-x11-src-$pkgver"
+ #build
+ echo "#define IDE_VERSION \"$pkgver-Arch-$(uname -m)\"" > "uppsrc/ide/version.h"
+ msg2 "Building $pkgname..."
+ make -f "$srcdir/mkfile" PKG=umk FLAGS="GCC" NESTS="uppsrc" TIME= COLOR=0 USEMAINCFG=0 JOBS=5 ECHO=0 TARGET="$srcdir/umk"
+ make -f "$srcdir/mkfile" PKG=ide FLAGS="GCC GUI" NESTS="uppsrc" TIME= COLOR=0 USEMAINCFG=0 JOBS=5 ECHO=0 TARGET="$srcdir/theide"
+}
+
+package(){
+ #license
+ install -D "$srcdir/license.txt" "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+ #man pagess
+ install -D "$srcdir/theide.1" "$pkgdir/usr/share/man/man1/theide.1"
+ install -D "$srcdir/umk.1" "$pkgdir/usr/share/man/man1/umk.1"
+ #desktop entry
+ install -D "$srcdir/upp-x11-src-$pkgver/uppsrc/ide/theide.desktop" "$pkgdir/usr/share/applications/theide.desktop"
+ #icon
+ install -D "$srcdir/upp-x11-src-$pkgver/uppsrc/ide/theide-48.png" "$pkgdir/usr/share/pixmaps/theide.png"
+ #fix permissions
+ find "$pkgdir/usr/" -print0 | xargs -0 chown root:root
+ find "$pkgdir/usr/" -type f -print0 | xargs -0 chmod 644
+ find "$pkgdir/usr/" -type d -print0 | xargs -0 chmod 755
+ #install applications
+ install -D "$srcdir/umk" "$pkgdir/usr/bin/umk"
+ install -D "$srcdir/theide" "$pkgdir/usr/bin/theide"
+}
+
diff --git a/pcr/theide/license.txt b/pcr/theide/license.txt
new file mode 100644
index 000000000..6cea058a6
--- /dev/null
+++ b/pcr/theide/license.txt
@@ -0,0 +1,9 @@
+Copyright (C) 2010 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS)
+
+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 of the Software and its Copyright notices. In addition publicly documented acknowledgment must be given that this software has been used if no source code of this software is made available publicly. This includes
+acknowledgments in either Copyright notices, Manuals, Publicity and Marketing documents or any documentation provided with any product containing this software. This License does not apply to any software that links to the libraries provided by this software (statically or dynamically), but only to
+the software provided.
+
+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/pcr/theide/theide.install b/pcr/theide/theide.install
new file mode 100644
index 000000000..5e16c038a
--- /dev/null
+++ b/pcr/theide/theide.install
@@ -0,0 +1,3 @@
+post_install() {
+ update-desktop-database -q
+}
diff --git a/pcr/thinkfan/PKGBUILD b/pcr/thinkfan/PKGBUILD
new file mode 100644
index 000000000..18a97754f
--- /dev/null
+++ b/pcr/thinkfan/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: nblock <nblock [/at\] archlinux DOT us>
+# Contributor: Frederik Alkærsig (FALKER) <havnelisten AT gmail.com>
+
+pkgname=thinkfan
+pkgver=0.8.1
+pkgrel=3
+pkgdesc="A minimalist fan control program. Supports the sysfs hwmon interface and thinkpad_acpi"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+source=(http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ "thinkfan" "thinkfan.service")
+url="http://thinkfan.sourceforge.net/"
+md5sums=('aaa6c88bab3b43756ac5a1638622828c'
+ '16fc3a83a1468e3ccaeba67e14ab2177'
+ '7639b82035fcee712753e05de6b0601d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+ install -D -m755 ${pkgname} ${pkgdir}/usr/sbin/${pkgname}
+ install -D -m755 ${srcdir}/${pkgname} ${pkgdir}/etc/rc.d/${pkgname}
+ install -D -m644 README ${pkgdir}/usr/share/doc/${pkgname}/README
+ install -D -m644 ${srcdir}/thinkfan.service ${pkgdir}/usr/lib/systemd/system/thinkfan.service
+ cp -r examples ${pkgdir}/usr/share/doc/${pkgname}/
+}
+
+# vim:set ts=2 sw=2 noet:
diff --git a/pcr/thinkfan/thinkfan b/pcr/thinkfan/thinkfan
new file mode 100644
index 000000000..d37c81424
--- /dev/null
+++ b/pcr/thinkfan/thinkfan
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+test -f /usr/sbin/thinkfan || exit 0
+
+case "$1" in
+ start)
+ stat_busy "Starting thinkfan"
+ /usr/sbin/thinkfan -- -q -s5 >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon thinkfan
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping thinkfan"
+ PID=$(</var/run/thinkfan.pid)
+ kill $PID
+ rm -f /var/run/thinkfan.pid
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon thinkfan
+ stat_done
+ fi
+ ;;
+ restart)
+ stat_busy "Restarting thinkfan"
+
+ PID=$(</var/run/thinkfan.pid)
+ kill $PID
+ rm -f /var/run/thinkfan.pid
+ if [ $? -gt 0 ]; then
+ stat_fail
+ rm_daemon thinkfan
+ else
+ /usr/sbin/thinkfan -- -q -s5 >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ rm_daemon thinkfan
+ else
+ stat_done
+ fi
+ fi
+ ;;
+ *)
+ echo "Usage: $0 {stop|start|restart}"
+ ;;
+esac
+exit 0
diff --git a/pcr/thinkfan/thinkfan.service b/pcr/thinkfan/thinkfan.service
new file mode 100644
index 000000000..7895b8d3a
--- /dev/null
+++ b/pcr/thinkfan/thinkfan.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Thinkfan Daemon - simple and lightweight fan control program
+After=basic.target
+
+[Service]
+ExecStart=/usr/sbin/thinkfan -n -s5 -q
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/timekpr/Initializes_lastNotified_before_it_is_used.patch b/pcr/timekpr/Initializes_lastNotified_before_it_is_used.patch
new file mode 100644
index 000000000..870a2670a
--- /dev/null
+++ b/pcr/timekpr/Initializes_lastNotified_before_it_is_used.patch
@@ -0,0 +1,10 @@
+--- a/timekpr-client.py 2011-04-15 13:17:59.000000000 +0200
++++ b/timekpr-client.py 2011-04-15 13:19:06.000000000 +0200
+@@ -40,6 +40,7 @@
+ self.conffile = self.VAR['TIMEKPRDIR'] + '/' + self.username
+ self.limits, self.bfrom, self.bto = readusersettings(self.username, self.conffile)
+ self.timer = None
++ self.lastNotified = datetime.datetime.fromtimestamp(0);
+ self.checkLimits()
+ #Add a gobject loop to check limits:
+ self.timer = gobject.timeout_add(self.checkInterval * 1000, self.checkLimits)
diff --git a/pcr/timekpr/PKGBUILD b/pcr/timekpr/PKGBUILD
new file mode 100644
index 000000000..4d2af3bfd
--- /dev/null
+++ b/pcr/timekpr/PKGBUILD
@@ -0,0 +1,79 @@
+# Contributor: SanskritFritz (gmail)
+
+pkgname=timekpr
+pkgver=0.3.2
+pkgrel=9
+pkgdesc="Control the computer usage of your user accounts. You can limit their daily usage based on a timed access duration and configure periods of day when they can log in."
+arch=('i686' 'x86_64')
+url=https://launchpad.net/timekpr
+license=('GPL')
+depends=('python2')
+source=(http://launchpad.net/$pkgname/trunk/$pkgver/+download/${pkgname}_${pkgver}~ppa1~ubuntu2.tar.gz
+ timekprd.sh
+ timekpr.service
+ Initializes_lastNotified_before_it_is_used.patch)
+backup=('etc/timekpr.conf')
+install='timekpr.install'
+md5sums=('0626ee6b6b6d218dfdd6e79331f789a2'
+ 'ab37e469034200c19b46a31d586bfe3e'
+ '9e88ee02b5b8cb6b5e0730e3847c4217'
+ '23848ef2578571d7dc4871fbd15f41ed')
+
+
+build() {
+ cd ${srcdir}/stable/gui/client
+ # https://bugs.launchpad.net/timekpr/+bug/761647
+ patch -p1 < ${srcdir}/Initializes_lastNotified_before_it_is_used.patch
+}
+
+package() {
+ install -dm755 $pkgdir/etc/{rc.d,timekpr,logrotate.d,xdg/autostart}
+ install -dm755 $pkgdir/usr/{bin,share/{doc/timekpr,timekpr,python-support/timekpr,pixmaps,applications,man/man8}}
+ install -dm755 $pkgdir/usr/share/locale/{da,de,fr,hu,nb,sv,fi}/LC_MESSAGES
+ install -dm755 $pkgdir/var/lib/timekpr
+
+ cd $srcdir/stable
+ install -m644 etc/timekpr.conf $pkgdir/etc/
+ install -m644 etc/logrotate.d/timekpr $pkgdir/etc/logrotate.d/
+ sed -i "s/python/python2/" timekpr
+ install -m755 timekpr $pkgdir/usr/bin/
+ sed -i "s/python/python2/" timekpr-gui
+ install -m755 timekpr-gui $pkgdir/usr/bin/
+ sed -i "s/python/python2/" timekpr-client
+ install -m755 timekpr-client $pkgdir/usr/bin/
+ install -m755 timekprpam.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekpr.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekpr-gui.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 gui/client/timekpr-client.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekprpam.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekprcommon.py $pkgdir/usr/share/python-support/timekpr/
+ install -m644 gui/padlock-green.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/padlock-red.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr.glade $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr100x100.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr32x32.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr.xpm $pkgdir/usr/share/pixmaps/
+ install -m644 debian/timekpr.desktop $pkgdir/usr/share/applications/
+ install -m644 debian/timekpr-client.desktop $pkgdir/etc/xdg/autostart
+ install -m644 locale/da/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/da/LC_MESSAGES/
+ install -m644 locale/de/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/de/LC_MESSAGES/
+ install -m644 locale/fr/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/fr/LC_MESSAGES/
+ install -m644 locale/hu/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/hu/LC_MESSAGES/
+ install -m644 locale/nb/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/nb/LC_MESSAGES/
+ install -m644 locale/sv/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/sv/LC_MESSAGES/
+ install -m644 locale/fi/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/fi/LC_MESSAGES/
+ install -m644 TODO.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 README.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 COPYRIGHT.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 CONTRIBUTORS.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 debian/changelog $pkgdir/usr/share/doc/timekpr
+ install -m644 doc/timekpr.8 $pkgdir/usr/share/man/man8
+
+ install -m755 debian/timekpr.postrm $pkgdir/usr/bin/
+ install -m755 debian/timekpr.postinst $pkgdir/usr/bin/
+
+ cd $srcdir
+ install -m755 timekprd.sh $pkgdir/etc/rc.d/timekprd
+
+ install -Dm0644 "${srcdir}/timekpr.service" "${pkgdir}/usr/lib/systemd/system/timekpr.service"
+}
diff --git a/pcr/timekpr/timekpr.install b/pcr/timekpr/timekpr.install
new file mode 100644
index 000000000..b01769c48
--- /dev/null
+++ b/pcr/timekpr/timekpr.install
@@ -0,0 +1,24 @@
+
+post_install() {
+ /usr/bin/timekpr.postinst
+
+ echo "Your su command (gksu|gksudo|kdesu|kdesudo etc) for starting timekpr-gui as root: "
+ read su_command;
+ sed -i "s/gksu/${su_command}/" "/usr/share/applications/timekpr.desktop"
+
+ echo
+ echo "Start the timekpr daemon with '/etc/rc.d/timekprd start'"
+ echo "For permanent use put 'timekprd' into your DAEMONS array."
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ /usr/bin/timekpr.postrm purge
+}
+
+post_remove() {
+ echo "Remove the timekprd entry from your DAEMONS array."
+}
diff --git a/pcr/timekpr/timekpr.service b/pcr/timekpr/timekpr.service
new file mode 100644
index 000000000..b3ea6e211
--- /dev/null
+++ b/pcr/timekpr/timekpr.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Keep control of computer usage
+After=syslog.target systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/bin/timekpr
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/timekpr/timekprd.sh b/pcr/timekpr/timekprd.sh
new file mode 100755
index 000000000..19e4a3af4
--- /dev/null
+++ b/pcr/timekpr/timekprd.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -x -o %PPID /etc/rc.d/timekprd`
+case "$1" in
+ start)
+ stat_busy "Starting timekpr"
+ [ -z "$PID" ] && /usr/bin/timekpr &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon timekprd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping timekpr"
+ [ ! -z "$PID" ] && killall --user root timekpr &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon timekprd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/pcr/timer_entropyd/PKGBUILD b/pcr/timer_entropyd/PKGBUILD
new file mode 100644
index 000000000..4d5f4437e
--- /dev/null
+++ b/pcr/timer_entropyd/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: fauno <fauno@parabola.nu>
+pkgname=timer_entropyd
+pkgver=0.2
+pkgrel=1
+pkgdesc="Feeds the /dev/random device with entropy-data (random values) read from timers."
+arch=('i686')
+url="http://www.vanheusden.com/te/"
+license=('GPL2')
+groups=('entropy')
+source=(http://www.vanheusden.com/te/${pkgname}-${pkgver}.tgz
+ ${pkgname}.service)
+sha1sums=('61b82128bf4df483271a475a0cc772a7fd80a804'
+ '96ff193aef61088759cf9d9c9d0e881fd1174824')
+sha256sums=('0cf2b976b78c1b1169a4bec5a6fc71d8b118de927bc05002686376a61f73989a'
+ 'a22d33d99ab7c511902a37225e83476466840bd4c0ee3ffece1e4094511414de')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -D -m 755 ${pkgname} ${pkgdir}/usr/bin/${pkgname}
+ install -D -m 644 ${srcdir}/${pkgname}.service \
+ ${pkgdir}/usr/lib/systemd/system/${pkgname}.service
+}
diff --git a/pcr/timer_entropyd/timer_entropyd.service b/pcr/timer_entropyd/timer_entropyd.service
new file mode 100644
index 000000000..0bea7398b
--- /dev/null
+++ b/pcr/timer_entropyd/timer_entropyd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Gathering entropy from system timers
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/timer_entropyd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/tinc-pre/PKGBUILD b/pcr/tinc-pre/PKGBUILD
new file mode 100644
index 000000000..ebbd4cc3f
--- /dev/null
+++ b/pcr/tinc-pre/PKGBUILD
@@ -0,0 +1,42 @@
+pkgname=tinc-pre
+pkgver=1.1pre7
+pkgrel=2
+pkgdesc="VPN (Virtual Private Network) daemon (Pre-release)"
+arch=(i686 x86_64)
+url="http://www.tinc-vpn.org/"
+license=('GPL')
+depends=('lzo2' 'zlib' 'openssl')
+optdepends=('wxpython: gui support')
+provides=('tinc-pre')
+conflicts=('tinc')
+source=(http://www.tinc-vpn.org/packages/tinc-$pkgver.tar.gz{,.sig}
+ tincd@.service)
+
+build() {
+ cd "$srcdir/tinc-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin
+ make
+}
+
+package() {
+ cd "$srcdir/tinc-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -dm755 "$pkgdir"/usr/share/tinc/examples
+ tar xozvf doc/sample-config.tar.gz -C $pkgdir/usr/share/tinc/examples
+ find "$pkgdir"/usr/share/tinc/examples -type f -exec chmod 644 {} +
+ find "$pkgdir"/usr/share/tinc/examples -type d -exec chmod 755 {} +
+
+ install -Dm644 "$srcdir/tincd@.service" \
+ "$pkgdir/usr/lib/systemd/system/tincd@.service"
+
+ sed -e 's,#!/usr/bin/python,#!/usr/bin/python2,' \
+ -i $pkgdir/usr/bin/tinc-gui
+}
+sha1sums=('62a014356864c3a5204edd6e934f3ee575760cfc'
+ 'SKIP'
+ '6ab485732bb6c59e7e0e162f22251a0f554ec69c')
+sha256sums=('ff330627ad0d6ce1233408bb75b11d7506be13eb0c802ff1657866d97545074b'
+ 'SKIP'
+ '43d086b76e2a6ff6d91a2ace2d6d048fc7109fefecd5047ab6c437ba0e9252ed')
diff --git a/pcr/tinc-pre/tincd@.service b/pcr/tinc-pre/tincd@.service
new file mode 100644
index 000000000..069bf4570
--- /dev/null
+++ b/pcr/tinc-pre/tincd@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Tinc daemon for net %i
+After=network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/tincd -n %i
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/tokyotyrant/PKGBUILD b/pcr/tokyotyrant/PKGBUILD
new file mode 100644
index 000000000..ea5c94e30
--- /dev/null
+++ b/pcr/tokyotyrant/PKGBUILD
@@ -0,0 +1,33 @@
+# # Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Paul Sadauskas <psadauskas@gmail.com>
+
+pkgname=tokyotyrant
+pkgver=1.1.41
+pkgrel=3
+pkgdesc="Network interface to TokyoCabinet"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.fallabs.com"
+license=('LGPL')
+makedepends=('gcc>=3.1' 'make' 'pkgconfig')
+depends=('zlib' 'bzip2' 'tokyocabinet>=1.4.27')
+source=("http://fallabs.com/$pkgname/$pkgname-$pkgver.tar.gz"
+ "tokyotyrant.rc"
+ "tokyotyrant.conf")
+
+md5sums=('a47e58897bd1cbbac173d5a66cc32ae3'
+ '3ed9229c9cfb8e1b3055b814d5038799'
+ '2558846ece69d1f265ee1ba5728c39cd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+ install -m 644 -D ${srcdir}/tokyotyrant.conf $pkgdir/etc/conf.d/ttserver
+ install -m 755 -D ${srcdir}/tokyotyrant.rc $pkgdir/etc/rc.d/ttserver
+}
+
diff --git a/pcr/tokyotyrant/tokyotyrant.conf b/pcr/tokyotyrant/tokyotyrant.conf
new file mode 100644
index 000000000..77c299a81
--- /dev/null
+++ b/pcr/tokyotyrant/tokyotyrant.conf
@@ -0,0 +1,21 @@
+# /etc/conf.d/ttserver: config file for /etc/init.d/ttserver
+
+# TCP port TokyoTyrant server should listen on
+TYRANT_PORT="1978"
+
+# Location of the TokyoTyrant server database
+# Also put addional options here, eg, #bnum
+# See 'ttserver' man page
+TYRANT_DB="/var/lib/tokyotyrant/tokyotyrant.tch"
+
+# Location of the TokyoTyrant server log file
+TYRANT_LOG_FILE="/var/log/ttserver.log"
+
+# Location of the TokyoTyrant server PID file
+TYRANT_PID_FILE="/var/run/ttserver.pid"
+
+# Pass extra options to TokyoTyrant server
+# Example: TYRANT_EXTRA_OPTS="-ld" - enables logging of debug messages
+# See the 'ttserver' man page for more
+TYRANT_EXTRA_OPTS=""
+
diff --git a/pcr/tokyotyrant/tokyotyrant.rc b/pcr/tokyotyrant/tokyotyrant.rc
new file mode 100644
index 000000000..eaecb0af0
--- /dev/null
+++ b/pcr/tokyotyrant/tokyotyrant.rc
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# source config
+[ -f /etc/conf.d/ttserver ] && . /etc/conf.d/ttserver
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting TokyoTyrant Server"
+ /usr/bin/ttserver ${TYRANT_EXTRA_OPTS} -dmn -pid ${TYRANT_PID_FILE} -log ${TYRANT_LOG_FILE} -port ${TYRANT_PORT} ${TYRANT_DB}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ttserver
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping TokyoTyrant Server"
+ if [ -f $TYRANT_PID_FILE ]; then
+ pid=`cat "$TYRANT_PID_FILE"`
+ kill -TERM "$pid"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ttserver
+ stat_done
+ fi
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/pcr/toluapp/PKGBUILD b/pcr/toluapp/PKGBUILD
new file mode 100644
index 000000000..fa8c841c6
--- /dev/null
+++ b/pcr/toluapp/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Stéphane Gaudreault <stephane.gaudreault@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=toluapp
+pkgver=1.0.93
+pkgrel=5
+pkgdesc="Tool to integrate C/C++ code with Lua"
+url="http://www.codenix.com/~tolua"
+depends=('lua')
+makedepends=('scons')
+license=('MIT')
+arch=('i686' 'x86_64')
+source=(http://www.codenix.com/~tolua/tolua++-${pkgver}.tar.bz2 config_linux.py)
+md5sums=('100aa6907b8108582080b37d79c0afd7' 'f85232adfa873ea012088dd4d7fb63d7')
+
+build() {
+ cd "${srcdir}/tolua++-${pkgver}"
+ cp ../config_linux.py ${srcdir}/tolua++-${pkgver}
+
+ scons all
+}
+
+package() {
+ cd "${srcdir}/tolua++-${pkgver}"
+ scons prefix=${pkgdir}/usr install
+}
+md5sums=('100aa6907b8108582080b37d79c0afd7'
+ 'f85232adfa873ea012088dd4d7fb63d7')
diff --git a/pcr/toluapp/config_linux.py b/pcr/toluapp/config_linux.py
new file mode 100755
index 000000000..0a5fbcfeb
--- /dev/null
+++ b/pcr/toluapp/config_linux.py
@@ -0,0 +1,22 @@
+## This is the linux configuration file
+# This file was adapted to be used with ArchLinux
+# Use 'scons -h' to see the list of command line options available
+
+# Compiler flags (based on ArchLinux's installation of lua)
+#LINKFLAGS = ['-g']
+CCFLAGS = ['-O2', '-ansi', '-Wall', '-fPIC']
+#CCFLAGS = ['-g']
+
+# this is the default directory for installation. Files will be installed on
+# <prefix>/bin, <prefix>/lib and <prefix>/include when you run 'scons install'
+#
+# You can also specify this directory on the command line with the 'prefix'
+# option
+#
+# You can see more 'generic' options for POSIX systems on config_posix.py
+
+prefix = '/usr'
+
+# libraries (based on ArchLinux's installation of lua)
+LIBS = ['lua', 'dl', 'm']
+
diff --git a/pcr/tomb/PKGBUILD b/pcr/tomb/PKGBUILD
new file mode 100644
index 000000000..66945cb41
--- /dev/null
+++ b/pcr/tomb/PKGBUILD
@@ -0,0 +1,53 @@
+## PKGBUILD [bash]
+# Maintainer: nignux <nignux@freaknet.org>
+
+pkgbase=tomb
+pkgname=(tomb python2-tomb tomb-gui)
+pkgver=1.4
+pkgrel=1
+pkgdesc="Crypto Undertaker, simple tool to manage encrypted storage"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.dyne.org/software/tomb/"
+license=('GPL3')
+depends=('bc' 'cryptsetup' 'gnupg' 'sudo' 'zsh' 'steghide'
+ 'dcfldd' 'wipe')
+makedepends=('python2-pyqt' 'python2-distribute')
+install=${pkgname}.install
+source=(https://files.dyne.org/tomb/releases/Tomb-${pkgver}.tar.gz{,.sha{,.asc}})
+# The first hash comes from the .sha file
+sha256sums=('2621ac6b9180321e69743dc899645449b2b958c6aa46e4b2601c2e89131bbf29'
+ 'fc8b168f991d5b9c1135ceec6e55ac94f494ac4bed7e104e14c7f9ee787591e5'
+ 'SKIP')
+
+build() {
+ cd ${srcdir}/Tomb-${pkgver}/extras/qt
+
+ python2 setup.py build_ui
+}
+
+# The checks require root access
+#check() {
+# cd ${srcdir}/Tomb-${pkgver}
+# make test
+#}
+
+package_tomb() {
+ pkgdesc="Crypto Undertaker, simple tool to manage encrypted storage, from the hashes of the dyne:bolic nesting mechanism."
+ cd ${srcdir}/Tomb-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
+package_python2-tomb() {
+ pkgdesc="Crypto Undertaker library"
+
+ cd ${srcdir}/Tomb-${pkgver}/extras/pytomb
+ python2 setup.py install --root="${pkgdir}/" --optimize=1
+}
+
+package_tomb-gui() {
+ pkgdesc="Crypto Undertaker GUI for open and create tombs"
+ depends=('python2-tomb' 'python2-pyqt')
+
+ cd ${srcdir}/Tomb-${pkgver}/extras/qt
+ python2 setup.py install --root="${pkgdir}/" --optimize=1
+}
diff --git a/pcr/tomb/tomb.install b/pcr/tomb/tomb.install
new file mode 100644
index 000000000..c1ee8b339
--- /dev/null
+++ b/pcr/tomb/tomb.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
diff --git a/pcr/torque/PKGBUILD b/pcr/torque/PKGBUILD
new file mode 100644
index 000000000..850aa3b7d
--- /dev/null
+++ b/pcr/torque/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=torque
+pkgver=4.2.2
+_pkgver=1065
+pkgrel=2
+pkgdesc='An open source resource manager providing control over batch jobs and distributed compute nodes.'
+url=http://www.adaptivecomputing.com/products/open-source/$pkgname/
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+license=custom
+depends=(
+ libxml2
+ openssh
+)
+install=$pkgname.install
+options=(!libtool)
+backup=(
+ var/spool/$pkgname/mom_priv/config
+ var/spool/$pkgname/serv_priv/nodes
+ var/spool/$pkgname/serv_priv/serverdb
+ var/spool/$pkgname/server_name
+)
+source=(
+ $pkgname-$pkgver.tar.gz::http://www.adaptivecomputing.com/index.php?wpfb_dl=$_pkgver
+ $pkgname-{node,scheduler,server}.service
+)
+sha512sums=(
+ d53af8dc05e2d1ffa699da2a79e2c82247a882d868784c38d685fc77c3bb8a334e036e835bac2988d39675c5df7a04c2b567b826df4bf6975b437a9955164ae2
+ 532c007cf3fcf171d071b67438fca430cdda4ec19d5e6c51ff5388b73610817825dd4cc86866c3d8a9411b6fdee6f76c64cd764dbd2277c1e7ca48e843ff9221
+ 290620b00b2bd636b47c3c60158a4e6cff06e9a764ac7fc7d4996f9be1aace58ee248a075b4c3cf84951af9013a655b29ea6adec789fe6e170df62b07b05cc85
+ 2977fbd4d7b7241a2aadef4bc5575483a882a62dd65b74cfb26958530ce99030ee0c3e6c8a093d1e2ccc2bfe4ebed4f90bc7b52aaece7fd43ea2f9af08781fed
+)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ setarch $CARCH ./configure --prefix=/usr\
+ --disable-gui\
+ --disable-gcc-warnings\
+ --mandir=/usr/share/man\
+ --with-default-server=localhost\
+ --with-rcp=scp\
+ --with-server-home=/var/spool/$pkgname\
+ --with-tcl=no
+ mv src/resmom/Makefile src/resmom/Makefile.old
+ cat src/resmom/Makefile.old | sed 's/$(MOMLIBS) $(PBS_LIBS)/$(PBS_LIBS) $(MOMLIBS)/g' > src/resmom/Makefile
+ setarch $CARCH make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ setarch $CARCH make DESTDIR=$pkgdir install
+
+ install -d $pkgdir/usr/lib/systemd/system
+ install -Dm644 $srcdir/*.service $pkgdir/usr/lib/systemd/system
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/torque/torque-node.service b/pcr/torque/torque-node.service
new file mode 100644
index 000000000..67edef4f5
--- /dev/null
+++ b/pcr/torque/torque-node.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=TORQUE node
+Wants=basic.target
+After=basic.target network.target
+
+[Service]
+Type=forking
+PIDFile=/var/spool/torque/mom_priv/mom.lock
+ExecStart=/usr/sbin/pbs_mom
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/torque/torque-scheduler.service b/pcr/torque/torque-scheduler.service
new file mode 100644
index 000000000..97ec6a093
--- /dev/null
+++ b/pcr/torque/torque-scheduler.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=TORQUE scheduler
+Wants=torque-server.service
+After=torque-server.service
+
+[Service]
+Type=forking
+PIDFile=/var/spool/torque/sched_priv/sched.lock
+ExecStart=/usr/sbin/pbs_sched
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/torque/torque-server.service b/pcr/torque/torque-server.service
new file mode 100644
index 000000000..80fcb1860
--- /dev/null
+++ b/pcr/torque/torque-server.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=TORQUE server
+Wants=basic.target
+After=basic.target network.target
+
+[Service]
+Type=forking
+PIDFile=/var/spool/torque/server_priv/server.lock
+ExecStart=/usr/sbin/pbs_server
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/torque/torque.install b/pcr/torque/torque.install
new file mode 100644
index 000000000..2e90bd1ba
--- /dev/null
+++ b/pcr/torque/torque.install
@@ -0,0 +1,9 @@
+post_install() {
+ pbs_server -f -t create
+ systemctl stop torque-server
+ echo 'Change the server name in /var/spool/torque/server_name to your needs.
+You may add your clients to /var/spool/torque/server_priv/nodes if your are the server.
+Enable torque-server.service or torque-node.service depending on whether you are the server or a node.'
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/transmission-remote-cli/PKGBUILD b/pcr/transmission-remote-cli/PKGBUILD
new file mode 100644
index 000000000..dcabaa642
--- /dev/null
+++ b/pcr/transmission-remote-cli/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+pkgname=transmission-remote-cli
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="Curses interface for the daemon of the BitTorrent client Transmission"
+arch=('any')
+url="https://github.com/fagga/transmission-remote-cli"
+license=('GPL3')
+depends=('python2')
+optdepends=('transmission-daemon: for local transmission management'
+ 'adns-python: Resolve IPs to host names'
+ 'python2-geoip: Guess which country peers come from')
+conflicts=('transmission-remote-cli-git' "transmission-remote-cli<=20111013")
+replaces=('transmission-remote-cli-git')
+source=(https://github.com/fagga/${pkgname}/archive/v${pkgver}.tar.gz)
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ msg "Starting make..."
+
+ install -d ${pkgdir}/usr/bin/
+ install -Dm755 transmission-remote-cli.py ${pkgdir}/usr/bin/transmission-remote-cli
+
+}
+md5sums=('4c13aa8596d35ce5793ea65affa8a6e5')
diff --git a/pcr/transmission-remote-cli/python2.patch b/pcr/transmission-remote-cli/python2.patch
new file mode 100644
index 000000000..256b676f0
--- /dev/null
+++ b/pcr/transmission-remote-cli/python2.patch
@@ -0,0 +1,9 @@
+diff -Nur transmission-remote-cli/transmission-remote-cli.py transmission-remote-cli-python2//transmission-remote-cli.py
+--- transmission-remote-cli/transmission-remote-cli.py 2010-10-19 10:33:49.544594708 -0300
++++ transmission-remote-cli-python2//transmission-remote-cli.py 2010-10-19 10:42:51.278983745 -0300
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ ########################################################################
+ # This is transmission-remote-cli, whereas 'cli' stands for 'Curses #
+ # Luminous Interface', a client for the daemon of the BitTorrent #
diff --git a/pcr/triceratops-lv2/PKGBUILD b/pcr/triceratops-lv2/PKGBUILD
new file mode 100644
index 000000000..db8b7b101
--- /dev/null
+++ b/pcr/triceratops-lv2/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=triceratops-lv2
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="Polyphonic synthesizer LV2 plugin"
+arch=('i686' 'x86_64')
+url="http://deliriumdecrypted.blogspot.com/"
+license=('GPL')
+groups=('lv2-plugins')
+depends=('gtkmm' 'lv2')
+makedepends=('python2')
+source=("http://downloads.sourceforge.net/project/${pkgname/-lv2}/$pkgname-v$pkgver.tar.gz")
+md5sums=('b4f058c30b3b218bd21dbaa04430dd8b')
+
+build() {
+ cd "$srcdir/$pkgname-v$pkgver"
+ python2 waf configure --prefix=/usr
+ python2 waf
+}
+
+package() {
+ cd "$srcdir/$pkgname-v$pkgver"
+ DESTDIR="$pkgdir/" python2 waf install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/trisquel-themes/PKGBUILD b/pcr/trisquel-themes/PKGBUILD
new file mode 100644
index 000000000..69aad1870
--- /dev/null
+++ b/pcr/trisquel-themes/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+
+pkgname=trisquel-themes
+pkgver=6.0
+_miniver="5.99-3"
+pkgrel=2
+pkgdesc="Themes from Trisquel, including GTK2, Metacity, XFWM and Openbox themes"
+arch=('any')
+url=http://trisquel.info
+license=('GPL')
+depends=()
+optdepends=('gtk-engine-equinox: for Trisquel GTK2 theme')
+source=(http://archive.trisquel.info/trisquel/pool/main/t/trisquel-gtk-theme/trisquel-gtk-theme_${pkgver}.tar.gz
+http://archive.trisquel.info/trisquel/pool/main/t/trisquel-mini-data/trisquel-mini-data_${_miniver}.tar.gz)
+md5sums=('8d81a535adade0e52a0c584c07f87a2a'
+ 'e448057b6e2d933916511c2c3d3585e1')
+
+build() {
+ :
+}
+
+package() {
+ install -d ${pkgdir}/usr/share/themes
+
+ for trisquelsrc in trisquel-gtk-theme/data trisquel-mini-data; do
+ cp -R ${srcdir}/${trisquelsrc}/usr/share/themes/* \
+ ${pkgdir}/usr/share/themes/
+ done
+}
diff --git a/pcr/trytond-account-invoice/PKGBUILD b/pcr/trytond-account-invoice/PKGBUILD
new file mode 100644
index 000000000..d19d696bb
--- /dev/null
+++ b/pcr/trytond-account-invoice/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-account-invoice
+_pkgname=trytond_account_invoice
+pkgver=3.0.1
+_pkgdir=3.0
+pkgrel=1
+pkgdesc="The account_invoice module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0' 'trytond-account>=3.0' 'trytond-account-product>=3.0' 'trytond-company>=3.0' 'trytond-currency>=3.0' 'trytond-party>=3.0' 'trytond-product>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("161e3c2e2d9a0601c22b785dad0a6983")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-account-product/PKGBUILD b/pcr/trytond-account-product/PKGBUILD
new file mode 100644
index 000000000..07ba82b70
--- /dev/null
+++ b/pcr/trytond-account-product/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-account-product
+_pkgname=trytond_account_product
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="The account_product module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0' 'trytond-account>=3.0' 'trytond-company>=3.0' 'trytond-product>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("16b9dee1238310a9809fcdef64cbf8a8")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-account/PKGBUILD b/pcr/trytond-account/PKGBUILD
new file mode 100644
index 000000000..65389ad40
--- /dev/null
+++ b/pcr/trytond-account/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-account
+_pkgname=trytond_account
+pkgver=3.0.1
+_pkgdir=3.0
+pkgrel=2
+pkgdesc="The account module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0' 'trytond-company>=3.0' 'trytond-currency>=3.0' 'trytond-party>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("810d4f5babe89dd401a9e5439e678812")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-calendar/PKGBUILD b/pcr/trytond-calendar/PKGBUILD
new file mode 100644
index 000000000..034b3aac8
--- /dev/null
+++ b/pcr/trytond-calendar/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-calendar
+_pkgname=trytond_calendar
+pkgver=3.0.2
+_pkgdir=3.0
+pkgrel=1
+pkgdesc="The calendar module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("c3bcd829ac048be07f304177aed0ee4c")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-company/PKGBUILD b/pcr/trytond-company/PKGBUILD
new file mode 100644
index 000000000..a0faaaaf1
--- /dev/null
+++ b/pcr/trytond-company/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-company
+_pkgname=trytond_company
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="The company module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0' 'trytond-currency>=3.0' 'trytond-party>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("87623bc65e2c629c0c5541877bfec8cb")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-country/PKGBUILD b/pcr/trytond-country/PKGBUILD
new file mode 100644
index 000000000..521738879
--- /dev/null
+++ b/pcr/trytond-country/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-country
+_pkgname=trytond_country
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="The country module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("c365bd0ac6e04a88427cb5366c1ce493")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-currency/PKGBUILD b/pcr/trytond-currency/PKGBUILD
new file mode 100644
index 000000000..caa38fc4a
--- /dev/null
+++ b/pcr/trytond-currency/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-currency
+_pkgname=trytond_currency
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="The currency module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("5507619d11d186fc041d1de7c0eea012")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-party/PKGBUILD b/pcr/trytond-party/PKGBUILD
new file mode 100644
index 000000000..91ffd4e54
--- /dev/null
+++ b/pcr/trytond-party/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-party
+_pkgname=trytond_party
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="The party module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0' 'trytond-country>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("43c6d17fbe723beec0339da27f3e188e")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-product/PKGBUILD b/pcr/trytond-product/PKGBUILD
new file mode 100644
index 000000000..03c58c676
--- /dev/null
+++ b/pcr/trytond-product/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-product
+_pkgname=trytond_product
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="The product module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("756dabade95f67f49a253af1bd5513a6")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-stock-lot/PKGBUILD b/pcr/trytond-stock-lot/PKGBUILD
new file mode 100644
index 000000000..0bad5fa9c
--- /dev/null
+++ b/pcr/trytond-stock-lot/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-stock-lot
+_pkgname=trytond_stock_lot
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="The stock_lot module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0' 'trytond-product>=3.0' 'trytond-stock>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("b8424f738dc5e98d0a1de8643315e605")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond-stock/PKGBUILD b/pcr/trytond-stock/PKGBUILD
new file mode 100644
index 000000000..44883e1ce
--- /dev/null
+++ b/pcr/trytond-stock/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond-stock
+_pkgname=trytond_stock
+pkgver=3.0.1
+_pkgdir=3.0
+pkgrel=1
+pkgdesc="The stock module of the Tryton application platform"
+arch=('any')
+url='http://www.tryton.org/'
+license=('GPL3')
+groups=('trytond-modules')
+depends=('trytond>=3.0' 'trytond-company>=3.0' 'trytond-currency>=3.0' 'trytond-party>=3.0' 'trytond-product>=3.0')
+makedepends=('python2-distribute')
+source=("http://downloads.tryton.org/$_pkgdir/$_pkgname-$pkgver.tar.gz")
+md5sums=("db1ae125ce3101bf43d11cc39d44bf00")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/trytond/PKGBUILD b/pcr/trytond/PKGBUILD
new file mode 100644
index 000000000..35ee42068
--- /dev/null
+++ b/pcr/trytond/PKGBUILD
@@ -0,0 +1,36 @@
+# Contributor: Florian Walch <florian.walch@gmx.at>
+# Maintainer: Robin Baumgartner <robin@baumgartners.ch>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+pkgname=trytond
+pkgver=3.0.0
+_pkgdir=3.0
+pkgrel=3
+pkgdesc="A three-tiers high-level general purpose application platform (server application)"
+arch=('any')
+url="http://www.tryton.org/"
+license=('GPL3')
+depends=('python2>=2.7' 'python2-lxml' 'python2-relatorio>=0.6.0'
+ 'python2-genshi>=0.7' 'python2-polib' 'python2-sql')
+optdepends=('python2-psycopg2: support for PostgreSQL database'
+ 'python-pywebdav: support for WebDAV feature'
+ 'pydot: support for displaying workflow graphs'
+ 'python-pytz: timezone support'
+ 'pyopenssl: support for SSL connection')
+makedepends=('python2-distribute')
+install="trytond.install"
+source=("http://downloads.tryton.org/$_pkgdir/$pkgname-$pkgver.tar.gz"
+ 'trytond.service')
+md5sums=('812daa29409881adc4001c1c810bc8e8'
+ 'b1535a8528dfd8f655624bf6faea6985')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+ install -D -m644 etc/trytond.conf $pkgdir/etc/trytond.conf
+ install -D -m755 $srcdir/trytond.service $pkgdir/usr/lib/systemd/system/trytond.service
+}
diff --git a/pcr/trytond/trytond.install b/pcr/trytond/trytond.install
new file mode 100644
index 000000000..46d6daaba
--- /dev/null
+++ b/pcr/trytond/trytond.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo
+ echo "Adding tryton group... "
+ groupadd tryton
+ echo
+ echo "Adding tryton user... "
+ useradd -c "Tryton Server Daemon" -g tryton -s /bin/false tryton
+
+ echo "Note:"
+ echo "==> Please don't forget to configure your PostgreSQL database for the program."
+}
+
+post_remove() {
+ echo "Removing tryton system user... "
+ userdel tryton && echo "trytond [done]"
+}
+
+op=$1
+shift
+[ "$(type -t "$op")" = "function" ] && $op "$@"
diff --git a/pcr/trytond/trytond.service b/pcr/trytond/trytond.service
new file mode 100644
index 000000000..7d85691b3
--- /dev/null
+++ b/pcr/trytond/trytond.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Tryton Server Daemon
+
+[Service]
+Type=simple
+User=tryton
+ExecStart=/usr/bin/trytond
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/ttf-asana-math/PKGBUILD b/pcr/ttf-asana-math/PKGBUILD
new file mode 100644
index 000000000..8b0169d83
--- /dev/null
+++ b/pcr/ttf-asana-math/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: GordonGR <gordongr@freemail.gr>
+# Maintainer (Parabola): Alon Ivtsan <alonivtsan@lavabit.com>
+# taken from https://aur.archlinux.org/packages/ttf-asana-math/
+
+pkgname=ttf-asana-math
+pkgver=000.951
+pkgrel=2
+license=('Custom: OFL')
+depends=('fontconfig' 'xorg-font-utils')
+pkgdesc="A font to typeset maths in Xe(La)TeX and Lua(La)TeX by Apostolos Syropoulos"
+arch=('any')
+url="http://www.ctan.org/pkg/asana-math"
+source=("ftp://ftp.rrzn.uni-hannover.de/pub/mirror/tex-archive/fonts/Asana-Math/Asana-Math.otf"
+"ftp://ftp.rrzn.uni-hannover.de/pub/mirror/tex-archive/fonts/Asana-Math/Asana-Math.ttf"
+"http://scripts.sil.org/cms/scripts/render_download.php?&format=file&media_id=OFL_plaintext&filename=OFL.txt")
+install=$pkgname.install
+
+package()
+{
+ mkdir -p $pkgdir/usr/share/fonts/TTF
+ mkdir -p $pkgdir/usr/share/fonts/OTF
+ cp *.ttf $pkgdir/usr/share/fonts/TTF
+ cp *.otf $pkgdir/usr/share/fonts/OTF
+ mkdir -p $pkgdir/usr/share/licenses/custom/ttf-asana-math/
+ mv 'render_download.php?&format=file&media_id=OFL_plaintext&filename=OFL.txt' LICENSE
+ cp LICENSE $pkgdir/usr/share/licenses/custom/ttf-asana-math/
+}
+md5sums=('d9f9faa296a12a14354d9e83c90f167b'
+ 'd7a05892aeed8bbe4b410bf845ce9882'
+ '6ed93967ff0dc6dd9c8d31c17f817a06')
diff --git a/pcr/ttf-asana-math/ttf-asana-math.install b/pcr/ttf-asana-math/ttf-asana-math.install
new file mode 100644
index 000000000..506595662
--- /dev/null
+++ b/pcr/ttf-asana-math/ttf-asana-math.install
@@ -0,0 +1,11 @@
+ post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -fs >/dev/null
+ mkfontscale /usr/share/fonts/TTF /usr/share/fonts/Type1
+ mkfontdir /usr/share/fonts/TTF /usr/share/fonts/Type1
+ echo "done"
+}
+
+post_upgrade() {
+ post_install
+} \ No newline at end of file
diff --git a/pcr/ttf-beteckna/PKGBUILD b/pcr/ttf-beteckna/PKGBUILD
new file mode 100644
index 000000000..3bbe41397
--- /dev/null
+++ b/pcr/ttf-beteckna/PKGBUILD
@@ -0,0 +1,22 @@
+# From https://aur.archlinux.org/packages.php?ID=22483
+# Maintainer: TDY <tdy@gmx.com>
+
+pkgname=ttf-beteckna
+pkgver=0.4
+pkgrel=1.1
+pkgdesc="A geometric sans serif typeface inspired by the popular Futura"
+arch=('any')
+url="http://gnu.ethz.ch/linuks.mine.nu/beteckna/"
+license=('GPL')
+depends=('fontconfig' 'xorg-font-utils')
+makedepends=('fontforge')
+install=ttf.install
+source=(http://gnu.ethz.ch/linuks.mine.nu/${pkgname/*-}/${pkgname/*-}-$pkgver.tar.gz)
+md5sums=('01c12138e0f689f4acdacb105f4350a7')
+
+build() {
+ cd "$srcdir/${pkgname/*-}-$pkgver"
+ install -dm755 "$pkgdir/usr/share/fonts/TTF"
+ fontforge -script sfd2ttf.ff *.sfd &> /dev/null || return 1
+ install -Dm644 *.ttf "$pkgdir/usr/share/fonts/TTF"
+}
diff --git a/pcr/ttf-beteckna/ttf.install b/pcr/ttf-beteckna/ttf.install
new file mode 100644
index 000000000..33b7d6549
--- /dev/null
+++ b/pcr/ttf-beteckna/ttf.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo -n "==> Rebuilding font cache... "
+ fc-cache -f &> /dev/null
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+ echo "done"
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/pcr/ttf-font-awesome/PKGBUILD b/pcr/ttf-font-awesome/PKGBUILD
new file mode 100644
index 000000000..abb63b8a6
--- /dev/null
+++ b/pcr/ttf-font-awesome/PKGBUILD
@@ -0,0 +1,19 @@
+#Contributer: UNKNOWN o_O
+#Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io>
+
+pkgname=ttf-font-awesome
+pkgver=3.2.1
+pkgrel=2
+pkgdesc="Iconic font designed for Bootstrap"
+url="http://fortawesome.github.io/Font-Awesome/"
+license=('CCPL')
+depends=('fontconfig' 'xorg-font-utils')
+options=("!strip")
+install=$pkgname.install
+arch=('any')
+source=('http://fortawesome.github.io/Font-Awesome/assets/font-awesome.zip')
+
+package() {
+ install -d "$pkgdir/usr/share/fonts/TTF"
+ cp -dpr --no-preserve=ownership "$srcdir/font-awesome/font/"*.ttf "$pkgdir/usr/share/fonts/TTF/"
+}
diff --git a/pcr/ttf-font-awesome/ttf-font-awesome.install b/pcr/ttf-font-awesome/ttf-font-awesome.install
new file mode 100644
index 000000000..56632d242
--- /dev/null
+++ b/pcr/ttf-font-awesome/ttf-font-awesome.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo -n "Updating font cache..."
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/pcr/ttf-roboto/PKGBUILD b/pcr/ttf-roboto/PKGBUILD
new file mode 100644
index 000000000..9085985d7
--- /dev/null
+++ b/pcr/ttf-roboto/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Michael Düll <mail@akurei.me> PGP-Key: D6777412 - Fingerprint: C972 8B50 9411 BBE1 5CA5 9906 5103 71F3 D677 7412
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=ttf-roboto
+pkgver=20121102
+pkgrel=1
+pkgdesc='The new system font of Android 4, Codename "Ice Cream Sandwich".'
+arch=('any')
+license=('APACHE')
+url="https://developer.android.com/design/style/typography.html"
+depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils')
+install=$pkgname.install
+source=(
+ "https://developer.android.com/downloads/design/Roboto_Hinted_20120823.zip"
+)
+
+package()
+{
+ install -d $pkgdir/usr/share/fonts/TTF/
+ install -m644 *.ttf $pkgdir/usr/share/fonts/TTF/
+ install -d $pkgdir/usr/share/licenses/$pkgname/
+ install -m644 $srcdir/COPYING.txt $pkgdir/usr/share/licenses/$pkgname/
+}
+
+sha512sums=('ce4af34d0a23dd4076d033dcb03f17335eb83317da72b45257291be3aa34ff589405bfdfb768faca769d401a9091b63e5f195704ed69874d7d17289ca436a785')
diff --git a/pcr/ttf-roboto/ttf-roboto.install b/pcr/ttf-roboto/ttf-roboto.install
new file mode 100644
index 000000000..7dde94b45
--- /dev/null
+++ b/pcr/ttf-roboto/ttf-roboto.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/pcr/twinkle/PKGBUILD b/pcr/twinkle/PKGBUILD
new file mode 100644
index 000000000..b9e8fc537
--- /dev/null
+++ b/pcr/twinkle/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 68598 2012-03-29 08:03:13Z arodseth $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+
+pkgname=twinkle
+pkgver=1.4.2
+pkgrel=20
+pkgdesc="Softphone for voice over IP and IM communication using SIP"
+arch=('x86_64' 'i686')
+url="http://www.twinklephone.com/"
+license=('GPL')
+depends=('file' 'speex' 'boost-libs' 'libsndfile' 'qt3' 'libzrtpcpp'
+'commoncpp2' 'libxml2')
+makedepends=('pkg-config' 'boost')
+source=("http://www.xs4all.nl/~mfnboer/$pkgname/download/$pkgname-$pkgver.tar.gz"
+ twinkle-1.4.2-ccrtp.patch)
+md5sums=('d70c8972f296ffd998c7fb698774705b'
+ '934f59ff60a8ae29a152feb8bf131ae2')
+
+build() {
+ cd "$srcdir"
+ patch -p0 < ./twinkle-1.4.2-ccrtp.patch || return 1
+
+ cd "$pkgname-$pkgver"
+ aclocal
+ autoconf
+ automake -a
+ export QTDIR=/usr/lib/qt3
+ export PATH=$QTDIR/bin:$PATH
+ CPPFLAGS="$CPPFLAGS -I/usr/include/qt3" \
+ ./configure --prefix=/usr \
+ --without-kde \
+ --with-speex \
+ --without-ilbc \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ install -Dm644 "$pkgdir/usr/share/twinkle/twinkle48.png" \
+ "$pkgdir/usr/share/pixmaps/twinkle.png"
+ install -Dm644 twinkle.desktop \
+ "$pkgdir/usr/share/applications/twinkle.desktop"
+}
diff --git a/pcr/twinkle/twinkle-1.4.2-ccrtp.patch b/pcr/twinkle/twinkle-1.4.2-ccrtp.patch
new file mode 100644
index 000000000..fdb5f6260
--- /dev/null
+++ b/pcr/twinkle/twinkle-1.4.2-ccrtp.patch
@@ -0,0 +1,24 @@
+diff -pruN twinkle-1.4.2-o/configure.in twinkle-1.4.2/configure.in
+--- twinkle-1.4.2-o/configure.in 2009-02-24 11:49:20.000000000 -0800
++++ twinkle-1.4.2/configure.in 2012-05-19 09:20:51.151778516 -0700
+@@ -66,7 +66,7 @@ fi
+
+ export PKG_CONFIG_PATH
+
+-PKG_CHECK_MODULES(CCRTP, libccrtp1 >= 1.6.0)
++PKG_CHECK_MODULES(CCRTP, libccrtp >= 2.0.0)
+
+ PKG_CHECK_MODULES(XML2, libxml-2.0)
+ # AC_CHECK_HEADER(libxml/tree.h, [],
+diff -pruN twinkle-1.4.2-o/src/log.cpp twinkle-1.4.2/src/log.cpp
+--- twinkle-1.4.2-o/src/log.cpp 2009-01-18 06:35:28.000000000 -0800
++++ twinkle-1.4.2/src/log.cpp 2012-05-19 09:21:11.071594114 -0700
+@@ -161,7 +161,7 @@ void t_log::write_header(const string &f
+
+ gettimeofday(&t, NULL);
+ date = t.tv_sec;
+- localtime_r(&date, &tm);
++ ::localtime_r(&date, &tm);
+
+ *log_stream << "+++ ";
+ *log_stream << tm.tm_mday;
diff --git a/pcr/ubus/PKGBUILD b/pcr/ubus/PKGBUILD
new file mode 100644
index 000000000..80e14eaf0
--- /dev/null
+++ b/pcr/ubus/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+pkgname=ubus
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="OpenWRT's RPC client utility"
+arch=('i686' 'mips64el')
+url="https://openwrt.org"
+license=('LGPL2.1')
+depends=('libubox' 'json-c')
+makedepends=('git' 'cmake' 'lua51')
+source=(git://nbd.name/luci2/ubus.git)
+md5sums=(SKIP)
+
+pkgver() {
+ cd ${srcdir}/${pkgname}
+ local ver="$(git describe --long --tags)"
+ printf "%s" "${ver//-/.}"
+}
+
+build() {
+ cd ${srcdir}/${pkgname}
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ make DESTDIR=${pkgdir}/ install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/uci/PKGBUILD b/pcr/uci/PKGBUILD
new file mode 100644
index 000000000..80194f162
--- /dev/null
+++ b/pcr/uci/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+pkgname=uci
+pkgver=v0.8.0.43.g2fcc6d7
+pkgrel=2
+pkgdesc="OpenWRT's Unified Configuration Interface"
+arch=('i686' 'x86_64' 'mips64el')
+url="https://openwrt.org"
+license=('GPL2')
+depends=('libubox')
+makedepends=('git' 'cmake' 'lua51')
+source=(git://nbd.name/uci.git)
+md5sums=(SKIP)
+
+pkgver() {
+ cd ${srcdir}/${pkgname}
+ local ver="$(git describe --long --tags)"
+ printf "%s" "${ver//-/.}"
+}
+
+build() {
+ cd ${srcdir}/${pkgname}
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ make DESTDIR=${pkgdir}/ install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/uci/uci-0.8.0-lua5.1.patch b/pcr/uci/uci-0.8.0-lua5.1.patch
new file mode 100644
index 000000000..d3e486f87
--- /dev/null
+++ b/pcr/uci/uci-0.8.0-lua5.1.patch
@@ -0,0 +1,31 @@
+--- uci-0.8.0.orig/lua/CMakeLists.txt 2011-07-19 15:39:56.000000000 -0500
++++ uci-0.8.0/lua/CMakeLists.txt 2013-02-12 21:16:02.583984374 -0500
+@@ -4,7 +4,18 @@
+
+ SET(CMAKE_INSTALL_PREFIX /)
+
+-ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -I..)
++IF(NOT LUA_CFLAGS)
++ FIND_PROGRAM(PKG_CONFIG pkg-config)
++ IF(PKG_CONFIG)
++ EXECUTE_PROCESS(
++ COMMAND pkg-config --silence-errors --cflags lua5.1
++ OUTPUT_VARIABLE LUA_CFLAGS
++ OUTPUT_STRIP_TRAILING_WHITESPACE
++ )
++ ENDIF()
++ENDIF()
++
++ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -I.. ${LUA_CFLAGS})
+ LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/..)
+
+ IF(APPLE)
+@@ -13,7 +24,7 @@
+
+ IF(NOT LUAPATH)
+ EXECUTE_PROCESS(
+- COMMAND lua -e "for k in string.gmatch(package.cpath .. \";\", \"([^;]+)/..so;\") do if k:sub(1,1) == \"/\" then print(k) break end end"
++ COMMAND lua5.1 -e "for k in string.gmatch(package.cpath .. \";\", \"([^;]+)/..so;\") do if k:sub(1,1) == \"/\" then print(k) break end end"
+ OUTPUT_VARIABLE LUAPATH
+ RESULT_VARIABLE LUA_CHECK_RES
+ OUTPUT_STRIP_TRAILING_WHITESPACE
diff --git a/pcr/uftp/PKGBUILD b/pcr/uftp/PKGBUILD
new file mode 100644
index 000000000..3aef7d164
--- /dev/null
+++ b/pcr/uftp/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Markus Jochim <ich@markusjochim.de>
+pkgname=uftp
+pkgver=4.0
+pkgrel=1
+pkgdesc="Multicast FTP software"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('openssl')
+url="http://www.tcnj.edu/~bush/uftp.html"
+license=('GPL')
+source=(http://www.tcnj.edu/~bush/downloads/${pkgname}-${pkgver}.tar)
+md5sums=('475918421c000b59bfced1a3c21e3035')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}/"
+ make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}/"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/pcr/ulogd2/PKGBUILD b/pcr/ulogd2/PKGBUILD
new file mode 100644
index 000000000..c00c462e5
--- /dev/null
+++ b/pcr/ulogd2/PKGBUILD
@@ -0,0 +1,42 @@
+# Contributor: Andrzej Boreczko <0rion@wp.pl>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=ulogd2
+pkgver=2.0.0
+pkgrel=6
+pkgdesc="Userspace Packet Logging for netfilter"
+arch=(i686 x86_64)
+url="http://www.netfilter.org/projects/ulogd/index.html"
+license=('GPL')
+depends=('libnetfilter_conntrack>=1.0.0' 'libnetfilter_log>=1.0.0' 'libnfnetlink>=1.0.0' 'libmnl>=1.0.0' 'libnetfilter_acct>=1.0.0')
+optdepends=('ulogd2_output_mysql: MySQL output' 'ulogd2_output_pgsql: PostgreSQL output' \
+ 'ulogd2_output_sqlite3: Sqlite3 output' 'ulogd2_output_pcap: libpcap-style logfiles output' \
+ 'ulogd2_output_dbi: Libdbi framework output')
+conflicts=('ulogd>1.24')
+backup=('etc/ulogd2.conf')
+source=("http://www.netfilter.org/projects/ulogd/files/ulogd-${pkgver}.tar.bz2" 'ulogd2' 'logrotate')
+
+build() {
+ export MAKEFLAGS="-j1"
+ cd $startdir/src/ulogd-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --with-mysql \
+ --with-pgsql --with-dbi --program-suffix=2
+ make || return 1
+}
+
+package() {
+ cd $startdir/src/ulogd-${pkgver}
+ make DESTDIR=$startdir/pkg install || return 1
+ rm $startdir/pkg/usr/lib/ulogd/*.la
+ [ -f $startdir/pkg/usr/lib/ulogd/ulogd_output_MYSQL.so ] && rm $startdir/pkg/usr/lib/ulogd/ulogd_output_MYSQL.*
+ [ -f $startdir/pkg/usr/lib/ulogd/ulogd_output_PGSQL.so ] && rm $startdir/pkg/usr/lib/ulogd/ulogd_output_PGSQL.*
+ [ -f $startdir/pkg/usr/lib/ulogd/ulogd_output_SQLITE3.so ] && rm $startdir/pkg/usr/lib/ulogd/ulogd_output_SQLITE3.*
+ [ -f $startdir/pkg/usr/lib/ulogd/ulogd_output_PCAP.so ] && rm $startdir/pkg/usr/lib/ulogd/ulogd_output_PCAP.*
+ [ -f $startdir/pkg/usr/lib/ulogd/ulogd_output_DBI.so ] && rm $startdir/pkg/usr/lib/ulogd/ulogd_output_DBI.*
+ install -D -m755 $startdir/src/ulogd2 $startdir/pkg/etc/rc.d/ulogd2
+ sed 's/\/var\/log\/ulogd.log/\/var\/log\/ulogd2.log/' ulogd.conf > $startdir/pkg/etc/ulogd2.conf
+ mkdir -p $startdir/pkg/usr/share/ulogd2
+ install -m644 doc/*.table $startdir/pkg/usr/share/ulogd2
+ install -m644 doc/*.sql $startdir/pkg/usr/share/ulogd2
+ install -D -m644 ${srcdir}/logrotate $pkgdir/etc/logrotate.d/ulogd2
+}
diff --git a/pcr/ulogd2/logrotate b/pcr/ulogd2/logrotate
new file mode 100644
index 000000000..7a53c4d52
--- /dev/null
+++ b/pcr/ulogd2/logrotate
@@ -0,0 +1,10 @@
+/var/log/ulogd2.log {
+ missingok
+ notifempty
+ sharedscripts
+ create 0640 root root
+
+ postrotate
+ [ -e /var/run/ulogd2.pid ] && /etc/rc.d/ulogd2 restart > /dev/null
+ endscript
+}
diff --git a/pcr/ulogd2/ulogd2 b/pcr/ulogd2/ulogd2
new file mode 100644
index 000000000..09ef2756f
--- /dev/null
+++ b/pcr/ulogd2/ulogd2
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof /usr/sbin/ulogd2
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting ulogd2"
+
+ [ -f /var/run/ulogd2.pid ] && rm -f /var/run/ulogd2.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ /usr/sbin/ulogd2 -d -c /etc/ulogd2.conf
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/ulogd2.pid
+ add_daemon ulogd2
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping ulogd2"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ulogd2.pid &> /dev/null
+ rm_daemon ulogd2
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/pcr/ums/PKGBUILD b/pcr/ums/PKGBUILD
new file mode 100644
index 000000000..329120adb
--- /dev/null
+++ b/pcr/ums/PKGBUILD
@@ -0,0 +1,63 @@
+# Contributor: Red Squirrel <iam at redsquirrel87 dot com>
+# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@xload.io>
+# Based on PMS PKGBUILD
+
+pkgname=ums
+pkgver=3.4.0
+pkgrel=1
+pkgdesc="Universal Media Server: a DLNA-compliant UPnP Media Server."
+arch=('i686' 'x86_64')
+url="http://www.universalmediaserver.com/"
+license=('GPL2')
+depends=('mplayer' 'ffmpeg' 'mencoder' 'libmediainfo' 'java-runtime')
+makedepends=("unzip")
+[ "$CARCH" = "i686" ] && \
+optdepends=("vlc: For Internet video/audio")
+[ "$CARCH" = "x86_64" ] && \
+optdepends=("vlc: Internet video/audio support"
+ "lib32-gcc-libs: tsMuxeR support"
+ "lib32-glibc: tsMuxeR support")
+backup=(opt/ums/UMS.conf \
+ opt/ums/WEB.conf)
+source=("http://downloads.sourceforge.net/project/unimediaserver/Official%20Releases/Linux/UMS-$pkgver.tgz")
+
+package() {
+ mkdir -p $pkgdir/opt/ums
+ mkdir $pkgdir/opt/ums/database
+ mkdir -p $pkgdir/usr/bin
+ chmod -R 755 $srcdir/$pkgname-$pkgver/plugins $srcdir/$pkgname-$pkgver/documentation
+ cp -r $srcdir/$pkgname-$pkgver/* $pkgdir/opt/ums/
+ chmod +x $pkgdir/opt/ums/UMS.sh \
+ $pkgdir/opt/ums/linux/tsMuxeR
+ touch $pkgdir/opt/ums/UMS.conf
+ touch $pkgdir/opt/ums/debug.log
+ chgrp users $pkgdir/opt/ums/UMS.conf \
+ $pkgdir/opt/ums/WEB.conf \
+ $pkgdir/opt/ums/debug.log \
+ $pkgdir/opt/ums/database
+
+ chmod g+w $pkgdir/opt/ums/UMS.conf \
+ $pkgdir/opt/ums/WEB.conf \
+ $pkgdir/opt/ums/debug.log \
+ $pkgdir/opt/ums/database
+
+ unzip -q -u $srcdir/$pkgname-$pkgver/ums.jar -d ums_jar
+ install -d -m 755 $pkgdir/usr/share/pixmaps
+ install -D -m 644 $srcdir/ums_jar/resources/images/logo.png $pkgdir/usr/share/pixmaps/ums.png
+
+ cat > ums.desktop << EoF
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=Universal Media Server
+Comment=A DLNA-compliant UPnP Media Server.
+Exec=/opt/ums/UMS.sh
+Icon=ums.png
+Terminal=false
+Type=Application
+Categories=Java;Multimedia;AudioVideo;
+EoF
+
+ install -D -m 644 $srcdir/ums.desktop $pkgdir/usr/share/applications/ums.desktop
+
+}
diff --git a/pcr/unittestpp/PKGBUILD b/pcr/unittestpp/PKGBUILD
new file mode 100644
index 000000000..3918f98a2
--- /dev/null
+++ b/pcr/unittestpp/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Jorge Araya Navarro <elcorreo@deshackra.com>
+# Contributor: Piotr Beling <qwak@w8.pl>
+# Contributor: Vianney le Clément <vleclement AT gmail · com>
+pkgname=unittestpp
+pkgver=1.4
+pkgrel=3
+pkgdesc="A lightweight unit testing framework for C++"
+arch=('i686' 'x86_64')
+url="http://unittest-cpp.sourceforge.net/"
+depends=('gcc-libs')
+source=("http://downloads.sourceforge.net/project/unittest-cpp/UnitTest%2B%2B/$pkgver/unittest-cpp-${pkgver}.zip")
+sha1sums=('dad944159e2e135aea74039987490eaaee00f2ad')
+license=('MIT')
+
+build() {
+ cd "$srcdir/UnitTest++"
+ make all
+}
+
+package() {
+ cd "$srcdir/UnitTest++"
+
+ install -dm755 "$pkgdir/usr/include/unittest++/Posix"
+ install -m644 src/*.h "$pkgdir/usr/include/unittest++"
+ install -m644 src/Posix/*.h "$pkgdir/usr/include/unittest++/Posix"
+
+ install -dm755 "$pkgdir/usr/lib"
+ install -m644 libUnitTest++.a "$pkgdir/usr/lib"
+
+ install -dm755 "$pkgdir/usr/share/licenses/unittest++"
+ install -m644 COPYING "$pkgdir/usr/share/licenses/unittest++/LICENSE"
+ install -dm755 "$pkgdir/usr/share/doc/unittest++"
+ install -m644 README "$pkgdir/usr/share/doc/unittest++/README"
+ install -m644 docs/UnitTest++.html "$pkgdir/usr/share/doc/unittest++/UnitTest++.html"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/upp-svn/GCC.bm b/pcr/upp-svn/GCC.bm
new file mode 100644
index 000000000..bfcb09c1d
--- /dev/null
+++ b/pcr/upp-svn/GCC.bm
@@ -0,0 +1,23 @@
+BUILDER = "GCC";
+COMPILER = "";
+DEBUG_INFO = "2";
+DEBUG_BLITZ = "1";
+DEBUG_LINKMODE = "1";
+DEBUG_OPTIONS = "-O0";
+DEBUG_FLAGS = "";
+DEBUG_LINK = "";
+RELEASE_BLITZ = "0";
+RELEASE_LINKMODE = "1";
+RELEASE_OPTIONS = "-O3 -ffunction-sections -fdata-sections";
+RELEASE_SIZE_OPTIONS = "-Os -finline-limit=20 -ffunction-sections -fdata-sections";
+RELEASE_FLAGS = "";
+RELEASE_LINK = "-Wl,--gc-sections";
+DEBUGGER = "gdb";
+PATH = "";
+INCLUDE = "/usr/include/freetype2;/usr/include/gtk-2.0;/usr/include/glib-2.0;/usr/lib/glib-2.0/include;/usr/lib/gtk-2.0/include;/usr/include/cairo;/usr/include/pango-1.0;/usr/include/atk-1.0;/usr/X11R6/include;/usr/X11R6/include/freetype2;/usr/X11R6/include/gtk-2.0;/usr/X11R6/include/glib-2.0;/usr/X11R6/lib/glib-2.0/include;/usr/X11R6/lib/gtk-2.0/include;/usr/X11R6/include/cairo;/usr/X11R6/include/pango-1.0;/usr/X11R6/include/atk-1.0;/usr/include/c++/4.5.0;/usr/include/c++/4.5.0/i686-pc-linux-gnu;/usr/include/webkit-1.0;/usr/include/libsoup-2.4;/usr/include/libxml2";
+LIB = "/usr/X11R6/lib;/usr/lib;/usr/local/lib";
+REMOTE_HOST = "";
+REMOTE_OS = "";
+REMOTE_TRANSFER = "";
+REMOTE_MAP = "";
+LINKMODE_LOCK = "0";
diff --git a/pcr/upp-svn/PKGBUILD b/pcr/upp-svn/PKGBUILD
new file mode 100644
index 000000000..1a5a50d4b
--- /dev/null
+++ b/pcr/upp-svn/PKGBUILD
@@ -0,0 +1,67 @@
+# Contributor: Jan Dolinar <dolik.rce@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=upp-svn
+pkgver=5554
+pkgrel=1
+pkgdesc="Radical and innovative multiplatform C++ framework (known as U++)"
+arch=('any')
+url="http://www.ultimatepp.org"
+license=('BSD')
+groups=()
+depends=('gcc-libs' 'libpng' 'libxft' 'theide')
+makedepends=('subversion')
+optdepends=('libnotify: Enables compiling gtk-styled apps')
+provides=('upp')
+conflicts=('upp')
+replaces=()
+backup=()
+options=(emptydirs !strip)
+install=
+source=('GCC.bm' 'license.txt')
+noextract=()
+
+_svntrunk="http://upp-mirror.googlecode.com/svn/trunk/"
+# many users have already working copy of U++ on their system, so they
+# can use it for building (e.g. to save network traffic or to speed up
+# things) by setting $UPPSVN environment variable
+if [ "x$UPPSVN" != "x" ]
+then
+ _svnmod=$UPPSVN
+else
+ _svnmod="$srcdir/uppsvn"
+fi
+
+build() {
+ cd "$srcdir"
+ #get sources
+ msg "Downloading sources from svn..."
+ for n in bazaar reference examples tutorial uppsrc
+ do
+ msg2 "$n"
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod/$n && svn up -r $pkgver)
+ else
+ svn co $_svntrunk$n/ --config-dir ./ -r $pkgver $_svnmod/$n
+ fi
+ done
+ msg "SVN checkout done (or server timeout)"
+}
+
+package() {
+ #copy source files
+ mkdir -p "$pkgdir/usr/share/upp"
+ msg2 "Copying the source codes..."
+ cp -r "$_svnmod/"{bazaar,examples,reference,tutorial,uppsrc} "$pkgdir/usr/share/upp/"
+ echo "#define IDE_VERSION \"$pkgver-Arch-$(uname -m)\"" > "$pkgdir/usr/share/upp/uppsrc/ide/version.h"
+ msg2 "Removing the .svn directories..."
+ find "$pkgdir/" -type d -name ".svn" -exec rm -rf {} \; -prune
+ #license
+ mkdir -p "$pkgdir/usr/share/licenses/upp-svn"
+ cp "$srcdir/license.txt" "$pkgdir/usr/share/licenses/upp-svn"
+ #build method
+ cp "$srcdir/GCC.bm" "$pkgdir/usr/share/upp"
+ #fix permissions
+ msg2 "Setting permissions..."
+ find "$pkgdir/usr/" -type f -exec chown root:root {} \; -exec chmod 644 {} \;
+}
diff --git a/pcr/upp-svn/license.txt b/pcr/upp-svn/license.txt
new file mode 100644
index 000000000..6cea058a6
--- /dev/null
+++ b/pcr/upp-svn/license.txt
@@ -0,0 +1,9 @@
+Copyright (C) 2010 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS)
+
+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 of the Software and its Copyright notices. In addition publicly documented acknowledgment must be given that this software has been used if no source code of this software is made available publicly. This includes
+acknowledgments in either Copyright notices, Manuals, Publicity and Marketing documents or any documentation provided with any product containing this software. This License does not apply to any software that links to the libraries provided by this software (statically or dynamically), but only to
+the software provided.
+
+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/pcr/vcstools/PKGBUILD b/pcr/vcstools/PKGBUILD
new file mode 100644
index 000000000..3eb123ffa
--- /dev/null
+++ b/pcr/vcstools/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Georg Bremer <pkgbuild@dschoordsch.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=('vcstools')
+pkgver=0.1.24
+pkgrel=1
+pkgdesc=""
+arch=('any')
+url="http://ros.org/"
+license=('BSD')
+groups=()
+depends=('python2' 'python2-yaml' 'python2-distribute')
+makedepends=()
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=()
+install=
+source=("http://pr.willowgarage.com/downloads/vcstools/vcstools-$pkgver.tar.gz")
+
+noextract=()
+
+build() {
+ echo ""
+}
+
+package() {
+ cd "$srcdir/vcstools-$pkgver"
+ python2 setup.py install --root "$pkgdir"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/video_entropyd/PKGBUILD b/pcr/video_entropyd/PKGBUILD
new file mode 100644
index 000000000..e096aabdd
--- /dev/null
+++ b/pcr/video_entropyd/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: fauno <fauno@parabola.nu>
+pkgname=video_entropyd
+pkgver=2.0
+pkgrel=1
+pkgdesc="Feeds the /dev/random device with entropy-data read from a video device"
+arch=('i686')
+url="http://vanheusden.com/ved/"
+license=('GPL2')
+groups=('entropy')
+source=(http://www.vanheusden.com/ved/${pkgname}-${pkgver}.tgz
+ ${pkgname}.service)
+sha1sums=('9d566bce8d0f0fa4e8be24b481ffdba0d0c70406'
+ '30cfb694ee886e36ab97329d575a8b9437a30bb2')
+sha256sums=('aba6255ddb32cd376c785128a7e850fb51b6c1d7fe3f4ba765abc0c50ec67d7a'
+ 'b6988df79823a29ab04bfa0fe6d8f2e14f3176398eb220fa1248c6728e8be27f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -D -m 755 ${pkgname} ${pkgdir}/usr/bin/${pkgname}
+ install -D -m 644 ${srcdir}/${pkgname}.service \
+ ${pkgdir}/usr/lib/systemd/system/${pkgname}.service
+}
diff --git a/pcr/video_entropyd/video_entropyd.service b/pcr/video_entropyd/video_entropyd.service
new file mode 100644
index 000000000..1dfef410a
--- /dev/null
+++ b/pcr/video_entropyd/video_entropyd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Gathering entropy from video
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/video_entropyd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/vim-ifdef/PKGBUILD b/pcr/vim-ifdef/PKGBUILD
new file mode 100644
index 000000000..1fb983cb3
--- /dev/null
+++ b/pcr/vim-ifdef/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Manuel Mendez <mmendez534 at gmail dot com>
+# Author: Laszlo Papp <djszapi @ gmail at com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=vim-ifdef
+pkgver=3.2
+_scriptid=16097
+pkgrel=1
+pkgdesc="C Preprocessor Highlighting"
+arch=(any)
+url="http://www.vim.org/scripts/script.php?script_id=7"
+license=('custom')
+depends=(vim)
+install=vimdoc.install
+source=(ifdef.vim::http://www.vim.org/scripts/download_script.php?src_id=${_scriptid})
+
+build() {
+ cd "$srcdir"
+ install -Dm644 ifdef.vim "$pkgdir"/usr/share/vim/syntax/ifdef.vim
+ sed -n '/^" Copyright/,/^\s*$/ p' ifdef.vim |
+ sed -e 's|^" ||' -e '/^\s*$/ d' > extracted-license.txt
+ install -Dm644 extracted-license.txt "$pkgdir"/usr/share/licenses/$pkgname/license.txt
+}
diff --git a/pcr/vim-ifdef/vimdoc.install b/pcr/vim-ifdef/vimdoc.install
new file mode 100644
index 000000000..61c4b3a81
--- /dev/null
+++ b/pcr/vim-ifdef/vimdoc.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/doc" --cmd ":q" > /dev/null 2>&1
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install
+}
diff --git a/pcr/vuurmuur/PKGBUILD b/pcr/vuurmuur/PKGBUILD
new file mode 100644
index 000000000..8aed82655
--- /dev/null
+++ b/pcr/vuurmuur/PKGBUILD
@@ -0,0 +1,139 @@
+# vim:set ts=2 sw=2 et ft=sh tw=100: expandtab
+# Contributor: Piotr Rogoża <rogoza dot piotr at gmail dot com>
+# Contributor: skydrome <skydrome@i2pmail.org>
+# Contributor: Valere Monseur <valere_monseur@hotmail.com>
+# Contributor: Phillip Smith <fukawi2@NO-SPAM.gmail.com>
+# Contributor: (asper, noob
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=vuurmuur
+_pkgname=Vuurmuur
+pkgver=0.7
+pkgrel=1
+pkgdesc='powerful front-end for iptables aimed at system-administrators who need a decent firewall, but dont have netfilter specific knowledge'
+arch=('i686' 'x86_64')
+url='http://www.vuurmuur.org'
+license=('GPL')
+install='vuurmuur.install'
+depends=('iptables' 'ncurses' 'libjpeg')
+optdepends=('conntrack-tools: for connection tracking'
+ 'iproute2: for traffic shapping'
+ 'iptrafvol: for traffic volume logging')
+conflicts=(vuurmuur-devel)
+backup=('etc/vuurmuur/config.conf'
+ 'etc/vuurmuur/modules.conf'
+ 'etc/vuurmuur/vuurmuur_conf.conf'
+ 'etc/vuurmuur/plugins/textdir.conf'
+ 'etc/logrotate.d/vuurmuur')
+source=(
+ftp://ftp.vuurmuur.org/releases/$pkgver/${_pkgname}-$pkgver.tar.gz
+modules.conf
+vuurmuur.rc
+vuurmuur.service
+vuurmuur.script
+)
+build() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+ for archive in libvuurmuur vuurmuur vuurmuur_conf; do
+ [[ ! -d "$archive" ]] &&
+ tar xzf ${archive}-${pkgver}.tar.gz
+ done
+
+ msg "building vuurmuur libraries..."
+ pushd libvuurmuur-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ popd
+
+ msg "building vuurmuur..."
+ pushd vuurmuur-${pkgver}
+ sed -i 's|-rpath|-rpath-link|' configure
+ LDFLAGS+="-L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src \
+ -L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src/.libs \
+ -Wl,-rpath=/usr/lib/${pkgname}/plugins" \
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-libvuurmuur-includes="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src" \
+ --with-libvuurmuur-libraries="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src"
+ make
+ popd
+
+ msg "building vuurmuur_conf..."
+ pushd vuurmuur_conf-${pkgver}
+ sed -i 's|-rpath|-rpath-link|' configure
+ LDFLAGS+="-L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src \
+ -L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src/.libs \
+ -Wl,-rpath=/usr/lib/${pkgname}/plugins" \
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-libvuurmuur-includes="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src" \
+ --with-libvuurmuur-libraries="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src"
+ make
+ popd
+}
+
+package() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+ pushd libvuurmuur-${pkgver}
+ make DESTDIR=${pkgdir} install
+ popd
+
+ pushd vuurmuur-${pkgver}
+ make DESTDIR=${pkgdir} install
+ popd
+
+ pushd vuurmuur_conf-${pkgver}
+ make DESTDIR=${pkgdir} install
+ popd
+
+ # make directory structure
+ install -dm700 ${pkgdir}/etc/${pkgname}
+ install -dm700 ${pkgdir}/etc/${pkgname}/plugins
+ install -dm700 ${pkgdir}/etc/logrotate.d/
+ install -dm755 ${pkgdir}/usr/share/${pkgname}/textdir/{interfaces,services,zones,rules}
+ install -dm700 ${pkgdir}/var/log/${pkgname}
+
+ # install daemon and log
+ install -Dm755 ${srcdir}/vuurmuur.rc ${pkgdir}/etc/rc.d/${pkgname}
+ install -Dm644 ${pkgdir}/usr/share/${pkgname}/scripts/vuurmuur-logrotate ${pkgdir}/etc/logrotate.d/${pkgname}
+
+ # install systemd's files
+ install -Dm755 $srcdir/vuurmuur.script $pkgdir/usr/lib/systemd/scripts/vuurmuur
+ install -Dm644 $srcdir/vuurmuur.service $pkgdir/usr/lib/systemd/system/vuurmuur.service
+
+ # install configuration
+ install -Dm600 ${pkgdir}/usr/share/vuurmuur/config/config.conf.sample \
+ ${pkgdir}/etc/${pkgname}/config.conf
+ install -Dm600 ${srcdir}/modules.conf ${pkgdir}/etc/${pkgname}/modules.conf
+ install -Dm600 ${pkgdir}/usr/share/vuurmuur/config/vuurmuur_conf.conf.sample \
+ ${pkgdir}/etc/${pkgname}/${pkgname}_conf.conf
+
+ sed -i ${pkgdir}/etc/${pkgname}/config.conf \
+ -e 's|"/sbin/tc|"/usr/sbin/tc|' \
+ -e 's|"/sbin/ip6tables|"/usr/sbin/ip6tables|' \
+ -e 's|"/sbin/iptables|"/usr/sbin/iptables|' \
+ -e 's|"/sbin/ip6tables-restore|"/usr/sbin/ip6tables-restore|' \
+ -e 's|"/sbin/iptables-restore|"/usr/sbin/iptables-restore|' \
+ -e 's|"/var/log/messages|"/var/log/iptables.log|'
+
+ sed -i ${pkgdir}/etc/${pkgname}/${pkgname}_conf.conf \
+ -e 's|"/usr/bin/iptrafvol.pl|"/usr/sbin/iptrafvol.pl|'
+
+
+ echo "LOCATION=\"/etc/${pkgname}/textdir\"" > ${pkgdir}/etc/${pkgname}/plugins/textdir.conf
+
+ # default firewall setup in /usr/share
+ touch ${pkgdir}/usr/share/${pkgname}/textdir/rules/rules.conf
+ touch ${pkgdir}/usr/share/${pkgname}/textdir/rules/blocklist.conf
+
+ cp -R ${srcdir}/${_pkgname}-${pkgver}/zones/* ${pkgdir}/usr/share/${pkgname}/textdir/zones/
+ mv ${pkgdir}/usr/share/${pkgname}/services/* ${pkgdir}/usr/share/${pkgname}/textdir/services/
+
+ # install licenses
+ install -Dm644 ${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/lib${pkgname}/COPYING
+ install -Dm644 ${srcdir}/${_pkgname}-${pkgver}/${pkgname}-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+ install -Dm644 ${srcdir}/${_pkgname}-${pkgver}/${pkgname}_conf-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}_conf/COPYING
+}
diff --git a/pcr/vuurmuur/modules.conf b/pcr/vuurmuur/modules.conf
new file mode 100644
index 000000000..eda78a036
--- /dev/null
+++ b/pcr/vuurmuur/modules.conf
@@ -0,0 +1,3 @@
+# modules loaded by vuurmuur daemon
+# ip_queue => not found
+MODULES_TO_LOAD="ip_tables iptable_filter iptable_mangle iptable_nat ip_conntrack ipt_state ip_conntrack_ftp ip_nat_ftp"
diff --git a/pcr/vuurmuur/vuurmuur.install b/pcr/vuurmuur/vuurmuur.install
new file mode 100644
index 000000000..0f596b8c9
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.install
@@ -0,0 +1,27 @@
+post_install() {
+ if [[ ! -d /etc/vuurmuur/textdir ]]; then
+ # copy default firewall setup
+ cp -R /usr/share/vuurmuur/textdir /etc/vuurmuur/
+
+ # set permissions and ownership
+ chown -R root:root /etc/vuurmuur
+ chmod -R o=rwX,go= /etc/vuurmuur
+ chown -R root:root /var/log/vuurmuur
+ chmod -R o=rwX,go= /var/log/vuurmuur
+
+ echo
+ echo "Default firewall setup has been installed in /etc/vuurmuur/textdir"
+ echo
+ echo "You can now setup your network topology and firewall rules using vuurmuur_conf"
+ echo "Don't forget to add 'vuurmuur' in /etc/rc.conf"
+ echo
+ echo "Usefull documentation can be found at http://www.vuurmuur.org"
+ echo
+ fi
+}
+
+post_remove () {
+ echo
+ echo "Your firewall setup has been left unchanged in /etc/vuurmuur/textdir"
+ echo
+}
diff --git a/pcr/vuurmuur/vuurmuur.rc b/pcr/vuurmuur/vuurmuur.rc
new file mode 100644
index 000000000..3b4d3e99e
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.rc
@@ -0,0 +1,114 @@
+#!/bin/bash
+# vi: ft=sh
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# PID file
+VUURMUURPID='/run/vuurmuur.pid'
+VUURMUURLOGPID='/run/vuurmuur_log.pid'
+case $1 in
+start)
+ # initialize
+ stat_busy "Starting Vuurmuur Firewall"
+ STATUS="ok"
+
+ # check if vuurmuur is configured
+ IFNUM=`/usr/bin/vuurmuur_script --list --interface any | wc -l`
+ if [ $IFNUM = 0 ]; then
+ stat_busy "Please configure Vuurmuur first by defining at least one interface."
+ stat_fail
+ exit 1
+ fi
+
+ # load modules
+ . /etc/vuurmuur/modules.conf
+ for MODULE in `echo $MODULES_TO_LOAD`; do
+ /sbin/modprobe $MODULE &>/dev/null
+ if [ $? != 0 ]; then
+ stat_busy "Error when loading module $MODULE. Check log files."
+ stat_fail
+ exit 1
+ fi
+ done
+
+ # start vuurmuur daemon
+ if [ ! -f $VUURMUURPID ]; then
+ /usr/bin/vuurmuur -l
+ if [ $? != 0 ]; then
+ stat_busy "Error when starting Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ stat_busy "Error when starting Vuurmuur daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # start vuurmuur log parsing daemon
+ if [ ! -f $VUURMUURLOGPID ]; then
+ /usr/bin/vuurmuur_log
+ if [ $? != 0 ]; then
+ stat_busy "Error when starting Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ stat_busy "Error when starting Vuurmuur log parsing daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "ok" ]; then
+ add_daemon vuurmuur
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+stop)
+ # initialize
+ stat_busy "Stopping Vuurmuur Firewall"
+ STATUS="ok"
+
+ # stop vuurmuur log parsing daemon
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURLOGPID
+ else
+ stat_busy "Error when stopping Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # stop vuurmuur daemon
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURPID
+ else
+ stat_busy "Error when stopping Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "ok" ]; then
+ rm_daemon vuurmuur
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|restart}" >&2
+ exit 1
+
+esac
+exit 0
diff --git a/pcr/vuurmuur/vuurmuur.script b/pcr/vuurmuur/vuurmuur.script
new file mode 100644
index 000000000..a643d6fbd
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.script
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+VUURMUURPID='/run/vuurmuur.pid'
+VUURMUURLOGPID='/run/vuurmuur_log.pid'
+start() {
+ IFNUM=`/usr/bin/vuurmuur_script --list --interface any | wc -l`
+ if [ $IFNUM = 0 ]; then
+ echo "Please configure Vuurmuur first by defining at least one interface."
+ exit 1
+ fi
+
+ # load modules
+ . /etc/vuurmuur/modules.conf
+ for MODULE in `echo $MODULES_TO_LOAD`; do
+ /sbin/modprobe $MODULE &>/dev/null
+ if [ $? != 0 ]; then
+ echo "Error when loading module $MODULE. Check log files."
+ exit 1
+ fi
+ done
+
+ # start vuurmuur daemon
+ if [ ! -f $VUURMUURPID ]; then
+ /usr/bin/vuurmuur -l
+ if [ $? != 0 ]; then
+ echo "Error when starting Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ echo "Error when starting Vuurmuur daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # start vuurmuur log parsing daemon
+ if [ ! -f $VUURMUURLOGPID ]; then
+ /usr/bin/vuurmuur_log
+ if [ $? != 0 ]; then
+ echo "Error when starting Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ echo "Error when starting Vuurmuur log parsing daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "failed" ]; then
+ exit 1
+ fi
+}
+stop() {
+ # initialize
+ echo "Stopping Vuurmuur Firewall"
+ STATUS="ok"
+
+ # stop vuurmuur log parsing daemon
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURLOGPID
+ else
+ echo "Error when stopping Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # stop vuurmuur daemon
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURPID
+ else
+ echo "Error when stopping Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "false" ]; then
+ exit 1
+ fi
+}
+restart() {
+ $0 stop
+ $0 start
+}
+
+case $1 in
+ start|stop|restart) "$1" ;;
+esac
diff --git a/pcr/vuurmuur/vuurmuur.service b/pcr/vuurmuur/vuurmuur.service
new file mode 100644
index 000000000..3defcaa82
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.service
@@ -0,0 +1,13 @@
+# vi: ft=systemd
+[Unit]
+Description=Powerful front-end for iptables
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/lib/systemd/scripts/vuurmuur start
+ExecStop=/usr/lib/systemd/scripts/vuurmuur stop
+ExecReload=/usr/lib/systemd/scripts/vuurmuur restart
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/wallchange/PKGBUILD b/pcr/wallchange/PKGBUILD
new file mode 100644
index 000000000..f8465bda5
--- /dev/null
+++ b/pcr/wallchange/PKGBUILD
@@ -0,0 +1,34 @@
+# Wallchange
+# Contributor: ying <Jinoto Systems>
+# Contributor: ying <Jinoto Systems>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=wallchange
+pkgver=1.2
+pkgrel=1
+pkgdesc="A small and simple command tool which is changing the wallpaper on a switch to the next virtual desktop."
+url="https://sourceforge.net/projects/wallchange-slim/files/"
+arch=('i686' 'x86_64')
+install=wallchange.install
+license=('GPL2')
+depends=('eterm' 'archlinux-wallpaper') # 'eterm' can be changed in any command tool to draw the wallpaper.
+optdepends=('eterm' 'habak' 'feh' 'hsetroot' 'others')
+source=("https://downloads.sourceforge.net/project/wallchange-slim/wallchange-${pkgver}.tar.gz?r=&ts=1289391543&use_mirror=master" wallchange.conf)
+
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make all
+}
+package() {
+ install -Dm755 ${pkgname}-${pkgver}/wallchange $pkgdir/usr/bin/wallchange || return
+ install -Dm755 wallchange.conf $pkgdir/usr/share/wallchange/wallchange.conf || return
+}
+
+
+
+
+md5sums=('840425f1c724aea198b7cd378fba708d'
+ 'd4a9b5c9b341eee1651269139e1f91c9')
+md5sums=('840425f1c724aea198b7cd378fba708d'
+ 'd4a9b5c9b341eee1651269139e1f91c9')
diff --git a/pcr/wallchange/wallchange.conf b/pcr/wallchange/wallchange.conf
new file mode 100644
index 000000000..9deda3c92
--- /dev/null
+++ b/pcr/wallchange/wallchange.conf
@@ -0,0 +1,23 @@
+# Wallchange configuration file
+
+# specify the command to draw the wallpaper
+command=Esetroot -s
+
+
+# specify the wallpapers which will be used on a desktop switch.
+
+
+# Wallpaper for the first desktop
+wallpaper=/usr/share/archlinux/wallpaper/archlinux-simplyblack.png
+
+# Wallpaper for the second desktop
+wallpaper=/usr/share/archlinux/wallpaper/archlinux-poolclouds.jpg
+
+# Wallpaper for the third desktop
+wallpaper=/usr/share/archlinux/wallpaper/archlinux-carbonite-knight.jpg
+
+# Wallpaper for the fourth desktop
+wallpaper=/usr/share/archlinux/wallpaper/archlinux-burn.jpg
+
+
+
diff --git a/pcr/wallchange/wallchange.install b/pcr/wallchange/wallchange.install
new file mode 100644
index 000000000..ceb90e348
--- /dev/null
+++ b/pcr/wallchange/wallchange.install
@@ -0,0 +1,13 @@
+
+post_install() {
+ echo ""
+ echo -e "\033[37;41;1m Read First \033[0m"
+ echo "Please copy the /usr/share/wallchange/wallchange.conf configuration file to you home folder(~/.wallchange.conf). Enjoy!"
+ echo ""
+}
+
+op=$1
+shift
+$op "$@"
+
+
diff --git a/pcr/wdiff/PKGBUILD b/pcr/wdiff/PKGBUILD
new file mode 100644
index 000000000..41bee9679
--- /dev/null
+++ b/pcr/wdiff/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+pkgname=wdiff
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="A front end to diff for comparing files on a word per word basis."
+arch=('i686' 'x86_64')
+url="https://www.gnu.org/software/$pkgname/"
+license=('GPL3')
+depends=('diffutils')
+source=(http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+
+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
+}
+
+md5sums=('fc54e044b229a23c1cfa8e5689196f24')
diff --git a/pcr/whysynth/PKGBUILD b/pcr/whysynth/PKGBUILD
new file mode 100644
index 000000000..8d2895984
--- /dev/null
+++ b/pcr/whysynth/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+pkgname=whysynth
+pkgver=20120903
+pkgrel=1
+pkgdesc="A versatile softsynth plugin for the DSSI Soft Synth Interface"
+arch=('i686')
+url="http://www.smbolton.com/whysynth.html"
+depends=('alsa-lib' 'liblo' 'gtk2' 'fftw')
+makedepends=('dssi' 'ladspa')
+license=('GPL')
+source=(http://www.smbolton.com/whysynth/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('b521b63ade13b09062a64c46d2eabee2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install || return 1
+ find ${pkgdir}/usr/lib -name '*.la' -exec rm {} \; || return 1
+}
diff --git a/pcr/wikipediafs/PKGBUILD b/pcr/wikipediafs/PKGBUILD
new file mode 100644
index 000000000..d70dd2f6f
--- /dev/null
+++ b/pcr/wikipediafs/PKGBUILD
@@ -0,0 +1,19 @@
+# Maintainer: Antoine Lubineau <antoine@lubignon.info>
+
+pkgname=wikipediafs
+pkgver=0.4
+pkgrel=2
+pkgdesc="Mount Wikipedia/Mediawiki sites locally via FUSE"
+arch=('any')
+url="http://wikipediafs.sourceforge.net/"
+license=('GPL')
+depends=('fuse' 'python2-fuse')
+source=("http://downloads.sourceforge.net/wikipediafs/$pkgname-$pkgver.tar.gz")
+sha256sums=('8c9de78dd92354877a8d604f3128238f10cd6c06d594ddc23c06552cc7c731f1')
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/wmii-hg/PKGBUILD b/pcr/wmii-hg/PKGBUILD
new file mode 100644
index 000000000..c556a1b88
--- /dev/null
+++ b/pcr/wmii-hg/PKGBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+
+# Maintainer (AUR): N30N <archlinux@alunamation.com>
+# Contributor: Anthony Martin <ality@pbrane.org>
+# Contributer: thomasd <thdahms@gmx.de>
+# Contributer: karnath <karnath@pop3.ru>
+# Contributer: MrBougo <bougospam@gmail.com>
+# Contributor: Wolf Ramovsky <wolf.ramovsky@gmail.com>
+
+pkgname=wmii-hg
+pkgver=2813
+pkgdesc="A small, dynamic window manager for X11"
+url="https://code.google.com/p/wmii/"
+license=("MIT")
+
+provides=("wmii")
+conflicts=("wmii")
+
+pkgrel=1
+arch=("i686" "x86_64")
+depends=('libxft' 'libxrandr' 'libxinerama')
+makedepends=('txt2tags' 'libixp') # libixp is statically linked
+
+source=("libre://${pkgname}-${pkgver}.tar.gz")
+md5sums=('74eb9f91000321b587e7826be999d4de')
+
+mkdepends=('mercurial')
+mksource=("$pkgname-$pkgver::hg+https://code.google.com/p/wmii/#revision=${pkgver}")
+mkmd5sums=('SKIP')
+mksource() {
+ # don't include this precompiled binary (probably included by accident)
+ rm "${srcdir}/${pkgname}-${pkgver}/lib/libutf/libutf.a"
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ export LDFLAGS+=',--no-as-needed'
+ sed -i 's|PREFIX = /usr/local|PREFIX = /usr|' config.mk
+ sed -i 's|ETC = $(PREFIX)/etc|ETC = /etc|' config.mk
+ sed -i 's|PYTHON = .*|PYTHON = python2|' config.mk
+ echo 'CFLAGS += -O2' >> config.mk
+ sed -i 's# !=#!=#' mk/hdr.mk
+
+ export MAKEFLAGS="-j1"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 img/wmii.png "${pkgdir}"/usr/share/pixmaps/wmii.png
+ install -Dm644 debian/file/wmii.desktop "${pkgdir}"/usr/share/xsessions/wmii.desktop
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/pcr/xcftools/PKGBUILD b/pcr/xcftools/PKGBUILD
new file mode 100644
index 000000000..414149f85
--- /dev/null
+++ b/pcr/xcftools/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Jonathan Frawley <jonathanfrawley@gmail.com>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+pkgname=xcftools
+pkgver=1.0.7
+pkgrel=2
+pkgdesc="Miscellaneous command line tools for use with the open ${pkgname::3} format used by The GIMP."
+url=http://henning.makholm.net/software
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+license=(
+ GPL2
+ perl
+)
+depends=(
+ libpng
+ perl
+)
+optdepends=gimp
+makedepends=libpng
+source=(
+ http://henning.makholm.net/$pkgname/$pkgname-$pkgver.tar.gz
+ $pkgname.patch
+)
+md5sums=(
+ fd960b6470fb23520fc4b1ade6cf6e25
+ 7439f6a8369a12913243ded6c93d31e1
+)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -i ../$pkgname.patch
+ /bin/bash configure --prefix=/usr
+ setarch $CARCH make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ setarch $CARCH make DESTDIR=$pkgdir install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/xcftools/xcftools.patch b/pcr/xcftools/xcftools.patch
new file mode 100644
index 000000000..1a2d88c14
--- /dev/null
+++ b/pcr/xcftools/xcftools.patch
@@ -0,0 +1,27 @@
+diff -rupN xcftools-1.0.7.old/Makefile.in xcftools-1.0.7/Makefile.in
+--- xcftools-1.0.7.old/Makefile.in 2009-07-03 11:31:56.000000000 +0100
++++ xcftools-1.0.7/Makefile.in 2012-01-03 13:03:51.152358830 +0000
+@@ -79,7 +79,7 @@ xcf2pnm$e: xcf2pnm.$o $(FILEIO).$o enums
+
+ xcf2png$e: xcf2png.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o nlsini.$o \
+ pixels.$o flatten.$o flatspec.$o scaletab.$o table.$o palette.$o
+- $(CC) $(LDFLAGS) $(LIBS) -lpng $^ -o $@
++ $(CC) $(LDFLAGS) $(LIBS) $^ -lpng -o $@
+
+ xcfview: xcfview.in Makefile
+ sed '1s,/usr/bin/perl,@PERL@,' < $< > $@
+diff -rupN xcftools-1.0.7.old/xcf2png.c xcftools-1.0.7/xcf2png.c
+--- xcftools-1.0.7.old/xcf2png.c 2009-07-03 11:31:52.000000000 +0100
++++ xcftools-1.0.7/xcf2png.c 2012-01-03 13:03:36.262509165 +0000
+@@ -71,9 +71,9 @@ init_output(void)
+
+ outfile = openout(flatspec.output_filename);
+ libpng = png_create_write_struct(PNG_LIBPNG_VER_STRING,
+- png_voidp_NULL,
++ (png_voidp)NULL,
+ my_error_callback,
+- png_error_ptr_NULL);
++ (png_voidp)NULL);
+ if( !libpng )
+ FatalUnexpected(_("Couldn't initialize libpng library"));
+
diff --git a/pcr/xchat-otr/PKGBUILD b/pcr/xchat-otr/PKGBUILD
new file mode 100644
index 000000000..7bc6e8c41
--- /dev/null
+++ b/pcr/xchat-otr/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Tom <tomgparchaur@gmail.com>
+# Based on a quantax contribution for irssi-otr
+
+pkgname=xchat-otr
+pkgver=0.3
+pkgrel=2
+pkgdesc="Off-the-Record Messaging (OTR) plugin for the XChat IRC client"
+arch=('i686' 'x86_64')
+url="http://irssi-otr.tuxfamily.org/"
+license=('GPL')
+depends=('xchat' 'libotr3')
+makedepends=('cmake' 'pkgconfig' 'python')
+source=("ftp://download.tuxfamily.org/irssiotr/${pkgname}-${pkgver}.tar.gz"
+ 'http://xchat.org/docs/xchat-plugin.h')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ mkdir -p ${srcdir}/${pkgname}-${pkgver}/xchat
+ install -m 644 ${srcdir}/xchat-plugin.h ${srcdir}/${pkgname}-${pkgver}/xchat/ || return 1
+ find ${srcdir}/${pkgname}-${pkgver} -type f -print0 | xargs -0 sed -i 's@libotr/@libotr3/@g'
+ cmake -DXCHAT_INCLUDE_DIR=${srcdir}/${pkgname}-${pkgver} -DCMAKE_INSTALL_PREFIX=/usr . -DLIBOTR_LIBRARY=/usr/lib/libotr3.so
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ mv ${pkgdir}/usr/share/doc/irssi-otr ${pkgdir}/usr/share/doc/xchat-otr || return 1
+ install -m 644 ${srcdir}/${pkgname}-${pkgver}/README.xchat ${pkgdir}/usr/share/doc/xchat-otr || return 1
+ rm ${pkgdir}/usr/share/doc/xchat-otr/LICENSE || return 1
+}
+
+md5sums=('49706959af491c721a8a5a62bd224670'
+ '5ee7da5abedc78a30b90e737370d8f0b')
+
diff --git a/pcr/xf86-input-wizardpen/PKGBUILD b/pcr/xf86-input-wizardpen/PKGBUILD
new file mode 100644
index 000000000..dfad17f34
--- /dev/null
+++ b/pcr/xf86-input-wizardpen/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=xf86-input-wizardpen
+_pkgname=${pkgname:11}
+pkgver=0.8.1
+pkgrel=4
+pkgdesc="X.Org ${_pkgname^}/Genius tablet driver for GNU/Linux-libre"
+arch=(
+ i686
+ x86_64
+ mips64el
+)
+url=https://launchpad.net/$_pkgname
+license=GPL2
+depends=glibc
+makedepends=xorg-server-devel
+conflicts=(
+ $_pkgname
+ $_pkgname-driver
+)
+replaces=(
+ $_pkgname
+ $_pkgname-driver
+)
+source=http://launchpad.net/$_pkgname/trunk/${pkgver::3}/+download/${pkgname/xf86/xorg}-$pkgver.tar.bz2
+sha512sums=8830febe579231a2990dd31fad7db1d16424ad01b7226e0b09bd6287070f8099338f2f3e4d715772ed6616d7e13b52e83e816c400b638d47f1f92c30ec677d59
+
+prepare() {
+ cd $srcdir/${pkgname/xf86/xorg}-$pkgver
+ sed -i -e 's|AM_CONFIG_HEADER|AC_CONFIG_HEADERS|' configure.ac
+}
+
+build() {
+ cd $srcdir/${pkgname/xf86/xorg}-$pkgver
+ setarch $CARCH ./autogen.sh --prefix=/usr\
+ --with-xorg-conf-dir=/etc/X11/xorg.conf.d
+ setarch $CARCH make
+}
+
+package() {
+ cd $srcdir/${pkgname/xf86/xorg}-$pkgver
+ setarch $CARCH make DESTDIR=$pkgdir install
+}
diff --git a/pcr/xfce-theme-greybird/PKGBUILD b/pcr/xfce-theme-greybird/PKGBUILD
new file mode 100644
index 000000000..74f21775e
--- /dev/null
+++ b/pcr/xfce-theme-greybird/PKGBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Limao Luo <luolimao+AUR@gmail.com>
+# Contributor: flan_suse
+
+# This suite contains the following:
+# * xfwm4 theme
+# * xfwm4 compact theme
+# * metacity theme
+# * emerald theme
+# * gtk2 theme
+# * gtk2 theme (classic)
+# * gtk3 theme
+# * gtk3 theme (classic)
+# * unity theme
+# * xfce4-notify theme
+# * lightdm theme
+# * wallpaper (found in the shimmer-wallpapers package; optdepends)
+
+# There have been some drastic changes as of July 22nd, 2012!
+# Please read through the AUR page comments if you wish to learn more.
+# I have modified this PKGBUILD to compensate for the drastic changes.
+
+pkgname=xfce-theme-greybird
+_pkgname=Greybird
+pkgver=1.1.1
+_pkgverclassic=0.8.2
+pkgrel=1
+pkgdesc="A grey and blue Xfce theme, used by default in Xubuntu 12.04; includes the classic low saturation theme"
+arch=(any)
+url=http://shimmerproject.org/projects/greybird/
+license=(CCPL:by-sa-3.0 GPL)
+groups=(xfce-themes-shimmer-collection)
+depends=(gtk-engine-murrine)
+optdepends=('elementary-xfce-icons: matching icon set; use the dark icon theme'
+ 'gtk-engine-unico: required for gtk3 support for the classic theme; not required for the current theme'
+ 'gtk3: required for CSS/GTK3 theme'
+ 'lightdm-gtk-greeter: required for the LightDM GTK theme'
+ 'lightdm-unity-greeter: required for the LightDM Unity theme'
+ 'shimmer-wallpapers: contains the Greybird wallpaper, among others')
+conflicts=($pkgname-git)
+source=($pkgname-$pkgver.tar.gz::https://github.com/shimmerproject/$_pkgname/archive/v$pkgver.tar.gz
+ $pkgname-$_pkgverclassic.tar.gz::https://github.com/shimmerproject/$_pkgname/archive/v$_pkgverclassic.tar.gz)
+sha256sums=('374bc55d6af98ca6052cc5dd6c55db3b1ce9002fe81d3fde3e9b72febe697878'
+ 'b63da3527760c194bb7299c1cb45297268439740e52e2c5e1f39fc31dce6293a')
+sha512sums=('1e4f7dea5e0206972d7d4a5bf42b353abf21e40d215fc1b0e7b546a4c95c7ce0604a37e9f2ad6c272fedf4720d0a5eee732a6b89d83c635c24082c24711c9e5e'
+ '09f19bbfe02a477de6635198736897d143a5eec8ed13e6d1863c80f5d78b341ecdf2b2cf48bffddead25082eeadde475d360fc7bee773307c5cc10fb3ff90034')
+
+package() {
+ local _themedir="$pkgdir/usr/share/themes"
+ install -d "$_themedir/$_pkgname "{Classic,Compact}
+
+ cp -rf $_pkgname-$pkgver/ "$_themedir"/$_pkgname/
+ rm "$_themedir"/$_pkgname/.gitignore
+ cp -rf $_pkgname-$_pkgverclassic/gtk-{2,3}.0 "$_themedir/$_pkgname Classic"
+ ln -s /usr/share/themes/$_pkgname/xfwm4_compact "$_themedir/$_pkgname Compact/xfwm4"
+}
diff --git a/pcr/xfwm4-titleless/PKGBUILD b/pcr/xfwm4-titleless/PKGBUILD
new file mode 100644
index 000000000..dd80d287d
--- /dev/null
+++ b/pcr/xfwm4-titleless/PKGBUILD
@@ -0,0 +1,46 @@
+# Contributor: Christian Hesse <mail@eworm.de>
+# Contributor: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io>
+
+pkgname=xfwm4-titleless
+pkgver=4.10.1
+pkgrel=1
+pkgdesc="Xfce window manager - patched with option to hide titlebar when maximized"
+arch=('i686' 'x86_64')
+url="https://bitbucket.org/thesame/xfwm4-titleless"
+license=('GPL2')
+depends=('libxfce4ui' 'libwnck' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+conflicts=('xfwm4')
+provides=('xfwm4')
+install=${pkgname%%-*}.install
+source=("http://archive.xfce.org/src/xfce/${pkgname%%-*}/4.10/${pkgname%%-*}-${pkgver}.tar.bz2"
+ "xfwm4-hide-titlebar-when-maximized.patch")
+
+build() {
+ cd "${srcdir}/${pkgname%%-*}-${pkgver}"
+
+ patch -Np1 < ${srcdir}/xfwm4-hide-titlebar-when-maximized.patch
+
+ ./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/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch b/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch
new file mode 100644
index 000000000..fa43b6b8e
--- /dev/null
+++ b/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch
@@ -0,0 +1,1456 @@
+From 999c375f5342947525813584fbdc92f3b63dced6 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <eworm@leda.eworm.de>
+Date: Wed, 25 Sep 2013 15:16:57 +0200
+Subject: [PATCH 1/1] xfwm4: hide titlebar when maximized
+
+---
+ defaults/defaults | 1 +
+ settings-dialogs/tweaks-settings.c | 5 +
+ settings-dialogs/xfwm4-tweaks-dialog.glade | 25 +-
+ settings-dialogs/xfwm4-tweaks-dialog_ui.h | 612 +++++++++++++++--------------
+ src/client.c | 6 +
+ src/client.h | 1 +
+ src/display.c | 3 +-
+ src/display.h | 1 +
+ src/events.c | 5 +
+ src/frame.c | 366 ++++++++++-------
+ src/netwm.c | 38 ++
+ src/placement.c | 4 +-
+ src/settings.c | 8 +
+ src/settings.h | 1 +
+ 14 files changed, 616 insertions(+), 460 deletions(-)
+
+diff --git a/defaults/defaults b/defaults/defaults
+index 6db210a..1582fc1 100644
+--- a/defaults/defaults
++++ b/defaults/defaults
+@@ -1,5 +1,6 @@
+ activate_action=bring
+ borderless_maximize=true
++titleless_maximize=false
+ box_move=false
+ box_resize=false
+ button_layout=O|SHMC
+diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c
+index f60b606..2532733 100644
+--- a/settings-dialogs/tweaks-settings.c
++++ b/settings-dialogs/tweaks-settings.c
+@@ -180,6 +180,7 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
+ GtkWidget *easy_click_combo_box = GTK_WIDGET (gtk_builder_get_object (builder, "easy_click_combo_box"));
+ GtkWidget *raise_with_any_button_check = GTK_WIDGET (gtk_builder_get_object (builder, "raise_with_any_button_check"));
+ GtkWidget *borderless_maximize_check = GTK_WIDGET (gtk_builder_get_object (builder, "borderless_maximize_check"));
++ GtkWidget *titleless_maximize_check = GTK_WIDGET (gtk_builder_get_object (builder, "titleless_maximize_check"));
+ GtkWidget *restore_on_move_check = GTK_WIDGET (gtk_builder_get_object (builder, "restore_on_move_check"));
+ GtkWidget *tile_on_move_check = GTK_WIDGET (gtk_builder_get_object (builder, "tile_on_move_check"));
+ GtkWidget *snap_resist_check = GTK_WIDGET (gtk_builder_get_object (builder, "snap_resist_check"));
+@@ -336,6 +337,10 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
+ G_TYPE_BOOLEAN,
+ (GObject *)borderless_maximize_check, "active");
+ xfconf_g_property_bind (xfwm4_channel,
++ "/general/titleless_maximize",
++ G_TYPE_BOOLEAN,
++ (GObject *)titleless_maximize_check, "active");
++ xfconf_g_property_bind (xfwm4_channel,
+ "/general/restore_on_move",
+ G_TYPE_BOOLEAN,
+ (GObject *)restore_on_move_check, "active");
+diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade
+index bd2a86f..7d604c6 100644
+--- a/settings-dialogs/xfwm4-tweaks-dialog.glade
++++ b/settings-dialogs/xfwm4-tweaks-dialog.glade
+@@ -343,6 +343,21 @@ or "skip taskbar" properties set</property>
+ </packing>
+ </child>
+ <child>
++ <object class="GtkCheckButton" id="titleless_maximize_check">
++ <property name="label" translatable="yes">Hide _title of windows when maximized</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="use_underline">True</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">3</property>
++ </packing>
++ </child>
++ <child>
+ <object class="GtkCheckButton" id="restore_on_move_check">
+ <property name="label" translatable="yes">Restore original _size of maximized windows when moving</property>
+ <property name="visible">True</property>
+@@ -354,7 +369,7 @@ or "skip taskbar" properties set</property>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+- <property name="position">3</property>
++ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+@@ -369,7 +384,7 @@ or "skip taskbar" properties set</property>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+- <property name="position">4</property>
++ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+@@ -384,7 +399,7 @@ or "skip taskbar" properties set</property>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+- <property name="position">5</property>
++ <property name="position">6</property>
+ </packing>
+ </child>
+ <child>
+@@ -399,7 +414,7 @@ or "skip taskbar" properties set</property>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+- <property name="position">5</property>
++ <property name="position">7</property>
+ </packing>
+ </child>
+ <child>
+@@ -414,7 +429,7 @@ or "skip taskbar" properties set</property>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+- <property name="position">6</property>
++ <property name="position">8</property>
+ </packing>
+ </child>
+ </object>
+diff --git a/settings-dialogs/xfwm4-tweaks-dialog_ui.h b/settings-dialogs/xfwm4-tweaks-dialog_ui.h
+index a6121dd..8ddbf30 100644
+--- a/settings-dialogs/xfwm4-tweaks-dialog_ui.h
++++ b/settings-dialogs/xfwm4-tweaks-dialog_ui.h
+@@ -177,332 +177,340 @@ static const char tweaks_dialog_ui[] =
+ "y><property name=\"draw_indicator\">True</property></object><packing><p"
+ "roperty name=\"expand\">False</property><property name=\"fill\">False</"
+ "property><property name=\"position\">2</property></packing></child><chi"
+- "ld><object class=\"GtkCheckButton\" id=\"restore_on_move_check\"><prope"
+- "rty name=\"label\" translatable=\"yes\">Restore original _size of maxim"
+- "ized windows when moving</property><property name=\"visible\">True</pro"
+- "perty><property name=\"can_focus\">True</property><property name=\"rece"
+- "ives_default\">False</property><property name=\"use_underline\">True</p"
+- "roperty><property name=\"draw_indicator\">True</property></object><pack"
+- "ing><property name=\"expand\">False</property><property name=\"fill\">F"
+- "alse</property><property name=\"position\">3</property></packing></chil"
+- "d><child><object class=\"GtkCheckButton\" id=\"tile_on_move_check\"><pr"
+- "operty name=\"label\" translatable=\"yes\">Automatically _tile windows "
+- "when moving toward the screen edge</property><property name=\"visible\""
+- ">True</property><property name=\"can_focus\">True</property><property n"
+- "ame=\"receives_default\">False</property><property name=\"use_underline"
+- "\">True</property><property name=\"draw_indicator\">True</property></ob"
+- "ject><packing><property name=\"expand\">False</property><property name="
+- "\"fill\">False</property><property name=\"position\">4</property></pack"
+- "ing></child><child><object class=\"GtkCheckButton\" id=\"snap_resist_ch"
+- "eck\"><property name=\"label\" translatable=\"yes\">Use _edge resistanc"
+- "e instead of window snapping</property><property name=\"visible\">True<"
+- "/property><property name=\"can_focus\">True</property><property name=\""
+- "receives_default\">False</property><property name=\"use_underline\">Tru"
+- "e</property><property name=\"draw_indicator\">True</property></object><"
+- "packing><property name=\"expand\">False</property><property name=\"fill"
+- "\">False</property><property name=\"position\">5</property></packing></"
+- "child><child><object class=\"GtkCheckButton\" id=\"urgent_blink\"><prop"
+- "erty name=\"label\" translatable=\"yes\">Notify of _urgency by making w"
+- "indow\'s decoration blink</property><property name=\"visible\">True</pr"
++ "ld><object class=\"GtkCheckButton\" id=\"titleless_maximize_check\"><pr"
++ "operty name=\"label\" translatable=\"yes\">Hide _title of windows when "
++ "maximized</property><property name=\"visible\">True</property><property"
++ " name=\"can_focus\">True</property><property name=\"receives_default\">"
++ "False</property><property name=\"use_underline\">True</property><proper"
++ "ty name=\"draw_indicator\">True</property></object><packing><property n"
++ "ame=\"expand\">False</property><property name=\"fill\">False</property>"
++ "<property name=\"position\">3</property></packing></child><child><objec"
++ "t class=\"GtkCheckButton\" id=\"restore_on_move_check\"><property name="
++ "\"label\" translatable=\"yes\">Restore original _size of maximized wind"
++ "ows when moving</property><property name=\"visible\">True</property><pr"
++ "operty name=\"can_focus\">True</property><property name=\"receives_defa"
++ "ult\">False</property><property name=\"use_underline\">True</property><"
++ "property name=\"draw_indicator\">True</property></object><packing><prop"
++ "erty name=\"expand\">False</property><property name=\"fill\">False</pro"
++ "perty><property name=\"position\">4</property></packing></child><child>"
++ "<object class=\"GtkCheckButton\" id=\"tile_on_move_check\"><property na"
++ "me=\"label\" translatable=\"yes\">Automatically _tile windows when movi"
++ "ng toward the screen edge</property><property name=\"visible\">True</pr"
+ "operty><property name=\"can_focus\">True</property><property name=\"rec"
+ "eives_default\">False</property><property name=\"use_underline\">True</"
+ "property><property name=\"draw_indicator\">True</property></object><pac"
+ "king><property name=\"expand\">False</property><property name=\"fill\">"
+ "False</property><property name=\"position\">5</property></packing></chi"
+- "ld><child><object class=\"GtkCheckButton\" id=\"repeat_urgent_blink\"><"
+- "property name=\"label\" translatable=\"yes\">Keep urgent windows _blink"
+- "ing repeatedly</property><property name=\"visible\">True</property><pro"
++ "ld><child><object class=\"GtkCheckButton\" id=\"snap_resist_check\"><pr"
++ "operty name=\"label\" translatable=\"yes\">Use _edge resistance instead"
++ " of window snapping</property><property name=\"visible\">True</property"
++ "><property name=\"can_focus\">True</property><property name=\"receives_"
++ "default\">False</property><property name=\"use_underline\">True</proper"
++ "ty><property name=\"draw_indicator\">True</property></object><packing><"
++ "property name=\"expand\">False</property><property name=\"fill\">False<"
++ "/property><property name=\"position\">6</property></packing></child><ch"
++ "ild><object class=\"GtkCheckButton\" id=\"urgent_blink\"><property name"
++ "=\"label\" translatable=\"yes\">Notify of _urgency by making window\'s "
++ "decoration blink</property><property name=\"visible\">True</property><p"
++ "roperty name=\"can_focus\">True</property><property name=\"receives_def"
++ "ault\">False</property><property name=\"use_underline\">True</property>"
++ "<property name=\"draw_indicator\">True</property></object><packing><pro"
++ "perty name=\"expand\">False</property><property name=\"fill\">False</pr"
++ "operty><property name=\"position\">7</property></packing></child><child"
++ "><object class=\"GtkCheckButton\" id=\"repeat_urgent_blink\"><property "
++ "name=\"label\" translatable=\"yes\">Keep urgent windows _blinking repea"
++ "tedly</property><property name=\"visible\">True</property><property nam"
++ "e=\"can_focus\">True</property><property name=\"receives_default\">Fals"
++ "e</property><property name=\"use_underline\">True</property><property n"
++ "ame=\"draw_indicator\">True</property></object><packing><property name="
++ "\"expand\">False</property><property name=\"fill\">False</property><pro"
++ "perty name=\"position\">8</property></packing></child></object><packing"
++ "><property name=\"position\">2</property></packing></child><child type="
++ "\"tab\"><object class=\"GtkLabel\" id=\"label3\"><property name=\"visib"
++ "le\">True</property><property name=\"label\" translatable=\"yes\">_Acce"
++ "ssibility</property><property name=\"use_underline\">True</property></o"
++ "bject><packing><property name=\"position\">2</property><property name=\""
++ "tab_fill\">False</property></packing></child><child><object class=\"Gtk"
++ "VBox\" id=\"vbox5\"><property name=\"visible\">True</property><property"
++ " name=\"border_width\">12</property><property name=\"orientation\">vert"
++ "ical</property><property name=\"spacing\">6</property><child><object cl"
++ "ass=\"GtkCheckButton\" id=\"scroll_workspaces_check\"><property name=\""
++ "label\" translatable=\"yes\">Use the _mouse wheel on the desktop to swi"
++ "tch workspaces</property><property name=\"visible\">True</property><pro"
+ "perty name=\"can_focus\">True</property><property name=\"receives_defau"
+ "lt\">False</property><property name=\"use_underline\">True</property><p"
+ "roperty name=\"draw_indicator\">True</property></object><packing><prope"
+ "rty name=\"expand\">False</property><property name=\"fill\">False</prop"
+- "erty><property name=\"position\">6</property></packing></child></object"
+- "><packing><property name=\"position\">2</property></packing></child><ch"
+- "ild type=\"tab\"><object class=\"GtkLabel\" id=\"label3\"><property nam"
+- "e=\"visible\">True</property><property name=\"label\" translatable=\"ye"
+- "s\">_Accessibility</property><property name=\"use_underline\">True</pro"
+- "perty></object><packing><property name=\"position\">2</property><proper"
+- "ty name=\"tab_fill\">False</property></packing></child><child><object c"
+- "lass=\"GtkVBox\" id=\"vbox5\"><property name=\"visible\">True</property"
+- "><property name=\"border_width\">12</property><property name=\"orientat"
+- "ion\">vertical</property><property name=\"spacing\">6</property><child>"
+- "<object class=\"GtkCheckButton\" id=\"scroll_workspaces_check\"><proper"
+- "ty name=\"label\" translatable=\"yes\">Use the _mouse wheel on the desk"
+- "top to switch workspaces</property><property name=\"visible\">True</pro"
+- "perty><property name=\"can_focus\">True</property><property name=\"rece"
+- "ives_default\">False</property><property name=\"use_underline\">True</p"
+- "roperty><property name=\"draw_indicator\">True</property></object><pack"
+- "ing><property name=\"expand\">False</property><property name=\"fill\">F"
+- "alse</property><property name=\"position\">0</property></packing></chil"
+- "d><child><object class=\"GtkCheckButton\" id=\"toggle_workspaces_check\""
+- "><property name=\"label\" translatable=\"yes\">_Remember and recall pre"
+- "vious workspace\nwhen switching via keyboard shortcuts</property><prope"
+- "rty name=\"visible\">True</property><property name=\"can_focus\">True</"
+- "property><property name=\"receives_default\">False</property><property "
+- "name=\"use_underline\">True</property><property name=\"draw_indicator\""
+- ">True</property></object><packing><property name=\"expand\">False</prop"
+- "erty><property name=\"fill\">False</property><property name=\"position\""
+- ">1</property></packing></child><child><object class=\"GtkCheckButton\" "
+- "id=\"wrap_layout_check\"><property name=\"label\" translatable=\"yes\">"
+- "Wrap workspaces depending on the actual desktop _layout</property><prop"
+- "erty name=\"visible\">True</property><property name=\"can_focus\">True<"
+- "/property><property name=\"receives_default\">False</property><property"
+- " name=\"use_underline\">True</property><property name=\"draw_indicator\""
+- ">True</property></object><packing><property name=\"expand\">False</prop"
+- "erty><property name=\"fill\">False</property><property name=\"position\""
+- ">2</property></packing></child><child><object class=\"GtkCheckButton\" "
+- "id=\"wrap_cycle_check\"><property name=\"label\" translatable=\"yes\">W"
+- "rap workspaces when the _first or the last workspace is reached</proper"
+- "ty><property name=\"visible\">True</property><property name=\"can_focus"
+- "\">True</property><property name=\"receives_default\">False</property><"
+- "property name=\"use_underline\">True</property><property name=\"draw_in"
+- "dicator\">True</property></object><packing><property name=\"expand\">Fa"
+- "lse</property><property name=\"fill\">False</property><property name=\""
+- "position\">3</property></packing></child></object><packing><property na"
+- "me=\"position\">3</property></packing></child><child type=\"tab\"><obje"
+- "ct class=\"GtkLabel\" id=\"label4\"><property name=\"visible\">True</pr"
+- "operty><property name=\"label\" translatable=\"yes\">_Workspaces</prope"
+- "rty><property name=\"use_underline\">True</property></object><packing><"
+- "property name=\"position\">3</property><property name=\"tab_fill\">Fals"
+- "e</property></packing></child><child><object class=\"GtkVBox\" id=\"vbo"
+- "x6\"><property name=\"visible\">True</property><property name=\"border_"
+- "width\">12</property><property name=\"orientation\">vertical</property>"
+- "<property name=\"spacing\">6</property><child><object class=\"GtkLabel\""
+- " id=\"label8\"><property name=\"visible\">True</property><property name"
+- "=\"xalign\">0</property><property name=\"label\" translatable=\"yes\">_"
+- "Minimum size of windows to trigger smart placement:</property><property"
+- " name=\"use_underline\">True</property><property name=\"mnemonic_widget"
+- "\">placement_ratio_scale</property></object><packing><property name=\"e"
+- "xpand\">False</property><property name=\"fill\">False</property><proper"
+- "ty name=\"position\">0</property></packing></child><child><object class"
+- "=\"GtkAlignment\" id=\"alignment4\"><property name=\"visible\">True</pr"
+- "operty><property name=\"bottom_padding\">6</property><property name=\"l"
+- "eft_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox2\""
+- "><property name=\"visible\">True</property><property name=\"spacing\">1"
+- "2</property><child><object class=\"GtkLabel\" id=\"label9\"><property n"
+- "ame=\"visible\">True</property><property name=\"label\" translatable=\""
+- "yes\" comments=\"Smart placement size\">&lt;i&gt;Small&lt;/i&gt;</prope"
+- "rty><property name=\"use_markup\">True</property></object><packing><pro"
+- "perty name=\"expand\">False</property><property name=\"fill\">False</pr"
+- "operty><property name=\"position\">0</property></packing></child><child"
+- "><object class=\"GtkHScale\" id=\"placement_ratio_scale\"><property nam"
+- "e=\"visible\">True</property><property name=\"can_focus\">True</propert"
+- "y><property name=\"adjustment\">adjustment1</property><property name=\""
+- "restrict_to_fill_level\">False</property><property name=\"draw_value\">"
+- "False</property></object><packing><property name=\"position\">1</proper"
+- "ty></packing></child><child><object class=\"GtkLabel\" id=\"label10\"><"
+- "property name=\"visible\">True</property><property name=\"label\" trans"
+- "latable=\"yes\" comments=\"Smart placement size\">&lt;i&gt;Large&lt;/i&"
+- "gt;</property><property name=\"use_markup\">True</property></object><pa"
+- "cking><property name=\"expand\">False</property><property name=\"positi"
+- "on\">2</property></packing></child></object></child></object><packing><"
+- "property name=\"expand\">False</property><property name=\"fill\">False<"
+- "/property><property name=\"position\">1</property></packing></child><ch"
+- "ild><object class=\"GtkVBox\" id=\"default_placement_box\"><property na"
+- "me=\"visible\">True</property><property name=\"orientation\">vertical</"
+- "property><property name=\"spacing\">6</property><child><object class=\""
+- "GtkLabel\" id=\"label27\"><property name=\"visible\">True</property><pr"
+- "operty name=\"xalign\">0</property><property name=\"label\" translatabl"
+- "e=\"yes\">By default, place windows:</property></object><packing><prope"
+- "rty name=\"position\">0</property></packing></child><child><object clas"
+- "s=\"GtkAlignment\" id=\"alignment10\"><property name=\"visible\">True</"
+- "property><property name=\"bottom_padding\">6</property><property name=\""
+- "left_padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox1"
+- "8\"><property name=\"visible\">True</property><property name=\"border_w"
+- "idth\">6</property><property name=\"orientation\">vertical</property><p"
+- "roperty name=\"spacing\">6</property><child><object class=\"GtkRadioBut"
+- "ton\" id=\"placement_center_option\"><property name=\"label\" translata"
+- "ble=\"yes\">At the _center of the screen</property><property name=\"vis"
+- "ible\">True</property><property name=\"can_focus\">True</property><prop"
+- "erty name=\"receives_default\">False</property><property name=\"use_und"
+- "erline\">True</property><property name=\"draw_indicator\">True</propert"
+- "y></object><packing><property name=\"position\">0</property></packing><"
+- "/child><child><object class=\"GtkRadioButton\" id=\"placement_mouse_opt"
+- "ion\"><property name=\"label\" translatable=\"yes\">Under the mouse _po"
+- "inter</property><property name=\"visible\">True</property><property nam"
+- "e=\"can_focus\">True</property><property name=\"receives_default\">Fals"
+- "e</property><property name=\"use_underline\">True</property><property n"
+- "ame=\"active\">True</property><property name=\"draw_indicator\">True</p"
+- "roperty><property name=\"group\">placement_center_option</property></ob"
+- "ject><packing><property name=\"position\">1</property></packing></child"
+- "></object></child></object><packing><property name=\"position\">1</prop"
+- "erty></packing></child></object><packing><property name=\"expand\">Fals"
+- "e</property><property name=\"fill\">False</property><property name=\"po"
+- "sition\">2</property></packing></child></object><packing><property name"
+- "=\"position\">4</property></packing></child><child type=\"tab\"><object"
+- " class=\"GtkLabel\" id=\"label5\"><property name=\"visible\">True</prop"
+- "erty><property name=\"label\" translatable=\"yes\">_Placement</property"
+- "><property name=\"use_underline\">True</property></object><packing><pro"
+- "perty name=\"position\">4</property><property name=\"tab_fill\">False</"
+- "property></packing></child><child><object class=\"GtkVBox\" id=\"vbox7\""
+- "><property name=\"visible\">True</property><property name=\"border_widt"
+- "h\">12</property><property name=\"orientation\">vertical</property><pro"
+- "perty name=\"spacing\">6</property><child><object class=\"GtkCheckButto"
+- "n\" id=\"use_compositing_check\"><property name=\"label\" translatable="
+- "\"yes\">_Enable display compositing</property><property name=\"visible\""
+- ">True</property><property name=\"can_focus\">True</property><property n"
+- "ame=\"receives_default\">False</property><property name=\"use_underline"
+- "\">True</property><property name=\"draw_indicator\">True</property></ob"
+- "ject><packing><property name=\"expand\">False</property><property name="
+- "\"fill\">False</property><property name=\"position\">0</property></pack"
+- "ing></child><child><object class=\"GtkScrolledWindow\" id=\"use_composi"
+- "ting_box\"><property name=\"visible\">True</property><property name=\"s"
+- "ensitive\">False</property><property name=\"can_focus\">True</property>"
+- "<property name=\"hscrollbar_policy\">never</property><property name=\"v"
+- "scrollbar_policy\">automatic</property><child><object class=\"GtkViewpo"
+- "rt\" id=\"viewport1\"><property name=\"visible\">True</property><proper"
+- "ty name=\"resize_mode\">queue</property><property name=\"shadow_type\">"
+- "none</property><child><object class=\"GtkAlignment\" id=\"alignment3\">"
+- "<property name=\"visible\">True</property><property name=\"bottom_paddi"
+- "ng\">6</property><property name=\"left_padding\">12</property><child><o"
+- "bject class=\"GtkVBox\" id=\"vbox8\"><property name=\"visible\">True</p"
+- "roperty><property name=\"orientation\">vertical</property><property nam"
+- "e=\"spacing\">6</property><child><object class=\"GtkCheckButton\" id=\""
+- "unredirect_overlays_check\"><property name=\"label\" translatable=\"yes"
+- "\">Display _fullscreen overlay windows directly</property><property nam"
++ "erty><property name=\"position\">0</property></packing></child><child><"
++ "object class=\"GtkCheckButton\" id=\"toggle_workspaces_check\"><propert"
++ "y name=\"label\" translatable=\"yes\">_Remember and recall previous wor"
++ "kspace\nwhen switching via keyboard shortcuts</property><property name="
++ "\"visible\">True</property><property name=\"can_focus\">True</property>"
++ "<property name=\"receives_default\">False</property><property name=\"us"
++ "e_underline\">True</property><property name=\"draw_indicator\">True</pr"
++ "operty></object><packing><property name=\"expand\">False</property><pro"
++ "perty name=\"fill\">False</property><property name=\"position\">1</prop"
++ "erty></packing></child><child><object class=\"GtkCheckButton\" id=\"wra"
++ "p_layout_check\"><property name=\"label\" translatable=\"yes\">Wrap wor"
++ "kspaces depending on the actual desktop _layout</property><property nam"
+ "e=\"visible\">True</property><property name=\"can_focus\">True</propert"
+ "y><property name=\"receives_default\">False</property><property name=\""
+ "use_underline\">True</property><property name=\"draw_indicator\">True</"
+ "property></object><packing><property name=\"expand\">False</property><p"
+- "roperty name=\"position\">0</property></packing></child><child><object "
+- "class=\"GtkCheckButton\" id=\"show_frame_shadow_check\"><property name="
+- "\"label\" translatable=\"yes\">Show shadows under _regular windows</pro"
+- "perty><property name=\"visible\">True</property><property name=\"can_fo"
+- "cus\">True</property><property name=\"receives_default\">False</propert"
+- "y><property name=\"use_underline\">True</property><property name=\"draw"
+- "_indicator\">True</property></object><packing><property name=\"expand\""
+- ">False</property><property name=\"position\">1</property></packing></ch"
+- "ild><child><object class=\"GtkCheckButton\" id=\"show_popup_shadow_chec"
+- "k\"><property name=\"label\" translatable=\"yes\">Show shadows under po"
+- "p_up windows</property><property name=\"visible\">True</property><prope"
+- "rty name=\"can_focus\">True</property><property name=\"receives_default"
+- "\">False</property><property name=\"use_underline\">True</property><pro"
+- "perty name=\"draw_indicator\">True</property></object><packing><propert"
+- "y name=\"expand\">False</property><property name=\"position\">2</proper"
+- "ty></packing></child><child><object class=\"GtkCheckButton\" id=\"show_"
+- "dock_shadow_check\"><property name=\"label\" translatable=\"yes\">Show "
+- "shadows under _dock windows</property><property name=\"visible\">True</"
+- "property><property name=\"can_focus\">True</property><property name=\"r"
+- "eceives_default\">False</property><property name=\"use_underline\">True"
+- "</property><property name=\"draw_indicator\">True</property></object><p"
+- "acking><property name=\"expand\">False</property><property name=\"posit"
+- "ion\">3</property></packing></child><child><object class=\"GtkLabel\" i"
+- "d=\"label12\"><property name=\"visible\">True</property><property name="
+- "\"xalign\">0</property><property name=\"label\" translatable=\"yes\">Op"
+- "aci_ty of window decorations:</property><property name=\"use_underline\""
+- ">True</property><property name=\"mnemonic_widget\">frame_opacity_scale<"
+- "/property></object><packing><property name=\"expand\">False</property><"
+- "property name=\"position\">4</property></packing></child><child><object"
+- " class=\"GtkAlignment\" id=\"alignment5\"><property name=\"visible\">Tr"
+- "ue</property><property name=\"top_padding\">2</property><property name="
+- "\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbo"
+- "x3\"><property name=\"visible\">True</property><child><object class=\"G"
+- "tkLabel\" id=\"label17\"><property name=\"visible\">True</property><pro"
+- "perty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&gt"
+- ";</property><property name=\"use_markup\">True</property></object><pack"
+- "ing><property name=\"expand\">False</property><property name=\"fill\">F"
+- "alse</property><property name=\"position\">0</property></packing></chil"
+- "d><child><object class=\"GtkHScale\" id=\"frame_opacity_scale\"><proper"
++ "roperty name=\"fill\">False</property><property name=\"position\">2</pr"
++ "operty></packing></child><child><object class=\"GtkCheckButton\" id=\"w"
++ "rap_cycle_check\"><property name=\"label\" translatable=\"yes\">Wrap wo"
++ "rkspaces when the _first or the last workspace is reached</property><pr"
++ "operty name=\"visible\">True</property><property name=\"can_focus\">Tru"
++ "e</property><property name=\"receives_default\">False</property><proper"
++ "ty name=\"use_underline\">True</property><property name=\"draw_indicato"
++ "r\">True</property></object><packing><property name=\"expand\">False</p"
++ "roperty><property name=\"fill\">False</property><property name=\"positi"
++ "on\">3</property></packing></child></object><packing><property name=\"p"
++ "osition\">3</property></packing></child><child type=\"tab\"><object cla"
++ "ss=\"GtkLabel\" id=\"label4\"><property name=\"visible\">True</property"
++ "><property name=\"label\" translatable=\"yes\">_Workspaces</property><p"
++ "roperty name=\"use_underline\">True</property></object><packing><proper"
++ "ty name=\"position\">3</property><property name=\"tab_fill\">False</pro"
++ "perty></packing></child><child><object class=\"GtkVBox\" id=\"vbox6\"><"
++ "property name=\"visible\">True</property><property name=\"border_width\""
++ ">12</property><property name=\"orientation\">vertical</property><proper"
++ "ty name=\"spacing\">6</property><child><object class=\"GtkLabel\" id=\""
++ "label8\"><property name=\"visible\">True</property><property name=\"xal"
++ "ign\">0</property><property name=\"label\" translatable=\"yes\">_Minimu"
++ "m size of windows to trigger smart placement:</property><property name="
++ "\"use_underline\">True</property><property name=\"mnemonic_widget\">pla"
++ "cement_ratio_scale</property></object><packing><property name=\"expand\""
++ ">False</property><property name=\"fill\">False</property><property name"
++ "=\"position\">0</property></packing></child><child><object class=\"GtkA"
++ "lignment\" id=\"alignment4\"><property name=\"visible\">True</property>"
++ "<property name=\"bottom_padding\">6</property><property name=\"left_pad"
++ "ding\">12</property><child><object class=\"GtkHBox\" id=\"hbox2\"><prop"
++ "erty name=\"visible\">True</property><property name=\"spacing\">12</pro"
++ "perty><child><object class=\"GtkLabel\" id=\"label9\"><property name=\""
++ "visible\">True</property><property name=\"label\" translatable=\"yes\" "
++ "comments=\"Smart placement size\">&lt;i&gt;Small&lt;/i&gt;</property><p"
++ "roperty name=\"use_markup\">True</property></object><packing><property "
++ "name=\"expand\">False</property><property name=\"fill\">False</property"
++ "><property name=\"position\">0</property></packing></child><child><obje"
++ "ct class=\"GtkHScale\" id=\"placement_ratio_scale\"><property name=\"vi"
++ "sible\">True</property><property name=\"can_focus\">True</property><pro"
++ "perty name=\"adjustment\">adjustment1</property><property name=\"restri"
++ "ct_to_fill_level\">False</property><property name=\"draw_value\">False<"
++ "/property></object><packing><property name=\"position\">1</property></p"
++ "acking></child><child><object class=\"GtkLabel\" id=\"label10\"><proper"
++ "ty name=\"visible\">True</property><property name=\"label\" translatabl"
++ "e=\"yes\" comments=\"Smart placement size\">&lt;i&gt;Large&lt;/i&gt;</p"
++ "roperty><property name=\"use_markup\">True</property></object><packing>"
++ "<property name=\"expand\">False</property><property name=\"position\">2"
++ "</property></packing></child></object></child></object><packing><proper"
++ "ty name=\"expand\">False</property><property name=\"fill\">False</prope"
++ "rty><property name=\"position\">1</property></packing></child><child><o"
++ "bject class=\"GtkVBox\" id=\"default_placement_box\"><property name=\"v"
++ "isible\">True</property><property name=\"orientation\">vertical</proper"
++ "ty><property name=\"spacing\">6</property><child><object class=\"GtkLab"
++ "el\" id=\"label27\"><property name=\"visible\">True</property><property"
++ " name=\"xalign\">0</property><property name=\"label\" translatable=\"ye"
++ "s\">By default, place windows:</property></object><packing><property na"
++ "me=\"position\">0</property></packing></child><child><object class=\"Gt"
++ "kAlignment\" id=\"alignment10\"><property name=\"visible\">True</proper"
++ "ty><property name=\"bottom_padding\">6</property><property name=\"left_"
++ "padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox18\"><"
++ "property name=\"visible\">True</property><property name=\"border_width\""
++ ">6</property><property name=\"orientation\">vertical</property><propert"
++ "y name=\"spacing\">6</property><child><object class=\"GtkRadioButton\" "
++ "id=\"placement_center_option\"><property name=\"label\" translatable=\""
++ "yes\">At the _center of the screen</property><property name=\"visible\""
++ ">True</property><property name=\"can_focus\">True</property><property n"
++ "ame=\"receives_default\">False</property><property name=\"use_underline"
++ "\">True</property><property name=\"draw_indicator\">True</property></ob"
++ "ject><packing><property name=\"position\">0</property></packing></child"
++ "><child><object class=\"GtkRadioButton\" id=\"placement_mouse_option\">"
++ "<property name=\"label\" translatable=\"yes\">Under the mouse _pointer<"
++ "/property><property name=\"visible\">True</property><property name=\"ca"
++ "n_focus\">True</property><property name=\"receives_default\">False</pro"
++ "perty><property name=\"use_underline\">True</property><property name=\""
++ "active\">True</property><property name=\"draw_indicator\">True</propert"
++ "y><property name=\"group\">placement_center_option</property></object><"
++ "packing><property name=\"position\">1</property></packing></child></obj"
++ "ect></child></object><packing><property name=\"position\">1</property><"
++ "/packing></child></object><packing><property name=\"expand\">False</pro"
++ "perty><property name=\"fill\">False</property><property name=\"position"
++ "\">2</property></packing></child></object><packing><property name=\"pos"
++ "ition\">4</property></packing></child><child type=\"tab\"><object class"
++ "=\"GtkLabel\" id=\"label5\"><property name=\"visible\">True</property><"
++ "property name=\"label\" translatable=\"yes\">_Placement</property><prop"
++ "erty name=\"use_underline\">True</property></object><packing><property "
++ "name=\"position\">4</property><property name=\"tab_fill\">False</proper"
++ "ty></packing></child><child><object class=\"GtkVBox\" id=\"vbox7\"><pro"
++ "perty name=\"visible\">True</property><property name=\"border_width\">1"
++ "2</property><property name=\"orientation\">vertical</property><property"
++ " name=\"spacing\">6</property><child><object class=\"GtkCheckButton\" i"
++ "d=\"use_compositing_check\"><property name=\"label\" translatable=\"yes"
++ "\">_Enable display compositing</property><property name=\"visible\">Tru"
++ "e</property><property name=\"can_focus\">True</property><property name="
++ "\"receives_default\">False</property><property name=\"use_underline\">T"
++ "rue</property><property name=\"draw_indicator\">True</property></object"
++ "><packing><property name=\"expand\">False</property><property name=\"fi"
++ "ll\">False</property><property name=\"position\">0</property></packing>"
++ "</child><child><object class=\"GtkScrolledWindow\" id=\"use_compositing"
++ "_box\"><property name=\"visible\">True</property><property name=\"sensi"
++ "tive\">False</property><property name=\"can_focus\">True</property><pro"
++ "perty name=\"hscrollbar_policy\">never</property><property name=\"vscro"
++ "llbar_policy\">automatic</property><child><object class=\"GtkViewport\""
++ " id=\"viewport1\"><property name=\"visible\">True</property><property n"
++ "ame=\"resize_mode\">queue</property><property name=\"shadow_type\">none"
++ "</property><child><object class=\"GtkAlignment\" id=\"alignment3\"><pro"
++ "perty name=\"visible\">True</property><property name=\"bottom_padding\""
++ ">6</property><property name=\"left_padding\">12</property><child><objec"
++ "t class=\"GtkVBox\" id=\"vbox8\"><property name=\"visible\">True</prope"
++ "rty><property name=\"orientation\">vertical</property><property name=\""
++ "spacing\">6</property><child><object class=\"GtkCheckButton\" id=\"unre"
++ "direct_overlays_check\"><property name=\"label\" translatable=\"yes\">D"
++ "isplay _fullscreen overlay windows directly</property><property name=\""
++ "visible\">True</property><property name=\"can_focus\">True</property><p"
++ "roperty name=\"receives_default\">False</property><property name=\"use_"
++ "underline\">True</property><property name=\"draw_indicator\">True</prop"
++ "erty></object><packing><property name=\"expand\">False</property><prope"
++ "rty name=\"position\">0</property></packing></child><child><object clas"
++ "s=\"GtkCheckButton\" id=\"show_frame_shadow_check\"><property name=\"la"
++ "bel\" translatable=\"yes\">Show shadows under _regular windows</propert"
++ "y><property name=\"visible\">True</property><property name=\"can_focus\""
++ ">True</property><property name=\"receives_default\">False</property><pr"
++ "operty name=\"use_underline\">True</property><property name=\"draw_indi"
++ "cator\">True</property></object><packing><property name=\"expand\">Fals"
++ "e</property><property name=\"position\">1</property></packing></child><"
++ "child><object class=\"GtkCheckButton\" id=\"show_popup_shadow_check\"><"
++ "property name=\"label\" translatable=\"yes\">Show shadows under pop_up "
++ "windows</property><property name=\"visible\">True</property><property n"
++ "ame=\"can_focus\">True</property><property name=\"receives_default\">Fa"
++ "lse</property><property name=\"use_underline\">True</property><property"
++ " name=\"draw_indicator\">True</property></object><packing><property nam"
++ "e=\"expand\">False</property><property name=\"position\">2</property></"
++ "packing></child><child><object class=\"GtkCheckButton\" id=\"show_dock_"
++ "shadow_check\"><property name=\"label\" translatable=\"yes\">Show shado"
++ "ws under _dock windows</property><property name=\"visible\">True</prope"
++ "rty><property name=\"can_focus\">True</property><property name=\"receiv"
++ "es_default\">False</property><property name=\"use_underline\">True</pro"
++ "perty><property name=\"draw_indicator\">True</property></object><packin"
++ "g><property name=\"expand\">False</property><property name=\"position\""
++ ">3</property></packing></child><child><object class=\"GtkLabel\" id=\"l"
++ "abel12\"><property name=\"visible\">True</property><property name=\"xal"
++ "ign\">0</property><property name=\"label\" translatable=\"yes\">Opaci_t"
++ "y of window decorations:</property><property name=\"use_underline\">Tru"
++ "e</property><property name=\"mnemonic_widget\">frame_opacity_scale</pro"
++ "perty></object><packing><property name=\"expand\">False</property><prop"
++ "erty name=\"position\">4</property></packing></child><child><object cla"
++ "ss=\"GtkAlignment\" id=\"alignment5\"><property name=\"visible\">True</"
++ "property><property name=\"top_padding\">2</property><property name=\"le"
++ "ft_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox3\""
++ "><property name=\"visible\">True</property><child><object class=\"GtkLa"
++ "bel\" id=\"label17\"><property name=\"visible\">True</property><propert"
++ "y name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&gt;</p"
++ "roperty><property name=\"use_markup\">True</property></object><packing>"
++ "<property name=\"expand\">False</property><property name=\"fill\">False"
++ "</property><property name=\"position\">0</property></packing></child><c"
++ "hild><object class=\"GtkHScale\" id=\"frame_opacity_scale\"><property n"
++ "ame=\"visible\">True</property><property name=\"can_focus\">True</prope"
++ "rty><property name=\"update_policy\">discontinuous</property><property "
++ "name=\"adjustment\">adjustment2</property><property name=\"restrict_to_"
++ "fill_level\">False</property><property name=\"draw_value\">False</prope"
++ "rty></object><packing><property name=\"position\">1</property></packing"
++ "></child><child><object class=\"GtkLabel\" id=\"label18\"><property nam"
++ "e=\"visible\">True</property><property name=\"label\" translatable=\"ye"
++ "s\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_markup\">T"
++ "rue</property></object><packing><property name=\"expand\">False</proper"
++ "ty><property name=\"fill\">False</property><property name=\"position\">"
++ "2</property></packing></child></object></child></object><packing><prope"
++ "rty name=\"expand\">False</property><property name=\"fill\">False</prop"
++ "erty><property name=\"position\">5</property></packing></child><child><"
++ "object class=\"GtkLabel\" id=\"label13\"><property name=\"visible\">Tru"
++ "e</property><property name=\"xalign\">0</property><property name=\"labe"
++ "l\" translatable=\"yes\">Opacity of _inactive windows:</property><prope"
++ "rty name=\"use_underline\">True</property><property name=\"mnemonic_wid"
++ "get\">inactive_opacity_scale</property></object><packing><property name"
++ "=\"expand\">False</property><property name=\"fill\">False</property><pr"
++ "operty name=\"position\">6</property></packing></child><child><object c"
++ "lass=\"GtkAlignment\" id=\"alignment6\"><property name=\"visible\">True"
++ "</property><property name=\"top_padding\">2</property><property name=\""
++ "left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox4"
++ "\"><property name=\"visible\">True</property><child><object class=\"Gtk"
++ "Label\" id=\"label19\"><property name=\"visible\">True</property><prope"
++ "rty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&gt;<"
++ "/property><property name=\"use_markup\">True</property></object><packin"
++ "g><property name=\"expand\">False</property><property name=\"fill\">Fal"
++ "se</property><property name=\"position\">0</property></packing></child>"
++ "<child><object class=\"GtkHScale\" id=\"inactive_opacity_scale\"><prope"
++ "rty name=\"visible\">True</property><property name=\"can_focus\">True</"
++ "property><property name=\"update_policy\">discontinuous</property><prop"
++ "erty name=\"adjustment\">adjustment3</property><property name=\"restric"
++ "t_to_fill_level\">False</property><property name=\"draw_value\">False</"
++ "property></object><packing><property name=\"position\">1</property></pa"
++ "cking></child><child><object class=\"GtkLabel\" id=\"label20\"><propert"
++ "y name=\"visible\">True</property><property name=\"label\" translatable"
++ "=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_marku"
++ "p\">True</property></object><packing><property name=\"expand\">False</p"
++ "roperty><property name=\"fill\">False</property><property name=\"positi"
++ "on\">2</property></packing></child></object></child></object><packing><"
++ "property name=\"expand\">False</property><property name=\"fill\">False<"
++ "/property><property name=\"position\">7</property></packing></child><ch"
++ "ild><object class=\"GtkLabel\" id=\"label14\"><property name=\"visible\""
++ ">True</property><property name=\"xalign\">0</property><property name=\""
++ "label\" translatable=\"yes\">Opacity of windows during _move:</property"
++ "><property name=\"use_underline\">True</property><property name=\"mnemo"
++ "nic_widget\">move_opacity_scale</property></object><packing><property n"
++ "ame=\"expand\">False</property><property name=\"fill\">False</property>"
++ "<property name=\"position\">8</property></packing></child><child><objec"
++ "t class=\"GtkAlignment\" id=\"alignment7\"><property name=\"visible\">T"
++ "rue</property><property name=\"top_padding\">2</property><property name"
++ "=\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hb"
++ "ox5\"><property name=\"visible\">True</property><child><object class=\""
++ "GtkLabel\" id=\"label21\"><property name=\"visible\">True</property><pr"
++ "operty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&g"
++ "t;</property><property name=\"use_markup\">True</property></object><pac"
++ "king><property name=\"expand\">False</property><property name=\"fill\">"
++ "False</property><property name=\"position\">0</property></packing></chi"
++ "ld><child><object class=\"GtkHScale\" id=\"move_opacity_scale\"><proper"
+ "ty name=\"visible\">True</property><property name=\"can_focus\">True</p"
+ "roperty><property name=\"update_policy\">discontinuous</property><prope"
+- "rty name=\"adjustment\">adjustment2</property><property name=\"restrict"
++ "rty name=\"adjustment\">adjustment4</property><property name=\"restrict"
+ "_to_fill_level\">False</property><property name=\"draw_value\">False</p"
+ "roperty></object><packing><property name=\"position\">1</property></pac"
+- "king></child><child><object class=\"GtkLabel\" id=\"label18\"><property"
++ "king></child><child><object class=\"GtkLabel\" id=\"label22\"><property"
+ " name=\"visible\">True</property><property name=\"label\" translatable="
+ "\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_markup"
+ "\">True</property></object><packing><property name=\"expand\">False</pr"
+ "operty><property name=\"fill\">False</property><property name=\"positio"
+ "n\">2</property></packing></child></object></child></object><packing><p"
+ "roperty name=\"expand\">False</property><property name=\"fill\">False</"
+- "property><property name=\"position\">5</property></packing></child><chi"
+- "ld><object class=\"GtkLabel\" id=\"label13\"><property name=\"visible\""
++ "property><property name=\"position\">9</property></packing></child><chi"
++ "ld><object class=\"GtkLabel\" id=\"label15\"><property name=\"visible\""
+ ">True</property><property name=\"xalign\">0</property><property name=\""
+- "label\" translatable=\"yes\">Opacity of _inactive windows:</property><p"
+- "roperty name=\"use_underline\">True</property><property name=\"mnemonic"
+- "_widget\">inactive_opacity_scale</property></object><packing><property "
+- "name=\"expand\">False</property><property name=\"fill\">False</property"
+- "><property name=\"position\">6</property></packing></child><child><obje"
+- "ct class=\"GtkAlignment\" id=\"alignment6\"><property name=\"visible\">"
+- "True</property><property name=\"top_padding\">2</property><property nam"
+- "e=\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"h"
+- "box4\"><property name=\"visible\">True</property><child><object class=\""
+- "GtkLabel\" id=\"label19\"><property name=\"visible\">True</property><pr"
+- "operty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&g"
+- "t;</property><property name=\"use_markup\">True</property></object><pac"
+- "king><property name=\"expand\">False</property><property name=\"fill\">"
+- "False</property><property name=\"position\">0</property></packing></chi"
+- "ld><child><object class=\"GtkHScale\" id=\"inactive_opacity_scale\"><pr"
+- "operty name=\"visible\">True</property><property name=\"can_focus\">Tru"
+- "e</property><property name=\"update_policy\">discontinuous</property><p"
+- "roperty name=\"adjustment\">adjustment3</property><property name=\"rest"
+- "rict_to_fill_level\">False</property><property name=\"draw_value\">Fals"
+- "e</property></object><packing><property name=\"position\">1</property><"
+- "/packing></child><child><object class=\"GtkLabel\" id=\"label20\"><prop"
+- "erty name=\"visible\">True</property><property name=\"label\" translata"
+- "ble=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_ma"
+- "rkup\">True</property></object><packing><property name=\"expand\">False"
+- "</property><property name=\"fill\">False</property><property name=\"pos"
+- "ition\">2</property></packing></child></object></child></object><packin"
+- "g><property name=\"expand\">False</property><property name=\"fill\">Fal"
+- "se</property><property name=\"position\">7</property></packing></child>"
+- "<child><object class=\"GtkLabel\" id=\"label14\"><property name=\"visib"
+- "le\">True</property><property name=\"xalign\">0</property><property nam"
+- "e=\"label\" translatable=\"yes\">Opacity of windows during _move:</prop"
+- "erty><property name=\"use_underline\">True</property><property name=\"m"
+- "nemonic_widget\">move_opacity_scale</property></object><packing><proper"
++ "label\" translatable=\"yes\">Opacity of windows during resi_ze:</proper"
++ "ty><property name=\"use_underline\">True</property><property name=\"mne"
++ "monic_widget\">resize_opacity_scale</property></object><packing><proper"
+ "ty name=\"expand\">False</property><property name=\"fill\">False</prope"
+- "rty><property name=\"position\">8</property></packing></child><child><o"
+- "bject class=\"GtkAlignment\" id=\"alignment7\"><property name=\"visible"
+- "\">True</property><property name=\"top_padding\">2</property><property "
+- "name=\"left_padding\">12</property><child><object class=\"GtkHBox\" id="
+- "\"hbox5\"><property name=\"visible\">True</property><child><object clas"
+- "s=\"GtkLabel\" id=\"label21\"><property name=\"visible\">True</property"
+- "><property name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;"
+- "/i&gt;</property><property name=\"use_markup\">True</property></object>"
+- "<packing><property name=\"expand\">False</property><property name=\"fil"
+- "l\">False</property><property name=\"position\">0</property></packing><"
+- "/child><child><object class=\"GtkHScale\" id=\"move_opacity_scale\"><pr"
+- "operty name=\"visible\">True</property><property name=\"can_focus\">Tru"
+- "e</property><property name=\"update_policy\">discontinuous</property><p"
+- "roperty name=\"adjustment\">adjustment4</property><property name=\"rest"
+- "rict_to_fill_level\">False</property><property name=\"draw_value\">Fals"
+- "e</property></object><packing><property name=\"position\">1</property><"
+- "/packing></child><child><object class=\"GtkLabel\" id=\"label22\"><prop"
+- "erty name=\"visible\">True</property><property name=\"label\" translata"
+- "ble=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_ma"
+- "rkup\">True</property></object><packing><property name=\"expand\">False"
+- "</property><property name=\"fill\">False</property><property name=\"pos"
+- "ition\">2</property></packing></child></object></child></object><packin"
+- "g><property name=\"expand\">False</property><property name=\"fill\">Fal"
+- "se</property><property name=\"position\">9</property></packing></child>"
+- "<child><object class=\"GtkLabel\" id=\"label15\"><property name=\"visib"
+- "le\">True</property><property name=\"xalign\">0</property><property nam"
+- "e=\"label\" translatable=\"yes\">Opacity of windows during resi_ze:</pr"
+- "operty><property name=\"use_underline\">True</property><property name=\""
+- "mnemonic_widget\">resize_opacity_scale</property></object><packing><pro"
+- "perty name=\"expand\">False</property><property name=\"fill\">False</pr"
+- "operty><property name=\"position\">10</property></packing></child><chil"
+- "d><object class=\"GtkAlignment\" id=\"alignment8\"><property name=\"vis"
+- "ible\">True</property><property name=\"top_padding\">2</property><prope"
+- "rty name=\"left_padding\">12</property><child><object class=\"GtkHBox\""
+- " id=\"hbox6\"><property name=\"visible\">True</property><child><object "
+- "class=\"GtkLabel\" id=\"label23\"><property name=\"visible\">True</prop"
+- "erty><property name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent"
+- "&lt;/i&gt;</property><property name=\"use_markup\">True</property></obj"
+- "ect><packing><property name=\"expand\">False</property><property name=\""
+- "fill\">False</property><property name=\"position\">0</property></packin"
+- "g></child><child><object class=\"GtkHScale\" id=\"resize_opacity_scale\""
+- "><property name=\"visible\">True</property><property name=\"can_focus\""
+- ">True</property><property name=\"update_policy\">discontinuous</propert"
+- "y><property name=\"adjustment\">adjustment5</property><property name=\""
+- "restrict_to_fill_level\">False</property><property name=\"draw_value\">"
+- "False</property></object><packing><property name=\"position\">1</proper"
+- "ty></packing></child><child><object class=\"GtkLabel\" id=\"label24\"><"
+- "property name=\"visible\">True</property><property name=\"label\" trans"
+- "latable=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"us"
+- "e_markup\">True</property></object><packing><property name=\"expand\">F"
+- "alse</property><property name=\"fill\">False</property><property name=\""
++ "rty><property name=\"position\">10</property></packing></child><child><"
++ "object class=\"GtkAlignment\" id=\"alignment8\"><property name=\"visibl"
++ "e\">True</property><property name=\"top_padding\">2</property><property"
++ " name=\"left_padding\">12</property><child><object class=\"GtkHBox\" id"
++ "=\"hbox6\"><property name=\"visible\">True</property><child><object cla"
++ "ss=\"GtkLabel\" id=\"label23\"><property name=\"visible\">True</propert"
++ "y><property name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt"
++ ";/i&gt;</property><property name=\"use_markup\">True</property></object"
++ "><packing><property name=\"expand\">False</property><property name=\"fi"
++ "ll\">False</property><property name=\"position\">0</property></packing>"
++ "</child><child><object class=\"GtkHScale\" id=\"resize_opacity_scale\">"
++ "<property name=\"visible\">True</property><property name=\"can_focus\">"
++ "True</property><property name=\"update_policy\">discontinuous</property"
++ "><property name=\"adjustment\">adjustment5</property><property name=\"r"
++ "estrict_to_fill_level\">False</property><property name=\"draw_value\">F"
++ "alse</property></object><packing><property name=\"position\">1</propert"
++ "y></packing></child><child><object class=\"GtkLabel\" id=\"label24\"><p"
++ "roperty name=\"visible\">True</property><property name=\"label\" transl"
++ "atable=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use"
++ "_markup\">True</property></object><packing><property name=\"expand\">Fa"
++ "lse</property><property name=\"fill\">False</property><property name=\""
+ "position\">2</property></packing></child></object></child></object><pac"
+ "king><property name=\"expand\">False</property><property name=\"fill\">"
+ "False</property><property name=\"position\">11</property></packing></ch"
+@@ -568,5 +576,5 @@ static const char tweaks_dialog_ui[] =
+ "et></action-widgets></object></interface>"
+ };
+
+-static const unsigned tweaks_dialog_ui_length = 37803u;
++static const unsigned tweaks_dialog_ui_length = 38338u;
+
+diff --git a/src/client.c b/src/client.c
+index 4e86808..b92c264 100644
+--- a/src/client.c
++++ b/src/client.c
+@@ -64,6 +64,8 @@
+ #include "xsync.h"
+ #include "event_filter.h"
+
++//#define TRACE(fmt, ...) printf(fmt"\n", ##__VA_ARGS__); fflush(stdout);
++
+ /* Event mask definition */
+
+ #define POINTER_EVENT_MASK \
+@@ -173,6 +175,7 @@ clientCreateTitleName (Client *c, gchar *name, gchar *hostname)
+ gchar *title;
+
+ g_return_val_if_fail (c != NULL, NULL);
++
+ TRACE ("entering clientCreateTitleName");
+
+ screen_info = c->screen_info;
+@@ -1729,6 +1732,7 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
+ clientGetInitialNetWmDesktop (c);
+ /* workarea will be updated when shown, no need to worry here */
+ clientGetNetStruts (c);
++ clientGetExtra (c);
+
+ /* Once we know the type of window, we can initialize window position */
+ if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_SESSION_MANAGED))
+@@ -3137,6 +3141,8 @@ clientNewMaxSize (Client *c, XWindowChanges *wc, GdkRectangle *rect, tilePositio
+ wc->width = full_w - frameLeft (c) - frameRight (c);
+ wc->height = full_h - frameTop (c) - frameBottom (c);
+
++ TRACE ("clientNewMaxSize %d %d %d %d", wc->x, wc->y, wc->width, wc->height);
++
+ return ((wc->width <= c->size->max_width) && (wc->height <= c->size->max_height));
+ }
+
+diff --git a/src/client.h b/src/client.h
+index e8bc4e3..b5e54df 100644
+--- a/src/client.h
++++ b/src/client.h
+@@ -161,6 +161,7 @@
+ #define CLIENT_FLAG_DEMANDS_ATTENTION (1L<<17)
+ #define CLIENT_FLAG_HAS_SHAPE (1L<<18)
+ #define CLIENT_FLAG_FULLSCREN_MONITORS (1L<<19)
++#define CLIENT_FLAG_TITLELESS_MAXIMIZE (1L<<20)
+
+ #define WM_FLAG_DELETE (1L<<0)
+ #define WM_FLAG_INPUT (1L<<1)
+diff --git a/src/display.c b/src/display.c
+index 00318d5..4f847f4 100644
+--- a/src/display.c
++++ b/src/display.c
+@@ -169,7 +169,8 @@ myDisplayInitAtoms (DisplayInfo *display_info)
+ "XFWM4_COMPOSITING_MANAGER",
+ "XFWM4_TIMESTAMP_PROP",
+ "_XROOTPMAP_ID",
+- "_XSETROOT_ID"
++ "_XSETROOT_ID",
++ "_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED"
+ };
+
+ g_assert (ATOM_COUNT == G_N_ELEMENTS (atom_names));
+diff --git a/src/display.h b/src/display.h
+index 8797237..a297cf2 100644
+--- a/src/display.h
++++ b/src/display.h
+@@ -265,6 +265,7 @@ enum
+ XFWM4_TIMESTAMP_PROP,
+ XROOTPMAP,
+ XSETROOT,
++ _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED,
+ ATOM_COUNT
+ };
+
+diff --git a/src/events.c b/src/events.c
+index 4b49171..044cd11 100644
+--- a/src/events.c
++++ b/src/events.c
+@@ -1921,6 +1921,11 @@ handlePropertyNotify (DisplayInfo *display_info, XPropertyEvent * ev)
+ TRACE ("Window 0x%lx has NET_WM_SYNC_REQUEST_COUNTER set to 0x%lx", c->window, c->xsync_counter);
+ }
+ #endif /* HAVE_XSYNC */
++ else if (ev->atom == display_info->atoms[_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED])
++ {
++ TRACE ("Client \"%s\" Window 0x%lx has received GTK CRAP\n", c->name, c->window);
++ clientUpdateExtra (c);
++ }
+
+ return status;
+ }
+diff --git a/src/frame.c b/src/frame.c
+index 7f4cbd3..23c01cd 100644
+--- a/src/frame.c
++++ b/src/frame.c
+@@ -39,6 +39,8 @@
+ #include "frame.h"
+ #include "compositor.h"
+
++//#define TRACE(fmt, ...) printf(fmt"\n", ##__VA_ARGS__); fflush(stdout);
++
+ typedef struct
+ {
+ xfwmPixmap pm_title;
+@@ -121,7 +123,14 @@ frameTop (Client * c)
+
+ g_return_val_if_fail (c != NULL, 0);
+ if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
+- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
++ && !(FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
++ || (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
++ && (c->screen_info->params->titleless_maximize
++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE))
++ && c->screen_info->params->borderless_maximize
++ )
++ )
++ )
+ {
+ return c->screen_info->title[TITLE_3][ACTIVE].height;
+ }
+@@ -136,8 +145,13 @@ frameBottom (Client * c)
+ g_return_val_if_fail (c != NULL, 0);
+ if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
+ && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
+- && (!FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
+- || !(c->screen_info->params->borderless_maximize)))
++ && !(FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
++ && (c->screen_info->params->borderless_maximize))
++ && !(FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
++ && (c->screen_info->params->borderless_maximize)
++ && (c->screen_info->params->titleless_maximize
++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE)))
++ )
+ {
+ return c->screen_info->sides[SIDE_BOTTOM][ACTIVE].height;
+ }
+@@ -203,7 +217,14 @@ frameHeight (Client * c)
+ return frameTop (c) + frameBottom (c);
+ }
+ else if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
+- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
++ && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
++ && !(
++ FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
++ && (c->screen_info->params->borderless_maximize)
++ && (c->screen_info->params->titleless_maximize
++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE))
++ ))
++
+ {
+ return c->height + frameTop (c) + frameBottom (c);
+ }
+@@ -882,6 +903,7 @@ frameDrawWin (Client * c)
+ gboolean requires_clearing;
+ gboolean width_changed;
+ gboolean height_changed;
++ gboolean vert_only;
+
+ TRACE ("entering frameDraw");
+ TRACE ("drawing frame for \"%s\" (0x%lx)", c->name, c->window);
+@@ -955,128 +977,152 @@ frameDrawWin (Client * c)
+ }
+
+ if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
+- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
++ && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
++ && !(FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
++ && (c->screen_info->params->borderless_maximize)
++ && (c->screen_info->params->titleless_maximize
++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE))
++ ))
+ {
+- /* First, hide the buttons that we don't have... */
+- for (i = 0; i < BUTTON_COUNT; i++)
++ vert_only = FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
++ && (c->screen_info->params->borderless_maximize) //only vertical decorations shown (titleless vertical maximize)
++ && (c->screen_info->params->titleless_maximize
++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE));
++
++ if (vert_only)
+ {
+- char b = getLetterFromButton (i, c);
+- if ((!b) || !strchr (screen_info->params->button_layout, b))
++ //hide all buttons
++ for (i = 0; i < BUTTON_COUNT; i++)
+ {
+ xfwmWindowHide (&c->buttons[i]);
+ }
++ xfwmWindowHide (&c->title);
++ xfwmWindowHide (&c->sides[SIDE_BOTTOM]);
++ xfwmWindowHide (&c->sides[SIDE_TOP]);
++ xfwmWindowHide (&c->corners[CORNER_TOP_LEFT]);
++ xfwmWindowHide (&c->corners[CORNER_TOP_RIGHT]);
++ xfwmWindowHide (&c->corners[CORNER_BOTTOM_LEFT]);
++ xfwmWindowHide (&c->corners[CORNER_BOTTOM_RIGHT]);
+ }
+-
+- /* Then, show the ones that we do have on left... */
+- x = frameLeft (c) + frameButtonOffset (c);
+- if (x < 0)
+- {
+- x = 0;
+- }
+- right = frameWidth (c) - frameRight (c) - frameButtonOffset (c);
+- for (i = 0; i < strlen (screen_info->params->button_layout); i++)
++ else
+ {
+- button = getButtonFromLetter (screen_info->params->button_layout[i], c);
+- if (button == TITLE_SEPARATOR)
++ /* First, hide the buttons that we don't have... */
++ for (i = 0; i < BUTTON_COUNT; i++)
+ {
+- break;
+- }
+- else if (button >= 0)
+- {
+- if (x + screen_info->buttons[button][state].width + screen_info->params->button_spacing < right)
+- {
+- my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
+- if (!xfwmPixmapNone(my_pixmap))
+- {
+- xfwmWindowSetBG (&c->buttons[button], my_pixmap);
+- }
+- xfwmWindowShow (&c->buttons[button], x,
+- (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
+- screen_info->buttons[button][state].width,
+- screen_info->buttons[button][state].height, TRUE);
+- button_x[button] = x;
+- x = x + screen_info->buttons[button][state].width +
+- screen_info->params->button_spacing;
+- }
+- else
++ char b = getLetterFromButton (i, c);
++ if ((!b) || !strchr (screen_info->params->button_layout, b))
+ {
+- xfwmWindowHide (&c->buttons[button]);
++ xfwmWindowHide (&c->buttons[i]);
+ }
+ }
+- }
+- left = x + screen_info->params->button_spacing;
+
+- /* and those that we do have on right... */
+- x = frameWidth (c) - frameRight (c) + screen_info->params->button_spacing -
+- frameButtonOffset (c);
+- for (j = strlen (screen_info->params->button_layout) - 1; j >= i; j--)
+- {
+- button = getButtonFromLetter (screen_info->params->button_layout[j], c);
+- if (button == TITLE_SEPARATOR)
++ /* Then, show the ones that we do have on left... */
++ x = frameLeft (c) + frameButtonOffset (c);
++ if (x < 0)
+ {
+- break;
++ x = 0;
+ }
+- else if (button >= 0)
++ right = frameWidth (c) - frameRight (c) - frameButtonOffset (c);
++ for (i = 0; i < strlen (screen_info->params->button_layout); i++)
+ {
+- if (x - screen_info->buttons[button][state].width - screen_info->params->button_spacing > left)
++ button = getButtonFromLetter (screen_info->params->button_layout[i], c);
++ if (button == TITLE_SEPARATOR)
+ {
+- my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
+- if (!xfwmPixmapNone(my_pixmap))
++ break;
++ }
++ else if (button >= 0)
++ {
++ if (x + screen_info->buttons[button][state].width + screen_info->params->button_spacing < right)
++ {
++ my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
++ if (!xfwmPixmapNone(my_pixmap))
++ {
++ xfwmWindowSetBG (&c->buttons[button], my_pixmap);
++ }
++ xfwmWindowShow (&c->buttons[button], x,
++ (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
++ screen_info->buttons[button][state].width,
++ screen_info->buttons[button][state].height, TRUE);
++ button_x[button] = x;
++ x = x + screen_info->buttons[button][state].width +
++ screen_info->params->button_spacing;
++ }
++ else
+ {
+- xfwmWindowSetBG (&c->buttons[button], my_pixmap);
++ xfwmWindowHide (&c->buttons[button]);
+ }
+- x = x - screen_info->buttons[button][state].width -
+- screen_info->params->button_spacing;
+- xfwmWindowShow (&c->buttons[button], x,
+- (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
+- screen_info->buttons[button][state].width,
+- screen_info->buttons[button][state].height, TRUE);
+- button_x[button] = x;
+ }
+- else
++ }
++ left = x + screen_info->params->button_spacing;
++
++ /* and those that we do have on right... */
++ x = frameWidth (c) - frameRight (c) + screen_info->params->button_spacing -
++ frameButtonOffset (c);
++ for (j = strlen (screen_info->params->button_layout) - 1; j >= i; j--)
++ {
++ button = getButtonFromLetter (screen_info->params->button_layout[j], c);
++ if (button == TITLE_SEPARATOR)
+ {
+- xfwmWindowHide (&c->buttons[button]);
++ break;
++ }
++ else if (button >= 0)
++ {
++ if (x - screen_info->buttons[button][state].width - screen_info->params->button_spacing > left)
++ {
++ my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
++ if (!xfwmPixmapNone(my_pixmap))
++ {
++ xfwmWindowSetBG (&c->buttons[button], my_pixmap);
++ }
++ x = x - screen_info->buttons[button][state].width -
++ screen_info->params->button_spacing;
++ xfwmWindowShow (&c->buttons[button], x,
++ (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
++ screen_info->buttons[button][state].width,
++ screen_info->buttons[button][state].height, TRUE);
++ button_x[button] = x;
++ }
++ else
++ {
++ xfwmWindowHide (&c->buttons[button]);
++ }
+ }
+ }
++ left = left - 2 * screen_info->params->button_spacing;
++ right = x;
++ xfwmPixmapInit (screen_info, &frame_pix.pm_title);
++ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_TOP]);
++ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM]);
++
++ top_width = frameWidth (c) - frameTopLeftWidth (c, state) - frameTopRightWidth (c, state);
++ bottom_width = frameWidth (c) -
++ screen_info->corners[CORNER_BOTTOM_LEFT][state].width -
++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width;
++
++ /* The title is almost always visible */
++ frameCreateTitlePixmap (c, state, left, right, &frame_pix.pm_title, &frame_pix.pm_sides[SIDE_TOP]);
++ xfwmWindowSetBG (&c->title, &frame_pix.pm_title);
++ xfwmWindowShow (&c->title,
++ frameTopLeftWidth (c, state), 0, top_width,
++ frameTop (c), (requires_clearing | width_changed));
++
++ /* Corners are never resized, we need to update them separately */
++ if (requires_clearing)
++ {
++ xfwmWindowSetBG (&c->corners[CORNER_TOP_LEFT],
++ &screen_info->corners[CORNER_TOP_LEFT][state]);
++ xfwmWindowSetBG (&c->corners[CORNER_TOP_RIGHT],
++ &screen_info->corners[CORNER_TOP_RIGHT][state]);
++ xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_LEFT],
++ &screen_info->corners[CORNER_BOTTOM_LEFT][state]);
++ xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_RIGHT],
++ &screen_info->corners[CORNER_BOTTOM_RIGHT][state]);
++ }
+ }
+- left = left - 2 * screen_info->params->button_spacing;
+- right = x;
+-
+- top_width = frameWidth (c) - frameTopLeftWidth (c, state) - frameTopRightWidth (c, state);
+- bottom_width = frameWidth (c) -
+- screen_info->corners[CORNER_BOTTOM_LEFT][state].width -
+- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width;
+- left_height = frameHeight (c) - frameTop (c) -
+- screen_info->corners[CORNER_BOTTOM_LEFT][state].height;
+- right_height = frameHeight (c) - frameTop (c) -
+- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height;
+-
+- xfwmPixmapInit (screen_info, &frame_pix.pm_title);
+- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_TOP]);
+- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM]);
++
+ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_LEFT]);
+ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_RIGHT]);
+
+- /* The title is always visible */
+- frameCreateTitlePixmap (c, state, left, right, &frame_pix.pm_title, &frame_pix.pm_sides[SIDE_TOP]);
+- xfwmWindowSetBG (&c->title, &frame_pix.pm_title);
+- xfwmWindowShow (&c->title,
+- frameTopLeftWidth (c, state), 0, top_width,
+- frameTop (c), (requires_clearing | width_changed));
+-
+- /* Corners are never resized, we need to update them separately */
+- if (requires_clearing)
+- {
+- xfwmWindowSetBG (&c->corners[CORNER_TOP_LEFT],
+- &screen_info->corners[CORNER_TOP_LEFT][state]);
+- xfwmWindowSetBG (&c->corners[CORNER_TOP_RIGHT],
+- &screen_info->corners[CORNER_TOP_RIGHT][state]);
+- xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_LEFT],
+- &screen_info->corners[CORNER_BOTTOM_LEFT][state]);
+- xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_RIGHT],
+- &screen_info->corners[CORNER_BOTTOM_RIGHT][state]);
+- }
+-
+ if (FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
+ && (c->screen_info->params->borderless_maximize))
+ {
+@@ -1091,6 +1137,18 @@ frameDrawWin (Client * c)
+ }
+ else
+ {
++ if (vert_only)
++ {
++ left_height = right_height = c->height;
++ }
++ else
++ {
++ left_height = frameHeight (c) - frameTop (c)
++ - screen_info->corners[CORNER_BOTTOM_LEFT][state].height;
++ right_height = frameHeight (c) - frameTop (c)
++ - screen_info->corners[CORNER_BOTTOM_RIGHT][state].height;
++ }
++
+ if (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED))
+ {
+ xfwmWindowHide (&c->sides[SIDE_LEFT]);
+@@ -1120,63 +1178,69 @@ frameDrawWin (Client * c)
+ right_height, (requires_clearing | height_changed));
+ }
+
+- xfwmPixmapCreate (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM],
+- bottom_width, frameBottom (c));
+- xfwmPixmapFill (&screen_info->sides[SIDE_BOTTOM][state],
+- &frame_pix.pm_sides[SIDE_BOTTOM],
+- 0, 0, bottom_width, frameBottom (c));
+- xfwmWindowSetBG (&c->sides[SIDE_BOTTOM],
+- &frame_pix.pm_sides[SIDE_BOTTOM]);
+- xfwmWindowShow (&c->sides[SIDE_BOTTOM],
+- screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
+- frameHeight (c) - frameBottom (c), bottom_width, frameBottom (c),
+- (requires_clearing | width_changed));
+-
+- if (!xfwmPixmapNone(&frame_pix.pm_sides[SIDE_TOP]))
++ if (!vert_only)
+ {
+- xfwmWindowSetBG (&c->sides[SIDE_TOP], &frame_pix.pm_sides[SIDE_TOP]);
+- xfwmWindowShow (&c->sides[SIDE_TOP],
+- screen_info->corners[CORNER_TOP_LEFT][state].width,
+- 0, top_width, frame_pix.pm_sides[SIDE_TOP].height,
++ xfwmPixmapCreate (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM],
++ bottom_width, frameBottom (c));
++ xfwmPixmapFill (&screen_info->sides[SIDE_BOTTOM][state],
++ &frame_pix.pm_sides[SIDE_BOTTOM],
++ 0, 0, bottom_width, frameBottom (c));
++ xfwmWindowSetBG (&c->sides[SIDE_BOTTOM],
++ &frame_pix.pm_sides[SIDE_BOTTOM]);
++ xfwmWindowShow (&c->sides[SIDE_BOTTOM],
++ screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
++ frameHeight (c) - frameBottom (c), bottom_width, frameBottom (c),
+ (requires_clearing | width_changed));
+- }
+- else
+- {
+- xfwmWindowHide (&c->sides[SIDE_TOP]);
+- }
+
+- xfwmWindowShow (&c->corners[CORNER_TOP_LEFT], 0, 0,
+- frameTopLeftWidth (c, state),
+- screen_info->corners[CORNER_TOP_LEFT][state].height,
+- requires_clearing);
+-
+- xfwmWindowShow (&c->corners[CORNER_TOP_RIGHT],
+- frameWidth (c) - frameTopRightWidth (c, state),
+- 0, frameTopRightWidth (c, state),
+- screen_info->corners[CORNER_TOP_RIGHT][state].height,
+- requires_clearing);
+-
+- xfwmWindowShow (&c->corners[CORNER_BOTTOM_LEFT], 0,
+- frameHeight (c) -
+- screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
+- screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
+- screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
+- requires_clearing);
+-
+- xfwmWindowShow (&c->corners[CORNER_BOTTOM_RIGHT],
+- frameWidth (c) -
+- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
+- frameHeight (c) -
+- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
+- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
+- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
+- requires_clearing);
++ if (!xfwmPixmapNone(&frame_pix.pm_sides[SIDE_TOP]))
++ {
++ xfwmWindowSetBG (&c->sides[SIDE_TOP], &frame_pix.pm_sides[SIDE_TOP]);
++ xfwmWindowShow (&c->sides[SIDE_TOP],
++ screen_info->corners[CORNER_TOP_LEFT][state].width,
++ 0, top_width, frame_pix.pm_sides[SIDE_TOP].height,
++ (requires_clearing | width_changed));
++ }
++ else
++ {
++ xfwmWindowHide (&c->sides[SIDE_TOP]);
++ }
++
++ xfwmWindowShow (&c->corners[CORNER_TOP_LEFT], 0, 0,
++ frameTopLeftWidth (c, state),
++ screen_info->corners[CORNER_TOP_LEFT][state].height,
++ requires_clearing);
++
++ xfwmWindowShow (&c->corners[CORNER_TOP_RIGHT],
++ frameWidth (c) - frameTopRightWidth (c, state),
++ 0, frameTopRightWidth (c, state),
++ screen_info->corners[CORNER_TOP_RIGHT][state].height,
++ requires_clearing);
++
++ xfwmWindowShow (&c->corners[CORNER_BOTTOM_LEFT], 0,
++ frameHeight (c) -
++ screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
++ screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
++ screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
++ requires_clearing);
++
++ xfwmWindowShow (&c->corners[CORNER_BOTTOM_RIGHT],
++ frameWidth (c) -
++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
++ frameHeight (c) -
++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
++ requires_clearing);
++ }
+ }
+ frameSetShape (c, state, &frame_pix, button_x);
+
+- xfwmPixmapFree (&frame_pix.pm_title);
+- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_TOP]);
+- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_BOTTOM]);
++ if (!vert_only)
++ {
++ xfwmPixmapFree (&frame_pix.pm_title);
++ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_TOP]);
++ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_BOTTOM]);
++ }
+ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_LEFT]);
+ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_RIGHT]);
+ }
+diff --git a/src/netwm.c b/src/netwm.c
+index 1352f08..9e3647c 100644
+--- a/src/netwm.c
++++ b/src/netwm.c
+@@ -136,6 +136,44 @@ clientSetNetState (Client * c)
+ }
+
+ void
++clientGetExtra (Client *c)
++{
++ long val;
++ DisplayInfo *display_info;
++
++ display_info = c->screen_info->display_info;
++
++ getHint (display_info, c->window, _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val);
++ if (val)
++ FLAG_SET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE);
++}
++
++void
++clientUpdateExtra (Client *c)
++{
++ long val;
++ unsigned long maximization_flags = 0L;
++ DisplayInfo *display_info;
++
++ display_info = c->screen_info->display_info;
++
++ getHint (display_info, c->window, _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val);
++ if (val)
++ FLAG_SET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE);
++ else
++ FLAG_UNSET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE);
++
++ if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED))
++ {
++ maximization_flags = c->flags & CLIENT_FLAG_MAXIMIZED;
++
++ /* Force an update by clearing the internal flags */
++ FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
++ clientToggleMaximized (c, maximization_flags, TRUE);
++ }
++}
++
++void
+ clientGetNetState (Client * c)
+ {
+ ScreenInfo *screen_info;
+diff --git a/src/placement.c b/src/placement.c
+index 01f2590..64719a7 100644
+--- a/src/placement.c
++++ b/src/placement.c
+@@ -38,7 +38,6 @@
+ #include "frame.h"
+ #include "netwm.h"
+
+-
+ /* Compute rectangle overlap area */
+
+ static inline unsigned long
+@@ -108,6 +107,8 @@ clientMaxSpace (ScreenInfo *screen_info, int *x, int *y, int *w, int *h)
+ g_return_if_fail (w != NULL);
+ g_return_if_fail (h != NULL);
+
++ TRACE ("entering clientMaxSpace");
++
+ screen_width = 0;
+ screen_height = 0;
+ delta = 0;
+@@ -157,6 +158,7 @@ clientMaxSpace (ScreenInfo *screen_info, int *x, int *y, int *w, int *h)
+ }
+ }
+ }
++ TRACE ("clientMaxSpace result %d %d %d %d", *x, *y, *w, *h);
+ }
+
+ gboolean
+diff --git a/src/settings.c b/src/settings.c
+index 607bb7b..37b6c2a 100644
+--- a/src/settings.c
++++ b/src/settings.c
+@@ -667,6 +667,7 @@ loadSettings (ScreenInfo *screen_info)
+ /* You can change the order of the following parameters */
+ {"activate_action", NULL, G_TYPE_STRING, TRUE},
+ {"borderless_maximize", NULL, G_TYPE_BOOLEAN, TRUE},
++ {"titleless_maximize", NULL, G_TYPE_BOOLEAN, TRUE},
+ {"box_move", NULL, G_TYPE_BOOLEAN, TRUE},
+ {"box_resize", NULL, G_TYPE_BOOLEAN, TRUE},
+ {"button_layout", NULL, G_TYPE_STRING, TRUE},
+@@ -753,6 +754,8 @@ loadSettings (ScreenInfo *screen_info)
+
+ screen_info->params->borderless_maximize =
+ getBoolValue ("borderless_maximize", rc);
++ screen_info->params->titleless_maximize =
++ getBoolValue ("titleless_maximize", rc);
+ screen_info->params->box_resize =
+ getBoolValue ("box_resize", rc);
+ screen_info->params->box_move =
+@@ -1261,6 +1264,11 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_
+ screen_info->params->borderless_maximize = g_value_get_boolean (value);
+ reloadScreenSettings (screen_info, UPDATE_MAXIMIZE);
+ }
++ else if (!strcmp (name, "titleless_maximize"))
++ {
++ screen_info->params->titleless_maximize = g_value_get_boolean (value);
++ reloadScreenSettings (screen_info, UPDATE_MAXIMIZE);
++ }
+ else if (!strcmp (name, "cycle_minimum"))
+ {
+ screen_info->params->cycle_minimum = g_value_get_boolean (value);
+diff --git a/src/settings.h b/src/settings.h
+index be01b6b..ea8b79b 100644
+--- a/src/settings.h
++++ b/src/settings.h
+@@ -197,6 +197,7 @@ struct _XfwmParams
+ int title_shadow[2];
+ int wrap_resistance;
+ gboolean borderless_maximize;
++ gboolean titleless_maximize;
+ gboolean box_move;
+ gboolean box_resize;
+ gboolean click_to_focus;
+--
+1.8.4
+
diff --git a/pcr/xfwm4-titleless/xfwm4.install b/pcr/xfwm4-titleless/xfwm4.install
new file mode 100644
index 000000000..e4f8fd06c
--- /dev/null
+++ b/pcr/xfwm4-titleless/xfwm4.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/pcr/xonotic-git/PKGBUILD b/pcr/xonotic-git/PKGBUILD
new file mode 100644
index 000000000..0a2ec7dca
--- /dev/null
+++ b/pcr/xonotic-git/PKGBUILD
@@ -0,0 +1,197 @@
+# Maintainer: MrBougo <bougospam at gmail dot com>
+# Contributor: wido <widomaker2k7@gmail.com>
+# Contributor: Alexander Suhoverhov <cy at ngs dot ru>
+
+pkgname=xonotic-git
+pkgver=20130214
+pkgrel=1
+pkgdesc="A free, fast-paced crossplatform first-person shooter"
+arch=('i686' 'x86_64')
+url="http://xonotic.org"
+license=('GPL')
+depends=(
+ 'd0_blind_id-git'
+ 'libxpm'
+ 'libjpeg>=8'
+ 'libpng>=1.4.0'
+ 'libmodplug'
+ 'libvorbis'
+ 'libxxf86dga'
+ 'libxxf86vm'
+ 'alsa-lib'
+ 'sdl'
+ 'curl'
+)
+makedepends=('git' 'p7zip' 'zip' 'unzip' 'vorbis-tools' 'sdl' 'mesa' 'imagemagick' 'gmqcc-git')
+optdepends=(
+ 'libtheora: recording in ogv'
+ #'d0_blind_id-git: crypto libraries for player authentification'
+)
+provides=('xonotic')
+conflicts=('xonotic')
+
+_gitroot="git://git.xonotic.org/xonotic/xonotic.git"
+_gitname="xonotic"
+_releasename="git-PCR"
+_compression=5
+
+# the jpeg and ogg variables can be modified, the function may also be skipped for raw data
+# the values here are also used in the official -low builds
+_compress() {
+ find $1 -type f -print0 |
+ git_src_repo=$2 \
+ CACHEDIR="$srcdir"/datacache \
+ do_jpeg=true \
+ jpeg_qual_rgb=80 \
+ jpeg_qual_a=97 \
+ do_dds=false \
+ do_ogg=true \
+ ogg_qual=1 \
+ del_src=true \
+ xargs -0 "$srcdir"/$_gitname/misc/tools/cached-converter.sh
+}
+
+_git_extract() {
+ _from=$1
+ _to=$2
+ shift 2
+ { cd "$_from"; git archive --format=tar HEAD -- "$@"; } \
+ | {
+ cd "$_to"
+ tar xvf -
+ }
+}
+
+# 7z compresses nicely but can't deal with flags and symlinks
+_mkzip() {
+ _archive=$1
+ shift
+ _ziplist=`mktemp`
+ find "$@" -xtype f \( -executable -or -type l \) -print > "$_ziplist"
+ 7za a -tzip -mx=$_compression -x@"$_ziplist" "$_archive" "$@" || true
+ zip -$_compression -y -@<"$_ziplist" "$_archive" || true
+ rm -f "$_ziplist"
+}
+
+#credit goes to omgwizard for the shallow clone idea
+_update() {
+ cd "$srcdir"/$_gitname
+ sed 's/git clone/git clone --depth 1/g' --in-place=".PKGBUILD_BU" ./all
+ ./all update
+ mv -f ./all.PKGBUILD_BU ./all
+ cd "$OLDPWD"
+}
+
+build() {
+ cd "$srcdir"
+ msg "Connecting to GIT server...."
+
+ if [ -d $_gitname ] ; then
+ #future updates might introduce new subrepos, use shallow cloning anyway
+ cd $_gitname && _update
+ msg "The local files are updated."
+ else
+ git clone --depth 1 $_gitroot $_gitname
+ cd $_gitname
+ touch d0_blind_id.no
+ touch netradiant.no
+ _update
+ fi
+
+ msg "GIT checkout done or server timeout"
+
+ # BUILD
+
+ msg "Copying sources..."
+
+ rm -rf "$srcdir"/src
+ mkdir -p "$srcdir"/src/darkplaces "$srcdir"/src/fteqcc
+ _git_extract "$srcdir"/$_gitname/fteqcc "$srcdir"/src/fteqcc
+ _git_extract "$srcdir"/$_gitname/darkplaces "$srcdir"/src/darkplaces
+ _git_extract "$srcdir"/$_gitname/data/xonotic-data.pk3dir "$srcdir"/src \
+ qcsrc Makefile check-cvars.sh
+
+ msg "Fetching map binaries..."
+ cd "$srcdir"/$_gitname
+ ./all update-maps
+
+ msg "Compiling the engine..."
+ cd "$srcdir"/src/darkplaces
+ CC="${CC:-gcc} -g -DSUPPORTIPV6" make release
+
+ msg "Compiling fteqcc..."
+ cd "$srcdir"/src/fteqcc
+ make all
+
+ msg "Compiling the game code"
+ cd "$srcdir"/src/
+ make FTEQCC="../../fteqcc/fteqcc.bin" # relative to the directories containing progs.src
+
+ msg "Building data pk3's..."
+ rm -rf "$srcdir"/temp # just in case it was interrupted previously
+ mkdir "$srcdir"/temp
+ cd "$srcdir"/temp
+ for _subrepo in font-nimbussansl font-xolonium xonotic-data xonotic-music xonotic-maps; do
+ mkdir $_subrepo
+ _git_extract "$srcdir"/$_gitname/data/$_subrepo.pk3dir "$srcdir"/temp/$_subrepo
+ done
+
+ rm -rf "$srcdir"/temp/xonotic-data/qcsrc
+ mv "$srcdir"/src/progs.dat "$srcdir"/src/csprogs.dat "$srcdir"/src/menu.dat "$srcdir"/temp/xonotic-data
+
+ cd "$srcdir"/temp/xonotic-maps
+ #2x40 question marks. That's as many as eight tens. And that's terrible.
+ for X in "$srcdir"/$_gitname/data/*-????????????????????????????????????????-????????????????????????????????????????.pk3; do
+ if [ -f "$X" ]; then
+ unzip "$X"
+ rm -f maps/*.log maps/*.irc maps/*.lin
+ fi
+ done
+
+ msg "Compressing data..."
+ cd "$srcdir"/temp/
+ # don't compress the font files
+ for _subrepo in xonotic-data xonotic-music xonotic-maps; do
+ _compress $_subrepo "$srcdir"/$_gitname/data/$_subrepo.pk3dir
+ done
+
+ msg "Packing data..."
+ for _subrepo in font-nimbussansl font-xolonium xonotic-data xonotic-music xonotic-maps; do
+ cd "$srcdir"/temp/$_subrepo
+ _mkzip "$srcdir"/$_subrepo.pk3 * # this wildcard excludes dot files
+ done
+
+ msg "Removing temporary files..."
+ rm -rf "$srcdir"/temp
+}
+
+package() {
+ msg "Installing..."
+ mkdir -p "$pkgdir"/opt/$pkgname/
+ _git_extract "$srcdir"/$_gitname/ "$pkgdir"/opt/$pkgname \
+ Docs \
+ server \
+ xonotic-linux-glx.sh xonotic-linux-sdl.sh \
+ key_0.d0pk
+ chmod 755 "$pkgdir"/opt/$pkgname/xonotic-linux-glx.sh \
+ "$pkgdir"/opt/$pkgname/xonotic-linux-sdl.sh
+
+ # Binaries -- those names are needed by the launcher script
+ case "$CARCH" in
+ x86_64) _arch="linux64" ;;
+ *) _arch="linux32" ;;
+ esac
+ install -m755 "$srcdir"/src/darkplaces/darkplaces-glx "$pkgdir"/opt/$pkgname/xonotic-$_arch-glx
+ install -m755 "$srcdir"/src/darkplaces/darkplaces-glx "$pkgdir"/opt/$pkgname/xonotic-$_arch-sdl
+ install -m755 "$srcdir"/src/darkplaces/darkplaces-dedicated "$pkgdir"/opt/$pkgname/xonotic-$_arch-dedicated
+
+ mkdir -p "$pkgdir"/opt/$pkgname/data/
+ mv -f "$srcdir"/*.pk3 "$pkgdir"/opt/$pkgname/data || true # those files are too big to be copied
+
+ # Launch scripts
+ mkdir -p "$pkgdir"/usr/bin
+ mv -f "$pkgdir"/opt/$pkgname/server/server_linux.sh "$pkgdir"/opt/$pkgname/
+ ln -sf /opt/$pkgname/xonotic-linux-glx.sh "$pkgdir"/usr/bin/xonotic-glx
+ ln -sf /opt/$pkgname/xonotic-linux-sdl.sh "$pkgdir"/usr/bin/xonotic-sdl
+ ln -sf /opt/$pkgname/server_linux.sh "$pkgdir"/usr/bin/xonotic-dedicated
+}
diff --git a/pcr/xrdp/PKGBUILD b/pcr/xrdp/PKGBUILD
new file mode 100644
index 000000000..1cf561115
--- /dev/null
+++ b/pcr/xrdp/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Tomasz Zok <tomasz.zok [at] gmail.com>
+# Maintainer: techryda <techryda at silentdome dot com>
+# Contributor: Mathias R. <pu154r@overlinux.org>
+# Maintainer (Parabola): Esteban Carnevale <alfplayer@mailoo.org>
+
+pkgname=xrdp
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="An open source remote desktop protocol (RDP) server"
+url="http://xrdp.sourceforge.net/"
+arch=('i686' 'x86_64' 'armv6h')
+license=('GPL')
+depends=('tigervnc')
+source=("http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-v$pkgver.tar.gz"
+ 'xrdp.service'
+ 'xrdp-sesman.service')
+md5sums=('26099c6588943262023607c1b4e774d8'
+ '0cb760b3e8a34f9bdf4daa871444d74c'
+ '58eb44bdc7ca5bb436d6fd66826f9b0f')
+
+prepare() {
+ cd "${pkgname}-v${pkgver}"
+ # Fix path in xrdp.sh file
+ sed -i 's|/usr/local/sbin|/usr/bin|' instfiles/xrdp.sh
+}
+
+build() {
+ cd "${pkgname}-v${pkgver}"
+ ./bootstrap
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin
+ make
+}
+
+package() {
+ cd "${pkgname}-v${pkgver}"
+ make DESTDIR="$pkgdir" install
+ cd ${pkgdir}
+ # Install systemd service files
+ mkdir -p usr/lib/systemd/system
+ cp ${srcdir}/*.service usr/lib/systemd/system
+}
diff --git a/pcr/xrdp/xrdp-sesman.service b/pcr/xrdp/xrdp-sesman.service
new file mode 100644
index 000000000..8222069b9
--- /dev/null
+++ b/pcr/xrdp/xrdp-sesman.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=xrdp session manager
+After=syslog.target network.target
+StopWhenUnneeded=true
+
+[Service]
+Type=forking
+PIDFile=/var/run/xrdp-sesman.pid
+EnvironmentFile=/etc/xrdp/xrdp.ini
+ExecStart=/usr/bin/xrdp-sesman $SESMAN_OPTIONS
+ExecStop=/usr/bin/xrdp-sesman $SESMAN_OPTIONS --kill
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pcr/xrdp/xrdp.service b/pcr/xrdp/xrdp.service
new file mode 100644
index 000000000..269dff87b
--- /dev/null
+++ b/pcr/xrdp/xrdp.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=xrdp daemon
+Requires=xrdp-sesman.service
+After=syslog.target network.target xrdp-sesman.service
+
+[Service]
+Type=forking
+PIDFile=/var/run/xrdp.pid
+EnvironmentFile=/etc/xrdp/xrdp.ini
+ExecStart=/usr/bin/xrdp $XRDP_OPTIONS
+ExecStop=/usr/bin/xrdp $XRDP_OPTIONS --kill
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/xsynth-dssi/PKGBUILD b/pcr/xsynth-dssi/PKGBUILD
new file mode 100644
index 000000000..f353b9bfa
--- /dev/null
+++ b/pcr/xsynth-dssi/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Guest One <theguestone at gmail dot com>
+
+pkgname=xsynth-dssi
+pkgver=0.9.4
+pkgrel=1
+pkgdesc="An analog-style (VCOs-VCF-VCA) synth plugin for DSSI"
+arch=('i686')
+url="http://dssi.sourceforge.net/download.html#Xsynth-DSSI"
+license=('GPL')
+depends=('gtk2' 'liblo')
+makedepends=('dssi' 'ladspa')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/dssi/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ xsynth-dssi)
+md5sums=('3432ecdac06407a992f80eb1c1ecf7cd'
+ 'c346e6a944f202fccb2278b77a5e184b')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m755 ${srcdir}/xsynth-dssi ${pkgdir}/usr/bin/xsynth-dssi
+}
+
diff --git a/pcr/xsynth-dssi/xsynth-dssi b/pcr/xsynth-dssi/xsynth-dssi
new file mode 100644
index 000000000..5503b12ba
--- /dev/null
+++ b/pcr/xsynth-dssi/xsynth-dssi
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+export DSSI_PATH=/usr/lib/dssi
+exec jack-dssi-host xsynth-dssi.so
diff --git a/pcr/xtables-addons/PKGBUILD b/pcr/xtables-addons/PKGBUILD
new file mode 100644
index 000000000..0b652408a
--- /dev/null
+++ b/pcr/xtables-addons/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: Vladimir Kutyavin <vlkut@bk.ru>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=xtables-addons
+pkgver=1.46
+pkgrel=1
+pkgdesc="Successor to patch-o-matic(-ng). Additional extensions for iptables, ip6tables, etc. CHAOS, TARPIT, TEE, DELUDE and other targets; condition, geoip, ipp2p and other matches. Includes ipset package."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xtables-addons.sourceforge.net/"
+depends=('iptables>=1.4.3' 'glibc')
+makedepends=('linux-api-headers' 'linux-headers')
+conflicts=(ipset)
+replaces=(ipset)
+provides=(ipset)
+source=(http://download.sourceforge.net/project/xtables-addons/Xtables-addons/$pkgver/$pkgname-$pkgver.tar.xz)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/iptables \
+ --sysconfdir=/etc \
+ --with-xtlibdir=/usr/lib/iptables \
+ --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ chmod a-x $pkgdir/usr/lib/iptables/*.so
+ #remove ipset there is a ipset package
+# rm \
+# $pkgdir/usr/lib/iptables/libipset_* \
+# $pkgdir/usr/sbin/ipset
+# $pkgdir/usr/share/man/man8/ipset.8
+# rmdir $pkgdir/usr/sbin
+}
diff --git a/pcr/yafaray/PKGBUILD b/pcr/yafaray/PKGBUILD
new file mode 100644
index 000000000..c27f6c587
--- /dev/null
+++ b/pcr/yafaray/PKGBUILD
@@ -0,0 +1,112 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+_pkgname=yafaray
+_pkgver=1.5
+_pkgrel=1.1
+_pkgdate=20130921
+_bldname=blender
+_bldver=2.69
+_bldep=10
+_gitname=Core
+_addname=${_bldname^}-Exporter
+_addrel=1
+_adddate=20130918
+_pyver=3.3
+
+# Sat Sep 21 00:41:17 2013 -0700 - Merge pull request #70 from YafaRay/bidirectional_cleanup
+_srcver=caef0fc92078871a5dcd2b9f547d954eca2941f1
+# Fri Oct 18 19:07:53 2013 +0200 - Fix AO issue (wizofboz): -Fixed error of indentation in 'yaf_integrator.py' causer of the error in the use of Ambient Occlusion.
+_addver=1874704e44c57bcea478d652563639e79b00a766
+
+pkgname=(
+ $_pkgname
+ $_bldname-addon-$_pkgname
+)
+pkgver=$_pkgver.$_pkgdate
+pkgrel=$_pkgrel
+pkgdesc='A free software raytracing engine'
+arch=(
+ mips64el
+ x86_64
+ i686
+)
+url=http://www.$_pkgname.org
+license=LGPL2.1
+depends=(
+ freetype2
+ libjpeg
+ libxml2
+ openexr
+)
+optdepends=(
+ 'python: Python bindings'
+ 'qt4: QT GUI'
+ "${pkgname[1]}: ${_bldname^} addon renderer"
+)
+makedepends=(
+ cmake
+ git
+ python
+ qt4
+ swig
+)
+source=(
+ $_gitname-$_srcver.tar.gz::https://github.com/YafaRay/$_gitname/archive/$_srcver.tar.gz
+ $_addname-$_addver.tar.gz::https://github.com/YafaRay/$_addname/archive/$_addver.tar.gz
+)
+sha512sums=(
+ 0470e26e2c7956f2d2dc18888cffaf7c2916df42c8208d6e0f4e1d5c438660dd6ae99a1e5f06a118175a8b2a97c89e482b1b069ced2abf3916bbfc60fac54e75
+ 3c2207dbca7a70ba82ea6d835785401a24c7813d65380bf8c46a527fff6e65a0a7c101b60b5e8b88163ab07d3d42ec9f9aacbcf090f73062d3643c1c314c97d8
+)
+
+prepare() {
+ cd $srcdir/$_gitname-$_srcver
+
+ msg 'Renaming addon dir'
+ mv -v $srcdir/$_addname-$_addver $srcdir/$_pkgname
+
+ msg 'renaming wrong OS name'
+ sed -i 's|Linux|GNU/Linux|
+ ' $srcdir/$_pkgname/prop/yaf_scene.py
+
+ [[ -d build ]] && rm -vr build
+ mkdir -v build
+}
+
+build() {
+ cd $srcdir/$_gitname-$_srcver/build
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr\
+ -DYAF_PY_VERSION=$_pyver\
+ -DYAF_BINDINGS_PY_DIR=/usr/lib/python$_pyver
+ make
+}
+
+package_yafaray() {
+ cd $srcdir/$_gitname-$_srcver/build
+ make DESTDIR=$pkgdir install
+}
+
+package_blender-addon-yafaray() {
+ pkgdesc="A addon for the ${_bldname^} which allows render with YafaRay (built for the $_bldname-libre package)"
+ arch=any
+ depends=(
+ $_pkgname=$pkgver
+ "$_bldname-libre>=$_bldep:$_bldver"
+ "$_bldname-libre<$(($_bldep+1)):${_bldver::2}$((${_bldver:2:4}+1))"
+ )
+ pkgver=$_pkgver.$_adddate.v$_bldver
+ pkgrel=$_addrel
+ optdepends=
+
+ cd $srcdir
+
+ a=/usr/lib
+ b=$pkgdir/usr/share/$_bldname/$_bldver/scripts/addons/$_pkgname/bin
+
+ install -vd $b && cp -a $_pkgname ${b%$_pkgname/bin}
+ ln -vsf $a/lib${_pkgname}core.so $b/lib${_pkgname}core.so
+ ln -vsf $a/lib${_pkgname}plugin.so $b/lib${_pkgname}plugin.so
+ ln -vsf $a/$_pkgname $b/plugins
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/yate/PKGBUILD b/pcr/yate/PKGBUILD
new file mode 100644
index 000000000..e668cd3ae
--- /dev/null
+++ b/pcr/yate/PKGBUILD
@@ -0,0 +1,37 @@
+ # Maintainer: said
+ # Contributor: Yejun Yang <yejunx AT gmail DOT com>
+ # Contributor: Biru Ionut <ionut@archlinux.ro>
+ pkgname=yate
+ pkgver=4.2.0
+ pkgrel=1
+ pkgdesc="next-generation telephony engine"
+ arch=('i686' 'x86_64')
+ url="http://yate.null.ro"
+ license=('GPL')
+ depends=('speex' 'gsm' 'postgresql-libs' 'libmysqlclient' \
+ 'alsa-lib' 'qt')
+ makedepends=('pkgconfig')
+ source=(http://yate.null.ro/tarballs/yate4/${pkgname}-${pkgver}-2.tar.gz yate.init)
+ options=(!makeflags)
+
+ md5sums=('e6fd37f26ff5c50aa3fa16f6b2803d68'
+ 'c0d344607046c47c1d75ac23d323817a')
+
+
+ build() {
+ cd $srcdir/${pkgname}
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-libpq \
+ --with-mysql \
+ --without-openh323
+ make
+ }
+
+ package(){
+ cd $srcdir/${pkgname}
+ make DESTDIR=$pkgdir install
+ install -D -m755 $srcdir/yate.init $pkgdir/etc/rc.d/yate
+ }
+ \ No newline at end of file
diff --git a/pcr/yate/yate.init b/pcr/yate/yate.init
new file mode 100644
index 000000000..762fff8c7
--- /dev/null
+++ b/pcr/yate/yate.init
@@ -0,0 +1,61 @@
+#!/bin/bash
+OPTS="-rs -vvv -l /var/log/yate"
+
+# Source function library.
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+RETVAL=0
+
+# See how we were called.
+case "$1" in
+ start)
+ stat_busy "Starting YATE"
+ unset DISPLAY
+
+ yate -d -p /var/run/yate.pid $OPTS
+ RETVAL=$?
+ if [ $RETVAL -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon yate
+ touch /var/lock/yate
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping YATE"
+ [ -f /var/run/yate.pid ] && kill $(cat /var/run/yate.pid) > /dev/null 2>&1
+ RETVAL=$?
+ if [ $RETVAL -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/yate.pid
+ rm -f /var/lock/yate
+ rm_daemon yate
+ stat_done
+ fi
+ ;;
+ status)
+ [ -f /var/run/yate.pid ] && echo -e "Yate is running" || echo -e "Yate is not running"
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $1 start
+ ;;
+ condrestart)
+ if [ -f /var/lock/yate ]; then
+ $0 stop
+ $0 start
+ fi
+ ;;
+ reload)
+ pkill yate -HUP
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ ;;
+esac
+exit $RETVAL
diff --git a/pcr/youtube-dl-current/PKGBUILD b/pcr/youtube-dl-current/PKGBUILD
index ac9e45365..354ef7569 100644
--- a/pcr/youtube-dl-current/PKGBUILD
+++ b/pcr/youtube-dl-current/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=youtube-dl-current
_pkgname=youtube-dl
provides=(youtube-dl)
-pkgver=2014.01.23.4
+pkgver=2014.02.13
pkgrel=1
pkgdesc="A small command-line program to download videos from YouTube.com and a few more sites"
arch=('any')
@@ -28,5 +28,5 @@ package() {
"${pkgdir}/usr/share/bash-completion/completions/youtube-dl"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
}
-md5sums=('d9e89ffc9ff572317151e22cac4b3a00'
+md5sums=('323101220bdd348a4251e622746609ce'
'SKIP')
diff --git a/pcr/zbar/PKGBUILD b/pcr/zbar/PKGBUILD
new file mode 100644
index 000000000..199fc2bb8
--- /dev/null
+++ b/pcr/zbar/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Marti Raudsepp <marti@juffo.org>
+# Contributor: Radu Andries <admiral0@tuxfamily.org>
+# Contributor: Andy Weidenbaum <archbaum@gmail.com>
+
+pkgname=zbar
+pkgver=0.10
+pkgrel=3
+pkgdesc="Application and library for reading bar codes from various sources"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://zbar.sourceforge.net/"
+license=('LGPL')
+depends=('imagemagick' 'libxv')
+makedepends=('gtk2' 'qt4' 'pygtk' 'v4l-utils')
+source=("http://downloads.sourceforge.net/project/zbar/zbar/$pkgver/zbar-$pkgver.tar.bz2"
+ v4l1.patch)
+optdepends=('pygtk: python2 widget'
+ 'gtk2: gtk2 widget'
+ 'qt4: qt4 widget')
+
+prepare() {
+ cd "$srcdir/zbar-$pkgver"
+ patch -p1 < ${srcdir}/v4l1.patch
+}
+
+build() {
+ cd "$srcdir/zbar-$pkgver"
+
+ ./configure --prefix=/usr CFLAGS="$CFLAGS -DNDEBUG"
+
+ make
+}
+
+package() {
+ cd "$srcdir/zbar-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
+md5sums=('0fd61eb590ac1bab62a77913c8b086a5'
+ '284f11ca2a5e009744c4a1b9e92d6953')
diff --git a/pcr/zbar/v4l1.patch b/pcr/zbar/v4l1.patch
new file mode 100644
index 000000000..150b0e695
--- /dev/null
+++ b/pcr/zbar/v4l1.patch
@@ -0,0 +1,24 @@
+Thanks to Andy Weidenbaum <archbaum@gmail.com> for providing this patch!
+
+--- ./zbar/video/v4l1.c 2013-03-06 23:24:22.996336417 -0800
++++ ./zbar/video/v4l1.c 2013-03-06 23:29:29.789662369 -0800
+@@ -41,7 +41,7 @@
+ #ifdef HAVE_SYS_MMAN_H
+ # include <sys/mman.h>
+ #endif
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+
+ #include "video.h"
+ #include "image.h"
+--- ./configure 2009-10-23 11:17:24.000000000 -0700
++++ ./configure 2013-03-06 23:47:33.902966990 -0800
+@@ -18709,7 +18709,7 @@
+ if test "x$enable_video" != "xno"; then
+ if test "x$win32" = "xno"; then
+
+-for ac_header in linux/videodev.h
++for ac_header in libv4l1-videodev.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
diff --git a/pcr/zbase32/PKGBUILD b/pcr/zbase32/PKGBUILD
new file mode 100644
index 000000000..b4373abb8
--- /dev/null
+++ b/pcr/zbase32/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Peter Simons <simons@cryp.to>
+# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+pkgname=zbase32
+pkgver=1.1.5
+pkgrel=1
+pkgdesc="alternate base32 encoder (not RFC 3548 compliant)"
+arch=('i686' 'x86_64')
+url='http://pypi.python.org/pypi/zbase32'
+license=('BSD')
+depends=('python2')
+makedepends=('setuptools' 'darcsver' 'setuptools_darcs' 'pyutil')
+source=( http://pypi.python.org/packages/source/z/zbase32/zbase32-$pkgver.tar.gz )
+md5sums=('4dba0be4ac6d66968de8e5173f51d65d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+ python2 setup.py test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+ install -Dm644 PKG-INFO* $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/zenity-gtk2/PKGBUILD b/pcr/zenity-gtk2/PKGBUILD
new file mode 100644
index 000000000..f66bd21ec
--- /dev/null
+++ b/pcr/zenity-gtk2/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 183472 2013-04-21 22:12:29Z heftig $
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
+
+pkgname=zenity-gtk2
+pkgver=3.10.0.git20131018
+_gitver='commit=23a7232661bbc2058a483c52394a200f1803a6b0'
+pkgrel=1
+pkgdesc="Display graphical dialog boxes from shell scripts (GTK 2 port)"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk2' 'libnotify')
+makedepends=('intltool' 'gtk-doc' 'itstool' 'docbook-xsl')
+url="https://lukeshu.com/git/zenity-gtk2.git/"
+source=("libre://${pkgname}-${pkgver}.tar.gz")
+
+provides=(zenity=$pkgver)
+conflicts=(zenity)
+
+mkdepends=(git gnome-common yelp-tools)
+mksource=(".$pkgname-$pkgver::git://lukeshu.com/zenity-gtk2.git#${_gitver}")
+mkmd5sums=('SKIP')
+mksource() {
+ cd "$srcdir/.$pkgname-$pkgver"
+ ./autogen.sh
+ make -C help PACKAGE="$pkgname" VERSION="$pkgver"
+ make dist PACKAGE="$pkgname" VERSION="$pkgver"
+ cd "$srcdir"
+ bsdtar xf ".$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2"
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --with-gtk=2.0
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
+
+sha256sums=('651af86234dc098eba28eb9e88d74afc25662ed95c459dfa50882fd39c2a479b')
diff --git a/pcr/zeroinstall-injector/PKGBUILD b/pcr/zeroinstall-injector/PKGBUILD
new file mode 100644
index 000000000..120355775
--- /dev/null
+++ b/pcr/zeroinstall-injector/PKGBUILD
@@ -0,0 +1,36 @@
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Lone_Wolf <lonewolf@xs4all.nl>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=zeroinstall-injector
+pkgver=1.8
+pkgrel=1
+pkgdesc="A decentralised loosly-coupled secure installation system"
+arch=('any')
+url="http://zero-install.sourceforge.net/"
+license=('GPL2' 'LGPL')
+depends=('pygtk' 'dbus-python' 'gnupg' 'hicolor-icon-theme' 'desktop-file-utils')
+optdepends=('xdg-utils: desktop integration'
+ 'packagekit: packagekit integration')
+install="$pkgname.install"
+source=("http://downloads.sourceforge.net/zero-install/$pkgname-$pkgver.tar.bz2")
+md5sums=('00b3e8b3cbfbe8ed55f81842a4d2c386')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # man path fix
+ sed -i "s|man/|share/&|" setup.py
+
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --prefix=/usr --root="$pkgdir/"
+
+ # python2 fix
+ sed -i "s/env python/&2/" `grep -rl "env python" "$pkgdir"`
+}
+md5sums=('00b3e8b3cbfbe8ed55f81842a4d2c386')
diff --git a/pcr/zeroinstall-injector/zeroinstall-injector.install b/pcr/zeroinstall-injector/zeroinstall-injector.install
new file mode 100644
index 000000000..293ff852a
--- /dev/null
+++ b/pcr/zeroinstall-injector/zeroinstall-injector.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/pcr/zfec/PKGBUILD b/pcr/zfec/PKGBUILD
new file mode 100644
index 000000000..0c2487c6b
--- /dev/null
+++ b/pcr/zfec/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+# Contributor: Peter Simons <simons@cryp.to>
+pkgname=zfec
+pkgver=1.4.24
+pkgrel=2
+pkgdesc="a fast erasure codec which can be used with the command-line, C, Python, or Haskell"
+arch=('i686' 'x86_64')
+url='http://pypi.python.org/pypi/zfec'
+license=('GPL' 'custom')
+depends=('python2' 'pyutil' 'zbase32')
+makedepends=('darcsver' 'setuptools_darcs')
+source=( http://pypi.python.org/packages/source/z/zfec/zfec-$pkgver.tar.gz )
+md5sums=('e1bca3a1f18374f72bdf8cd42ea9c919')
+
+build(){
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+ python2 setup.py test
+}
+
+package(){
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+ install -d $pkgdir/usr/share/licenses/$pkgname/
+ install -m644 COPYING* $pkgdir/usr/share/licenses/$pkgname/
+}
diff --git a/pcr/zoneminder/PKGBUILD b/pcr/zoneminder/PKGBUILD
new file mode 100644
index 000000000..29cf5ae8c
--- /dev/null
+++ b/pcr/zoneminder/PKGBUILD
@@ -0,0 +1,202 @@
+# Maintainer: Jacek Burghardt <jacek@hebe.us>
+# Maintainer: Vojtech Aschenbrenner <v@asch.cz>
+# Contributor: Jason Gardner <buhrietoe@gmail.com>
+# Contributor: Ross melin <rdmelin@gmail.com>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+
+# based of debian squeeze package
+
+_automake=1.14
+
+pkgname=zoneminder
+pkgver=1.25.0
+pkgrel=28
+pkgdesc='Capture, analyse, record and monitor video security cameras'
+arch=(
+ mips64el
+ x86_64
+ i686
+)
+backup=etc/zm.conf
+url=http://www.$pkgname.com
+license=GPL2
+depends=(
+ apache
+ cambozola
+ ffmpeg
+ gnutls
+ mariadb
+ perl-archive-zip
+ perl-date-manip
+ perl-dbd-mysql
+ perl-dbi
+ perl-expect
+ perl-libwww
+ perl-mime-lite
+ perl-mime-tools
+ perl-php-serialization
+ perl-net-sftp-foreign
+ perl-sys-mmap
+ perl-time-modules
+ perl-x10
+ php
+ php-apache
+ php-gd
+ php-mcrypt
+)
+makedepends=netpbm
+optdepends=netpbm
+options=(!libtool)
+install=$pkgname.install
+source=(
+ http://www.$pkgname.com/downloads/ZoneMinder-$pkgver.tar.gz
+ httpd-$pkgname.conf
+ $pkgname.service
+ sysctl-$pkgname.conf
+ $pkgname-$pkgver-ffmpeg.patch
+ $pkgname-$pkgver-gcrypt.patch
+)
+sha512sums=(
+ 3e18993b0539729491052c97d8c94227ccc089eb40277c2f07682f30049033303c7cfe9734fdac6d33ae67df29c76eb72bf7fbb5dae8227e8831fa603b61c375
+ 4ce0d8eba9d006d258f5b8a83920fc17f1f602b96518d37b7a47cd9b6eb84ef2587641a6ba839a469c3f0e33b46475866187279ae3f8be0d4054b074ee5d6b08
+ cfb0eb87a989236c72741a496ddc6a73aa2696e5beaaca4836d3c231ddb24c7ef5e9f65e7afa49674f2115cbfa4a07c75486e1947ce294c816ddbb875f3b99cf
+ 7330c179f1e2db815a675560d3d84648be02f7d0292f8cbe21d6033577fe688ed71ad23b5b8c9dc309395b45ebb554f9499e7a4b57091959b69679011fa59044
+ 7fc2a4663c3103bef641be065bd7992a2b3dc0699f1b99dc2fdb34c1c48e58686e490d3ade523ef7c8e29b3f04109658eef652c26ff6ee3fb9aee65453bdb6c4
+ 8c9e7debcaf60be1c2dda656f95e497f6812d704edc3ca4a1c915a3b3c9dc1749c91d96bc2d60db7d90d5edfd9e2dfc39010dfe4feabfecfffd27f1fffc3d675
+)
+
+prepare() {
+ cd $srcdir/ZoneMinder-$pkgver
+
+ # Patch for automake
+ sed -i "\|^am__api_version=| s|1[.]11|$_automake|;
+ " configure
+
+ # Patch for GCC
+ sed -i 's|^#include [<]errno[.]h[>]$|#include <errno.h>\n#include <unistd.h>|;
+ ' src/zm_logger.cpp
+ sed -i 's|^#include [<]pthread[.]h[>]$|#include <pthread.h>\n#include <unistd.h>|;
+ ' src/zm_thread.h
+ sed -i 's|^#include [<]fcntl[.]h[>]$|#include <fcntl.h>\n#include <limits.h>|;
+ ' src/zm_local_camera.cpp
+
+ # Patch for type cast in linux-libre kernel 3.5 and for wrong type "suppported"
+ sed -i 's|enum v4l2_buf_type type = v4l2_data[.]fmt[.]type|enum v4l2_buf_type type = (v4l2_buf_type)v4l2_data.fmt.type|;
+ s|suppported|supported|;
+ ' src/zm_local_camera.cpp
+
+ # configure crash on i686
+ [[ $CARCH != i686 ]] && {
+ # Patch for fixing warning
+ sed -i 's|pdest[+][+] = ([*]blend_ptr)\[[*]pdest]\[[*]psrc[+][+]]|pdest = (*blend_ptr)[*pdest][*psrc++];\n pdest++|;
+ ' src/zm_image.cpp
+ }
+
+ # Patch for support ffmpeg with <libavutil/mathematics.h>
+ #sed -i 's|^extern "C" {|extern "C" {\n#ifdef _STDINT_H\n#undef _STDINT_H\n#endif\n#include <stdint.h>|;
+ # s|^#include <libavutil/avutil[.]h>|#include <libavutil/avutil.h>\n#include <libavutil/mathematics.h>|;
+ # ' src/zm_ffmpeg.h
+
+ # Patch for support C library
+ #sed -i 's|^AM_CONFIG_HEADER(config[.]h)|AM_CONFIG_HEADER(config.h)\n\nAC_SUBST([AM_CXXFLAGS], [-D__STDC_CONSTANT_MACROS])|;
+ # s|^AC_CHECK_HEADERS(mysql/mysql[.]h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)|AC_CHECK_HEADERS(mysql/mysql.h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)\nAC_LANG_PUSH([C])|;
+ # s|^AC_CHECK_HEADERS(libswscale/swscale[.]h,,,)|AC_CHECK_HEADERS(libswscale/swscale.h,,,)\nAC_LANG_POP([C])|;
+ # ' configure.ac
+
+ # Patch for disable ZM_CHECK_FOR_UPDATES
+ sed -i '\|ZM_CHECK_FOR_UPDATES|,+1 s|yes|no|;
+ ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
+
+ # Patch for support html5 video and flv
+ sed -i '\|ZM_MPEG_LIVE_FORMAT|,+1 s|swf|webm|;
+ \|ZM_MPEG_REPLAY_FORMAT|,+1 s|swf|webm|;
+ \|ZM_FFMPEG_FORMATS|,+1 s|mpg mpeg wmv asf avi[*] mov swf 3gp[*][*]|mpg mpeg wmv asf avi* mov flv swf 3gp** webm ogg h264|;
+ ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
+
+ # Patch for change path run dir and for change ZM name to ZoneMinder
+ sed -i '\|ZM_PATH_SOCKS|,+1 s|TMP|RUN|;
+ \|ZM_WEB_TITLE_PREFIX|,+1 s|"ZM"|"ZoneMinder"|;
+ ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
+
+ # Patch for v4l2 convert support
+ sed -i 's|^$ENV{SHELL} = '"'/bin/sh'"' if exists $ENV{SHELL}|$ENV{SHELL} = '"'/bin/sh'"' if exists $ENV{SHELL};\n$ENV{LD_PRELOAD} = '"'/usr/lib/libv4l/v4l2convert.so'"' |;
+ ' scripts/zmdc.pl.in
+
+ # Patch for add more socket tries
+ sed -i '\|^$max_socket_tries = | s|3|15|;
+ ' web/ajax/stream.php
+
+ # Patch for text
+ sed -i 's|if ( fwrite( buffer, n_bytes, 1, stdout ) )|if ( fwrite( buffer, n_bytes, 1, stdout ) != 1 )|;
+ ' src/zm_stream.cpp
+
+ # Patch for remove HACK in Makefile.*
+ sed -i '\|This is a HACK|d;
+ \|^install-data-hook:$|,+5 d;
+ s| install-data-hook||;
+ \|^uninstall-hook:$|,+5 d;
+ s| uninstall-hook||;
+ ' Makefile.{am,in}
+
+ # Patch
+ for _patch in ffmpeg gcrypt; do
+ patch -Np1 -F99 -i $srcdir/$pkgname-$pkgver-$_patch.patch
+ done
+}
+
+build() {
+ cd $srcdir/ZoneMinder-$pkgver
+
+ # ZM_RUNDIR need change to run dir
+ export CPPFLAGS="$CPPFLAGS -D__STDC_CONSTANT_MACROS"\
+ OPT_FFMPEG=yes\
+ PATH_FFMPEG=/usr/bin/ffmpeg\
+ ZM_LOGDIR=/var/log/$pkgname\
+ ZM_RUNDIR=/tmp/$pkgname\
+ ZM_SSL_LIB=libgcrypt\
+ ZM_TMPDIR=/tmp/$pkgname
+
+ ./configure --prefix=/usr\
+ --enable-crashtrace=no\
+ --enable-debug=no\
+ --enable-mmap=yes\
+ --sysconfdir=/etc\
+ --with-cgidir=/srv/http/cgi-bin\
+ --with-extralibs='-L/usr/lib -L/usr/lib/mysql'\
+ --with-ffmpeg=/usr\
+ --with-libarch=lib\
+ --with-mysql=/usr\
+ --with-webdir=/srv/http/$pkgname\
+ --with-webgroup=http\
+ --with-webhost=localhost\
+ --with-webuser=http
+ make V=0
+}
+
+package() {
+ cd $srcdir/ZoneMinder-$pkgver
+ make DESTDIR=$pkgdir install
+
+ mkdir -vp $pkgdir/{etc/{httpd/conf/extra,sysctl.d},srv/http/{cgi-bin,$pkgname/socks},usr/{lib/systemd/system,share/{licenses/$pkgname,$pkgname/db}},var/{cache/$pkgname,log/$pkgname}}
+ chown -vR http.http $pkgdir/{etc/zm.conf,srv/http/$pkgname/socks,var/{cache/$pkgname,log/$pkgname}}
+ chmod -v 0700 $pkgdir/etc/zm.conf
+
+ for i in events images temp; do
+ mv -v $pkgdir/srv/http/$pkgname/$i $pkgdir/var/cache/$pkgname/$i
+ ln -vs /var/cache/$pkgname/$i $pkgdir/srv/http/$pkgname/$i
+ chown -vh http.http $pkgdir/srv/http/$pkgname/$i
+ done
+
+ ln -vs /srv/http/cgi-bin $pkgdir/srv/http/$pkgname
+ chown -vh http.http $pkgdir/srv/http/{cgi-bin,$pkgname,$pkgname/cgi-bin}
+
+ ln -vs /usr/share/cambozola/cambozola.jar $pkgdir/srv/http/$pkgname
+
+ install -vDm644 $srcdir/httpd-$pkgname.conf $pkgdir/etc/httpd/conf/extra
+ install -vDm644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system
+ install -vDm644 $srcdir/sysctl-$pkgname.conf $pkgdir/etc/sysctl.d
+ install -vDm644 $srcdir/sysctl-$pkgname.conf $pkgdir/srv/http/$pkgname
+ install -vDm644 COPYING $pkgdir/usr/share/licenses/$pkgname
+ install -vDm644 db/zm*.sql $pkgdir/usr/share/$pkgname/db
+}
diff --git a/pcr/zoneminder/httpd-zoneminder.conf b/pcr/zoneminder/httpd-zoneminder.conf
new file mode 100644
index 000000000..aeb089bc1
--- /dev/null
+++ b/pcr/zoneminder/httpd-zoneminder.conf
@@ -0,0 +1,20 @@
+# /etc/httpd/conf/extra/httpd-zm.conf
+# Config for zoneminder web app
+
+Alias /zm "/srv/http/zoneminder"
+<Directory "/srv/http/zoneminder">
+ Options -Indexes MultiViews FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+ # The code unfortunately uses short tags in many places
+ php_value short_open_tag On
+</Directory>
+
+ScriptAlias /cgi-bin "/srv/http/cgi-bin"
+<Directory "/srv/http/cgi-bin">
+ AllowOverride None
+ Options ExecCGI FollowSymLinks
+ Order allow,deny
+ Allow from all
+</Directory>
diff --git a/pcr/zoneminder/sysctl-zoneminder.conf b/pcr/zoneminder/sysctl-zoneminder.conf
new file mode 100644
index 000000000..ec1407dee
--- /dev/null
+++ b/pcr/zoneminder/sysctl-zoneminder.conf
@@ -0,0 +1,3 @@
+# For Zoneminder Monitor
+#kernel.shmall = 524288000
+#kernel.shmmax = 524288000
diff --git a/pcr/zoneminder/zoneminder b/pcr/zoneminder/zoneminder
new file mode 100644
index 000000000..c4cbf4d3f
--- /dev/null
+++ b/pcr/zoneminder/zoneminder
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+daemon_name=zm
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting Zoneminder"
+ /usr/bin/zmfix -a
+ if /usr/bin/zmpkg.pl start >/dev/null ; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Zoneminder"
+ if /usr/bin/zmpkg.pl stop >/dev/null ; then
+ rm_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ reload)
+ stat_busy "Reloading Zoneminder"
+ if /usr/bin/zmpkg.pl graceful >/dev/null ; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ restart)
+ stat_busy "Restarting Zoneminder"
+ if /usr/bin/zmpkg.pl restart >/dev/null ; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ status)
+ stat_busy "Checking Zoneminder status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|reload|restart|status}"
+esac
+
+exit 0
diff --git a/pcr/zoneminder/zoneminder-1.25-fixwarning.patch b/pcr/zoneminder/zoneminder-1.25-fixwarning.patch
new file mode 100644
index 000000000..0d151d139
--- /dev/null
+++ b/pcr/zoneminder/zoneminder-1.25-fixwarning.patch
@@ -0,0 +1,14 @@
+diff -U 3 -H -d -r -N -- ZoneMinder-1.24.2/src/zm_image.cpp ZoneMinder-1.24.2-patch/src/zm_image.cpp
+--- ZoneMinder-1.24.2/src/zm_image.cpp 2009-05-25 20:04:00.000000000 +0200
++++ ZoneMinder-1.24.2-patch/src/zm_image.cpp 2009-07-04 16:31:45.000000000 +0200
+@@ -776,7 +776,8 @@
+
+ while( pdest < (buffer+size) )
+ {
+- *pdest++ = (*blend_ptr)[*pdest][*psrc++];
++ *pdest = (*blend_ptr)[*pdest][*psrc++];
++ pdest++;
+ }
+ }
+ else
+
diff --git a/pcr/zoneminder/zoneminder-1.25-text.patch b/pcr/zoneminder/zoneminder-1.25-text.patch
new file mode 100644
index 000000000..90885f1b5
--- /dev/null
+++ b/pcr/zoneminder/zoneminder-1.25-text.patch
@@ -0,0 +1,12 @@
+--- ZoneMinder-1.25.0/src/zm_stream.cpp 2009-05-08 09:47:27.000000000 -0400
++++ ZoneMinder-1.25.0.ajs/src/zm_stream.cpp 2013-01-14 16:52:18.000000000 -0500
+@@ -262,7 +262,7 @@ bool StreamBase::sendTextFrame( const ch
+ fprintf( stdout, "--ZoneMinderFrame\r\n" );
+ fprintf( stdout, "Content-Length: %d\r\n", n_bytes );
+ fprintf( stdout, "Content-Type: image/jpeg\r\n\r\n" );
+- if ( fwrite( buffer, n_bytes, 1, stdout ) )
++ if ( fwrite( buffer, n_bytes, 1, stdout ) != 1 )
+ {
+ Error( "Unable to send stream text frame: %s", strerror(errno) );
+ return( false );
+
diff --git a/pcr/zoneminder/zoneminder-1.25.0-ffmpeg.patch b/pcr/zoneminder/zoneminder-1.25.0-ffmpeg.patch
new file mode 100644
index 000000000..99d41ee33
--- /dev/null
+++ b/pcr/zoneminder/zoneminder-1.25.0-ffmpeg.patch
@@ -0,0 +1,130 @@
+diff -Naur ZoneMinder-1.25.0-a/configure.ac ZoneMinder-1.25.0-b/configure.ac
+--- ZoneMinder-1.25.0-a/configure.ac 2011-08-23 09:10:32.000000000 -0600
++++ ZoneMinder-1.25.0-b/configure.ac 2013-05-06 11:17:33.860608307 -0600
+@@ -95,7 +95,7 @@
+
+ LDFLAGS="${FFMPEG_LIBS} $LDFLAGS"
+ CFLAGS="${FFMPEG_CFLAGS} $CFLAGS"
+-CPPFLAGS="${FFMPEG_CFLAGS} $CPPFLAGS"
++CPPFLAGS="${FFMPEG_CFLAGS} $CPPFLAGS -D__STDC_CONSTANT_MACROS"
+
+ EXTRA_LIBS=
+ AC_ARG_WITH(extralibs,
+@@ -275,8 +275,7 @@
+ AC_CHECK_LIB(x264,x264_predict_16x16_init)
+ AC_CHECK_LIB(avutil,av_malloc,,AC_MSG_WARN(libavutil.a may be required for MPEG streaming))
+ # Don't bother to warn about this one
+-AC_CHECK_LIB(avcore,av_image_copy,,)
+-AC_CHECK_LIB(avcodec,avcodec_init,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming))
++AC_CHECK_LIB(avcodec,avcodec_register_all,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming))
+ AC_CHECK_LIB(avformat,av_new_stream,,AC_MSG_WARN(libavformat.a is required for MPEG streaming))
+ AC_CHECK_LIB(avdevice,avdevice_register_all,,AC_MSG_WARN(libavdevice.a may be required for MPEG streaming))
+ AC_CHECK_LIB(swscale,sws_scale,,,-lswscale)
+diff -Naur ZoneMinder-1.25.0-a/src/zm_ffmpeg.h ZoneMinder-1.25.0-b/src/zm_ffmpeg.h
+--- ZoneMinder-1.25.0-a/src/zm_ffmpeg.h 2011-06-24 10:05:07.000000000 -0600
++++ ZoneMinder-1.25.0-b/src/zm_ffmpeg.h 2013-05-06 18:11:49.327274977 -0600
+@@ -43,6 +43,11 @@
+ }
+ #endif
+
++#include <libavutil/avutil.h>
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
++#include <libswscale/swscale.h>
++
+ #if FFMPEG_VERSION_INT == 0x000408
+ #define ZM_FFMPEG_048 1
+ #elif FFMPEG_VERSION_INT == 0x000409
+diff -Naur ZoneMinder-1.25.0-a/src/zm_ffmpeg_camera.cpp ZoneMinder-1.25.0-b/src/zm_ffmpeg_camera.cpp
+--- ZoneMinder-1.25.0-a/src/zm_ffmpeg_camera.cpp 2011-06-21 01:40:13.000000000 -0600
++++ ZoneMinder-1.25.0-b/src/zm_ffmpeg_camera.cpp 2013-05-06 19:57:08.453941643 -0600
+@@ -91,7 +91,7 @@
+ Info( "Priming capture from %s", mPath.c_str() );
+
+ // Open the input, not necessarily a file
+- if ( av_open_input_file( &mFormatContext, mPath.c_str(), NULL, 0, NULL ) !=0 )
++ if ( avformat_open_input( &mFormatContext, mPath.c_str(), NULL, NULL ) !=0 )
+ Fatal( "Unable to open input %s due to: %s", mPath.c_str(), strerror(errno) );
+
+ // Locate stream info from input
+@@ -122,7 +122,7 @@
+ Fatal( "Can't find codec for video stream from %s", mPath.c_str() );
+
+ // Open the codec
+- if ( avcodec_open( mCodecContext, mCodec ) < 0 )
++ if ( avcodec_open2( mCodecContext, mCodec, NULL ) < 0 )
+ Fatal( "Unable to open codec for video stream from %s", mPath.c_str() );
+
+ // Allocate space for the native video frame
+diff -Naur ZoneMinder-1.25.0-a/src/zm_mpeg.cpp ZoneMinder-1.25.0-b/src/zm_mpeg.cpp
+--- ZoneMinder-1.25.0-a/src/zm_mpeg.cpp 2011-05-15 14:39:06.000000000 -0600
++++ ZoneMinder-1.25.0-b/src/zm_mpeg.cpp 2013-05-06 20:00:08.923941640 -0600
+@@ -130,7 +130,7 @@
+ {
+ /* set the output parameters (must be done even if no
+ parameters). */
+- if ( av_set_parameters(ofc, NULL) < 0 )
++ if ( avformat_write_header(ofc, NULL) < 0 )
+ {
+ Panic( "Invalid output format parameters" );
+ }
+@@ -176,7 +176,7 @@
+ }
+
+ /* open the codec */
+- if ( avcodec_open(c, codec) < 0 )
++ if ( avcodec_open2(c, codec, NULL) < 0 )
+ {
+ Panic( "Could not open codec" );
+ }
+@@ -222,7 +222,7 @@
+ if ( !(of->flags & AVFMT_NOFILE) )
+ {
+ #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51,2,1)
+- if ( avio_open(&ofc->pb, filename, URL_WRONLY) < 0 )
++ if ( avio_open(&ofc->pb, filename, AVIO_FLAG_WRITE) < 0 )
+ #else
+ if ( url_fopen(&ofc->pb, filename, URL_WRONLY) < 0 )
+ #endif
+@@ -241,7 +241,7 @@
+ }
+
+ /* write the stream header, if any */
+- av_write_header(ofc);
++ avformat_write_header(ofc, NULL);
+ }
+
+ VideoStream::VideoStream( const char *filename, const char *format, int bitrate, double frame_rate, int colours, int width, int height )
+diff -Naur ZoneMinder-1.25.0-a/src/zm_remote_camera_rtsp.cpp ZoneMinder-1.25.0-b/src/zm_remote_camera_rtsp.cpp
+--- ZoneMinder-1.25.0-a/src/zm_remote_camera_rtsp.cpp 2011-06-21 03:19:10.000000000 -0600
++++ ZoneMinder-1.25.0-b/src/zm_remote_camera_rtsp.cpp 2013-05-06 20:07:40.797274975 -0600
+@@ -145,7 +145,7 @@
+ Panic( "Unable to locate codec %d decoder", codecContext->codec_id );
+
+ // Open codec
+- if ( avcodec_open( codecContext, codec ) < 0 )
++ if ( avcodec_open2( codecContext, codec, NULL ) < 0 )
+ Panic( "Can't open codec" );
+
+ picture = avcodec_alloc_frame();
+diff -Naur ZoneMinder-1.25.0-a/src/zm_sdp.h ZoneMinder-1.25.0-b/src/zm_sdp.h
+--- ZoneMinder-1.25.0-a/src/zm_sdp.h 2011-05-15 14:39:06.000000000 -0600
++++ ZoneMinder-1.25.0-b/src/zm_sdp.h 2013-05-06 20:23:28.237274974 -0600
+@@ -41,7 +41,7 @@
+ int payloadType;
+ const char payloadName[6];
+ enum AVMediaType codecType;
+- enum CodecID codecId;
++ enum AVCodecID codecId;
+ int clockRate;
+ int autoChannels;
+ };
+@@ -50,7 +50,7 @@
+ {
+ const char payloadName[32];
+ enum AVMediaType codecType;
+- enum CodecID codecId;
++ enum AVCodecID codecId;
+ //int clockRate;
+ //int autoChannels;
+ };
diff --git a/pcr/zoneminder/zoneminder-1.25.0-gcc47.patch b/pcr/zoneminder/zoneminder-1.25.0-gcc47.patch
new file mode 100644
index 000000000..a083c6dbc
--- /dev/null
+++ b/pcr/zoneminder/zoneminder-1.25.0-gcc47.patch
@@ -0,0 +1,33 @@
+diff -up ./src/zm_local_camera.cpp.gcc47 ./src/zm_local_camera.cpp
+--- ./src/zm_local_camera.cpp.gcc47 2011-06-21 04:19:10.000000000 -0500
++++ ./src/zm_local_camera.cpp 2012-01-19 13:43:49.142440717 -0600
+@@ -26,6 +26,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
++#include <limits.h>
+ #include <unistd.h>
+ #include <sys/mman.h>
+ #include <errno.h>
+diff -up ./src/zm_logger.cpp.gcc47 ./src/zm_logger.cpp
+--- ./src/zm_logger.cpp.gcc47 2011-06-28 06:07:35.000000000 -0500
++++ ./src/zm_logger.cpp 2012-01-19 13:43:49.142440717 -0600
+@@ -33,6 +33,7 @@
+ #include <signal.h>
+ #include <stdarg.h>
+ #include <errno.h>
++#include <unistd.h>
+
+ bool Logger::smInitialised = false;
+ Logger *Logger::smInstance = 0;
+diff -up ./src/zm_thread.h.gcc47 ./src/zm_thread.h
+--- ./src/zm_thread.h.gcc47 2012-01-19 13:44:43.082766722 -0600
++++ ./src/zm_thread.h 2012-01-19 13:44:56.966335869 -0600
+@@ -21,6 +21,7 @@
+ #define ZM_THREAD_H
+
+ #include <pthread.h>
++#include <unistd.h>
+ #include "zm_exception.h"
+ #include "zm_utils.h"
+
diff --git a/pcr/zoneminder/zoneminder-1.25.0-gcrypt.patch b/pcr/zoneminder/zoneminder-1.25.0-gcrypt.patch
new file mode 100644
index 000000000..21f197ec6
--- /dev/null
+++ b/pcr/zoneminder/zoneminder-1.25.0-gcrypt.patch
@@ -0,0 +1,86 @@
+diff -up ./configure.ac.gcrypt ./configure.ac
+--- ./configure.ac.gcrypt 2012-01-19 12:58:20.647123209 -0600
++++ ./configure.ac 2012-01-19 13:12:34.186669577 -0600
+@@ -13,7 +13,7 @@ AC_ARG_VAR(ZM_DB_HOST,[Hostname where Zo
+ AC_ARG_VAR(ZM_DB_NAME,[Name of ZoneMinder database, default zm])
+ AC_ARG_VAR(ZM_DB_USER,[Name of ZoneMinder database user, default zmuser])
+ AC_ARG_VAR(ZM_DB_PASS,[Password of ZoneMinder database user, default zmpass])
+-AC_ARG_VAR(ZM_SSL_LIB,[Library to use for ssl functions, default gnutls])
++AC_ARG_VAR(ZM_SSL_LIB,[Library to use for MD5 function, default libgcrypt])
+ AC_ARG_VAR(ZM_MYSQL_ENGINE,[MySQL engine to use with database, default MyISAM])
+ AC_ARG_VAR(ZM_RUNDIR,[Location of transient process files, default /var/run/zm])
+ AC_ARG_VAR(ZM_TMPDIR,[Location of temporary files, default /tmp/zm])
+@@ -32,7 +32,7 @@ if test "$ZM_DB_PASS" == ""; then
+ AC_SUBST(ZM_DB_PASS,[zmpass])
+ fi
+ if test "$ZM_SSL_LIB" == ""; then
+- AC_SUBST(ZM_SSL_LIB,gnutls)
++ AC_SUBST(ZM_SSL_LIB,libgcrypt)
+ fi
+ if test "$ZM_MYSQL_ENGINE" == ""; then
+ AC_SUBST(ZM_MYSQL_ENGINE,MyISAM)
+@@ -264,11 +264,10 @@ AC_CHECK_LIB(jpeg,jpeg_start_compress,,A
+ AC_CHECK_LIB(pthread,pthread_create,,AC_MSG_ERROR(zm requires libpthread.a))
+ AC_CHECK_LIB(dl,dlsym,,AC_MSG_ERROR(zm requires libdl.a))
+ if test "$ZM_SSL_LIB" == "openssl"; then
+-AC_CHECK_LIB(crypto,MD5,,AC_MSG_WARN([libcrypto.a is required for authenticated streaming - use ZM_SSL_LIB option to select gnutls instead]))
++AC_CHECK_LIB(crypto,MD5,,AC_MSG_WARN([libcrypto.a is required for authenticated streaming - use ZM_SSL_LIB option to select libgcrypt instead]))
+ else
+-AC_CHECK_HEADERS(gcrypt.h,,AC_MSG_WARN(zm requires libgcrypt headers to be installed for gnutls),)
++AC_CHECK_HEADERS(gcrypt.h,,AC_MSG_WARN(zm requires libgcrypt headers to be installed),)
+ AC_CHECK_LIB(gcrypt,gcry_check_version,,AC_MSG_WARN([libgcrypt.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead]))
+-AC_CHECK_LIB(gnutls-openssl,MD5,,AC_MSG_WARN([gnutls-openssl.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead]))
+ fi
+ AC_CHECK_LIB(pcre,pcre_compile,,AC_MSG_WARN(libpcre.a may be required for remote/network camera support))
+ AC_CHECK_LIB(z,zlibVersion)
+@@ -320,9 +319,6 @@ AC_CHECK_DECLS(round,,,[#include <math.h
+ if test "$ZM_SSL_LIB" == "openssl"; then
+ AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires openssl/md5.h - use ZM_SSL_LIB option to select gnutls instead]),[#include <stdlib.h>
+ #include <openssl/md5.h>])
+-else
+-AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires gnutls/openssl.h - use ZM_SSL_LIB option to select openssl instead]),[#include <stdlib.h>
+-#include <gnutls/openssl.h>])
+ fi
+ AC_CHECK_DECLS(backtrace,,,[#include <execinfo.h>])
+
+diff -up ./src/zm_user.cpp.gcrypt ./src/zm_user.cpp
+--- ./src/zm_user.cpp.gcrypt 2011-08-03 06:31:06.000000000 -0500
++++ ./src/zm_user.cpp 2012-01-19 12:58:20.654122992 -0600
+@@ -140,6 +140,18 @@ User *zmLoadUser( const char *username,
+ return( user );
+ }
+
++#ifdef HAVE_GCRYPT_H
++#define HAVE_DECL_MD5 1
++#define MD5_DIGEST_LENGTH 16
++static unsigned char *MD5(const unsigned char *data, unsigned long len,
++ unsigned char *md)
++{
++ gcry_md_hash_buffer(GCRY_MD_MD5, md, data, len);
++
++ return md;
++}
++#endif
++
+ // Function to validate an authentication string
+ User *zmLoadAuthUser( const char *auth, bool use_remote_addr )
+ {
+diff -up ./src/zm_user.h.gcrypt ./src/zm_user.h
+--- ./src/zm_user.h.gcrypt 2010-11-11 06:11:07.000000000 -0600
++++ ./src/zm_user.h 2012-01-19 13:14:11.200654694 -0600
+@@ -23,14 +23,11 @@
+ #ifndef ZM_USER_H
+ #define ZM_USER_H
+
+-#if HAVE_LIBGNUTLS_OPENSSL
+-#include <gnutls/openssl.h>
+ #if HAVE_GCRYPT_H
+ #include <gcrypt.h>
+-#endif // HAVE_GCRYPT_H
+ #elif HAVE_LIBCRYPTO
+ #include <openssl/md5.h>
+-#endif // HAVE_LIBGNUTLS_OPENSSL || HAVE_LIBCRYPTO
++#endif // HAVE_GCRYPT_H || HAVE_LIBCRYPTO
+
+ class User
+ {
diff --git a/pcr/zoneminder/zoneminder-1.25.0-kernel35.patch b/pcr/zoneminder/zoneminder-1.25.0-kernel35.patch
new file mode 100644
index 000000000..51bc1288d
--- /dev/null
+++ b/pcr/zoneminder/zoneminder-1.25.0-kernel35.patch
@@ -0,0 +1,21 @@
+diff -up ./src/zm_local_camera.cpp.kernel35 ./src/zm_local_camera.cpp
+--- ./src/zm_local_camera.cpp.kernel35 2012-07-16 15:01:22.182614878 -0500
++++ ./src/zm_local_camera.cpp 2012-07-16 15:02:16.491941730 -0500
+@@ -740,7 +740,7 @@ void LocalCamera::Terminate()
+ {
+ Debug( 3, "Terminating video stream" );
+ //enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+- enum v4l2_buf_type type = v4l2_data.fmt.type;
++ enum v4l2_buf_type type = (v4l2_buf_type)v4l2_data.fmt.type;
+ if ( vidioctl( vid_fd, VIDIOC_STREAMOFF, &type ) < 0 )
+ Error( "Failed to stop capture stream: %s", strerror(errno) );
+
+@@ -1520,7 +1520,7 @@ int LocalCamera::PrimeCapture()
+
+ Debug( 3, "Starting video stream" );
+ //enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+- enum v4l2_buf_type type = v4l2_data.fmt.type;
++ enum v4l2_buf_type type = (v4l2_buf_type)v4l2_data.fmt.type;
+ if ( vidioctl( vid_fd, VIDIOC_STREAMON, &type ) < 0 )
+ Fatal( "Failed to start capture stream: %s", strerror(errno) );
+ }
diff --git a/pcr/zoneminder/zoneminder.install b/pcr/zoneminder/zoneminder.install
new file mode 100644
index 000000000..66109d5fa
--- /dev/null
+++ b/pcr/zoneminder/zoneminder.install
@@ -0,0 +1,194 @@
+#!/usr/bin/bash
+pre_install() {
+ set -e
+ abort=false
+ if [ -L /srv/http/zoneminder/events ]; then
+ l=$(readlink /srv/http/zoneminder/events)
+ if [ $l != /var/cache/zoneminder/events ]; then
+ abort=true
+ fi
+ fi
+ if [ -L /srv/http/zoneminder/images ]; then
+ l=$(readlink /srv/http/zoneminder/images)
+ if [ $l != /var/cache/zoneminder/images ]; then
+ abort=true
+ fi
+ fi
+ if [ $abort = true ]; then
+ cat >&2 << EOF
+Aborting installation of zoneminder due to non-default symlinks in
+/srv/http/zoneminder for the images and/or events directory, which could
+result in loss of data. Please move your data in each of these directories to
+/var/cache/zoneminder before installing zoneminder from the package.
+EOF
+ exit 1
+ fi
+ exit 0
+}
+
+post_install() {
+ if [[ -d /var/log/zoneminder ]]; then
+ chmod -v 0755 /var/log/zoneminder
+ chown -v http.http /var/log/zoneminder
+ else
+ mkdir -vm 0755 /var/log/zoneminder
+ chown -v http.http /var/log/zoneminder
+ fi
+ if [[ -d /tmp/zoneminder ]]; then
+ chmod -v 0700 /tmp/zoneminder
+ chown -v http.http /tmp/zoneminder
+ else
+ mkdir -vm 0700 /tmp/zoneminder
+ chown -v http.http /tmp/zoneminder
+ fi
+ sed -i '
+ /^;extension=mysql.so/ s/^;//;
+ /^#extension=mysql.so/ s/^#//;
+ /^;extension=mysqli.so/ s/^;//;
+ /^#extension=mysqli.so/ s/^#//;
+ /^;extension=gd.so/ s/^;//;
+ /^#extension=gd.so/ s/^#//;
+ /^;extension=gettext.so/ s/^;//;
+ /^#extension=gettext.so/ s/^#//;
+ /^;extension=mcrypt.so/ s/^;//;
+ /^#extension=mcrypt.so/ s/^#//;
+ /^;extension=session.so/ s/^;//;
+ /^#extension=session.so/ s/^#//;
+ /^;extension=sockets.so/ s/^;//;
+ /^#extension=sockets.so/ s/^#//;
+ /^;extension=openssl.so/ s/^;//;
+ /^#extension=openssl.so/ s/^#//;
+ /^;extension=ftp.so/ s/^;//;
+ /^#extension=ftp.so/ s/^#//;
+ /^;extension=zip.so/ s/^;//;
+ /^#extension=zip.so/ s/^#//;
+ /^;open_basedir/ s/^;//;
+ /^#open_basedir/ s/^#//;
+ /^open_basedir/ s/:\/etc//;
+ /^open_basedir/ s/:\/etc\///;
+ /^open_basedir/ s/$/:\/etc/;
+ /^open_basedir/ s/:\/srv\/http\/zoneminder//;
+ /^open_basedir/ s/:\/srv\/http\/zoneminder\///;
+ /^open_basedir/ s/$/:\/srv\/http\/zoneminder/;
+ /^open_basedir/ s/:\/var\/cache\/zoneminder//;
+ /^open_basedir/ s/:\/var\/cache\/zoneminder\///;
+ /^open_basedir/ s/$/:\/var\/cache\/zoneminder/;
+ ' /etc/php/php.ini
+ sed -i '
+ /^LoadModule php5_module modules\/libphp5.so/d;
+ /^LoadModule rewrite_module modules\/mod_rewrite.so/ s/$/\nLoadModule php5_module modules\/libphp5.so/;
+ /^# PHP 5/d;
+ /^# ZoneMinder/d;
+ /^Include \/etc\/httpd\/conf\/extra\/php5_module.conf/d;
+ /^Include \/etc\/httpd\/conf\/extra\/httpd-zoneminder.conf/d;
+ /^Include conf\/extra\/httpd-default.conf/ s/$/\n\n# PHP 5\n\Include \/etc\/httpd\/conf\/extra\/php5_module.conf\n\n# ZoneMinder\nInclude \/etc\/httpd\/conf\/extra\/httpd-zoneminder.conf/;
+ ' /etc/httpd/conf/httpd.conf
+ gpasswd -a http video
+ cat << EOF
+Note for mysql:
+==> To run Zoneminder, you must install the database running mysql service (as root):
+==> "systemctl start mysqld.service"
+==> and add Zoneminder database typing (with passsword):
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -p -f reload"
+==> "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf -p"
+==> "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql"
+==> (or without passsword):
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -f reload"
+==> "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf"
+==> "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf mysql"
+
+Note for sysctl:
+==> You must uncomment that line in /etc/sysctl.d/sysctl-zoneminder.conf:
+==> "kernel.shmall = 524288000"
+==> "kernel.shmmax = 524288000"
+
+Note for php:
+==> You must uncomment that line in /etc/php/php.ini:
+==> "extension=mysql.so"
+==> check and make sure these are uncommented:
+==> "extension=gd.so"
+==> "extension=gettext.so"
+==> "extension=mcrypt.so"
+==> "extension=mysqli.so"
+==> "extension=session.so"
+==> "extension=sockets.so"
+==> "extension=openssl.so"
+==> "extension=ftp.so"
+==> "extension=zip.so"
+==> check and add to open_basedir "/etc",
+==> "/srv/http/zoneminder" and "/var/cache/zoneminder" like so
+==> "open_basedir = /home:/tmp:/usr/share/pear:/etc:/srv/http/zoneminder:/var/cache/zoneminder"
+==> and set your timezone in php.ini:
+==> "date.timezone = <your_zone>/<your_city>"
+
+Note for apache:
+==> You must edit /etc/httpd/conf/httpd.conf and add the line:
+==> "LoadModule php5_module modules/libphp5.so"
+==> and:
+==> "Include /etc/httpd/conf/extra/php5_module.conf"
+==> "Include /etc/httpd/conf/extra/httpd-zoneminder.conf"
+EOF
+}
+
+post_upgrade() {
+ post_install
+ _mysqld=$(systemctl status mysqld.service | grep -o 'inactive (dead)')
+ [[ _mysqld == 'inactive (dead)' ]] && systemctl start mysqld.service
+ /usr/bin/zmupdate.pl -f >/dev/null
+ [[ _mysqld == 'inactive (dead)' ]] && systemctl stop mysqld.service
+}
+
+post_remove() {
+ _zms=$(systemctl status zoneminder.service | grep -o 'active (running)')
+ [[ _zms == 'active (running)' ]] && systemctl stop zoneminder.service
+ [[ -d /tmp/zoneminder ]] && rm -vr /tmp/zoneminder
+ sed -i '
+ /^open_basedir/ s/:\/srv\/http\/zoneminder//;
+ /^open_basedir/ s/:\/srv\/http\/zoneminder\///;
+ /^open_basedir/ s/:\/var\/cache\/zoneminder\///
+ ' /etc/php/php.ini
+ sed -i '
+ /^# ZoneMinder/d;
+ /Include \/etc\/httpd\/conf\/extra\/httpd-zoneminder.conf/d;
+ ' /etc/httpd/conf/httpd.conf
+ cat << EOF
+Note:
+==> To clean Zoneminder mysql database, run as root (with password):
+==> "echo 'delete from user where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql"
+==> "echo 'delete from db where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql"
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -p -f drop zm"
+==> (or without password):
+==> "echo 'delete from user where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf mysql"
+==> "echo 'delete from db where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf mysql"
+==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -f drop zm"
+
+==> Disable http with php if it isn't needed with others servers,
+==> comment or remove that lines in /etc/httpd/conf/httpd.conf:
+==> "LoadModule php5_module modules/libphp5.so"
+==> "Include /etc/httpd/conf/extra/php5_module.conf"
+
+==> Remove line in /etc/httpd/conf/httpd.conf:
+==> "Include /etc/httpd/conf/extra/httpd-zoneminder.conf"
+
+==> Disable php with mysql if it isn't needed with others servers,
+==> comment that lines in /etc/php/php.ini:
+==> "extension=mysql.so"
+==> "extension=gd.so"
+==> "extension=gettext.so"
+==> "extension=mcrypt.so"
+==> "extension=mysqli.so"
+==> "extension=session.so"
+==> "extension=sockets.so"
+==> "date.timezone = <my_zone>/<my_city>"
+
+==> Drop http user on video group if it isn't needed with others servers:
+==> gpasswd -d http video
+
+==> Edit /etc/php/php.ini and remove "/etc", "/srv/http/zoneminder" and "/var/cache/zoneminder"
+==> in the "open_basedir".
+
+==> Remove log files and "zonemider" directory in "/var/log/zoneminder".
+
+==> Backup and remove "events", "images" and "temp" dirs in "/var/cache/zoneminder".
+EOF
+}
diff --git a/pcr/zoneminder/zoneminder.service b/pcr/zoneminder/zoneminder.service
new file mode 100644
index 000000000..05cae6f91
--- /dev/null
+++ b/pcr/zoneminder/zoneminder.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Capture, analyse, record and monitor video security cameras
+After=network.target remote-fs.target
+Required=mysqld.service
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/zmpkg.pl start
+ExecRestart=/usr/bin/zmpkg.pl restart
+ExecStop=/usr/bin/zmpkg.pl stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/zsh-yaourt/PKGBUILD b/pcr/zsh-yaourt/PKGBUILD
new file mode 100644
index 000000000..af6541183
--- /dev/null
+++ b/pcr/zsh-yaourt/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Jakub Ruzicka <yaccobb@centrum.cz>
+# Contributor: Javier `Phrodo_00' Aravena <phrodo.00@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=zsh-yaourt
+pkgver=20110403
+_laststablerev=497acb78fe6b
+pkgrel=3
+pkgdesc="ZSH functions to tab-complete repo package names for yaourt"
+url="http://bitbucket.org/Phrodo_00/zsh-yaourt"
+depends=(zsh)
+source=("https://bitbucket.org/Phrodo_00/${pkgname}/get/${_laststablerev}.tar.gz")
+arch=('i686' 'x86_64')
+license=('GPL')
+md5sums=('ac80ec05fa12e53fc8c58e5178609a6b')
+
+package() {
+ cd ${srcdir}/Phrodo_00-${pkgname}-${_laststablerev}
+ install -d -m755 ${pkgdir}/usr/share/zsh/site-functions/
+ install -m644 _yaourt $startdir/pkg/usr/share/zsh/site-functions/_yaourt
+}