summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-06-10 11:22:44 -0500
committerJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-06-10 11:22:44 -0500
commitade28d905ac6c5215010c2d325b7d8f713903c6b (patch)
tree097e581a5ebe5dcaf84a0d75ee40f909311fcde0
parentfe9031d7163bbf7aa3b8a538123897275ec9f663 (diff)
parent06a22f3bf7a44edf24bd02b6023cf05a6bc77256 (diff)
¿QMerge branch 'master' of vparabola:~/projects/abslibre-mips64el
Conflicts: libre/thunderbird-libre/rePKGBUILD
-rw-r--r--community-staging/calibre/PKGBUILD67
-rw-r--r--community-staging/calibre/calibre.install12
-rw-r--r--community-staging/calibre/desktop_integration.patch68
-rw-r--r--community-staging/couchdb/PKGBUILD40
-rw-r--r--community-staging/couchdb/couchdb.install22
-rw-r--r--community-staging/couchdb/rc-script.patch90
-rw-r--r--community-staging/dwdiff/PKGBUILD24
-rw-r--r--community-staging/gnustep-base/ChangeLog6
-rw-r--r--community-staging/gnustep-base/PKGBUILD34
-rw-r--r--community-staging/goldendict/PKGBUILD37
-rw-r--r--community-staging/goldendict/goldendict-paths.diff10
-rw-r--r--community-staging/goldendict/goldendict.changelog8
-rw-r--r--community-staging/ibus-qt/PKGBUILD31
-rw-r--r--community-staging/libfbclient/ChangeLog26
-rw-r--r--community-staging/libfbclient/LICENSE44
-rwxr-xr-xcommunity-staging/libfbclient/PKGBUILD40
-rw-r--r--community-staging/mapnik/PKGBUILD52
-rw-r--r--community-staging/mapnik/mapnik.install11
-rw-r--r--community-staging/open-vm-tools/PKGBUILD68
-rw-r--r--community-staging/open-vm-tools/open-vm-tools-X11Bool.patch15
-rw-r--r--community-staging/open-vm-tools/open-vm-tools.conf.d6
-rw-r--r--community-staging/open-vm-tools/open-vm-tools.install10
-rw-r--r--community-staging/open-vm-tools/open-vm-tools.rc.d101
-rw-r--r--community-staging/open-vm-tools/scripts-network-FS19541.patch40
-rw-r--r--community-staging/open-vm-tools/scripts-network.patch63
-rw-r--r--community-staging/open-vm-tools/tools.conf1
-rw-r--r--community-staging/open-vm-tools/vmware-guestd6
-rw-r--r--community-staging/open-vm-tools/xautostart.conf6
-rw-r--r--community-staging/openttd/PKGBUILD38
-rw-r--r--community-staging/openttd/openttd.install17
-rw-r--r--community-staging/parrot/ChangeLog5
-rw-r--r--community-staging/parrot/PKGBUILD44
-rw-r--r--community-staging/sword/PKGBUILD26
-rw-r--r--community-staging/tea/PKGBUILD35
-rw-r--r--community-staging/tea/tea.desktop10
-rw-r--r--community-staging/tea/tea.install4
-rw-r--r--community-staging/tracker/PKGBUILD50
-rw-r--r--community-staging/tracker/tracker.install11
-rw-r--r--community-staging/xulrunner-oss/PKGBUILD70
-rw-r--r--community-staging/xulrunner-oss/mozconfig56
-rw-r--r--community-staging/xulrunner-oss/mozilla-pkgconfig.patch60
-rw-r--r--community-staging/xulrunner-oss/oss.patch31
-rw-r--r--community-staging/xulrunner-oss/port_gnomevfs_to_gio.patch1316
-rw-r--r--community-staging/xulrunner-oss/xulrunner-omnijar.patch1737
-rw-r--r--community-staging/xulrunner-oss/xulrunner-version.patch12
-rw-r--r--community-staging/yaz/PKGBUILD38
-rw-r--r--community-testing/perl-digest-md5/PKGBUILD30
-rw-r--r--community/abuse/PKGBUILD33
-rw-r--r--community/abuse/abuse.install13
-rw-r--r--community/atanks/PKGBUILD29
-rw-r--r--community/calibre/PKGBUILD4
-rw-r--r--community/couchdb/PKGBUILD34
-rw-r--r--community/cppunit/PKGBUILD32
-rw-r--r--community/cppunit/gcc4.5.patch15
-rw-r--r--community/dar/PKGBUILD10
-rw-r--r--community/dwdiff/PKGBUILD12
-rw-r--r--community/ejabberd/PKGBUILD12
-rw-r--r--community/fb-client/PKGBUILD5
-rw-r--r--community/fotoxx/PKGBUILD17
-rw-r--r--community/fotoxx/fotoxx.install16
-rw-r--r--community/gnustep-base/PKGBUILD14
-rw-r--r--community/goldendict/PKGBUILD4
-rw-r--r--community/hostapd/PKGBUILD15
-rw-r--r--community/ibus-qt/PKGBUILD20
-rw-r--r--community/icon-slicer/PKGBUILD19
-rwxr-xr-xcommunity/libfbclient/PKGBUILD4
-rw-r--r--community/libmicrohttpd/PKGBUILD6
-rw-r--r--community/libraw/PKGBUILD19
-rw-r--r--community/libvirt/PKGBUILD10
-rw-r--r--community/libvirt/openbsd-netcat-default.patch38
-rw-r--r--community/luaexpat/PKGBUILD32
-rw-r--r--community/luxrays/PKGBUILD33
-rw-r--r--community/luxrender/PKGBUILD33
-rw-r--r--community/mapnik/PKGBUILD4
-rwxr-xr-xcommunity/mathomatic/PKGBUILD4
-rw-r--r--community/naev/naev.desktop11
-rw-r--r--community/naev/naev.pngbin1569 -> 0 bytes
-rw-r--r--community/nginx/PKGBUILD6
-rw-r--r--community/open-vm-tools/PKGBUILD6
-rw-r--r--community/openttd/PKGBUILD7
-rw-r--r--community/parrot/PKGBUILD4
-rw-r--r--community/prosody/PKGBUILD16
-rw-r--r--community/qps/PKGBUILD19
-rw-r--r--community/qtcreator/PKGBUILD72
-rw-r--r--community/shotwell/PKGBUILD14
-rw-r--r--community/sword/PKGBUILD10
-rw-r--r--community/tea/PKGBUILD22
-rw-r--r--community/tracker/PKGBUILD11
-rw-r--r--community/xfe/PKGBUILD11
-rw-r--r--community/xulrunner-oss/PKGBUILD2
-rw-r--r--community/yaz/PKGBUILD4
-rw-r--r--core/gcc/PKGBUILD51
-rw-r--r--core/gcc/gcc_mips64el_lib.patch25
-rw-r--r--core/glib2/PKGBUILD17
-rw-r--r--core/man-db/1361_1360.diff (renamed from testing/man-db/1361_1360.diff)0
-rw-r--r--core/man-db/PKGBUILD11
-rw-r--r--core/pacman/pacman.conf.mips64el86
-rw-r--r--extra/avidemux/PKGBUILD30
-rw-r--r--extra/avidemux/avidemux.install (renamed from testing/dvdrip/dvdrip.install)0
-rw-r--r--extra/boost/PKGBUILD29
-rw-r--r--extra/brltty/PKGBUILD5
-rw-r--r--extra/claws-mail/PKGBUILD2
-rw-r--r--extra/clutter-gst/PKGBUILD6
-rw-r--r--extra/enchant/PKGBUILD10
-rw-r--r--extra/fetchmail/PKGBUILD10
-rw-r--r--extra/gnutls/PKGBUILD9
-rw-r--r--extra/gptfdisk/PKGBUILD8
-rw-r--r--extra/gthumb/PKGBUILD8
-rw-r--r--extra/gtk3/PKGBUILD17
-rw-r--r--extra/hugin/PKGBUILD17
-rw-r--r--extra/hunspell/PKGBUILD6
-rw-r--r--extra/icu/PKGBUILD15
-rw-r--r--extra/kdesdk/PKGBUILD8
-rw-r--r--extra/libreoffice/ArchLinux.patch11
-rw-r--r--extra/libreoffice/PKGBUILD12
-rw-r--r--extra/libwebkit/PKGBUILD13
-rw-r--r--extra/libwebkit/replace-switch-with-given-when.patch (renamed from staging/libwebkit/replace-switch-with-given-when.patch)0
-rw-r--r--extra/modemmanager/PKGBUILD8
-rw-r--r--extra/openjdk6/aatext_by_default.diff35
-rw-r--r--extra/php/PKGBUILD4
-rw-r--r--extra/pidgin/PKGBUILD14
-rw-r--r--extra/pixman/PKGBUILD16
-rw-r--r--extra/python-egenix-mx-base/PKGBUILD25
-rw-r--r--extra/qt/PKGBUILD15
-rw-r--r--extra/qt/qtbug-16292.patch62
-rw-r--r--extra/swh-plugins/PKGBUILD51
-rw-r--r--extra/swh-plugins/mbeq_crash_fix.patch39
-rw-r--r--extra/swig/swig-deprecated-pycobject.patch92
-rw-r--r--extra/swig/swig-pyslice.patch66
-rw-r--r--extra/vlc/PKGBUILD8
-rw-r--r--extra/vte/PKGBUILD4
-rw-r--r--extra/wireshark/PKGBUILD14
-rw-r--r--extra/xf86-input-synaptics/PKGBUILD8
-rw-r--r--extra/xorg-xlsclients/PKGBUILD10
-rw-r--r--extra/xterm/PKGBUILD9
-rw-r--r--extra/xulrunner/PKGBUILD18
-rw-r--r--extra/xulrunner/mips.patch114
-rw-r--r--extra/xulrunner/xulrunner-omnijar.patch33
-rw-r--r--extra/zziplib/PKGBUILD37
-rw-r--r--extra/zziplib/zziplib-0.13.60-ldflags.patch14
-rw-r--r--libre/thunderbird-libre/rePKGBUILD1
-rw-r--r--multilib-testing/binutils-multilib/PKGBUILD75
-rw-r--r--multilib-testing/binutils-multilib/binutils.install17
-rw-r--r--multilib-testing/gcc-multilib/PKGBUILD298
-rw-r--r--multilib-testing/gcc-multilib/gcc-ada.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-fortran.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc-go.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-hash-style-both.patch122
-rw-r--r--multilib-testing/gcc-multilib/gcc-libs.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc_pure64.patch24
-rw-r--r--multilib-testing/lib32-glibc/PKGBUILD133
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch42
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.13-futex.patch31
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--multilib-testing/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib-testing/lib32-glibc/lib32-glibc.conf1
-rw-r--r--staging/boost/4994-compile-fix-for-Python32-v2.patch16
-rw-r--r--staging/boost/PKGBUILD112
-rw-r--r--staging/boost/boost-1.46.0-spirit.patch59
-rw-r--r--staging/brltty/PKGBUILD49
-rwxr-xr-xstaging/brltty/brltty68
-rw-r--r--staging/brltty/brltty-4.2-S_ISCHR.patch11
-rw-r--r--staging/brltty/brltty.conf2
-rw-r--r--staging/enchant/PKGBUILD30
-rw-r--r--staging/gptfdisk/PKGBUILD35
-rw-r--r--staging/hunspell/PKGBUILD28
-rw-r--r--staging/icu/PKGBUILD35
-rw-r--r--staging/icu/icu.8198.revert.icu5431.patch129
-rw-r--r--staging/kdeaccessibility/PKGBUILD98
-rw-r--r--staging/kdeaccessibility/kdeaccessibility.install (renamed from staging/kdesdk/kdesdk.install)0
-rw-r--r--staging/kdeadmin/PKGBUILD80
-rw-r--r--staging/kdeadmin/kdeadmin.install (renamed from testing/koffice/koffice.install)0
-rw-r--r--staging/kdeadmin/syslog-path.patch11
-rw-r--r--staging/kdeartwork/PKGBUILD102
-rw-r--r--staging/kdebase-runtime/PKGBUILD38
-rw-r--r--staging/kdebase-runtime/kdebase-runtime.install (renamed from staging/kdesdk/kdesdk-okteta.install)0
-rw-r--r--staging/kdebase-workspace/PKGBUILD72
-rw-r--r--staging/kdebase-workspace/fixpath.patch34
-rw-r--r--staging/kdebase-workspace/kde-np.pam7
-rw-r--r--staging/kdebase-workspace/kde.pam7
-rw-r--r--staging/kdebase-workspace/kdebase-workspace.install25
-rw-r--r--staging/kdebase-workspace/kdm (renamed from testing/net-snmp/snmpd.rc)18
-rw-r--r--staging/kdebase-workspace/kdm-zsh-profile.patch11
-rw-r--r--staging/kdebase-workspace/kscreensaver.pam1
-rw-r--r--staging/kdebase-workspace/terminate-server.patch11
-rw-r--r--staging/kdebase/PKGBUILD129
-rw-r--r--staging/kdebase/kdebase.install (renamed from staging/kdesdk/kdesdk-kate.install)1
-rw-r--r--staging/kdebindings/PKGBUILD71
-rw-r--r--staging/kdeedu/PKGBUILD270
-rw-r--r--staging/kdeedu/gpsd-2.96.patch43
-rw-r--r--staging/kdeedu/kdeedu.install11
-rw-r--r--staging/kdegames/PKGBUILD514
-rw-r--r--staging/kdegames/kdegames-kbattleship.install24
-rw-r--r--staging/kdegames/kdegames-kfourinline.install12
-rw-r--r--staging/kdegames/kdegames-kigo.install12
-rw-r--r--staging/kdegames/kdegames-kolf.install12
-rw-r--r--staging/kdegames/kdegames-kreversi.install22
-rw-r--r--staging/kdegames/kdegames-kspaceduel.install12
-rw-r--r--staging/kdegames/kdegames-ksquares.install22
-rw-r--r--staging/kdegames/kdegames-ktuberling.install12
-rw-r--r--staging/kdegames/kdegames-lskat.install12
-rw-r--r--staging/kdegames/kdegames-palapeli.install13
-rw-r--r--staging/kdegames/kdegames.install11
-rw-r--r--staging/kdegraphics/PKGBUILD141
-rw-r--r--staging/kdegraphics/kdegraphics.install11
-rw-r--r--staging/kdelibs/PKGBUILD63
-rw-r--r--staging/kdelibs/abs-syntax-highlight.patch12
-rw-r--r--staging/kdelibs/archlinux-menu.patch22
-rw-r--r--staging/kdelibs/kde-applications-menu.patch22
-rw-r--r--staging/kdelibs/kdelibs.install (renamed from testing/koffice/krita.install)0
-rw-r--r--staging/kdemultimedia/PKGBUILD109
-rw-r--r--staging/kdemultimedia/kdemultimedia.install11
-rw-r--r--staging/kdemultimedia/mplayerthumbs.config2
-rw-r--r--staging/kdenetwork/PKGBUILD116
-rw-r--r--staging/kdenetwork/kdenetwork.install11
-rw-r--r--staging/kdepim-runtime/PKGBUILD32
-rw-r--r--staging/kdepim-runtime/kdepim-runtime.install12
-rw-r--r--staging/kdepim/PKGBUILD253
-rw-r--r--staging/kdepim/kdepim-kleopatra.install12
-rw-r--r--staging/kdepim/kdepim-kmail.install12
-rw-r--r--staging/kdepim/kdepim-korganizer.install12
-rw-r--r--staging/kdepim/kdepim.install11
-rw-r--r--staging/kdepimlibs/PKGBUILD32
-rw-r--r--staging/kdepimlibs/kdepimlibs.install (renamed from testing/koffice/filters.install)2
-rw-r--r--staging/kdeplasma-addons/PKGBUILD603
-rw-r--r--staging/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install12
-rw-r--r--staging/kdeplasma-addons/kdeplasma-addons-applets.install11
-rw-r--r--staging/kdesdk/PKGBUILD243
-rw-r--r--staging/kdesdk/fix-python2-path.patch64
-rw-r--r--staging/kdetoys/PKGBUILD56
-rw-r--r--staging/kdetoys/kdetoys.install11
-rw-r--r--staging/kdeutils/PKGBUILD180
-rw-r--r--staging/kdeutils/kdeutils.install11
-rw-r--r--staging/kdewebdev/PKGBUILD67
-rw-r--r--staging/kdewebdev/kdewebdev.install11
-rw-r--r--staging/libreoffice/PKGBUILD701
-rw-r--r--staging/libreoffice/buildfix_64bit_system_libjpeg.diff11
-rw-r--r--staging/libreoffice/buildfix_bison25.diff23
-rw-r--r--staging/libreoffice/buildfix_boost.diff40
-rw-r--r--staging/libreoffice/buildfix_ct2n.diff17
-rw-r--r--staging/libreoffice/buildfix_i116795.diff22
-rw-r--r--staging/libreoffice/libreoffice.install25
-rw-r--r--staging/libreoffice/vbahelper.visibility.patch33
-rw-r--r--staging/libwebkit/PKGBUILD61
-rw-r--r--staging/libwebkit/gcc46.patch11
-rw-r--r--staging/libwebkit/libwebkit.install11
-rw-r--r--staging/php/PKGBUILD379
-rw-r--r--staging/php/apache.conf13
-rw-r--r--staging/php/logrotate.d.php-fpm6
-rw-r--r--staging/php/php-fpm.conf.in.patch80
-rw-r--r--staging/php/php.ini.patch126
-rw-r--r--staging/php/rc.d.php-fpm158
-rw-r--r--staging/php/suhosin-patch-5.3.6-0.9.10.patch.gzbin40881 -> 0 bytes
-rw-r--r--staging/xulrunner/PKGBUILD63
-rw-r--r--staging/xulrunner/mozconfig56
-rw-r--r--staging/xulrunner/mozilla-pkgconfig.patch60
-rw-r--r--staging/xulrunner/port_gnomevfs_to_gio.patch1316
-rw-r--r--staging/xulrunner/xulrunner-omnijar.patch1737
-rw-r--r--staging/xulrunner/xulrunner-version.patch12
-rw-r--r--testing/avahi/PKGBUILD75
-rw-r--r--testing/avahi/avahi-daemon-dbus.patch11
-rw-r--r--testing/avahi/avahi.install21
-rw-r--r--testing/avahi/gnome-nettool.pngbin0 -> 4509 bytes
-rw-r--r--testing/binutils/PKGBUILD83
-rw-r--r--testing/binutils/binutils.install17
-rw-r--r--testing/cairo-perl/PKGBUILD32
-rw-r--r--testing/claws-mail-extra-plugins/PKGBUILD67
-rw-r--r--testing/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch25
-rw-r--r--testing/coreutils/PKGBUILD69
-rw-r--r--testing/coreutils/coreutils-pam.patch428
-rw-r--r--testing/coreutils/coreutils-uname.patch173
-rw-r--r--testing/coreutils/coreutils.install21
-rw-r--r--testing/coreutils/su.pam9
-rw-r--r--testing/cryptsetup/PKGBUILD36
-rw-r--r--testing/cryptsetup/encrypt_hook131
-rw-r--r--testing/cryptsetup/encrypt_install27
-rw-r--r--testing/dvdrip/PKGBUILD40
-rw-r--r--testing/dvdrip/dvdrip.desktop8
-rw-r--r--testing/frozen-bubble/PKGBUILD36
-rw-r--r--testing/frozen-bubble/frozen-bubble.desktop9
-rw-r--r--testing/gcc/PKGBUILD249
-rw-r--r--testing/gcc/gcc-ada.install20
-rw-r--r--testing/gcc/gcc-fortran.install16
-rw-r--r--testing/gcc/gcc-go.install20
-rw-r--r--testing/gcc/gcc-hash-style-both.patch122
-rw-r--r--testing/gcc/gcc-libs.install16
-rw-r--r--testing/gcc/gcc.install20
-rw-r--r--testing/gcc/gcc_pure64.patch26
-rw-r--r--testing/gconf-perl/PKGBUILD32
-rw-r--r--testing/git/ChangeLog53
-rw-r--r--testing/git/PKGBUILD85
-rw-r--r--testing/git/git-daemon70
-rw-r--r--testing/git/git-daemon.conf5
-rw-r--r--testing/glade-perl/PKGBUILD23
-rw-r--r--testing/glew/PKGBUILD29
-rw-r--r--testing/glib-perl/PKGBUILD33
-rw-r--r--testing/glib2/PKGBUILD48
-rw-r--r--testing/glib2/glib2.csh1
-rw-r--r--testing/glib2/glib2.sh1
-rw-r--r--testing/glibc/PKGBUILD172
-rw-r--r--testing/glibc/glibc-2.10-bz4781.patch42
-rw-r--r--testing/glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--testing/glibc/glibc-2.13-futex.patch31
-rw-r--r--testing/glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--testing/glibc/glibc-__i686.patch13
-rw-r--r--testing/glibc/glibc.install20
-rwxr-xr-xtesting/glibc/locale-gen42
-rw-r--r--testing/glibc/locale.gen.txt23
-rwxr-xr-xtesting/glibc/nscd40
-rw-r--r--testing/gnome-perl/PKGBUILD23
-rw-r--r--testing/gnome-vfs-perl/PKGBUILD23
-rw-r--r--testing/gnomecanvas-perl/PKGBUILD23
-rw-r--r--testing/gnumeric/PKGBUILD36
-rw-r--r--testing/gnumeric/gnumeric.install26
-rw-r--r--testing/graphviz/LICENSE87
-rw-r--r--testing/graphviz/PKGBUILD50
-rw-r--r--testing/graphviz/install17
-rw-r--r--testing/gtk2-perl/PKGBUILD25
-rw-r--r--testing/gtk3/PKGBUILD36
-rw-r--r--testing/gtk3/gtk3.install15
-rw-r--r--testing/gtk3/settings.ini2
-rw-r--r--testing/hugin/PKGBUILD40
-rw-r--r--testing/hugin/hugin-gcc46.patch16
-rw-r--r--testing/hugin/hugin.install15
-rw-r--r--testing/imagemagick/PKGBUILD81
-rw-r--r--testing/imagemagick/perlmagick.rpath.patch10
-rw-r--r--testing/iproute2/PKGBUILD50
-rw-r--r--testing/irssi/PKGBUILD29
-rw-r--r--testing/koffice/PKGBUILD301
-rw-r--r--testing/koffice/gcc46.patch23
-rw-r--r--testing/koffice/kde4-koffice-libwpg02.patch1323
-rw-r--r--testing/libproxy/PKGBUILD41
-rw-r--r--testing/libreoffice/PKGBUILD701
-rw-r--r--testing/libreoffice/buildfix_64bit_system_libjpeg.diff11
-rw-r--r--testing/libreoffice/buildfix_bison25.diff23
-rw-r--r--testing/libreoffice/buildfix_boost.diff40
-rw-r--r--testing/libreoffice/buildfix_ct2n.diff17
-rw-r--r--testing/libreoffice/buildfix_i116795.diff22
-rw-r--r--testing/libreoffice/libreoffice.install25
-rw-r--r--testing/libreoffice/vbahelper.visibility.patch33
-rw-r--r--testing/libva/PKGBUILD35
-rw-r--r--testing/libva/libva-dont-install-tests.patch48
-rw-r--r--testing/links/PKGBUILD49
-rw-r--r--testing/links/links.desktop7
-rw-r--r--testing/linux-api-headers/PKGBUILD39
-rw-r--r--testing/lvm2/11-dm-initramfs.rules3
-rw-r--r--testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff17
-rw-r--r--testing/lvm2/PKGBUILD72
-rw-r--r--testing/lvm2/lvm2_hook24
-rw-r--r--testing/lvm2/lvm2_install30
-rw-r--r--testing/man-db/PKGBUILD60
-rw-r--r--testing/man-db/convert-mans11
-rwxr-xr-xtesting/man-db/man-db.cron.daily39
-rw-r--r--testing/man-db/man-db.install22
-rw-r--r--testing/moc/PKGBUILD45
-rw-r--r--testing/moc/gcc-undefined-symbols.diff12
-rw-r--r--testing/mod_perl/PKGBUILD27
-rw-r--r--testing/module-init-tools/PKGBUILD39
-rw-r--r--testing/module-init-tools/modprobe.conf3
-rw-r--r--testing/net-snmp/PKGBUILD43
-rw-r--r--testing/net-snmp/libnl-2.patch67
-rw-r--r--testing/net-tools/PKGBUILD43
-rw-r--r--testing/net-tools/gcc340.patch46
-rw-r--r--testing/net-tools/net-tools-1.60-2.6-compilefix.patch23
-rw-r--r--testing/net-tools/net-tools-1.60-miiioctl.patch17
-rw-r--r--testing/net-tools/net-tools-1.60-nameif.patch58
-rw-r--r--testing/net-tools/net-tools-1.60-nameif_strncpy.patch13
-rw-r--r--testing/net-tools/net-tools.patch52
-rw-r--r--testing/nouveau-drm-lts/COPYING48
-rw-r--r--testing/nouveau-drm-lts/Makefile102
-rw-r--r--testing/nouveau-drm-lts/PKGBUILD47
-rw-r--r--testing/nouveau-drm-lts/dont_check_for_pthread.patch49
-rw-r--r--testing/nouveau-drm-lts/nouveau-drm.install16
-rw-r--r--testing/nx-common/NXproto.h.64bit.diff66
-rw-r--r--testing/nx-common/PKGBUILD54
-rw-r--r--testing/nx-common/nxcompsh-gcc43.patch19
-rw-r--r--testing/nxserver/NXproto.h.64bit.diff66
-rw-r--r--testing/nxserver/PKGBUILD92
-rw-r--r--testing/nxserver/nxcompsh-gcc43.patch19
-rw-r--r--testing/pango-perl/PKGBUILD24
-rw-r--r--testing/perl-alien-sdl/PKGBUILD31
-rw-r--r--testing/perl-bit-vector/PKGBUILD33
-rw-r--r--testing/perl-compress-bzip2/PKGBUILD25
-rw-r--r--testing/perl-crypt-ssleay/PKGBUILD31
-rw-r--r--testing/perl-dbd-mysql/PKGBUILD49
-rw-r--r--testing/perl-dbd-sqlite/PKGBUILD28
-rw-r--r--testing/perl-dbi/PKGBUILD32
-rw-r--r--testing/perl-digest-nilsimsa/PKGBUILD35
-rw-r--r--testing/perl-digest-sha1/PKGBUILD38
-rw-r--r--testing/perl-event/PKGBUILD36
-rw-r--r--testing/perl-fcgi/PKGBUILD31
-rw-r--r--testing/perl-html-parser/PKGBUILD31
-rw-r--r--testing/perl-libintl-perl/PKGBUILD33
-rw-r--r--testing/perl-locale-gettext/PKGBUILD38
-rw-r--r--testing/perl-locale-gettext/compatibility-with-POSIX-module.patch10
-rw-r--r--testing/perl-net-dns/PKGBUILD33
-rw-r--r--testing/perl-net-ssleay/PKGBUILD33
-rw-r--r--testing/perl-net-upnp/PKGBUILD27
-rw-r--r--testing/perl-netaddr-ip/PKGBUILD34
-rw-r--r--testing/perl-sdl/PKGBUILD31
-rw-r--r--testing/perl-template-toolkit/PKGBUILD32
-rw-r--r--testing/perl-term-readkey/PKGBUILD36
-rw-r--r--testing/perl-text-iconv/PKGBUILD28
-rw-r--r--testing/perl-time-hires/PKGBUILD25
-rw-r--r--testing/perl-tk/PKGBUILD44
-rw-r--r--testing/perl-unicode-string/PKGBUILD33
-rw-r--r--testing/perl-xml-parser/PKGBUILD38
-rw-r--r--testing/perl-yaml-syck/PKGBUILD37
-rw-r--r--testing/perl/ChangeLog57
-rw-r--r--testing/perl/PKGBUILD91
-rw-r--r--testing/perl/fix-h2ph-and-tests.patch104
-rw-r--r--testing/perl/perl.install18
-rwxr-xr-xtesting/perl/perlbin.sh23
-rw-r--r--testing/pidgin/PKGBUILD114
-rw-r--r--testing/pidgin/nm09-more.patch49
-rw-r--r--testing/pidgin/nm09-pidgin.patch38
-rw-r--r--testing/pidgin/pidgin.install11
-rw-r--r--testing/postgresql/PKGBUILD141
-rw-r--r--testing/postgresql/build.patch11
-rw-r--r--testing/postgresql/perl-5.14-fix.patch25
-rwxr-xr-xtesting/postgresql/postgresql79
-rw-r--r--testing/postgresql/postgresql.confd5
-rw-r--r--testing/postgresql/postgresql.install22
-rw-r--r--testing/postgresql/postgresql.logrotate4
-rw-r--r--testing/postgresql/postgresql.pam3
-rw-r--r--testing/razor/PKGBUILD41
-rw-r--r--testing/re-alpine/PKGBUILD38
-rw-r--r--testing/re-alpine/maildir.patch3712
-rw-r--r--testing/rxvt-unicode/ChangeLog5
-rw-r--r--testing/rxvt-unicode/PKGBUILD53
-rw-r--r--testing/rxvt-unicode/rxvt-unicode.desktop10
-rw-r--r--testing/spamassassin/PKGBUILD54
-rw-r--r--testing/spamassassin/spamassassin.install25
-rw-r--r--testing/spamassassin/spamd49
-rw-r--r--testing/spamassassin/spamd.conf.d1
-rw-r--r--testing/subversion/PKGBUILD98
-rw-r--r--testing/subversion/subversion.rpath.fix.patch10
-rw-r--r--testing/subversion/subversion.suppress.deprecation.warnings.patch22
-rw-r--r--testing/subversion/svn11
-rw-r--r--testing/subversion/svnmerge.py2370
-rwxr-xr-xtesting/subversion/svnserve42
-rw-r--r--testing/subversion/svnserve.conf7
-rw-r--r--testing/texlive-bin/09-texlive-fonts.conf9
-rw-r--r--testing/texlive-bin/PKGBUILD335
-rw-r--r--testing/texlive-bin/archlinux-build.patch40
-rw-r--r--testing/texlive-bin/fix-fontforge-encoding.patch12
-rw-r--r--testing/texlive-bin/texlive.install18
-rw-r--r--testing/texlive-bin/texmf.cnf676
-rw-r--r--testing/twisted/PKGBUILD34
-rw-r--r--testing/twisted/twisted.install11
-rw-r--r--testing/udev/81-arch.rules83
-rw-r--r--testing/udev/PKGBUILD101
-rw-r--r--testing/udev/static-audio-nodes-group.patch27
-rw-r--r--testing/udev/static-nodes-permissions.patch57
-rw-r--r--testing/udev/udev.install65
-rw-r--r--testing/valgrind/PKGBUILD (renamed from extra/valgrind/PKGBUILD)13
-rw-r--r--testing/valgrind/glibc-patch-version.patch (renamed from extra/valgrind/glibc-patch-version.patch)0
-rw-r--r--testing/valgrind/valgrind-3.6.1-glibc-2.14.patch67
-rw-r--r--testing/vim/PKGBUILD198
-rw-r--r--testing/vim/archlinux.vim26
-rw-r--r--testing/vim/gvim.desktop42
-rw-r--r--testing/vim/gvim.install13
-rw-r--r--testing/vim/vimrc16
-rw-r--r--testing/weechat/PKGBUILD33
-rw-r--r--testing/xorg-server/10-quirks.conf10
-rw-r--r--testing/xorg-server/PKGBUILD196
-rw-r--r--testing/xorg-server/autoconfig-nvidia.patch104
-rw-r--r--testing/xorg-server/bg-none-revert.patch58
-rw-r--r--testing/xorg-server/git-fixes.patch318
-rw-r--r--testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch16
-rw-r--r--testing/xorg-server/xserver-1.10-pointer-barriers.patch1054
-rw-r--r--testing/xorg-server/xvfb-run180
-rw-r--r--testing/xorg-server/xvfb-run.1282
-rw-r--r--testing/yp-tools/PKGBUILD26
-rw-r--r--testing/ypbind-mt/PKGBUILD39
-rw-r--r--testing/ypbind-mt/nisdomainname.conf4
-rwxr-xr-xtesting/ypbind-mt/ypbind35
-rw-r--r--testing/ypbind-mt/ypbind.conf4
484 files changed, 8823 insertions, 27879 deletions
diff --git a/community-staging/calibre/PKGBUILD b/community-staging/calibre/PKGBUILD
deleted file mode 100644
index 5ad10d94b..000000000
--- a/community-staging/calibre/PKGBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# $Id: PKGBUILD 48634 2011-06-03 16:47:30Z stephane $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Petrov Roman <nwhisper@gmail.com>
-# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
-
-pkgname=calibre
-pkgver=0.8.3
-pkgrel=2
-pkgdesc="Ebook management application"
-arch=('i686' 'x86_64')
-url="http://calibre-ebook.com/"
-license=('GPL3')
-depends=('python-dateutil' 'python2-cssutils' 'python2-cherrypy'
- 'python-mechanize' 'podofo' 'libwmf' 'python-beautifulsoup'
- 'imagemagick' 'poppler-qt' 'chmlib' 'python-lxml' 'libusb'
- 'python-imaging' 'desktop-file-utils' 'shared-mime-info'
- 'python-dnspython' 'unrar' 'python2-pyqt' 'icu')
-makedepends=('python2-pycountry')
-optdepends=('ipython: to use calibre-debug')
-install=calibre.install
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
- desktop_integration.patch)
-md5sums=('aee05cac444f68491f2a3d68b22da53e'
- 'f4b80e3b34e34bce68b3f052ff52dee8')
-
-build() {
- cd "${srcdir}/${pkgname}"
-
- #rm -rf src/{cherrypy,pyPdf}
- rm -rf src/cherrypy
- sed -i -e "s/ldflags = shlex.split(ldflags)/ldflags = shlex.split(ldflags) + ['-fPIC']/" setup/extensions.py
- sed -i -e 's:\(#!/usr/bin/env[ ]\+python$\|#!/usr/bin/python$\):\12:g' \
- $(find . -regex ".*.py\|.*.recipe")
-
- python2 setup.py build
- python2 setup.py resources
- python2 setup.py translations
-}
-
-package() {
- cd "${srcdir}/${pkgname}"
-
- patch -Np1 -i "${srcdir}/desktop_integration.patch"
-
- # More on desktop integration (e.g. enforce arch defaults)
- sed -i -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \
- -e "s|self.opts.staging_sharedir, 'man/man1'|self.opts.staging_root, 'usr/share/man/man1'|" \
- -e "s|manpath, prog+'.1'+__appname__+'.bz2'|manpath, prog+'.1'+'.bz2'|" \
- -e "s|old_udev = '/etc|old_udev = '${pkgdir}/etc|" \
- -e "s/^Name=calibre/Name=Calibre/g" src/calibre/linux.py
-
- # Fix the environment module location
- sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py
-
- install -d "${pkgdir}/usr/lib/python2.7/site-packages"
- python2 setup.py install --root="${pkgdir}" --prefix=/usr \
- --staging-bindir="${pkgdir}/usr/bin" \
- --staging-libdir="${pkgdir}/usr/lib" \
- --staging-sharedir="${pkgdir}/usr/share"
-
- find "${pkgdir}" -type d -empty -delete
-
- # Decompress the man pages so makepkg will do it for us.
- for decom in "${pkgdir}"/usr/share/man/man1/*.bz2; do
- bzip2 -d "${decom}"
- done
-}
diff --git a/community-staging/calibre/calibre.install b/community-staging/calibre/calibre.install
deleted file mode 100644
index 6210bd0ab..000000000
--- a/community-staging/calibre/calibre.install
+++ /dev/null
@@ -1,12 +0,0 @@
-post_install() {
- update-desktop-database -q
- update-mime-database usr/share/mime &> /dev/null
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
diff --git a/community-staging/calibre/desktop_integration.patch b/community-staging/calibre/desktop_integration.patch
deleted file mode 100644
index 40d48c03e..000000000
--- a/community-staging/calibre/desktop_integration.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- a/src/calibre/linux.py 2011-05-27 18:42:14.000000000 +0200
-+++ b/src/calibre/linux.py 2011-05-29 14:57:49.000000000 +0200
-@@ -340,51 +340,39 @@
-
- with TemporaryDirectory() as tdir:
- with CurrentDir(tdir):
-- render_img('mimetypes/lrf.png', 'calibre-lrf.png')
-- check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-lrf', '128'))
-- check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-lrs',
-- '128'))
-- render_img('lt.png', 'calibre-gui.png')
-- check_call('xdg-icon-resource install --noupdate --size 128 calibre-gui.png calibre-gui', shell=True)
-- self.icon_resources.append(('apps', 'calibre-gui', '128'))
-- render_img('viewer.png', 'calibre-viewer.png')
-- check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True)
-- self.icon_resources.append(('apps', 'calibre-viewer', '128'))
-+ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')
-+ os.mkdir(dir)
-+ render_img('mimetypes/lrf.png', os.path.join(dir,'calibre-lrf.png'))
-+ render_img('lt.png', os.path.join(dir, 'calibre-gui.png'))
-+ render_img('viewer.png', os.path.join(dir, 'calibre-viewer.png'))
-
- mimetypes = set([])
- for x in all_input_formats():
- mt = guess_type('dummy.'+x)[0]
-- if mt and 'chemical' not in mt and 'ctc-posml' not in mt:
-+ if mt and 'chemical' not in mt and 'text' not in mt and 'pdf' not in mt and 'xhtml' not in mt:
- mimetypes.add(mt)
-
- def write_mimetypes(f):
- f.write('MimeType=%s;\n'%';'.join(mimetypes))
-
-- f = open('calibre-lrfviewer.desktop', 'wb')
-+ dir = os.path.join(self.opts.staging_sharedir,'../applications')
-+ os.mkdir(dir)
-+ f = open(os.path.join(dir, 'calibre-lrfviewer.desktop'), 'wb')
- f.write(VIEWER)
- f.close()
-- f = open('calibre-ebook-viewer.desktop', 'wb')
-+ f = open(os.path.join(dir, 'calibre-ebook-viewer.desktop'), 'wb')
- f.write(EVIEWER)
- write_mimetypes(f)
- f.close()
-- f = open('calibre-gui.desktop', 'wb')
-+ f = open(os.path.join(dir, 'calibre-gui.desktop'), 'wb')
- f.write(GUI)
- write_mimetypes(f)
- f.close()
-- des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop',
-- 'calibre-ebook-viewer.desktop')
-- for x in des:
-- cmd = ['xdg-desktop-menu', 'install', '--noupdate', './'+x]
-- check_call(' '.join(cmd), shell=True)
-- self.menu_resources.append(x)
-- check_call(['xdg-desktop-menu', 'forceupdate'])
-- f = open('calibre-mimetypes', 'wb')
-+ dir = os.path.join(self.opts.staging_sharedir,'../mime/packages/')
-+ os.makedirs(dir)
-+ f = open(os.path.join(dir, 'calibre.xml'), 'wb')
- f.write(MIME)
- f.close()
-- self.mime_resources.append('calibre-mimetypes')
-- check_call('xdg-mime install ./calibre-mimetypes', shell=True)
- except Exception:
- if self.opts.fatal_errors:
- raise
diff --git a/community-staging/couchdb/PKGBUILD b/community-staging/couchdb/PKGBUILD
deleted file mode 100644
index 4327a8094..000000000
--- a/community-staging/couchdb/PKGBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# $Id: PKGBUILD 48637 2011-06-03 16:51:06Z stephane $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua
-# Previous Contributor: Michael Fellinger <m.fellinger@gmail.com>
-
-pkgname=couchdb
-pkgver=1.0.2
-pkgrel=3
-pkgdesc="A document-oriented database that can be queried and indexed in a MapReduce fashion using JSON"
-arch=('i686' 'x86_64')
-url="http://couchdb.apache.org"
-license=('APACHE')
-depends=('icu' 'erlang' 'spidermonkey' 'openssl' 'curl')
-makedepends=('gcc')
-install=couchdb.install
-options=('!libtool')
-backup=('etc/couchdb/local.ini'
- 'etc/conf.d/couchdb'
- 'etc/logrotate.d/couchdb')
-source=("http://www.apache.org/dist/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz"
- "rc-script.patch")
-md5sums=('7ffbbe0f23f672181c89923c9f7a1de1'
- 'e9b5595338efbdc1a5db13284a296612')
-
-build() {
- cd "$srcdir/apache-$pkgname-$pkgver"
-
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
- make
- patch etc/init/couchdb <$srcdir/rc-script.patch
- make DESTDIR="$pkgdir" install
-
- install -Dm755 etc/default/couchdb $pkgdir/etc/conf.d/couchdb
- sed -i 's|\(CONFIGURATION_FILE=/etc/\)default\(/couchdb\)|\1conf.d\2|' $pkgdir/etc/rc.d/couchdb
- sed -i 's|\(COUCHDB_OPTIONS=\)|\1"-p /var/run/couchdb/couchdb.pid"|' $pkgdir/etc/conf.d/couchdb
- sed -i 's|$COUCHDB -s|$COUCHDB $COUCHDB_OPTIONS -s|' $pkgdir/etc/rc.d/couchdb
- sed -i 's|su $COUCHDB_USER -c|su $COUCHDB_USER -s /bin/bash -c|' $pkgdir/etc/rc.d/couchdb
-
- rm -rf $pkgdir/etc/default/ $pkgdir/var/run
-}
diff --git a/community-staging/couchdb/couchdb.install b/community-staging/couchdb/couchdb.install
deleted file mode 100644
index 5eff459c7..000000000
--- a/community-staging/couchdb/couchdb.install
+++ /dev/null
@@ -1,22 +0,0 @@
-post_install() {
- id couchdb &>/dev/null || \
- useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb
- mkdir -p /var/run/couchdb
- chown -R couchdb.daemon /etc/couchdb
- chown -R couchdb.daemon /var/{lib,log,run}/couchdb
-}
-
-pre_upgrade() {
- id couchdb &>/dev/null || \
- useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb
-}
-
-post_upgrade() {
- mkdir -p $pkgdir/var/run/couchdb
- chown -R couchdb.daemon /etc/couchdb
- chown -R couchdb.daemon /var/{lib,log,run}/couchdb
-}
-
-post_remove() {
- userdel couchdb &>/dev/null
-}
diff --git a/community-staging/couchdb/rc-script.patch b/community-staging/couchdb/rc-script.patch
deleted file mode 100644
index d38f4dc6c..000000000
--- a/community-staging/couchdb/rc-script.patch
+++ /dev/null
@@ -1,90 +0,0 @@
---- couchdb.org 2011-04-01 19:56:32.000000000 +0000
-+++ couchdb 2011-04-01 19:59:17.000000000 +0000
-@@ -1,4 +1,7 @@
--#!/bin/sh -e
-+#!/bin/bash
-+#general config
-+. /etc/rc.conf
-+. /etc/rc.d/functions
-
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not
- # use this file except in compliance with the License. You may obtain a copy of
-@@ -29,7 +32,7 @@
- NAME=couchdb
- SCRIPT_NAME=`basename $0`
- COUCHDB=/usr/bin/couchdb
--CONFIGURATION_FILE=/etc/default/couchdb
-+CONFIGURATION_FILE=/etc/conf.d/couchdb
- RUN_DIR=/var/run/couchdb
- LSB_LIBRARY=/lib/lsb/init-functions
-
-@@ -61,8 +63,9 @@
- fi
-
- start_couchdb () {
-- # Start Apache CouchDB as a background process.
-+ stat_busy "Starting the CouchDB daemon"
-
-+ [ -d /var/run/couchdb ] || mkdir -p /var/run/couchdb
- command="$COUCHDB -b"
- if test -n "$COUCHDB_STDOUT_FILE"; then
- command="$command -o $COUCHDB_STDOUT_FILE"
-@@ -79,38 +82,38 @@
- mkdir -p "$RUN_DIR"
- if test -n "$COUCHDB_USER"; then
- chown $COUCHDB_USER "$RUN_DIR"
-- if su $COUCHDB_USER -c "$command" > /dev/null; then
-- return $SCRIPT_OK
-+ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- else
- if $command > /dev/null; then
-- return $SCRIPT_OK
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- fi
- }
-
- stop_couchdb () {
-- # Stop the running Apache CouchDB process.
-+ stat_busy "Stopping the CouchDB daemon"
-
- command="$COUCHDB -d"
- if test -n "$COUCHDB_OPTIONS"; then
- command="$command $COUCHDB_OPTIONS"
- fi
- if test -n "$COUCHDB_USER"; then
-- if su $COUCHDB_USER -c "$command" > /dev/null; then
-- return $SCRIPT_OK
-+ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- else
- if $command > /dev/null; then
-- return $SCRIPT_OK
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- fi
- }
-@@ -118,7 +121,7 @@
- display_status () {
- # Display the status of the running Apache CouchDB process.
-
-- $COUCHDB -s
-+ $COUCHDB $COUCHDB_OPTIONS -s
- }
-
- parse_script_option_list () {
diff --git a/community-staging/dwdiff/PKGBUILD b/community-staging/dwdiff/PKGBUILD
deleted file mode 100644
index 4585b2ae9..000000000
--- a/community-staging/dwdiff/PKGBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id: PKGBUILD 48640 2011-06-03 16:55:04Z stephane $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-
-pkgname=dwdiff
-pkgver=1.9
-pkgrel=2
-pkgdesc="a front-end for the diff program that operates at the word level instead of the line level"
-arch=('i686' 'x86_64')
-url="http://os.ghalkes.nl/dwdiff.html"
-depends=('diffutils' 'icu')
-license=('GPL')
-source=(http://os.ghalkes.nl/dist/$pkgname-$pkgver.tgz)
-md5sums=('f483d8d8dab7a972ef21d5096e07fd47')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- make prefix="$pkgdir"/usr install
-}
diff --git a/community-staging/gnustep-base/ChangeLog b/community-staging/gnustep-base/ChangeLog
deleted file mode 100644
index 590f23f5e..000000000
--- a/community-staging/gnustep-base/ChangeLog
+++ /dev/null
@@ -1,6 +0,0 @@
-2007-07-24 Snowman <eric@archlinux>
- * rebuilt against toolchain in current
- * fixed SMP build
- * fixed file ownership
-2007-06-26 tardo <tardo@nagi-fanboi.net>
-* Built for x86_64
diff --git a/community-staging/gnustep-base/PKGBUILD b/community-staging/gnustep-base/PKGBUILD
deleted file mode 100644
index a2a05176b..000000000
--- a/community-staging/gnustep-base/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# $Id: PKGBUILD 48665 2011-06-03 22:32:57Z stephane $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
-# Contributor: Sebastian Sareyko <public@nooms.de>
-
-pkgname=gnustep-base
-pkgver=1.22.0
-pkgrel=2
-pkgdesc="The GNUstep base package"
-arch=('i686' 'x86_64')
-url="http://www.gnustep.org/"
-license=("GPL" "LGPL")
-depends=(libxslt avahi gmp gcc-libs openssl libffi gnustep-make gnutls)
-makedepends=(gcc-objc)
-conflicts=('gnustep-base-svn')
-groups=('gnustep-core')
-options=('!emptydirs' '!makeflags')
-source=(ftp://ftp.gnustep.org/pub/gnustep/core/$pkgname-$pkgver.tar.gz)
-md5sums=('7faab4891ae6c1e7a6c806d6da368410')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- source /etc/profile.d/GNUstep.sh
- ./configure --prefix=/usr --sysconfdir=/etc/GNUstep --with-ffi-include=/usr/lib/libffi-3.0.9/include/
- # fix file ownership
- sed -i 's/tar -xf $(TIMEZONE_ARCHIVE);/tar -xf $(TIMEZONE_ARCHIVE);chown -R root:root * ;/' NSTimeZones/Makefile.postamble
- make VERBOSE=1
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
- chown -R root.root "$pkgdir/"
-}
diff --git a/community-staging/goldendict/PKGBUILD b/community-staging/goldendict/PKGBUILD
deleted file mode 100644
index 237e20083..000000000
--- a/community-staging/goldendict/PKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# $Id: PKGBUILD 48628 2011-06-03 15:58:27Z stephane $
-# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
-# Contributor: m0rph <m0rph.mailbox@gmail.com>
-
-pkgname=goldendict
-pkgver=1.0.1
-pkgrel=3
-pkgdesc="Feature-rich dictionary lookup program"
-arch=('i686' 'x86_64')
-url="http://goldendict.berlios.de/"
-license=('GPL3')
-depends=('hunspell' 'libvorbis' 'libxtst' 'libzip' 'openssl' 'phonon')
-makedepends=('patch')
-changelog=$pkgname.changelog
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-src.tar.bz2 \
- $pkgname-paths.diff)
-md5sums=('d56bb854936015104029d1f0b98b61bb'
- '4488d4353e5522796c00785f0ce265e1')
-
-build(){
- cd ${srcdir}
-
- patch -Np0 -i ${srcdir}/$pkgname-paths.diff
-
- qmake
- make
- qmake
-}
-
-package() {
- cd ${srcdir}
-
- make INSTALL_ROOT=${pkgdir} install
-
-#removing unneeded
- rm -rf ${pkgdir}/usr/share/app-install
-}
diff --git a/community-staging/goldendict/goldendict-paths.diff b/community-staging/goldendict/goldendict-paths.diff
deleted file mode 100644
index 812dfdb97..000000000
--- a/community-staging/goldendict/goldendict-paths.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- goldendict.pro~ 2010-12-27 22:52:21.000000000 +0100
-+++ goldendict.pro 2010-12-27 22:52:21.000000000 +0100
-@@ -63,2 +63,2 @@
-- isEmpty( PREFIX ):PREFIX = /usr/local
-- DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/apps/goldendict/\\\"
-+ isEmpty( PREFIX ):PREFIX = /usr
-+ DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/goldendict/\\\"
-@@ -66 +66 @@
-- locale.path = $$PREFIX/share/apps/goldendict/locale/
-+ locale.path = $$PREFIX/share/goldendict/locale/
diff --git a/community-staging/goldendict/goldendict.changelog b/community-staging/goldendict/goldendict.changelog
deleted file mode 100644
index 8ec311fe1..000000000
--- a/community-staging/goldendict/goldendict.changelog
+++ /dev/null
@@ -1,8 +0,0 @@
-2010-12-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
- * Update to major release 1.0.1
-
-2010-02-16 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
- * FS#18350 fixed in 0.9.0-5
-
-2009-06-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
- * Package moved to [community] in v0.9.0
diff --git a/community-staging/ibus-qt/PKGBUILD b/community-staging/ibus-qt/PKGBUILD
deleted file mode 100644
index 51d3beb3d..000000000
--- a/community-staging/ibus-qt/PKGBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: PKGBUILD 48593 2011-06-03 07:34:58Z andrea $
-# Maintainer: Thomas Dziedzic < gostrc at gmail >
-# Contributor: garion < garion @ mailoo.org >
-# Contributor: leemars
-
-pkgname=ibus-qt
-pkgver=1.3.1
-pkgrel=3
-pkgdesc='IBus qt library and IBus qt input method plugin'
-arch=('i686' 'x86_64')
-license=('LGPL')
-url='http://ibus.googlecode.com'
-depends=('qt' 'ibus' 'icu')
-makedepends=('cmake' 'automoc4' 'doxygen')
-source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}-Source.tar.gz")
-md5sums=('769e8872ca8a59327b2073ce2f142589')
-
-build() {
- cd "${srcdir}"
- mkdir build
- cd build
-
- cmake ../${pkgname}-${pkgver}-Source \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
-}
-
-package() {
- cd "${srcdir}"/build
- make DESTDIR="${pkgdir}" install
-}
diff --git a/community-staging/libfbclient/ChangeLog b/community-staging/libfbclient/ChangeLog
deleted file mode 100644
index f02bd5ff5..000000000
--- a/community-staging/libfbclient/ChangeLog
+++ /dev/null
@@ -1,26 +0,0 @@
-
-2009-06-08 Douglas Soares de Andrade <douglas@archlinux.org>
-
- * Rebuilt for the new icu
-
-2009-04-09 Douglas Soares de Andrade <douglas@archlinux.org>
-
- * Updated for i686: 2.1.2
-
-2008-08-10 Douglas Soares de Andrade <douglas@archlinux.org>
-
- * Updated for i686: 2.1.1
-
-2008-05-10 Mateusz Herych <heniekk@gmail.com>
-
- * Updated for x86_64 - 2.1.0
-
-2008-04-28 Douglas Soares de Andrade <dsa@aur.archlinux.org>
-
- * Updated for i686 - 2.1.0
- * Sure, firebird is the hell to build. Waiting contributions ;-)
-
-2007-07-06 tardo <tardo@nagi-fanboi.net>
-
- * Built for x86_64
- * This is the most fucked up pkg evar.
diff --git a/community-staging/libfbclient/LICENSE b/community-staging/libfbclient/LICENSE
deleted file mode 100644
index e735b0cc1..000000000
--- a/community-staging/libfbclient/LICENSE
+++ /dev/null
@@ -1,44 +0,0 @@
-
-LICENSES
---------
-
-The applicable and approved licenses for the source files
-of the Firebird RDBMS project are:
-
- 1) InterBase Public License (IPL), version 1.0
- http://bdn.borland.com/article/0,1410,30198,00.html
-
- 2) Initial Developer's Public License (IDPL), version 1.0
- http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl
-
-The IPL is copyright of Borland Corp., the other licenses are copyright
-by the source code authors and contributors.
-
-
-USAGE RULES
------------
-
-1) The source code which was released under the IPL must keep this license.
- All modifications / adaptations of this code are still subjects of the IPL.
-
-2) The files that are derived from the IPL covered code, must also keep
- this license. It means that if any new file contains some code covered by
- the IPL, then this file should be released under the IPL too.
-
-3) The new files developed by the members of the Firebird project should
- be released under the IDPL.
-
-4) The new files contributed by people who are not members of the Firebird
- project should follow the rule #3. If an author (initial developer) doesn't
- specify the license to be used, the person who applies the contributed code
- to the CVS tree (a committer) becomes responsible for the license assigned
- to the contributed code.
-
-5) Every non-binary file that exists in the CVS tree, should have a header
- section which describes the license this code is released under. If a file
- contains no header, it means that this code is freeware and nobody owns the
- appropriate copyrights.
-
-
-You may find the exhibits for the approved licenses in /doc/license directory
-of the CVS tree.
diff --git a/community-staging/libfbclient/PKGBUILD b/community-staging/libfbclient/PKGBUILD
deleted file mode 100755
index 26409e5a0..000000000
--- a/community-staging/libfbclient/PKGBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# $Id: PKGBUILD 48689 2011-06-04 20:28:04Z lcarlier $
-# Maintainer: Carlier Laurent <lordheavym@gmail.com>
-# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
-
-pkgname=libfbclient
-pkgver=2.5.0.26074
-pkgrel=3
-pkgdesc="Client library for Firebird."
-arch=('i686' 'x86_64')
-url="http://www.firebirdsql.org/"
-license=('custom')
-depends=('gcc-libs' 'icu')
-source=(http://downloads.sourceforge.net/firebird/Firebird-$pkgver-0.tar.bz2
- LICENSE)
-md5sums=('780f162ee71f087fc277adf09f966529'
- '0d61798861e159c85dbdf0f30fe2f2ce')
-
-build() {
- cd $srcdir/Firebird-$pkgver-0
-
- ./configure --prefix=/usr --with-system-icu --without-fbudf \
- --without-fbsbin --without-fbconf --without-fbdoc --without-fbsample \
- --without-fbsample-db --without-fbintl --without-fbmisc --without-fbhelp \
- --without-fbsecure-db --with-fbmsg=/usr/share/firebird --without-fblog \
- --without-fbglock --without-fbplugins
-
- make
-}
-
-package() {
- cd $srcdir/Firebird-$pkgver-0
-
- mkdir -p $pkgdir/usr/{bin,share/firebird}
- cp -R gen/firebird/{lib,include} $pkgdir/usr
- rm -f $pkgdir/usr/lib/libedit.a
- install -m644 gen/firebird/*.msg $pkgdir/usr/share/firebird
- install -m755 gen/firebird/bin/fb_config $pkgdir/usr/bin
- mkdir -p $srcdir/usr/share/licenses/$pkgname/
- install -D -m644 ${srcdir}/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
-}
diff --git a/community-staging/mapnik/PKGBUILD b/community-staging/mapnik/PKGBUILD
deleted file mode 100644
index a008e5c60..000000000
--- a/community-staging/mapnik/PKGBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# $Id: PKGBUILD 48662 2011-06-03 19:43:21Z stephane $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: David Dent <thewinch@gmail.com>
-# Contributor: orbisvicis <orbisvicis@gmail.com>
-
-pkgname=mapnik
-pkgver=0.7.1
-pkgrel=10
-pkgdesc="Free Toolkit for developing mapping applications. Above all Mapnik is about rendering beautiful maps."
-arch=('i686' 'x86_64')
-url="http://mapnik.org/"
-license=('LGPL')
-depends=('boost-libs' 'icu' 'libpng' 'libjpeg' 'libtiff' 'freetype2'
- 'libxml2' 'python2' 'proj' 'cairo' 'cairomm' 'pycairo'
- 'postgresql-libs' 'postgis' 'gdal' 'curl' 'libtool')
- # already in core ('zlib' 'sqlite3')
-optdepends=('libxslt: Web Map Service'
- 'python-lxml: Web Map Service'
- 'python-imaging: Web Map Service'
- 'python-nose: Web Map Service'
- 'apache: Web Map Service'
- 'mod_fastcgi: Web Map Service - or:'
- 'mod_fcgid: Web Map Service - or:'
- 'mod_wsgi: Web Map Service'
- )
-makedepends=('scons' 'boost') # already in core ('pkg-config')
-conflicts=('mapnik-svn')
-install="mapnik.install"
-source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('8f65fda2a792518d6f6be8a85f62fc73')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- #patch SConstruct so libs end up in /usr/lib not /usr/lib64 on X86_64
- sed -i -e "/LIBDIR_SCHEMA=/s/lib64/lib/" SConstruct
-
- sed -i 's/-ansi -Wall/-ansi -DBOOST_FILESYSTEM_VERSION=2 -Wall/' SConstruct
-
- scons configure \
- PREFIX="/usr" \
- INPUT_PLUGINS=all \
- DESTDIR="$pkgdir"
- scons
-}
-package(){
- cd "$srcdir/$pkgname-$pkgver"
- scons install
-
- # fix permissions on SCons-autogenerated files
- chmod 644 "${pkgdir}/usr/lib/python2.7/site-packages/mapnik/paths.py"
-}
diff --git a/community-staging/mapnik/mapnik.install b/community-staging/mapnik/mapnik.install
deleted file mode 100644
index 46f265d5b..000000000
--- a/community-staging/mapnik/mapnik.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- /sbin/ldconfig
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
diff --git a/community-staging/open-vm-tools/PKGBUILD b/community-staging/open-vm-tools/PKGBUILD
deleted file mode 100644
index 9a97df2e4..000000000
--- a/community-staging/open-vm-tools/PKGBUILD
+++ /dev/null
@@ -1,68 +0,0 @@
-# $Id: PKGBUILD 48659 2011-06-03 19:34:11Z stephane $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
-
-pkgname=open-vm-tools
-pkgver=2011.03.28
-_pkgsubver=387002
-pkgrel=4
-pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
-arch=('i686' 'x86_64')
-url="http://open-vm-tools.sourceforge.net/"
-license=('LGPL')
-depends=('open-vm-tools-modules' 'libdnet' 'icu' 'procps' 'glib2' 'uriparser' 'libsigc++' 'libxss')
-makedepends=('chrpath' 'doxygen' 'gtkmm' 'fuse' 'libxtst')
-optdepends=('gtkmm' 'libnotify' 'libxtst' 'fuse' 'libsm')
-options=('docs' '!libtool')
-install=$pkgname.install
-source=(http://switch.dl.sourceforge.net/$pkgname/$pkgname-$pkgver-${_pkgsubver}.tar.gz
- scripts-network.patch
- scripts-network-FS19541.patch
- open-vm-tools-X11Bool.patch
- open-vm-tools.conf.d
- open-vm-tools.rc.d
- tools.conf
- vmware-guestd
- xautostart.conf)
-md5sums=('a9c72ab0b8f7778d444e69e9d3b95527'
- '06f7448e274db2a911f582e276088fc9'
- 'b183ec265200d68431a5e4eb1b0c8cf5'
- '8c333a979578bdc0c3134c1dd6bb7353'
- '79b0a14d86191fee70a4639da8bd7785'
- '67cb83a9e5a4dd016c1a1da2863ca36d'
- 'b55d15e2c4be396aad709aeca91033d3'
- '73cc1a2665b0dd62427733d62ead8b9a'
- '75a25d83417e683957321f97a00f8465')
-
-build() {
- cd "$srcdir/$pkgname-${pkgver}-${_pkgsubver}"
- [ $NOEXTRACT -eq 1 ] || {
- sed -i 's#3.2.7#3.2.8#' configure configure.ac
- sed -i 's#CFLAGS="$CFLAGS -Werror"##' configure configure.ac
- }
- [ -f Makefile ] || ./configure --prefix=/usr --without-kernel-modules
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-${pkgver}-${_pkgsubver}"
-
- make install DESTDIR=$pkgdir
- install -D -m 755 scripts/common/vmware-xdg-detect-de $pkgdir/usr/bin/vmware-xdg-detect-de
- chmod 07755 $pkgdir/usr/bin/vmware-user-suid-wrapper
-
- cd $pkgdir
- patch -Np1 -i $srcdir/scripts-network.patch etc/vmware-tools/scripts/vmware/network
- patch -Np1 -i $srcdir/scripts-network-FS19541.patch etc/vmware-tools/scripts/vmware/network
-
- install -D -m 755 $srcdir/open-vm-tools.rc.d $pkgdir/etc/rc.d/open-vm-tools
- install -D -m 644 $srcdir/open-vm-tools.conf.d $pkgdir/etc/conf.d/open-vm-tools
- install -D -m 644 $srcdir/tools.conf $pkgdir/etc/vmware-tools/tools.conf
- install -D -m 644 $srcdir/xautostart.conf $pkgdir/etc/vmware-tools/xautostart.conf
- install -D -m 644 $srcdir/vmware-guestd $pkgdir/etc/pam.d/vmware-guestd
- rm -rf $pkgdir/usr/etc
-
- ln -fs /usr/sbin/mount.vmhgfs $pkgdir/sbin/mount.vmhgfs
-
- cd $pkgdir && find -type f -exec sh -c "file {} | grep ELF >/dev/null && echo {} && chrpath -d {}" \;
-}
diff --git a/community-staging/open-vm-tools/open-vm-tools-X11Bool.patch b/community-staging/open-vm-tools/open-vm-tools-X11Bool.patch
deleted file mode 100644
index f12581807..000000000
--- a/community-staging/open-vm-tools/open-vm-tools-X11Bool.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -wbBur open-vm-tools-2010.08.24-292196.org/lib/include/vm_basic_types.h open-vm-tools-2010.08.24-292196/lib/include/vm_basic_types.h
---- open-vm-tools-2010.08.24-292196.org/lib/include/vm_basic_types.h 2010-08-24 19:59:22.000000000 +0000
-+++ open-vm-tools-2010.08.24-292196/lib/include/vm_basic_types.h 2010-08-30 09:38:48.000000000 +0000
-@@ -83,8 +83,11 @@
-
- /* STRICT ANSI means the Xserver build and X defines Bool differently. */
- #if !defined(__STRICT_ANSI__) || defined(__FreeBSD__) || defined(__MINGW32__)
-+# ifndef _XTYPEDEF_BOOL
-+# define _XTYPEDEF_BOOL
- typedef char Bool;
- #endif
-+#endif
-
- #ifndef FALSE
- #define FALSE 0
diff --git a/community-staging/open-vm-tools/open-vm-tools.conf.d b/community-staging/open-vm-tools/open-vm-tools.conf.d
deleted file mode 100644
index 83f7864e8..000000000
--- a/community-staging/open-vm-tools/open-vm-tools.conf.d
+++ /dev/null
@@ -1,6 +0,0 @@
-# Enable support for Drag'n'Drop
-VM_DRAG_AND_DROP="yes"
-
-# vmware-guestd settings
-GUESTD_BIN="/usr/sbin/vmware-guestd"
-PIDFILE="/var/run/vmware-guestd.pid"
diff --git a/community-staging/open-vm-tools/open-vm-tools.install b/community-staging/open-vm-tools/open-vm-tools.install
deleted file mode 100644
index 88d9b88e6..000000000
--- a/community-staging/open-vm-tools/open-vm-tools.install
+++ /dev/null
@@ -1,10 +0,0 @@
-post_install() {
- [ ! -d "/mnt/hgfs" ] && mkdir /mnt/hgfs
- echo ">>>"
- echo ">>> You can mount VMware Shared Folders via:"
- echo ">>> mount -t vmhgfs .host:/ /mnt/hgfs"
- echo ">>>"
- echo ">>> or by adding this line to /etc/fstab:"
- echo ">>> .host:/ /mnt/hgfs vmhgfs defaults 0 0"
- echo ">>>"
-}
diff --git a/community-staging/open-vm-tools/open-vm-tools.rc.d b/community-staging/open-vm-tools/open-vm-tools.rc.d
deleted file mode 100644
index 0c9221489..000000000
--- a/community-staging/open-vm-tools/open-vm-tools.rc.d
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-# source application-specific settings
-[ -f /etc/conf.d/open-vm-tools ] && . /etc/conf.d/open-vm-tools
-
-PID=`pidof -o %PPID /usr/bin/vmtoolsd`
-case "$1" in
- start)
- stat_busy "Starting Open Virtual Machine Tools"
-
- if [ "$VM_DRAG_AND_DROP" == "yes" ]; then
- VMBLOCK=`grep -w vmblock /proc/modules`
- [ -z "$VMBLOCK" ] && modprobe vmblock
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- fi
-
- DND_TMPDIR="/tmp/VMwareDnD"
- if [ ! -d "$DND_TMPDIR" ]; then
- mkdir $DND_TMPDIR
- chmod 1777 $DND_TMPDIR
- fi
-
- mount -t vmblock none /proc/fs/vmblock/mountPoint
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- fi
- fi
-
-
- for m in vmhgfs vmsync; do
- VMMOD=`grep -w $m /proc/modules`
- [ -z "$VMMOD" ] && \
- { modprobe $m
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- fi; }
- done
-
-
- [ -z "$PID" ] && /usr/bin/vmtoolsd --background $PIDFILE
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon open-vm-tools
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Open Virtual Machine Tools"
- [ ! -z "$PID" ] && kill $PID &>/dev/null
-# if [ $? -gt 0 ]; then
-# stat_fail
-# exit 1
-# fi
-
- for m in vmhgfs vmsync vmci; do
- VMMOD=`grep -w $m /proc/modules`
- [ ! -z "$VMMOD" ] && rmmod $m
- if [ $? -gt 0 ]; then
- stat_fail
- exit 4
- fi
- done
-
- if [ "$VM_DRAG_AND_DROP" == "yes" ]; then
- MOUNTPOINT=`grep -w "none /proc/fs/vmblock/mountPoint vmblock" /proc/modules`
- [ -z "$MOUNTPOINT" ] && umount /proc/fs/vmblock/mountPoint
- if [ $? -gt 0 ]; then
- stat_fail
- exit 5
- fi
-
- DND_TMPDIR="/tmp/VMwareDnD"
- rm -r $DND_TMPDIR
-
- VMBLOCK=`grep -w vmblock /proc/modules`
- [ ! -z "$VMBLOCK" ] && rmmod vmblock
- if [ $? -gt 0 ]; then
- stat_fail
- exit 6
- fi
- fi
-
- rm_daemon open-vm-tools
- stat_done
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/community-staging/open-vm-tools/scripts-network-FS19541.patch b/community-staging/open-vm-tools/scripts-network-FS19541.patch
deleted file mode 100644
index 1f65b9824..000000000
--- a/community-staging/open-vm-tools/scripts-network-FS19541.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- network 2010-04-28 12:30:51.000000000 +0200
-+++ network.bak 2010-05-20 12:12:50.000000000 +0200
-@@ -76,7 +76,7 @@
- else
- echo `date` "[rescue_nic] activating $nic ..."
-
-- ifup $nic
-+ ifconfig $nic up
- exitCode=`expr $exitCode \| $?`
- fi
- done < $activeList
-@@ -103,7 +103,7 @@
- TranquilizeNetworkManager() {
- # `which' may be a bit noisy, so we'll shush it.
- dbusSend=`which dbus-send 2>/dev/null`
-- if [ $? -eq 0 ]; then
-+ if [ $? -eq 0 ] && [ `pidof dbus-daemon` ]; then
- # NetworkManager 0.6
- $dbusSend --system --dest=org.freedesktop.NetworkManager \
- /org/freedesktop/NetworkManager \
-@@ -133,7 +133,7 @@
- WakeNetworkManager() {
- # `which' may be a bit noisy, so we'll shush it.
- dbusSend=`which dbus-send 2>/dev/null`
-- if [ $? -eq 0 ]; then
-+ if [ $? -eq 0 ] && [ `pidof dbus-daemon` ]; then
- # NetworkManager 0.6
- $dbusSend --system --dest=org.freedesktop.NetworkManager \
- /org/freedesktop/NetworkManager \
-@@ -165,8 +165,8 @@
-
- # XXX Are these really necessary? If so, we should have seen customer
- # complaints by now.
-- which ifup >/dev/null 2>&1 || Panic "ifup not in search path."
-- which ifconfig >/dev/null 2>&1 || Panic "ifconfig not in search path."
-+# which ifup >/dev/null 2>&1 || Panic "ifup not in search path."
-+ which ifconfig >/dev/null 2>&1 || Panic "ifconfig not in search path."
-
- case "$1" in
- poweron-vm)
diff --git a/community-staging/open-vm-tools/scripts-network.patch b/community-staging/open-vm-tools/scripts-network.patch
deleted file mode 100644
index 13ea7f565..000000000
--- a/community-staging/open-vm-tools/scripts-network.patch
+++ /dev/null
@@ -1,63 +0,0 @@
---- network.org 2010-04-28 10:21:14.000000000 +0000
-+++ network 2010-04-28 10:24:00.000000000 +0000
-@@ -34,51 +34,6 @@
-
-
- #
--# find_networking_script --
--#
--# Searches common Linux distro init/rc paths to find a singular network
--# services script.
--#
--# Result:
--# Returns a valid networking script path on success or "error" on failure.
--#
--# Side effects:
--# None.
--#
--
--find_networking_script() {
-- local script="error"
-- for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do
-- if [ -d "$dir/rc0.d" ] &&
-- [ -d "$dir/rc1.d" ] &&
-- [ -d "$dir/rc2.d" ] &&
-- [ -d "$dir/rc3.d" ] &&
-- [ -d "$dir/rc4.d" ] &&
-- [ -d "$dir/rc5.d" ] &&
-- [ -d "$dir/rc6.d" ]; then
--
-- # Now find the appropriate networking script.
-- if [ -d "$dir/init.d" ]; then
-- if [ -x "$dir/init.d/network" ]; then
-- script="$dir/init.d/network"
-- elif [ -x "$dir/init.d/networking" ]; then
-- script="$dir/init.d/networking"
-- fi
-- else
-- if [ -x "$dir/network" ]; then
-- script="$dir/network"
-- elif [ -x "$dir/networking" ]; then
-- script="$dir/networking"
-- fi
-- fi
-- fi
-- done
--
-- echo "$script"
--}
--
--
--#
- # save_active_NIC_list --
- #
- # Records a list of every active NIC to /var/run/vmware-active-nics.
-@@ -205,7 +160,7 @@
- exitCode=0
- activeList=/var/run/vmware-active-nics
-
-- networkScript=`find_networking_script`
-+ networkScript=/etc/rc.d/network
- [ "$networkScript" != "error" ] || Panic "Cannot find system networking script."
-
- # XXX Are these really necessary? If so, we should have seen customer
diff --git a/community-staging/open-vm-tools/tools.conf b/community-staging/open-vm-tools/tools.conf
deleted file mode 100644
index 0bb2681b1..000000000
--- a/community-staging/open-vm-tools/tools.conf
+++ /dev/null
@@ -1 +0,0 @@
-bindir = "/usr/bin"
diff --git a/community-staging/open-vm-tools/vmware-guestd b/community-staging/open-vm-tools/vmware-guestd
deleted file mode 100644
index ac80c0385..000000000
--- a/community-staging/open-vm-tools/vmware-guestd
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-
-auth sufficient /lib/security/pam_unix2.so shadow nullok
-auth required /lib/security/pam_unix_auth.so shadow nullok
-account sufficient /lib/security/pam_unix2.so
-account required /lib/security/pam_unix_acct.so
diff --git a/community-staging/open-vm-tools/xautostart.conf b/community-staging/open-vm-tools/xautostart.conf
deleted file mode 100644
index 829f379ce..000000000
--- a/community-staging/open-vm-tools/xautostart.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-gnome-panel
-ksmserver
-startkde
-kwrapper
-panel
-xfce4-panel
diff --git a/community-staging/openttd/PKGBUILD b/community-staging/openttd/PKGBUILD
deleted file mode 100644
index 5a2aedccc..000000000
--- a/community-staging/openttd/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 48655 2011-06-03 19:25:38Z stephane $
-# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
-
-pkgname=openttd
-pkgver=1.1.0
-pkgrel=2
-pkgdesc='An engine for running Transport Tycoon Deluxe.'
-arch=('i686' 'x86_64')
-url='http://www.openttd.org'
-license=('GPL')
-depends=('libpng' 'sdl' 'icu' 'fontconfig' 'lzo2' 'hicolor-icon-theme' 'desktop-file-utils')
-install=openttd.install
-optdepends=('openttd-opengfx: free graphics'
- 'openttd-opensfx: free soundset')
-source=("http://binaries.openttd.org/releases/${pkgver}/${pkgname}-${pkgver}-source.tar.xz")
-md5sums=('b5b1f2ecc7327505e360047236b09d06')
-
-build() {
- cd ${pkgname}-${pkgver}
-
- ./configure \
- --prefix-dir=/usr \
- --binary-name=${pkgname} \
- --binary-dir=bin \
- --data-dir=share/${pkgname} \
- --install-dir=${pkgdir} \
- --doc-dir=share/doc/${pkgname} \
- --menu-name="OpenTTD" \
- --personal-dir=.${pkgname}
-
- make
-}
-
-package() {
- cd ${pkgname}-${pkgver}
-
- make install
-}
diff --git a/community-staging/openttd/openttd.install b/community-staging/openttd/openttd.install
deleted file mode 100644
index 85b22a1c5..000000000
--- a/community-staging/openttd/openttd.install
+++ /dev/null
@@ -1,17 +0,0 @@
-post_install() {
- gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor > /dev/null 2>&1
- update-desktop-database > /dev/null 2>&1
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- update-desktop-database > /dev/null 2>&1
-}
-
-post_remove() {
- gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor > /dev/null 2>&1
- update-desktop-database > /dev/null 2>&1
-}
diff --git a/community-staging/parrot/ChangeLog b/community-staging/parrot/ChangeLog
deleted file mode 100644
index 725287638..000000000
--- a/community-staging/parrot/ChangeLog
+++ /dev/null
@@ -1,5 +0,0 @@
-
-2008-01-06 Douglas Soares de Andrade <dsa@aur.archlinux.org>
-
- * Added for x86_64
-
diff --git a/community-staging/parrot/PKGBUILD b/community-staging/parrot/PKGBUILD
deleted file mode 100644
index eb5f198b7..000000000
--- a/community-staging/parrot/PKGBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# $Id: PKGBUILD 48652 2011-06-03 17:21:22Z stephane $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributer: mpie <michael.kyne-phillips1@ntlworld.com>
-
-pkgname=parrot
-pkgver=3.3.0
-#_rel=devel
-_rel=stable
-pkgrel=2
-pkgdesc="standalone virtual machine that can be used to execute bytecode compiled dynamic languages"
-arch=(i686 x86_64)
-url="http://www.parrotcode.org/"
-license=('GPL')
-depends=('gmp' 'gdbm' 'readline' 'icu' 'openssl' 'libffi')
-makedepends=('perl-json')
-optdepends=('freeglut')
-options=(!emptydirs !makeflags)
-source=(ftp://ftp.parrot.org/pub/parrot/releases/${_rel}/$pkgver/parrot-$pkgver.tar.gz)
-md5sums=('335d50fbef245bfe6d0bb277e224c728')
-
-build() {
- cd $srcdir/$pkgname-$pkgver
-
- sed -i 's#auto::sha1##' lib/Parrot/Configure/Step/List.pm
- sed -i 's#auto::git_describe##' lib/Parrot/Configure/Step/List.pm
-
- [ $NOEXTRACT -eq 1 ] || perl Configure.pl --prefix=/usr --parrot_is_shared
-
- find -type f -name Makefile | while read F; do
- grep "$srcdir" $F && sed -i "s#-Wl,-rpath=$srcdir/parrot-$pkgver/blib/lib##" $F || true
- grep "$srcdir" $F && sed -i "s#-rpath=$srcdir/parrot-$pkgver/blib/lib##" $F || true
- done
-
- OLD_LIB_PATH=$LD_LIBRARY_PATH
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$srcdir/parrot-$pkgver/blib/lib
- make -j1 all parrot_utils docs html RPATH_BLIB=
-
- export LD_LIBRARY_PATH=`pwd`/blib/lib
- make -j1 DESTDIR=$pkgdir install-dev
-
- sed -i "s#$srcdir#/usr/src#" $pkgdir/usr/lib/parrot/$pkgver/tools/lib/Parrot/Config/Generated.pm
-
- export LD_LIBRARY_PATH=$OLD_LIB_PATH
-}
diff --git a/community-staging/sword/PKGBUILD b/community-staging/sword/PKGBUILD
deleted file mode 100644
index 0ad02180e..000000000
--- a/community-staging/sword/PKGBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
-# Contributor: TripleE <eric1548@yahoo.com>
-
-pkgname=sword
-pkgver=1.6.2
-pkgrel=3
-pkgdesc="SWORD libraries for Bible programs"
-arch=('i686' 'x86_64')
-url="http://www.crosswire.org/sword/index.jsp"
-license=('GPL')
-depends=('curl' 'icu' 'clucene')
-source=(http://www.crosswire.org/ftpmirror/pub/${pkgname}/source/v1.6/${pkgname}-${pkgver}.tar.gz)
-md5sums=('a7dc4456e20e915fec46d774b690e305')
-backup=('etc/sword.conf')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --sysconfdir=/etc --with-icu
- make
-}
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- make DESTDIR="${pkgdir}" install_config
-}
-
diff --git a/community-staging/tea/PKGBUILD b/community-staging/tea/PKGBUILD
deleted file mode 100644
index 4ab5fde5d..000000000
--- a/community-staging/tea/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id: PKGBUILD 48620 2011-06-03 13:51:59Z ibiru $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Roman Kyrylych <roman@archlinux.org>
-# Contributor: Michal Kaliszka <desmont@gmail.com>
-# Contributor: Zsolt Varadi <sysop_xxl@fibermail.hu>
-
-pkgname=tea
-pkgver=29.0.3
-pkgrel=2
-pkgdesc="A QT-based text editor for Linux and *BSD. With an ultimate small size TEA provides you hundreds of functions."
-arch=('i686' 'x86_64')
-url="http://tea-editor.sourceforge.net/"
-license=('GPL')
-depends=('qt' 'aspell' 'hunspell')
-install=tea.install
-source=(http://downloads.sourceforge.net/tea-editor/${pkgname}-${pkgver}.tar.bz2
- tea.desktop)
-md5sums=('1c900e7f57a0fe72fb4cc481450a5b32'
- '377ace3363124f4c086de0babb820761')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- qmake PREFIX=/usr/bin
- make
-}
-
-package(){
- cd "${srcdir}/${pkgname}-${pkgver}"
- make INSTALL_ROOT="${pkgdir}" install
-
- install -Dm644 "${srcdir}/tea.desktop" "${pkgdir}/usr/share/applications/tea.desktop"
- install -Dm644 icons/tea_icon_v2.png "${pkgdir}/usr/share/pixmaps/tea.png"
-}
diff --git a/community-staging/tea/tea.desktop b/community-staging/tea/tea.desktop
deleted file mode 100644
index 818704a26..000000000
--- a/community-staging/tea/tea.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Name=Tea
-Comment=A small programmer's QT editor
-Exec=tea %U
-Terminal=false
-Type=Application
-StartupNotify=true
-Icon=tea.png
-Categories=Application;Utility;TextEditor;
diff --git a/community-staging/tea/tea.install b/community-staging/tea/tea.install
deleted file mode 100644
index d7904254b..000000000
--- a/community-staging/tea/tea.install
+++ /dev/null
@@ -1,4 +0,0 @@
-post_upgrade() {
- echo "############################################"
- echo "for the old GTK branch of TEA install teagtk"
-}
diff --git a/community-staging/tracker/PKGBUILD b/community-staging/tracker/PKGBUILD
deleted file mode 100644
index f6ec9331b..000000000
--- a/community-staging/tracker/PKGBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id: PKGBUILD 48646 2011-06-03 17:05:43Z stephane $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer: Alexander Fehr <pizzapunk gmail com>
-
-pkgname=tracker
-pkgver=0.10.15
-pkgrel=2
-pkgdesc="Powerful object database, tag/metadata database, search tool and indexer"
-arch=('i686' 'x86_64')
-url="http://www.gnome.org/projects/tracker/"
-license=('GPL')
-depends=('upower' 'poppler-glib' 'gstreamer0.10-base' 'libgee' 'gnome-desktop' 'libnotify' 'xdg-utils' 'gtkhtml'
- 'libgsf' 'gnome-panel-bonobo' 'exempi' 'networkmanager')
-makedepends=('intltool' 'gnome-panel' 'nautilus' 'evolution' 'totem-plparser' 'icu')
-optdepends=('nautilus'
- 'enca'
- 'gtkhtml'
- 'gnome-panel'
- 'totem-plparser'
- 'icu'
- 'taglib'
- 'giflib')
-options=('!libtool')
-conflicts=('libtracker')
-provides=("libtracker")
-install=tracker.install
-source=(http://ftp.gnome.org/pub/GNOME/sources/tracker/0.10/tracker-$pkgver.tar.bz2)
-md5sums=('c948ef3988b08e81cad3ff980b17a0fd')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- # python2 fix
- export PYTHON=`which python2`
- for file in tests/functional-tests/*.py; do
- sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
- sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
- done
-
- ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/$pkgname \
- --enable-video-extractor=gstreamer --disable-unac --disable-hal \
- --disable-devkit-power --disable-miner-evolution
- touch docs/manpages/tracker-search-bar.1
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
-}
diff --git a/community-staging/tracker/tracker.install b/community-staging/tracker/tracker.install
deleted file mode 100644
index b95cc069d..000000000
--- a/community-staging/tracker/tracker.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
-}
diff --git a/community-staging/xulrunner-oss/PKGBUILD b/community-staging/xulrunner-oss/PKGBUILD
deleted file mode 100644
index 613d9f41b..000000000
--- a/community-staging/xulrunner-oss/PKGBUILD
+++ /dev/null
@@ -1,70 +0,0 @@
-# $Id: PKGBUILD 114705 2011-03-15 15:11:28Z ibiru $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: Alexander Baldeck <alexander@archlinux.org>
-pkgname=xulrunner-oss
-pkgver=2.0.1
-_ffoxver=4.0.1
-pkgrel=2
-pkgdesc="Mozilla Runtime Environment compiled with OSS support"
-arch=('i686' 'x86_64')
-license=('MPL' 'GPL' 'LGPL')
-depends=('gtk2' 'gcc-libs' 'libidl2' 'mozilla-common' 'nss' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'libevent' 'sqlite3>=3.7.4' 'libnotify')
-makedepends=('zip' 'pkg-config' 'diffutils' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13')
-url="http://wiki.mozilla.org/XUL:Xul_Runner"
-source=(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${_ffoxver}/source/firefox-${_ffoxver}.source.tar.bz2
- mozconfig
- mozilla-pkgconfig.patch
- xulrunner-version.patch
- xulrunner-omnijar.patch
- port_gnomevfs_to_gio.patch
- oss.patch)
-options=('!emptydirs')
-conflicts=('xulrunner')
-provides=("xulrunner=${pkgver}")
-md5sums=('9abda7d23151e97913c8555a64c13f34'
- '2358a2ddd35bcdd62ff42442dfe548d9'
- '639ea80e823543dd415b90c0ee804186'
- 'a0236f6c3e55f60b7888d8cf137ff209'
- '0bf82bc6677e3ce57fd20a147fe8d7b1'
- '42f83468b296452fb754a81a4317ca64'
- '81032ce49c2a5ac15d62155bcc42d3ed')
-
-build() {
- cd "${srcdir}/mozilla-2.0"
- cp "${srcdir}/mozconfig" .mozconfig
-
- #fix libdir/sdkdir - fedora
- patch -Np1 -i "${srcdir}/mozilla-pkgconfig.patch"
-
- #Force installation to the same path for every version
- patch -Np1 -i "${srcdir}/xulrunner-version.patch"
-
- patch -Np1 -i "${srcdir}/xulrunner-omnijar.patch"
-
- patch -Np1 -i "${srcdir}/port_gnomevfs_to_gio.patch"
-
- patch -Np0 -i "${srcdir}/oss.patch"
- sed -i 's/sydney_audio_alsa/sydney_audio_oss/' media/libsydneyaudio/src/Makefile.in
- sed -i '/EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)/d' layout/build/Makefile.in
- sed -i '/EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)/d' toolkit/library/libxul-config.mk
-
- unset CFLAGS
- unset CXXFLAGS
- export CXXFLAGS="-fpermissive"
-
- make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
-}
-
-package() {
- cd "${srcdir}/mozilla-2.0"
- make -j1 -f client.mk DESTDIR="${pkgdir}" install
-
- #Remove included dictionaries, add symlink to system myspell path.
- #Note: this will cause file conflicts when users have installed dictionaries in the old location
- rm -rf "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
- ln -sf /usr/share/myspell/dicts "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
-
- # add xulrunner library path to ld.so.conf
- install -d ${pkgdir}/etc/ld.so.conf.d
- echo "/usr/lib/xulrunner-2.0" > ${pkgdir}/etc/ld.so.conf.d/xulrunner.conf
-}
diff --git a/community-staging/xulrunner-oss/mozconfig b/community-staging/xulrunner-oss/mozconfig
deleted file mode 100644
index 03a352920..000000000
--- a/community-staging/xulrunner-oss/mozconfig
+++ /dev/null
@@ -1,56 +0,0 @@
-. $topsrcdir/xulrunner/config/mozconfig
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-png
-ac_add_options --with-system-libevent
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-cairo
-ac_add_options --with-pthreads
-
-ac_add_options --enable-default-toolkit=cairo-gtk2
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-extensions=default
-ac_add_options --enable-startup-notification
-ac_add_options --enable-pango
-ac_add_options --enable-svg
-ac_add_options --enable-canvas
-ac_add_options --enable-smil
-ac_add_options --enable-canvas3d
-ac_add_options --enable-places
-ac_add_options --enable-shared-js
-ac_add_options --enable-url-classifier
-
-ac_add_options --enable-optimize
-ac_add_options --enable-strip
-ac_add_options --enable-install-strip
-ac_add_options --enable-jemalloc
-ac_add_options --enable-xterm-updates
-ac_add_options --enable-printing
-ac_add_options --enable-xinerama
-
-ac_add_options --disable-javaxpcom
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-xprint
-ac_add_options --disable-mochitest
-ac_add_options --disable-debug
-ac_add_options --disable-installer
-ac_add_options --disable-pedantic
-
-ac_add_options --enable-gio
-ac_add_options --disable-gnomevfs
-ac_add_options --enable-gconf
-ac_add_options --enable-libnotify
-
-export BUILD_OFFICIAL=1
-export MOZILLA_OFFICIAL=1
-mk_add_options BUILD_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
diff --git a/community-staging/xulrunner-oss/mozilla-pkgconfig.patch b/community-staging/xulrunner-oss/mozilla-pkgconfig.patch
deleted file mode 100644
index 2203efcde..000000000
--- a/community-staging/xulrunner-oss/mozilla-pkgconfig.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in
---- mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in 2011-03-13 03:25:12.350027359 -0700
-@@ -6,5 +6,6 @@
- Name: libxul-embedding
- Description: Static library for version-independent embedding of the Mozilla runtime
- Version: %MOZILLA_VERSION%
-+Requires: %NSPR_NAME% >= %NSPR_VERSION%
- Libs: -L${sdkdir}/lib -lxpcomglue -ldl
- Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
-diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul.pc.in mozilla-2.0/xulrunner/installer/libxul.pc.in
---- mozilla-2.0.orig/xulrunner/installer/libxul.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/libxul.pc.in 2011-03-13 03:25:28.010027359 -0700
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
- idldir=%idldir%
-
-diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
---- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 03:25:55.570027359 -0700
-@@ -121,6 +121,7 @@
- -e "s|%includedir%|$(includedir)|" \
- -e "s|%idldir%|$(idldir)|" \
- -e "s|%sdkdir%|$(sdkdir)|" \
-+ -e "s|%libdir%|$(installdir)|" \
- -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
- -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
- -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
-diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in
---- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-13 03:26:18.676694023 -0700
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
-
- Name: mozilla-gtkembedmoz
-diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in
---- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-13 03:26:41.566694025 -0700
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
-
- Name: mozilla-gtkembedmoz
-diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in mozilla-2.0/xulrunner/installer/mozilla-js.pc.in
---- mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/mozilla-js.pc.in 2011-03-13 03:27:19.680027357 -0700
-@@ -7,4 +7,4 @@
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
- Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
--Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
-+Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE
diff --git a/community-staging/xulrunner-oss/oss.patch b/community-staging/xulrunner-oss/oss.patch
deleted file mode 100644
index ca79879fd..000000000
--- a/community-staging/xulrunner-oss/oss.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- configure.in 2011-03-16 04:58:10.640027357 -0700
-+++ configure.in.orig 2011-03-16 04:58:39.313360691 -0700
-@@ -6266,20 +6266,6 @@
- AC_DEFINE(MOZ_TREMOR)
- fi
-
--dnl ========================================================
--dnl = Check alsa availability on Linux if using sydneyaudio
--dnl ========================================================
--
--dnl If using sydneyaudio with Linux, ensure that the alsa library is available
--if test -n "$MOZ_SYDNEYAUDIO"; then
-- case "$target_os" in
--linux*)
-- PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
-- [echo "$MOZ_ALSA_PKG_ERRORS"
-- AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])])
-- ;;
-- esac
--fi
-
- dnl ========================================================
- dnl Splashscreen
-@@ -9294,7 +9280,6 @@
- AC_SUBST(MOZ_TREMOR)
- AC_SUBST(MOZ_WEBM)
- AC_SUBST(MOZ_OGG)
--AC_SUBST(MOZ_ALSA_LIBS)
- AC_SUBST(VPX_AS)
- AC_SUBST(VPX_ASFLAGS)
- AC_SUBST(VPX_DASH_C_FLAG)
diff --git a/community-staging/xulrunner-oss/port_gnomevfs_to_gio.patch b/community-staging/xulrunner-oss/port_gnomevfs_to_gio.patch
deleted file mode 100644
index 797baff42..000000000
--- a/community-staging/xulrunner-oss/port_gnomevfs_to_gio.patch
+++ /dev/null
@@ -1,1316 +0,0 @@
-diff -r 49a1b2aa43c5 extensions/gio/Makefile.in
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/Makefile.in Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,69 @@
-+# vim:set ts=8 sw=8 sts=8 noet:
-+# ***** BEGIN LICENSE BLOCK *****
-+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+#
-+# The contents of this file are subject to the Mozilla Public License Version
-+# 1.1 (the "License"); you may not use this file except in compliance with
-+# the License. You may obtain a copy of the License at
-+# http://www.mozilla.org/MPL/
-+#
-+# Software distributed under the License is distributed on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+# for the specific language governing rights and limitations under the
-+# License.
-+#
-+# The Original Code is the Mozilla gnome-vfs extension.
-+#
-+# The Initial Developer of the Original Code is IBM Corporation.
-+#
-+# Portions created by IBM Corporation are Copyright (C) 2004
-+# IBM Corporation. All Rights Reserved.
-+#
-+# Contributor(s):
-+# Darin Fisher <darin@meer.net>
-+# Jan Horak <jhorak@redhat.com>
-+#
-+# Alternatively, the contents of this file may be used under the terms of
-+# either the GNU General Public License Version 2 or later (the "GPL"), or
-+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+# in which case the provisions of the GPL or the LGPL are applicable instead
-+# of those above. If you wish to allow use of your version of this file only
-+# under the terms of either the GPL or the LGPL, and not to allow others to
-+# use your version of this file under the terms of the MPL, indicate your
-+# decision by deleting the provisions above and replace them with the notice
-+# and other provisions required by the GPL or the LGPL. If you do not delete
-+# the provisions above, a recipient may use your version of this file under
-+# the terms of any one of the MPL, the GPL or the LGPL.
-+#
-+# ***** END LICENSE BLOCK *****
-+
-+DEPTH = ../..
-+topsrcdir = @top_srcdir@
-+srcdir = @srcdir@
-+VPATH = @srcdir@
-+
-+include $(DEPTH)/config/autoconf.mk
-+
-+MODULE = nkgio
-+LIBRARY_NAME = nkgio
-+SHORT_LIBNAME = nkgio
-+IS_COMPONENT = 1
-+
-+CPPSRCS = \
-+ nsGIOProtocolHandler.cpp \
-+ $(NULL)
-+
-+LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS)
-+
-+EXTRA_DSO_LDOPTS = \
-+ $(XPCOM_GLUE_LDOPTS) \
-+ $(NSPR_LIBS) \
-+ $(MOZ_GIO_LIBS) \
-+ $(NULL)
-+
-+# make sure this component is never statically linked into the main
-+# application. this is necessary since we don't want to force users
-+# to install gio in order to use the rest of mozilla ;-)
-+FORCE_SHARED_LIB= 1
-+
-+include $(topsrcdir)/config/rules.mk
-diff -r 49a1b2aa43c5 extensions/gio/makefiles.sh
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/makefiles.sh Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,41 @@
-+#! /bin/sh
-+# ***** BEGIN LICENSE BLOCK *****
-+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+#
-+# The contents of this file are subject to the Mozilla Public License Version
-+# 1.1 (the "License"); you may not use this file except in compliance with
-+# the License. You may obtain a copy of the License at
-+# http://www.mozilla.org/MPL/
-+#
-+# Software distributed under the License is distributed on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+# for the specific language governing rights and limitations under the
-+# License.
-+#
-+# The Original Code is Mozilla Build System
-+#
-+# The Initial Developer of the Original Code is
-+# Ben Turner <mozilla@songbirdnest.com>
-+#
-+# Portions created by the Initial Developer are Copyright (C) 2007
-+# the Initial Developer. All Rights Reserved.
-+#
-+# Contributor(s):
-+#
-+# Alternatively, the contents of this file may be used under the terms of
-+# either the GNU General Public License Version 2 or later (the "GPL"), or
-+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+# in which case the provisions of the GPL or the LGPL are applicable instead
-+# of those above. If you wish to allow use of your version of this file only
-+# under the terms of either the GPL or the LGPL, and not to allow others to
-+# use your version of this file under the terms of the MPL, indicate your
-+# decision by deleting the provisions above and replace them with the notice
-+# and other provisions required by the GPL or the LGPL. If you do not delete
-+# the provisions above, a recipient may use your version of this file under
-+# the terms of any one of the MPL, the GPL or the LGPL.
-+#
-+# ***** END LICENSE BLOCK *****
-+
-+add_makefiles "
-+ extensions/gio/Makefile
-+"
-diff -r 49a1b2aa43c5 extensions/gio/nsGIOProtocolHandler.cpp
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/nsGIOProtocolHandler.cpp Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,1163 @@
-+/* vim:set ts=2 sw=2 et cindent: */
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is the Mozilla gnome-vfs extension.
-+ *
-+ * The Initial Developer of the Original Code is IBM Corporation.
-+ *
-+ * Portions created by IBM Corporation are Copyright (C) 2004
-+ * IBM Corporation. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Darin Fisher <darin@meer.net>
-+ * Jan Horak <jhorak@redhat.com>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either the GNU General Public License Version 2 or later (the "GPL"), or
-+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+/*
-+ * This code is based on original Mozilla gnome-vfs extension. It implements
-+ * input stream provided by GVFS/GIO.
-+*/
-+#include "mozilla/ModuleUtils.h"
-+#include "nsIPrefService.h"
-+#include "nsIPrefBranch2.h"
-+#include "nsIObserver.h"
-+#include "nsThreadUtils.h"
-+#include "nsProxyRelease.h"
-+#include "nsIStringBundle.h"
-+#include "nsIStandardURL.h"
-+#include "nsMimeTypes.h"
-+#include "nsNetUtil.h"
-+#include "mozilla/Monitor.h"
-+#include <gio/gio.h>
-+
-+#define MOZ_GIO_SCHEME "moz-gio"
-+#define MOZ_GIO_SUPPORTED_PROTOCOLS "network.gio.supported-protocols"
-+
-+//-----------------------------------------------------------------------------
-+
-+// NSPR_LOG_MODULES=gio:5
-+#ifdef PR_LOGGING
-+static PRLogModuleInfo *sGIOLog;
-+#define LOG(args) PR_LOG(sGIOLog, PR_LOG_DEBUG, args)
-+#else
-+#define LOG(args)
-+#endif
-+
-+
-+//-----------------------------------------------------------------------------
-+static nsresult
-+MapGIOResult(gint code)
-+{
-+ switch (code)
-+ {
-+ case G_IO_ERROR_NOT_FOUND: return NS_ERROR_FILE_NOT_FOUND; // shows error
-+ case G_IO_ERROR_INVALID_ARGUMENT: return NS_ERROR_INVALID_ARG;
-+ case G_IO_ERROR_NOT_SUPPORTED: return NS_ERROR_NOT_AVAILABLE;
-+ case G_IO_ERROR_NO_SPACE: return NS_ERROR_FILE_NO_DEVICE_SPACE;
-+ case G_IO_ERROR_READ_ONLY: return NS_ERROR_FILE_READ_ONLY;
-+ case G_IO_ERROR_PERMISSION_DENIED: return NS_ERROR_FILE_ACCESS_DENIED; // wrong password/login
-+ case G_IO_ERROR_CLOSED: return NS_BASE_STREAM_CLOSED; // was EOF
-+ case G_IO_ERROR_NOT_DIRECTORY: return NS_ERROR_FILE_NOT_DIRECTORY;
-+ case G_IO_ERROR_PENDING: return NS_ERROR_IN_PROGRESS;
-+ case G_IO_ERROR_EXISTS: return NS_ERROR_FILE_ALREADY_EXISTS;
-+ case G_IO_ERROR_IS_DIRECTORY: return NS_ERROR_FILE_IS_DIRECTORY;
-+ case G_IO_ERROR_NOT_MOUNTED: return NS_ERROR_NOT_CONNECTED; // shows error
-+ case G_IO_ERROR_HOST_NOT_FOUND: return NS_ERROR_UNKNOWN_HOST; // shows error
-+ case G_IO_ERROR_CANCELLED: return NS_ERROR_ABORT;
-+ case G_IO_ERROR_NOT_EMPTY: return NS_ERROR_FILE_DIR_NOT_EMPTY;
-+ case G_IO_ERROR_FILENAME_TOO_LONG: return NS_ERROR_FILE_NAME_TOO_LONG;
-+ case G_IO_ERROR_INVALID_FILENAME: return NS_ERROR_FILE_INVALID_PATH;
-+ case G_IO_ERROR_TIMED_OUT: return NS_ERROR_NET_TIMEOUT; // shows error
-+ case G_IO_ERROR_WOULD_BLOCK: return NS_BASE_STREAM_WOULD_BLOCK;
-+ case G_IO_ERROR_FAILED_HANDLED: return NS_ERROR_ABORT; // Cancel on login dialog
-+
-+/* unhandled:
-+ G_IO_ERROR_NOT_REGULAR_FILE,
-+ G_IO_ERROR_NOT_SYMBOLIC_LINK,
-+ G_IO_ERROR_NOT_MOUNTABLE_FILE,
-+ G_IO_ERROR_TOO_MANY_LINKS,
-+ G_IO_ERROR_ALREADY_MOUNTED,
-+ G_IO_ERROR_CANT_CREATE_BACKUP,
-+ G_IO_ERROR_WRONG_ETAG,
-+ G_IO_ERROR_WOULD_RECURSE,
-+ G_IO_ERROR_BUSY,
-+ G_IO_ERROR_WOULD_MERGE,
-+ G_IO_ERROR_TOO_MANY_OPEN_FILES
-+*/
-+ // Make GCC happy
-+ default:
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ return NS_ERROR_FAILURE;
-+}
-+
-+static nsresult
-+MapGIOResult(GError *result)
-+{
-+ if (!result)
-+ return NS_OK;
-+ else
-+ return MapGIOResult(result->code);
-+}
-+/** Return values for mount operation.
-+ * These enums are used as mount operation return values.
-+ */
-+typedef enum {
-+ MOUNT_OPERATION_IN_PROGRESS, /** \enum operation in progress */
-+ MOUNT_OPERATION_SUCCESS, /** \enum operation successful */
-+ MOUNT_OPERATION_FAILED /** \enum operation not successful */
-+} MountOperationResult;
-+//-----------------------------------------------------------------------------
-+/**
-+ * Sort function compares according to file type (directory/file)
-+ * and alphabethical order
-+ * @param a pointer to GFileInfo object to compare
-+ * @param b pointer to GFileInfo object to compare
-+ * @return -1 when first object should be before the second, 0 when equal,
-+ * +1 when second object should be before the first
-+ */
-+static gint
-+FileInfoComparator(gconstpointer a, gconstpointer b)
-+{
-+ GFileInfo *ia = ( GFileInfo *) a;
-+ GFileInfo *ib = ( GFileInfo *) b;
-+ if (g_file_info_get_file_type(ia) == G_FILE_TYPE_DIRECTORY
-+ && g_file_info_get_file_type(ib) != G_FILE_TYPE_DIRECTORY)
-+ return -1;
-+ if (g_file_info_get_file_type(ib) == G_FILE_TYPE_DIRECTORY
-+ && g_file_info_get_file_type(ia) != G_FILE_TYPE_DIRECTORY)
-+ return 1;
-+
-+ return strcasecmp(g_file_info_get_name(ia), g_file_info_get_name(ib));
-+}
-+
-+/* Declaration of mount callback functions */
-+static void mount_enclosing_volume_finished (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data);
-+static void mount_operation_ask_password (GMountOperation *mount_op,
-+ const char *message,
-+ const char *default_user,
-+ const char *default_domain,
-+ GAskPasswordFlags flags,
-+ gpointer user_data);
-+//-----------------------------------------------------------------------------
-+
-+class nsGIOInputStream : public nsIInputStream
-+{
-+ public:
-+ NS_DECL_ISUPPORTS
-+ NS_DECL_NSIINPUTSTREAM
-+
-+ nsGIOInputStream(const nsCString &uriSpec)
-+ : mSpec(uriSpec)
-+ , mChannel(nsnull)
-+ , mHandle(nsnull)
-+ , mStream(nsnull)
-+ , mBytesRemaining(PR_UINT32_MAX)
-+ , mStatus(NS_OK)
-+ , mDirList(nsnull)
-+ , mDirListPtr(nsnull)
-+ , mDirBufCursor(0)
-+ , mDirOpen(PR_FALSE)
-+ , mMonitorMountInProgress("GIOInputStream::MountFinished") { }
-+
-+ ~nsGIOInputStream() { Close(); }
-+
-+ void SetChannel(nsIChannel *channel)
-+ {
-+ // We need to hold an owning reference to our channel. This is done
-+ // so we can access the channel's notification callbacks to acquire
-+ // a reference to a nsIAuthPrompt if we need to handle an interactive
-+ // mount operation.
-+ //
-+ // However, the channel can only be accessed on the main thread, so
-+ // we have to be very careful with ownership. Moreover, it doesn't
-+ // support threadsafe addref/release, so proxying is the answer.
-+ //
-+ // Also, it's important to note that this likely creates a reference
-+ // cycle since the channel likely owns this stream. This reference
-+ // cycle is broken in our Close method.
-+
-+ NS_ADDREF(mChannel = channel);
-+ }
-+ void SetMountResult(MountOperationResult result, gint error_code);
-+ private:
-+ nsresult DoOpen();
-+ nsresult DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead);
-+ nsresult SetContentTypeOfChannel(const char *contentType);
-+ nsresult MountVolume();
-+ nsresult DoOpenDirectory();
-+ nsresult DoOpenFile(GFileInfo *info);
-+ nsCString mSpec;
-+ nsIChannel *mChannel; // manually refcounted
-+ GFile *mHandle;
-+ GFileInputStream *mStream;
-+ PRUint64 mBytesRemaining;
-+ nsresult mStatus;
-+ GList *mDirList;
-+ GList *mDirListPtr;
-+ nsCString mDirBuf;
-+ PRUint32 mDirBufCursor;
-+ PRPackedBool mDirOpen;
-+ MountOperationResult mMountRes;
-+ mozilla::Monitor mMonitorMountInProgress;
-+ gint mMountErrorCode;
-+};
-+/**
-+ * Set result of mount operation and notify monitor waiting for results.
-+ * This method is called in main thread as long as it is used only
-+ * in mount_enclosing_volume_finished function.
-+ * @param result Result of mount operation
-+ */
-+void
-+nsGIOInputStream::SetMountResult(MountOperationResult result, gint error_code)
-+{
-+ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
-+ mMountRes = result;
-+ mMountErrorCode = error_code;
-+ mon.Notify();
-+}
-+
-+/**
-+ * Start mount operation and wait in loop until it is finished. This method is
-+ * called from thread which is trying to read from location.
-+ */
-+nsresult
-+nsGIOInputStream::MountVolume() {
-+ GMountOperation* mount_op = g_mount_operation_new();
-+ g_signal_connect (mount_op, "ask-password",
-+ G_CALLBACK (mount_operation_ask_password), mChannel);
-+ mMountRes = MOUNT_OPERATION_IN_PROGRESS;
-+ /* g_file_mount_enclosing_volume uses a dbus request to mount the volume.
-+ Callback mount_enclosing_volume_finished is called in main thread
-+ (not this thread on which this method is called). */
-+ g_file_mount_enclosing_volume(mHandle,
-+ G_MOUNT_MOUNT_NONE,
-+ mount_op,
-+ NULL,
-+ mount_enclosing_volume_finished,
-+ this);
-+ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
-+ /* Waiting for finish of mount operation thread */
-+ while (mMountRes == MOUNT_OPERATION_IN_PROGRESS)
-+ mon.Wait();
-+
-+ g_object_unref(mount_op);
-+
-+ if (mMountRes == MOUNT_OPERATION_FAILED) {
-+ return MapGIOResult(mMountErrorCode);
-+ } else {
-+ return NS_OK;
-+ }
-+}
-+
-+/**
-+ * Create list of infos about objects in opened directory
-+ * Return: NS_OK when list obtained, otherwise error code according
-+ * to failed operation.
-+ */
-+nsresult
-+nsGIOInputStream::DoOpenDirectory()
-+{
-+ GError *error = NULL;
-+
-+ GFileEnumerator *f_enum = g_file_enumerate_children(mHandle,
-+ "standard::*,time::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+ if (!f_enum) {
-+ nsresult rv = MapGIOResult(error);
-+ g_warning("Cannot read from directory: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ // fill list of file infos
-+ GFileInfo *info = g_file_enumerator_next_file(f_enum, NULL, &error);
-+ while (info) {
-+ mDirList = g_list_append(mDirList, info);
-+ info = g_file_enumerator_next_file(f_enum, NULL, &error);
-+ }
-+ g_object_unref(f_enum);
-+ if (error) {
-+ g_warning("Error reading directory content: %s", error->message);
-+ nsresult rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ mDirOpen = PR_TRUE;
-+
-+ // Sort list of file infos by using FileInfoComparator function
-+ mDirList = g_list_sort(mDirList, FileInfoComparator);
-+ mDirListPtr = mDirList;
-+
-+ // Write base URL (make sure it ends with a '/')
-+ mDirBuf.Append("300: ");
-+ mDirBuf.Append(mSpec);
-+ if (mSpec.get()[mSpec.Length() - 1] != '/')
-+ mDirBuf.Append('/');
-+ mDirBuf.Append('\n');
-+
-+ // Write column names
-+ mDirBuf.Append("200: filename content-length last-modified file-type\n");
-+
-+ // Write charset (assume UTF-8)
-+ // XXX is this correct?
-+ mDirBuf.Append("301: UTF-8\n");
-+ SetContentTypeOfChannel(APPLICATION_HTTP_INDEX_FORMAT);
-+ return NS_OK;
-+}
-+
-+/**
-+ * Create file stream and set mime type for channel
-+ * @param info file info used to determine mime type
-+ * @return NS_OK when file stream created successfuly, error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoOpenFile(GFileInfo *info)
-+{
-+ GError *error = NULL;
-+
-+ mStream = g_file_read(mHandle, NULL, &error);
-+ if (!mStream) {
-+ nsresult rv = MapGIOResult(error);
-+ g_warning("Cannot read from file: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+
-+ const char * content_type = g_file_info_get_content_type(info);
-+ if (content_type) {
-+ char *mime_type = g_content_type_get_mime_type(content_type);
-+ if (mime_type) {
-+ if (strcmp(mime_type, APPLICATION_OCTET_STREAM) != 0) {
-+ SetContentTypeOfChannel(mime_type);
-+ }
-+ g_free(mime_type);
-+ }
-+ } else {
-+ g_warning("Missing content type.");
-+ }
-+
-+ mBytesRemaining = g_file_info_get_size(info);
-+ // Update the content length attribute on the channel. We do this
-+ // synchronously without proxying. This hack is not as bad as it looks!
-+ mChannel->SetContentLength(mBytesRemaining);
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Start file open operation, mount volume when needed and according to file type
-+ * create file output stream or read directory content.
-+ * @return NS_OK when file or directory opened successfully, error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoOpen()
-+{
-+ nsresult rv;
-+ GError *error = NULL;
-+
-+ NS_ASSERTION(mHandle == nsnull, "already open");
-+
-+ mHandle = g_file_new_for_uri( mSpec.get() );
-+
-+ GFileInfo *info = g_file_query_info(mHandle,
-+ "standard::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+
-+ if (error) {
-+ if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_NOT_MOUNTED) {
-+ // location is not yet mounted, try to mount
-+ g_error_free(error);
-+ if (NS_IsMainThread())
-+ return NS_ERROR_NOT_CONNECTED;
-+ error = NULL;
-+ rv = MountVolume();
-+ if (rv != NS_OK) {
-+ return rv;
-+ }
-+ // get info again
-+ info = g_file_query_info(mHandle,
-+ "standard::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+ // second try to get file info from remote files after media mount
-+ if (!info) {
-+ g_warning("Unable to get file info: %s", error->message);
-+ rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ } else {
-+ g_warning("Unable to get file info: %s", error->message);
-+ rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ }
-+ // Get file type to handle directories and file differently
-+ GFileType f_type = g_file_info_get_file_type(info);
-+ if (f_type == G_FILE_TYPE_DIRECTORY) {
-+ // directory
-+ rv = DoOpenDirectory();
-+ } else if (f_type != G_FILE_TYPE_UNKNOWN) {
-+ // file
-+ rv = DoOpenFile(info);
-+ } else {
-+ g_warning("Unable to get file type.");
-+ rv = NS_ERROR_FILE_NOT_FOUND;
-+ }
-+ if (info)
-+ g_object_unref(info);
-+ return rv;
-+}
-+
-+/**
-+ * Read content of file or create file list from directory
-+ * @param aBuf read destination buffer
-+ * @param aCount length of destination buffer
-+ * @param aCountRead number of read characters
-+ * @return NS_OK when read successfully, NS_BASE_STREAM_CLOSED when end of file,
-+ * error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead)
-+{
-+ nsresult rv = NS_ERROR_NOT_AVAILABLE;
-+ if (mStream) {
-+ // file read
-+ GError *error = NULL;
-+ PRUint32 bytes_read = g_input_stream_read(G_INPUT_STREAM(mStream),
-+ aBuf,
-+ aCount,
-+ NULL,
-+ &error);
-+ if (error) {
-+ rv = MapGIOResult(error);
-+ *aCountRead = 0;
-+ g_warning("Cannot read from file: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ *aCountRead = bytes_read;
-+ mBytesRemaining -= *aCountRead;
-+ return NS_OK;
-+ }
-+ else if (mDirOpen) {
-+ // directory read
-+ while (aCount && rv != NS_BASE_STREAM_CLOSED)
-+ {
-+ // Copy data out of our buffer
-+ PRUint32 bufLen = mDirBuf.Length() - mDirBufCursor;
-+ if (bufLen)
-+ {
-+ PRUint32 n = PR_MIN(bufLen, aCount);
-+ memcpy(aBuf, mDirBuf.get() + mDirBufCursor, n);
-+ *aCountRead += n;
-+ aBuf += n;
-+ aCount -= n;
-+ mDirBufCursor += n;
-+ }
-+
-+ if (!mDirListPtr) // Are we at the end of the directory list?
-+ {
-+ rv = NS_BASE_STREAM_CLOSED;
-+ }
-+ else if (aCount) // Do we need more data?
-+ {
-+ GFileInfo *info = (GFileInfo *) mDirListPtr->data;
-+
-+ // Prune '.' and '..' from directory listing.
-+ const char * fname = g_file_info_get_name(info);
-+ if (fname && fname[0] == '.' &&
-+ (fname[1] == '\0' || (fname[1] == '.' && fname[2] == '\0')))
-+ {
-+ mDirListPtr = mDirListPtr->next;
-+ continue;
-+ }
-+
-+ mDirBuf.Assign("201: ");
-+
-+ // The "filename" field
-+ nsCString escName;
-+ nsCOMPtr<nsINetUtil> nu = do_GetService(NS_NETUTIL_CONTRACTID);
-+ if (nu && fname) {
-+ nu->EscapeString(nsDependentCString(fname),
-+ nsINetUtil::ESCAPE_URL_PATH, escName);
-+
-+ mDirBuf.Append(escName);
-+ mDirBuf.Append(' ');
-+ }
-+
-+ // The "content-length" field
-+ // XXX truncates size from 64-bit to 32-bit
-+ mDirBuf.AppendInt(PRInt32(g_file_info_get_size(info)));
-+ mDirBuf.Append(' ');
-+
-+ // The "last-modified" field
-+ //
-+ // NSPR promises: PRTime is compatible with time_t
-+ // we just need to convert from seconds to microseconds
-+ GTimeVal gtime;
-+ g_file_info_get_modification_time(info, &gtime);
-+
-+ PRExplodedTime tm;
-+ PRTime pt = ((PRTime) gtime.tv_sec) * 1000000;
-+ PR_ExplodeTime(pt, PR_GMTParameters, &tm);
-+ {
-+ char buf[64];
-+ PR_FormatTimeUSEnglish(buf, sizeof(buf),
-+ "%a,%%20%d%%20%b%%20%Y%%20%H:%M:%S%%20GMT ", &tm);
-+ mDirBuf.Append(buf);
-+ }
-+
-+ // The "file-type" field
-+ switch (g_file_info_get_file_type(info))
-+ {
-+ case G_FILE_TYPE_REGULAR:
-+ mDirBuf.Append("FILE ");
-+ break;
-+ case G_FILE_TYPE_DIRECTORY:
-+ mDirBuf.Append("DIRECTORY ");
-+ break;
-+ case G_FILE_TYPE_SYMBOLIC_LINK:
-+ mDirBuf.Append("SYMBOLIC-LINK ");
-+ break;
-+ default:
-+ break;
-+ }
-+ mDirBuf.Append('\n');
-+
-+ mDirBufCursor = 0;
-+ mDirListPtr = mDirListPtr->next;
-+ }
-+ }
-+ }
-+ return rv;
-+}
-+
-+/**
-+ * This class is used to implement SetContentTypeOfChannel.
-+ */
-+class nsGIOSetContentTypeEvent : public nsRunnable
-+{
-+ public:
-+ nsGIOSetContentTypeEvent(nsIChannel *channel, const char *contentType)
-+ : mChannel(channel), mContentType(contentType)
-+ {
-+ // stash channel reference in mChannel. no AddRef here! see note
-+ // in SetContentTypeOfchannel.
-+ }
-+
-+ NS_IMETHOD Run()
-+ {
-+ mChannel->SetContentType(mContentType);
-+ return NS_OK;
-+ }
-+
-+ private:
-+ nsIChannel *mChannel;
-+ nsCString mContentType;
-+};
-+
-+nsresult
-+nsGIOInputStream::SetContentTypeOfChannel(const char *contentType)
-+{
-+ // We need to proxy this call over to the main thread. We post an
-+ // asynchronous event in this case so that we don't delay reading data, and
-+ // we know that this is safe to do since the channel's reference will be
-+ // released asynchronously as well. We trust the ordering of the main
-+ // thread's event queue to protect us against memory corruption.
-+
-+ nsresult rv;
-+ nsCOMPtr<nsIRunnable> ev =
-+ new nsGIOSetContentTypeEvent(mChannel, contentType);
-+ if (!ev)
-+ {
-+ rv = NS_ERROR_OUT_OF_MEMORY;
-+ }
-+ else
-+ {
-+ rv = NS_DispatchToMainThread(ev);
-+ }
-+ return rv;
-+}
-+
-+NS_IMPL_THREADSAFE_ISUPPORTS1(nsGIOInputStream, nsIInputStream)
-+
-+/**
-+ * Free all used memory and close stream.
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Close()
-+{
-+ if (mStream)
-+ {
-+ g_object_unref(mStream);
-+ mStream = nsnull;
-+ }
-+
-+ if (mHandle)
-+ {
-+ g_object_unref(mHandle);
-+ mHandle = nsnull;
-+ }
-+
-+ if (mDirList)
-+ {
-+ // Destroy the list of GIOFileInfo objects...
-+ g_list_foreach(mDirList, (GFunc) g_object_unref, nsnull);
-+ g_list_free(mDirList);
-+ mDirList = nsnull;
-+ mDirListPtr = nsnull;
-+ }
-+
-+ if (mChannel)
-+ {
-+ nsresult rv = NS_OK;
-+
-+ nsCOMPtr<nsIThread> thread = do_GetMainThread();
-+ if (thread)
-+ rv = NS_ProxyRelease(thread, mChannel);
-+
-+ NS_ASSERTION(thread && NS_SUCCEEDED(rv), "leaking channel reference");
-+ mChannel = nsnull;
-+ }
-+
-+ mSpec.Truncate(); // free memory
-+
-+ // Prevent future reads from re-opening the handle.
-+ if (NS_SUCCEEDED(mStatus))
-+ mStatus = NS_BASE_STREAM_CLOSED;
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Return number of remaining bytes available on input
-+ * @param aResult remaining bytes
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Available(PRUint32 *aResult)
-+{
-+ if (NS_FAILED(mStatus))
-+ return mStatus;
-+
-+ /* When remaining bytes are bigger than max PRUint32 value an aResult must
-+ be set to PRUint32 maximum */
-+ if (mBytesRemaining > PR_UINT32_MAX)
-+ *aResult = PR_UINT32_MAX;
-+ else
-+ *aResult = mBytesRemaining;
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Trying to read from stream. When location is not available it tries to mount it.
-+ * @param aBuf buffer to put read data
-+ * @param aCount length of aBuf
-+ * @param aCountRead number of bytes actually read
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Read(char *aBuf,
-+ PRUint32 aCount,
-+ PRUint32 *aCountRead)
-+{
-+ *aCountRead = 0;
-+ // Check if file is already opened, otherwise open it
-+ if (!mStream && !mDirOpen && mStatus == NS_OK) {
-+ mStatus = DoOpen();
-+ if (NS_FAILED(mStatus)) {
-+ return mStatus;
-+ }
-+ }
-+
-+ mStatus = DoRead(aBuf, aCount, aCountRead);
-+ // Check if all data has been read
-+ if (mStatus == NS_BASE_STREAM_CLOSED)
-+ return NS_OK;
-+
-+ // Check whenever any error appears while reading
-+ return mStatus;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOInputStream::ReadSegments(nsWriteSegmentFun aWriter,
-+ void *aClosure,
-+ PRUint32 aCount,
-+ PRUint32 *aResult)
-+{
-+ // There is no way to implement this using GnomeVFS, but fortunately
-+ // that doesn't matter. Because we are a blocking input stream, Necko
-+ // isn't going to call our ReadSegments method.
-+ NS_NOTREACHED("nsGIOInputStream::ReadSegments");
-+ return NS_ERROR_NOT_IMPLEMENTED;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOInputStream::IsNonBlocking(PRBool *aResult)
-+{
-+ *aResult = PR_FALSE;
-+ return NS_OK;
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+/**
-+ * Called when finishing mount operation. Result of operation is set in
-+ * nsGIOInputStream. This function is called in main thread as an async request
-+ * typically from dbus.
-+ * @param source_object GFile object which requested the mount
-+ * @param res result object
-+ * @param user_data pointer to nsGIOInputStream
-+ */
-+static void
-+mount_enclosing_volume_finished (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data)
-+{
-+ GError *error = NULL;
-+
-+ nsGIOInputStream* istream = static_cast<nsGIOInputStream*>(user_data);
-+
-+ g_file_mount_enclosing_volume_finish(G_FILE (source_object), res, &error);
-+
-+ if (error) {
-+ g_warning("Mount failed: %s %d", error->message, error->code);
-+ istream->SetMountResult(MOUNT_OPERATION_FAILED, error->code);
-+ g_error_free(error);
-+ } else {
-+ istream->SetMountResult(MOUNT_OPERATION_SUCCESS, 0);
-+ }
-+}
-+
-+/**
-+ * This function is called when username or password are requested from user.
-+ * This function is called in main thread as async request from dbus.
-+ * @param mount_op mount operation
-+ * @param message message to show to user
-+ * @param default_user preffered user
-+ * @param default_domain domain name
-+ * @param flags what type of information is required
-+ * @param user_data nsIChannel
-+ */
-+static void
-+mount_operation_ask_password (GMountOperation *mount_op,
-+ const char *message,
-+ const char *default_user,
-+ const char *default_domain,
-+ GAskPasswordFlags flags,
-+ gpointer user_data)
-+{
-+ nsIChannel *channel = (nsIChannel *) user_data;
-+ if (!channel) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // We can't handle request for domain
-+ if (flags & G_ASK_PASSWORD_NEED_DOMAIN) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+
-+ nsCOMPtr<nsIAuthPrompt> prompt;
-+ NS_QueryNotificationCallbacks(channel, prompt);
-+
-+ // If no auth prompt, then give up. We could failover to using the
-+ // WindowWatcher service, but that might defeat a consumer's purposeful
-+ // attempt to disable authentication (for whatever reason).
-+ if (!prompt) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Parse out the host and port...
-+ nsCOMPtr<nsIURI> uri;
-+ channel->GetURI(getter_AddRefs(uri));
-+ if (!uri) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+
-+ nsCAutoString scheme, hostPort;
-+ uri->GetScheme(scheme);
-+ uri->GetHostPort(hostPort);
-+
-+ // It doesn't make sense for either of these strings to be empty. What kind
-+ // of funky URI is this?
-+ if (scheme.IsEmpty() || hostPort.IsEmpty()) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Construct the single signon key. Altering the value of this key will
-+ // cause people's remembered passwords to be forgotten. Think carefully
-+ // before changing the way this key is constructed.
-+ nsAutoString key, realm;
-+
-+ NS_ConvertUTF8toUTF16 dispHost(scheme);
-+ dispHost.Append(NS_LITERAL_STRING("://"));
-+ dispHost.Append(NS_ConvertUTF8toUTF16(hostPort));
-+
-+ key = dispHost;
-+ if (*default_domain != '\0')
-+ {
-+ // We assume the realm string is ASCII. That might be a bogus assumption,
-+ // but we have no idea what encoding GnomeVFS is using, so for now we'll
-+ // limit ourselves to ISO-Latin-1. XXX What is a better solution?
-+ realm.Append('"');
-+ realm.Append(NS_ConvertASCIItoUTF16(default_domain));
-+ realm.Append('"');
-+ key.Append(' ');
-+ key.Append(realm);
-+ }
-+ // Construct the message string...
-+ //
-+ // We use Necko's string bundle here. This code really should be encapsulated
-+ // behind some Necko API, after all this code is based closely on the code in
-+ // nsHttpChannel.cpp.
-+ nsCOMPtr<nsIStringBundleService> bundleSvc =
-+ do_GetService(NS_STRINGBUNDLE_CONTRACTID);
-+ if (!bundleSvc) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ nsCOMPtr<nsIStringBundle> bundle;
-+ bundleSvc->CreateBundle("chrome://global/locale/commonDialogs.properties",
-+ getter_AddRefs(bundle));
-+ if (!bundle) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ nsAutoString nsmessage;
-+
-+ if (flags & G_ASK_PASSWORD_NEED_PASSWORD) {
-+ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
-+ if (!realm.IsEmpty()) {
-+ const PRUnichar *strings[] = { realm.get(), dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterLoginForRealm").get(),
-+ strings, 2, getter_Copies(nsmessage));
-+ } else {
-+ const PRUnichar *strings[] = { dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterUserPasswordFor").get(),
-+ strings, 1, getter_Copies(nsmessage));
-+ }
-+ } else {
-+ NS_ConvertUTF8toUTF16 userName(default_user);
-+ const PRUnichar *strings[] = { userName.get(), dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterPasswordFor").get(),
-+ strings, 2, getter_Copies(nsmessage));
-+ }
-+ } else {
-+ g_warning("Unknown mount operation request (flags: %x)", flags);
-+ }
-+
-+ if (nsmessage.IsEmpty()) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Prompt the user...
-+ nsresult rv;
-+ PRBool retval = PR_FALSE;
-+ PRUnichar *user = nsnull, *pass = nsnull;
-+ if (default_user) {
-+ // user will be freed by PromptUsernameAndPassword
-+ user = ToNewUnicode(NS_ConvertUTF8toUTF16(default_user));
-+ }
-+ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
-+ rv = prompt->PromptUsernameAndPassword(nsnull, nsmessage.get(),
-+ key.get(),
-+ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
-+ &user, &pass, &retval);
-+ } else {
-+ rv = prompt->PromptPassword(nsnull, nsmessage.get(),
-+ key.get(),
-+ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
-+ &pass, &retval);
-+ }
-+ if (NS_FAILED(rv) || !retval) { // was || user == '\0' || pass == '\0'
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ /* GIO should accept UTF8 */
-+ g_mount_operation_set_username(mount_op, NS_ConvertUTF16toUTF8(user).get());
-+ g_mount_operation_set_password(mount_op, NS_ConvertUTF16toUTF8(pass).get());
-+ nsMemory::Free(user);
-+ nsMemory::Free(pass);
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_HANDLED);
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+class nsGIOProtocolHandler : public nsIProtocolHandler
-+ , public nsIObserver
-+{
-+ public:
-+ NS_DECL_ISUPPORTS
-+ NS_DECL_NSIPROTOCOLHANDLER
-+ NS_DECL_NSIOBSERVER
-+
-+ nsresult Init();
-+
-+ private:
-+ void InitSupportedProtocolsPref(nsIPrefBranch *prefs);
-+ PRBool IsSupportedProtocol(const nsCString &spec);
-+
-+ nsCString mSupportedProtocols;
-+};
-+
-+NS_IMPL_ISUPPORTS2(nsGIOProtocolHandler, nsIProtocolHandler, nsIObserver)
-+
-+nsresult
-+nsGIOProtocolHandler::Init()
-+{
-+#ifdef PR_LOGGING
-+ sGIOLog = PR_NewLogModule("gio");
-+#endif
-+
-+ nsCOMPtr<nsIPrefBranch2> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
-+ if (prefs)
-+ {
-+ InitSupportedProtocolsPref(prefs);
-+ prefs->AddObserver(MOZ_GIO_SUPPORTED_PROTOCOLS, this, PR_FALSE);
-+ }
-+
-+ return NS_OK;
-+}
-+
-+void
-+nsGIOProtocolHandler::InitSupportedProtocolsPref(nsIPrefBranch *prefs)
-+{
-+ // Get user preferences to determine which protocol is supported.
-+ // Gvfs/GIO has a set of supported protocols like obex, network, archive,
-+ // computer, dav, cdda, gphoto2, trash, etc. Some of these seems to be
-+ // irrelevant to process by browser. By default accept only smb and sftp
-+ // protocols so far.
-+ nsresult rv = prefs->GetCharPref(MOZ_GIO_SUPPORTED_PROTOCOLS,
-+ getter_Copies(mSupportedProtocols));
-+ if (NS_SUCCEEDED(rv)) {
-+ mSupportedProtocols.StripWhitespace();
-+ ToLowerCase(mSupportedProtocols);
-+ }
-+ else
-+ mSupportedProtocols.Assign("smb:,sftp:"); // use defaults
-+
-+ LOG(("gio: supported protocols \"%s\"\n", mSupportedProtocols.get()));
-+}
-+
-+PRBool
-+nsGIOProtocolHandler::IsSupportedProtocol(const nsCString &aSpec)
-+{
-+ const char *specString = aSpec.get();
-+ const char *colon = strchr(specString, ':');
-+ if (!colon)
-+ return PR_FALSE;
-+
-+ PRUint32 length = colon - specString + 1;
-+
-+ // <scheme> + ':'
-+ nsCString scheme(specString, length);
-+
-+ char *found = PL_strcasestr(mSupportedProtocols.get(), scheme.get());
-+ if (!found)
-+ return PR_FALSE;
-+
-+ if (found[length] != ',' && found[length] != '\0')
-+ return PR_FALSE;
-+
-+ return PR_TRUE;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetScheme(nsACString &aScheme)
-+{
-+ aScheme.Assign(MOZ_GIO_SCHEME);
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetDefaultPort(PRInt32 *aDefaultPort)
-+{
-+ *aDefaultPort = -1;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetProtocolFlags(PRUint32 *aProtocolFlags)
-+{
-+ // Is URI_STD true of all GnomeVFS URI types?
-+ *aProtocolFlags = URI_STD | URI_DANGEROUS_TO_LOAD;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::NewURI(const nsACString &aSpec,
-+ const char *aOriginCharset,
-+ nsIURI *aBaseURI,
-+ nsIURI **aResult)
-+{
-+ const nsCString flatSpec(aSpec);
-+ LOG(("gio: NewURI [spec=%s]\n", flatSpec.get()));
-+
-+ if (!aBaseURI)
-+ {
-+ // XXX Is it good to support all GIO protocols?
-+ if (!IsSupportedProtocol(flatSpec))
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+
-+ PRInt32 colon_location = flatSpec.FindChar(':');
-+ if (colon_location <= 0)
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+
-+ // Verify that GIO supports this URI scheme.
-+ PRBool uri_scheme_supported = PR_FALSE;
-+
-+ GVfs *gvfs = g_vfs_get_default();
-+
-+ if (!gvfs) {
-+ g_warning("Cannot get GVfs object.");
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+ }
-+
-+ const gchar* const * uri_schemes = g_vfs_get_supported_uri_schemes(gvfs);
-+
-+ while (*uri_schemes != NULL) {
-+ // While flatSpec ends with ':' the uri_scheme does not. Therefore do not
-+ // compare last character.
-+ if (StringHead(flatSpec, colon_location).Equals(*uri_schemes)) {
-+ uri_scheme_supported = PR_TRUE;
-+ break;
-+ }
-+ uri_schemes++;
-+ }
-+
-+ if (!uri_scheme_supported) {
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+ }
-+ }
-+
-+ nsresult rv;
-+ nsCOMPtr<nsIStandardURL> url =
-+ do_CreateInstance(NS_STANDARDURL_CONTRACTID, &rv);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ rv = url->Init(nsIStandardURL::URLTYPE_STANDARD, -1, flatSpec,
-+ aOriginCharset, aBaseURI);
-+ if (NS_SUCCEEDED(rv))
-+ rv = CallQueryInterface(url, aResult);
-+ return rv;
-+
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::NewChannel(nsIURI *aURI, nsIChannel **aResult)
-+{
-+ NS_ENSURE_ARG_POINTER(aURI);
-+ nsresult rv;
-+
-+ nsCAutoString spec;
-+ rv = aURI->GetSpec(spec);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ nsRefPtr<nsGIOInputStream> stream = new nsGIOInputStream(spec);
-+ if (!stream)
-+ {
-+ rv = NS_ERROR_OUT_OF_MEMORY;
-+ }
-+ else
-+ {
-+ // start out assuming an unknown content-type. we'll set the content-type
-+ // to something better once we open the URI.
-+ rv = NS_NewInputStreamChannel(aResult,
-+ aURI,
-+ stream,
-+ NS_LITERAL_CSTRING(UNKNOWN_CONTENT_TYPE));
-+ if (NS_SUCCEEDED(rv))
-+ stream->SetChannel(*aResult);
-+ }
-+ return rv;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::AllowPort(PRInt32 aPort,
-+ const char *aScheme,
-+ PRBool *aResult)
-+{
-+ // Don't override anything.
-+ *aResult = PR_FALSE;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::Observe(nsISupports *aSubject,
-+ const char *aTopic,
-+ const PRUnichar *aData)
-+{
-+ if (strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID) == 0) {
-+ nsCOMPtr<nsIPrefBranch> prefs = do_QueryInterface(aSubject);
-+ InitSupportedProtocolsPref(prefs);
-+ }
-+ return NS_OK;
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+#define NS_GIOPROTOCOLHANDLER_CID \
-+{ /* ee706783-3af8-4d19-9e84-e2ebfe213480 */ \
-+ 0xee706783, \
-+ 0x3af8, \
-+ 0x4d19, \
-+ {0x9e, 0x84, 0xe2, 0xeb, 0xfe, 0x21, 0x34, 0x80} \
-+}
-+
-+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGIOProtocolHandler, Init)
-+NS_DEFINE_NAMED_CID(NS_GIOPROTOCOLHANDLER_CID);
-+
-+static const mozilla::Module::CIDEntry kVFSCIDs[] = {
-+ { &kNS_GIOPROTOCOLHANDLER_CID, false, NULL, nsGIOProtocolHandlerConstructor },
-+ { NULL }
-+};
-+
-+static const mozilla::Module::ContractIDEntry kVFSContracts[] = {
-+ { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX MOZ_GIO_SCHEME, &kNS_GIOPROTOCOLHANDLER_CID },
-+ { NULL }
-+};
-+
-+static const mozilla::Module kVFSModule = {
-+ mozilla::Module::kVersion,
-+ kVFSCIDs,
-+ kVFSContracts
-+};
-+
-+NSMODULE_DEFN(nsGIOModule) = &kVFSModule;
-diff -r 49a1b2aa43c5 netwerk/base/src/nsIOService.cpp
---- a/netwerk/base/src/nsIOService.cpp Tue Dec 21 12:42:59 2010 +0100
-+++ b/netwerk/base/src/nsIOService.cpp Tue Jan 11 11:17:52 2011 +0100
-@@ -454,6 +454,27 @@
- }
-
- #ifdef MOZ_X11
-+ // check to see whether GVFS can handle this URI scheme. if it can
-+ // create a nsIURI for the "scheme:", then we assume it has support for
-+ // the requested protocol. otherwise, we failover to using the default
-+ // protocol handler.
-+
-+ rv = CallGetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX"moz-gio",
-+ result);
-+ if (NS_SUCCEEDED(rv)) {
-+ nsCAutoString spec(scheme);
-+ spec.Append(':');
-+
-+ nsIURI *uri;
-+ rv = (*result)->NewURI(spec, nsnull, nsnull, &uri);
-+ if (NS_SUCCEEDED(rv)) {
-+ NS_RELEASE(uri);
-+ return rv;
-+ }
-+
-+ NS_RELEASE(*result);
-+ }
-+
- // check to see whether GnomeVFS can handle this URI scheme. if it can
- // create a nsIURI for the "scheme:", then we assume it has support for
- // the requested protocol. otherwise, we failover to using the default
diff --git a/community-staging/xulrunner-oss/xulrunner-omnijar.patch b/community-staging/xulrunner-oss/xulrunner-omnijar.patch
deleted file mode 100644
index 66ec5206c..000000000
--- a/community-staging/xulrunner-oss/xulrunner-omnijar.patch
+++ /dev/null
@@ -1,1737 +0,0 @@
-# HG changeset patch
-# Parent a7dea879b4b445a23186f438900562155bb39e99
-Bug 620931 part 1 - Use chrome manifest to register resource://gre-resources/
-
-diff --git a/layout/style/jar.mn b/layout/style/jar.mn
---- a/layout/style/jar.mn
-+++ b/layout/style/jar.mn
-@@ -1,8 +1,10 @@
- toolkit.jar:
- * res/ua.css (ua.css)
- res/html.css (html.css)
- res/quirk.css (quirk.css)
- res/viewsource.css (viewsource.css)
- * res/forms.css (forms.css)
- res/arrow.gif (arrow.gif)
- res/arrowd.gif (arrowd.gif)
-+
-+% resource gre-resources %res/
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -75,17 +75,16 @@ static nsResProtocolHandler *gResHandler
- //
- // this enables PR_LOG_ALWAYS level information and places all output in
- // the file log.txt
- //
- static PRLogModuleInfo *gResLog;
- #endif
-
- #define kGRE NS_LITERAL_CSTRING("gre")
--#define kGRE_RESOURCES NS_LITERAL_CSTRING("gre-resources")
-
- //----------------------------------------------------------------------------
- // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
- //----------------------------------------------------------------------------
-
- nsresult
- nsResURL::EnsureFile()
- {
-@@ -197,28 +196,16 @@ nsResProtocolHandler::Init()
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
- // make resource://gre/ point to the GRE directory
- //
- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
- NS_ENSURE_SUCCESS(rv, rv);
-
-- // make resource://gre-resources/ point to gre toolkit[.jar]/res
-- nsCOMPtr<nsIURI> greURI;
-- nsCOMPtr<nsIURI> greResURI;
-- GetSubstitution(kGRE, getter_AddRefs(greURI));
--#ifdef MOZ_CHROME_FILE_FORMAT_JAR
-- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "jar:chrome/toolkit.jar!/res/");
--#else
-- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "chrome/toolkit/res/");
--#endif
-- rv = mIOService->NewURI(strGRE_RES_URL, nsnull, greURI,
-- getter_AddRefs(greResURI));
-- SetSubstitution(kGRE_RESOURCES, greResURI);
- //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
- // but once I finish multiple chrome registration I'm not sure that it is needed
-
- // XXX dveditz: resource://pchrome/ defeats profile directory salting
- // if web content can load it. Tread carefully.
-
- return rv;
- }
-@@ -242,22 +229,16 @@ nsResProtocolHandler::Init(nsIFile *aOmn
- // these entries should be kept in sync with the normal Init function
-
- // resource:/// points to jar:omni.jar!/
- SetSubstitution(EmptyCString(), uri);
-
- // resource://gre/ points to jar:omni.jar!/
- SetSubstitution(kGRE, uri);
-
-- urlStr += "chrome/toolkit/res/";
-- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- // resource://gre-resources/ points to jar:omni.jar!/chrome/toolkit/res/
-- SetSubstitution(kGRE_RESOURCES, uri);
- return NS_OK;
- }
- #endif
-
- #ifdef MOZ_IPC
- static PLDHashOperator
- EnumerateSubstitution(const nsACString& aKey,
- nsIURI* aURI,
-# HG changeset patch
-# Parent 3038cccba1a071d6b418e15442d0f2d9f3dcb11d
-Bug 620931 part 2 - When building --with-libxul-sdk, use the right preferences directory
-
-diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
---- a/browser/locales/Makefile.in
-+++ b/browser/locales/Makefile.in
-@@ -183,17 +183,17 @@ install:: $(addsuffix .xml,$(SEARCH_PLUG
- $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/searchplugins
-
-
- libs-%:
- $(NSINSTALL) -D $(DIST)/install
- @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-- @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
-+ @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
- @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-
-
- repackage-win32-installer: WIN32_INSTALLER_OUT="$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe"
- repackage-win32-installer: $(WIN32_INSTALLER_IN) $(SUBMAKEFILES)
- @echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
- $(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY) export
- $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/setup.exe l10ngen/7zSD.sfx
-diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
---- a/toolkit/mozapps/installer/packager.mk
-+++ b/toolkit/mozapps/installer/packager.mk
-@@ -307,17 +307,17 @@ OMNIJAR_FILES = \
- res \
- defaults \
- greprefs.js \
- jsloader \
- $(NULL)
-
- NON_OMNIJAR_FILES += \
- chrome/icons/\* \
-- defaults/pref/channel-prefs.js \
-+ $(PREF_DIR)/channel-prefs.js \
- res/cursors/\* \
- res/MainMenu.nib/\* \
- $(NULL)
-
- PACK_OMNIJAR = \
- rm -f omni.jar components/binary.manifest && \
- grep -h '^binary-component' components/*.manifest > binary.manifest ; \
- sed -e 's/^binary-component/\#binary-component/' components/components.manifest > components.manifest && \
-# HG changeset patch
-# Parent cd8df8030f7ad7530692bd7c4391a8009df56a02
-Bug 620931 part 3 - Allow GRE and XUL application to use omni.jar independently
-
-We now store two independent locations for an omni.jar, allowing GRE/XRE and
-XUL application to each have their own omni.jar. And since xulrunner setups
-are very independent from the XUL applications, we implement support for both
-omni.jar and non omni.jar cases in the same runtime, with the side effect of
-allowing to switch from one to the other manually without rebuilding the
-binaries.
-
-We let the mozilla::Omnijar API handle both cases, so that callers don't need
-too much work to support them.
-
-We also make the preferences service load the same set of preferences in all
-the various cases (unified vs. separate, omni.jar vs. no omni.jar).
-
-The child process launcher for IPC is modified to pass the base directories
-needed for the mozilla::Omnijar API initialization in the child process.
-
-Finally, the startupcache file name canonicalization is modified to separate
-APP and GRE resources.
-
-diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
---- a/ipc/glue/GeckoChildProcessHost.cpp
-+++ b/ipc/glue/GeckoChildProcessHost.cpp
-@@ -440,26 +440,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
- // other end of the socketpair() from us
-
- std::vector<std::string> childArgv;
-
- childArgv.push_back(exePath.value());
-
- childArgv.insert(childArgv.end(), aExtraOpts.begin(), aExtraOpts.end());
-
--#ifdef MOZ_OMNIJAR
- // Make sure the child process can find the omnijar
- // See XRE_InitCommandLine in nsAppRunner.cpp
-- nsCAutoString omnijarPath;
-- if (mozilla::OmnijarPath()) {
-- mozilla::OmnijarPath()->GetNativePath(omnijarPath);
-- childArgv.push_back("-omnijar");
-- childArgv.push_back(omnijarPath.get());
-+ nsCAutoString path;
-+ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
-+ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
-+ childArgv.push_back("-grebase");
-+ childArgv.push_back(path.get());
- }
--#endif
-+ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
-+ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
-+ childArgv.push_back("-appbase");
-+ childArgv.push_back(path.get());
-+ }
-
- childArgv.push_back(pidstring);
-
- #if defined(MOZ_CRASHREPORTER)
- # if defined(OS_LINUX)
- int childCrashFd, childCrashRemapFd;
- if (!CrashReporter::CreateNotificationPipeForChild(
- &childCrashFd, &childCrashRemapFd))
-@@ -552,26 +555,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
- for (std::vector<std::string>::iterator it = aExtraOpts.begin();
- it != aExtraOpts.end();
- ++it) {
- cmdLine.AppendLooseValue(UTF8ToWide(*it));
- }
-
- cmdLine.AppendLooseValue(std::wstring(mGroupId.get()));
-
--#ifdef MOZ_OMNIJAR
- // Make sure the child process can find the omnijar
- // See XRE_InitCommandLine in nsAppRunner.cpp
-- nsAutoString omnijarPath;
-- if (mozilla::OmnijarPath()) {
-- mozilla::OmnijarPath()->GetPath(omnijarPath);
-- cmdLine.AppendLooseValue(UTF8ToWide("-omnijar"));
-- cmdLine.AppendLooseValue(omnijarPath.get());
-+ nsAutoString path;
-+ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
-+ if (file && NS_SUCCEEDED(file->GetPath(path))) {
-+ cmdLine.AppendLooseValue(UTF8ToWide("-grebase"));
-+ cmdLine.AppendLooseValue(path.get());
- }
--#endif
-+ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
-+ if (file && NS_SUCCEEDED(file->GetPath(path))) {
-+ cmdLine.AppendLooseValue(UTF8ToWide("-appbase"));
-+ cmdLine.AppendLooseValue(path.get());
-+ }
-
- cmdLine.AppendLooseValue(UTF8ToWide(pidstring));
-
- #if defined(MOZ_CRASHREPORTER)
- cmdLine.AppendLooseValue(
- UTF8ToWide(CrashReporter::GetChildNotificationPipe()));
- #endif
-
-diff --git a/js/src/xpconnect/loader/mozJSComponentLoader.cpp b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
---- a/js/src/xpconnect/loader/mozJSComponentLoader.cpp
-+++ b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
-@@ -81,16 +81,17 @@
- #include "nsIConsoleService.h"
- #include "nsIStorageStream.h"
- #include "nsIStringStream.h"
- #include "prmem.h"
- #if defined(XP_WIN)
- #include "nsILocalFileWin.h"
- #endif
- #include "xpcprivate.h"
-+#include "nsIResProtocolHandler.h"
-
- #ifdef MOZ_ENABLE_LIBXUL
- #include "mozilla/scache/StartupCache.h"
- #include "mozilla/scache/StartupCacheUtils.h"
- #endif
- #include "mozilla/Omnijar.h"
-
- #include "jsdbgapi.h"
-@@ -621,34 +622,21 @@ mozJSComponentLoader::LoadModule(nsILoca
-
- const mozilla::Module*
- mozJSComponentLoader::LoadModuleFromJAR(nsILocalFile *aJarFile,
- const nsACString &aComponentPath)
- {
- #if !defined(XPCONNECT_STANDALONE)
- nsresult rv;
-
-- nsCAutoString fullSpec;
--
--#ifdef MOZ_OMNIJAR
-- PRBool equal;
-- rv = aJarFile->Equals(mozilla::OmnijarPath(), &equal);
-- if (NS_SUCCEEDED(rv) && equal) {
-- fullSpec = "resource://gre/";
-- } else {
--#endif
-- nsCAutoString fileSpec;
-- NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
-- fullSpec = "jar:";
-- fullSpec += fileSpec;
-- fullSpec += "!/";
--#ifdef MOZ_OMNIJAR
-- }
--#endif
--
-+ nsCAutoString fullSpec, fileSpec;
-+ NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
-+ fullSpec = "jar:";
-+ fullSpec += fileSpec;
-+ fullSpec += "!/";
- fullSpec += aComponentPath;
-
- nsCOMPtr<nsIURI> uri;
- rv = NS_NewURI(getter_AddRefs(uri), fullSpec);
- if (NS_FAILED(rv))
- return NULL;
-
- nsAutoString hashstring;
-@@ -833,57 +821,138 @@ class JSScriptHolder
- JSScriptHolder(JSContext *cx, JSScript *script)
- : mCx(cx), mScript(script) {}
- ~JSScriptHolder() { ::JS_DestroyScript(mCx, mScript); }
- private:
- JSContext *mCx;
- JSScript *mScript;
- };
-
-+static const char baseName[2][5] = { "gre/", "app/" };
-+
-+static inline PRBool
-+canonicalizeBase(nsCAutoString &spec, nsACString &out, mozilla::Omnijar::Type aType)
-+{
-+ nsCAutoString base;
-+ nsresult rv = mozilla::Omnijar::GetURIString(aType, base);
-+
-+ if (NS_FAILED(rv) || !base.Length())
-+ return PR_FALSE;
-+
-+ if (base.Compare(spec.get(), PR_FALSE, base.Length()))
-+ return PR_FALSE;
-+
-+ out.Append("/resource/");
-+ out.Append(baseName[aType]);
-+ out.Append(Substring(spec, base.Length()));
-+ return PR_TRUE;
-+}
- /**
- * PathifyURI transforms mozilla .js uris into useful zip paths
- * to make it makes it easier to manipulate startup cache entries
- * using standard zip tools.
- * Transformations applied:
-- * * jsloader/<scheme> prefix is used to group mozJSComponentLoader cache entries in
-+ * * jsloader/ prefix is used to group mozJSComponentLoader cache entries in
- * a top-level zip directory.
-- * * In MOZ_OMNIJAR case resource:/// and resource://gre/ URIs refer to the same path
-- * so treat both of them as resource://gre/
-+ * * resource:// URIs are resolved to their corresponding file/jar URI to
-+ * canonicalize resources URIs other than gre and app.
-+ * * Paths under GRE or APP directory have their base path replaced with
-+ * resource/gre or resource/app to avoid depending on install location.
-+ * * jar:file:///path/to/file.jar!/sub/path urls are replaced with
-+ * /path/to/file.jar/sub/path
- * * .bin suffix is added to the end of the path to indicate that jsloader/ entries
- * are binary representations of JS source.
- * For example:
-- * resource://gre/modules/XPCOMUtils.jsm becomes
-- * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
-+ * resource://gre/modules/XPCOMUtils.jsm or
-+ * file://$GRE_DIR/modules/XPCOMUtils.jsm or
-+ * jar:file://$GRE_DIR/omni.jar!/modules/XPCOMUtils.jsm become
-+ * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
-+ * file://$PROFILE_DIR/extensions/{uuid}/components/component.js becomes
-+ * jsloader/$PROFILE_DIR/extensions/%7Buuid%7D/components/component.js.bin
-+ * jar:file://$PROFILE_DIR/extensions/some.xpi!/components/component.js becomes
-+ * jsloader/$PROFILE_DIR/extensions/some.xpi/components/component.js.bin
- */
- static nsresult
- PathifyURI(nsIURI *in, nsACString &out)
- {
-- out = "jsloader/";
-- nsCAutoString scheme;
-- nsresult rv = in->GetScheme(scheme);
-- NS_ENSURE_SUCCESS(rv, rv);
-- out.Append(scheme);
-- nsCAutoString host;
-- // OK for GetHost to fail since it's not implemented sometimes
-- in->GetHost(host);
--#ifdef MOZ_OMNIJAR
-- if (scheme.Equals("resource") && host.Length() == 0){
-- host = "gre";
-- }
--#endif
-- if (host.Length()) {
-- out.Append("/");
-- out.Append(host);
-- }
-- nsCAutoString path;
-- rv = in->GetPath(path);
-- NS_ENSURE_SUCCESS(rv, rv);
-- out.Append(path);
-- out.Append(".bin");
-- return NS_OK;
-+ PRBool equals;
-+ nsresult rv;
-+ nsCOMPtr<nsIURI> uri = in;
-+ nsCAutoString spec;
-+
-+ out = "jsloader";
-+
-+ // Resolve resource:// URIs. At the end of this if/else block, we
-+ // have both spec and uri variables identifying the same URI.
-+ if (NS_SUCCEEDED(in->SchemeIs("resource", &equals)) && equals) {
-+ nsCOMPtr<nsIIOService> ioService = do_GetIOService(&rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIProtocolHandler> ph;
-+ rv = ioService->GetProtocolHandler("resource", getter_AddRefs(ph));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIResProtocolHandler> irph(do_QueryInterface(ph, &rv));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = irph->ResolveURI(in, spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = ioService->NewURI(spec, nsnull, nsnull, getter_AddRefs(uri));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ } else {
-+ rv = in->GetSpec(spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ }
-+
-+ if (!canonicalizeBase(spec, out, mozilla::Omnijar::GRE) &&
-+ !canonicalizeBase(spec, out, mozilla::Omnijar::APP)) {
-+ if (NS_SUCCEEDED(uri->SchemeIs("file", &equals)) && equals) {
-+ nsCOMPtr<nsIFileURL> baseFileURL;
-+ baseFileURL = do_QueryInterface(uri, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCAutoString path;
-+ rv = baseFileURL->GetPath(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ out.Append(path);
-+ } else if (NS_SUCCEEDED(uri->SchemeIs("jar", &equals)) && equals) {
-+ nsCOMPtr<nsIJARURI> jarURI = do_QueryInterface(uri, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIURI> jarFileURI;
-+ rv = jarURI->GetJARFile(getter_AddRefs(jarFileURI));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIFileURL> jarFileURL;
-+ jarFileURL = do_QueryInterface(jarFileURI, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCAutoString path;
-+ rv = jarFileURL->GetPath(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ out.Append(path);
-+
-+ rv = jarURI->GetJAREntry(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ out.Append("/");
-+ out.Append(path);
-+ } else { // Very unlikely
-+ nsCAutoString spec;
-+ rv = uri->GetSpec(spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ out.Append("/");
-+ out.Append(spec);
-+ }
-+ }
-+
-+ out.Append(".bin");
-+ return NS_OK;
- }
-
- /* static */
- #ifdef MOZ_ENABLE_LIBXUL
- nsresult
- mozJSComponentLoader::ReadScript(StartupCache* cache, nsIURI *uri,
- JSContext *cx, JSScript **script)
- {
-diff --git a/modules/libjar/nsJAR.cpp b/modules/libjar/nsJAR.cpp
---- a/modules/libjar/nsJAR.cpp
-+++ b/modules/libjar/nsJAR.cpp
-@@ -171,26 +171,23 @@ nsJAR::Open(nsIFile* zipFile)
- if (mLock) return NS_ERROR_FAILURE; // Already open!
-
- mZipFile = zipFile;
- mOuterZipEntry.Truncate();
-
- mLock = PR_NewLock();
- NS_ENSURE_TRUE(mLock, NS_ERROR_OUT_OF_MEMORY);
-
--#ifdef MOZ_OMNIJAR
- // The omnijar is special, it is opened early on and closed late
- // this avoids reopening it
-- PRBool equals;
-- nsresult rv = zipFile->Equals(mozilla::OmnijarPath(), &equals);
-- if (NS_SUCCEEDED(rv) && equals) {
-- mZip = mozilla::OmnijarReader();
-+ nsZipArchive *zip = mozilla::Omnijar::GetReader(zipFile);
-+ if (zip) {
-+ mZip = zip;
- return NS_OK;
- }
--#endif
- return mZip->OpenArchive(zipFile);
- }
-
- NS_IMETHODIMP
- nsJAR::OpenInner(nsIZipReader *aZipReader, const char *aZipEntry)
- {
- NS_ENSURE_ARG_POINTER(aZipReader);
- NS_ENSURE_ARG_POINTER(aZipEntry);
-@@ -234,23 +231,22 @@ nsJAR::Close()
- mLock = nsnull;
- }
-
- mParsedManifest = PR_FALSE;
- mManifestData.Reset();
- mGlobalStatus = JAR_MANIFEST_NOT_PARSED;
- mTotalItemsInManifest = 0;
-
--#ifdef MOZ_OMNIJAR
-- if (mZip == mozilla::OmnijarReader()) {
-+ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
-+ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP))) {
- mZip.forget();
- mZip = new nsZipArchive();
- return NS_OK;
- }
--#endif
- return mZip->CloseArchive();
- }
-
- NS_IMETHODIMP
- nsJAR::Test(const char *aEntryName)
- {
- return mZip->Test(aEntryName);
- }
-@@ -391,22 +387,21 @@ nsJAR::GetInputStreamWithSpec(const nsAC
- NS_IMETHODIMP
- nsJAR::GetCertificatePrincipal(const char* aFilename, nsIPrincipal** aPrincipal)
- {
- //-- Parameter check
- if (!aPrincipal)
- return NS_ERROR_NULL_POINTER;
- *aPrincipal = nsnull;
-
--#ifdef MOZ_OMNIJAR
- // Don't check signatures in the omnijar - this is only
- // interesting for extensions/XPIs.
-- if (mZip == mozilla::OmnijarReader())
-+ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
-+ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)))
- return NS_OK;
--#endif
-
- //-- Parse the manifest
- nsresult rv = ParseManifest();
- if (NS_FAILED(rv)) return rv;
- if (mGlobalStatus == JAR_NO_MANIFEST)
- return NS_OK;
-
- PRInt16 requestedStatus;
-diff --git a/modules/libpref/src/nsPrefService.cpp b/modules/libpref/src/nsPrefService.cpp
---- a/modules/libpref/src/nsPrefService.cpp
-+++ b/modules/libpref/src/nsPrefService.cpp
-@@ -67,20 +67,18 @@
-
- #include "prefapi.h"
- #include "prefread.h"
- #include "prefapi_private_data.h"
- #include "PrefTuple.h"
-
- #include "nsITimelineService.h"
-
--#ifdef MOZ_OMNIJAR
- #include "mozilla/Omnijar.h"
- #include "nsZipArchive.h"
--#endif
-
- // Definitions
- #define INITIAL_PREF_FILES 10
- static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
-
- // Prototypes
- static nsresult openPrefFile(nsIFile* aFile);
- static nsresult pref_InitInitialObjects(void);
-@@ -793,124 +791,144 @@ static nsresult pref_LoadPrefsInDirList(
- pref_LoadPrefsInDir(dir, nsnull, 0);
- }
- }
- }
- }
- return NS_OK;
- }
-
--//----------------------------------------------------------------------------------------
--// Initialize default preference JavaScript buffers from
--// appropriate TEXT resources
--//----------------------------------------------------------------------------------------
--static nsresult pref_InitDefaults()
--{
-- nsCOMPtr<nsIFile> greprefsFile;
-- nsresult rv;
--
-- rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- rv = openPrefFile(greprefsFile);
-- if (NS_FAILED(rv)) {
-- NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
-- }
--
-- return NS_OK;
--}
--
--#ifdef MOZ_OMNIJAR
- static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
- {
- nsZipItemPtr<char> manifest(jarReader, name, true);
- NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-
- PrefParseState ps;
- PREF_InitParseState(&ps, PREF_ReaderCallback, NULL);
- nsresult rv = PREF_ParseBuf(&ps, manifest, manifest.Length());
- PREF_FinalizeParseState(&ps);
-
- return rv;
- }
-
--static nsresult pref_InitAppDefaultsFromOmnijar()
--{
-- nsresult rv;
--
-- nsZipArchive* jarReader = mozilla::OmnijarReader();
-- if (!jarReader)
-- return pref_InitDefaults();
--
-- rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsZipFind *findPtr;
-- rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsAutoPtr<nsZipFind> find(findPtr);
--
-- nsTArray<nsCString> prefEntries;
-- const char *entryName;
-- PRUint16 entryNameLen;
-- while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-- prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-- }
--
-- prefEntries.Sort();
-- for (PRUint32 i = prefEntries.Length(); i--; ) {
-- rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
-- if (NS_FAILED(rv))
-- NS_WARNING("Error parsing preferences.");
-- }
--
-- return NS_OK;
--}
--#endif
--
-+//----------------------------------------------------------------------------------------
-+// Initialize default preference JavaScript buffers from
-+// appropriate TEXT resources
-+//----------------------------------------------------------------------------------------
- static nsresult pref_InitInitialObjects()
- {
- nsresult rv;
-
-- // first we parse the GRE default prefs. This also works if we're not using a GRE,
--#ifdef MOZ_OMNIJAR
-- rv = pref_InitAppDefaultsFromOmnijar();
--#else
-- rv = pref_InitDefaults();
--#endif
-- NS_ENSURE_SUCCESS(rv, rv);
-+ // In omni.jar case, we load the following prefs:
-+ // - jar:$gre/omni.jar!/greprefs.js
-+ // - jar:$gre/omni.jar!/defaults/pref/*.js
-+ // In non omni.jar case, we load:
-+ // - $gre/greprefs.js
-+ //
-+ // When $app == $gre, we additionally load, in all cases:
-+ // - $gre/defaults/pref/*.js
-+ // This is kept for bug 591866 (channel-prefs.js should not be in omni.jar).
-+ // We load all files instead of channel-prefs.js only to have the same
-+ // behaviour as $app != $gre.
-+ //
-+ // When $app != $gre, we additionally load, in omni.jar case:
-+ // - jar:$app/omni.jar!/defaults/preferences/*.js
-+ // - $app/defaults/preferences/*.js
-+ // and in non omni.jar case:
-+ // - $app/defaults/preferences/*.js
-
-- nsCOMPtr<nsIFile> defaultPrefDir;
-- // now parse the "application" default preferences
-- rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
-- NS_ENSURE_SUCCESS(rv, rv);
-+ nsZipFind *findPtr;
-+ nsAutoPtr<nsZipFind> find;
-+ nsTArray<nsCString> prefEntries;
-+ const char *entryName;
-+ PRUint16 entryNameLen;
-
-- /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
-- static const char* specialFiles[] = {
-+ nsZipArchive* jarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
-+ if (jarReader) {
-+ // Load jar:$gre/omni.jar!/greprefs.js
-+ rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ // Load jar:$gre/omni.jar!/defaults/pref/*.js
-+ rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ find = findPtr;
-+ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-+ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-+ }
-+
-+ prefEntries.Sort();
-+ for (PRUint32 i = prefEntries.Length(); i--; ) {
-+ rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing preferences.");
-+ }
-+ } else {
-+ // Load $gre/greprefs.js
-+ nsCOMPtr<nsIFile> greprefsFile;
-+ rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = openPrefFile(greprefsFile);
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
-+ }
-+
-+ if (!mozilla::Omnijar::HasOmnijar(mozilla::Omnijar::APP)) {
-+ // Load $gre/defaults/pref/*.js
-+ nsCOMPtr<nsIFile> defaultPrefDir;
-+
-+ rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
-+ static const char* specialFiles[] = {
- #if defined(XP_MAC) || defined(XP_MACOSX)
- "macprefs.js"
- #elif defined(XP_WIN)
- "winpref.js"
- #elif defined(XP_UNIX)
- "unix.js"
--#if defined(_AIX)
-+#if defined(VMS)
-+ , "openvms.js"
-+#elif defined(_AIX)
- , "aix.js"
- #endif
- #elif defined(XP_OS2)
- "os2pref.js"
-+#elif defined(XP_BEOS)
-+ "beos.js"
- #endif
-- };
-+ };
-
-- rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
-- if (NS_FAILED(rv)) {
-- NS_WARNING("Error parsing application default preferences.");
-+ rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing application default preferences.");
-+ }
-+
-+ // Load jar:$app/omni.jar!/defaults/preferences/*.js
-+ nsZipArchive *appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
-+ if (appJarReader) {
-+ rv = appJarReader->FindInit("defaults/preferences/*.js$", &findPtr);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ find = findPtr;
-+ prefEntries.Clear();
-+ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-+ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-+ }
-+ prefEntries.Sort();
-+ for (PRUint32 i = prefEntries.Length(); i--; ) {
-+ rv = pref_ReadPrefFromJar(appJarReader, prefEntries[i].get());
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing preferences.");
-+ }
- }
-
- rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST);
- NS_ENSURE_SUCCESS(rv, rv);
-
- NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID,
- nsnull, NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID);
-
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -152,97 +152,62 @@ nsResProtocolHandler::nsResProtocolHandl
- }
-
- nsResProtocolHandler::~nsResProtocolHandler()
- {
- gResHandler = nsnull;
- }
-
- nsresult
--nsResProtocolHandler::AddSpecialDir(const char* aSpecialDir, const nsACString& aSubstitution)
--{
-- nsCOMPtr<nsIFile> file;
-- nsresult rv = NS_GetSpecialDirectory(aSpecialDir, getter_AddRefs(file));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsCOMPtr<nsIURI> uri;
-- rv = mIOService->NewFileURI(file, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- return SetSubstitution(aSubstitution, uri);
--}
--
--nsresult
- nsResProtocolHandler::Init()
- {
- if (!mSubstitutions.Init(32))
- return NS_ERROR_UNEXPECTED;
-
- nsresult rv;
-
- mIOService = do_GetIOService(&rv);
- NS_ENSURE_SUCCESS(rv, rv);
-
--#ifdef MOZ_OMNIJAR
-- nsCOMPtr<nsIFile> omniJar(mozilla::OmnijarPath());
-- if (omniJar)
-- return Init(omniJar);
--#endif
--
-- // these entries should be kept in sync with the omnijar Init function
-+ nsCAutoString appURI, greURI;
-+ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::APP, appURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::GRE, greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-
- //
-- // make resource:/// point to the application directory
-+ // make resource:/// point to the application directory or omnijar
- //
-- rv = AddSpecialDir(NS_OS_CURRENT_PROCESS_DIR, EmptyCString());
-+ nsCOMPtr<nsIURI> uri;
-+ rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = SetSubstitution(EmptyCString(), uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
- // make resource://gre/ point to the GRE directory
- //
-- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
-+ if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
-+ rv = NS_NewURI(getter_AddRefs(uri), greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ }
-+
-+ rv = SetSubstitution(kGRE, uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
- // but once I finish multiple chrome registration I'm not sure that it is needed
-
- // XXX dveditz: resource://pchrome/ defeats profile directory salting
- // if web content can load it. Tread carefully.
-
- return rv;
- }
-
--#ifdef MOZ_OMNIJAR
--nsresult
--nsResProtocolHandler::Init(nsIFile *aOmniJar)
--{
-- nsresult rv;
-- nsCOMPtr<nsIURI> uri;
-- nsCAutoString omniJarSpec;
-- NS_GetURLSpecFromActualFile(aOmniJar, omniJarSpec, mIOService);
--
-- nsCAutoString urlStr("jar:");
-- urlStr += omniJarSpec;
-- urlStr += "!/";
--
-- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- // these entries should be kept in sync with the normal Init function
--
-- // resource:/// points to jar:omni.jar!/
-- SetSubstitution(EmptyCString(), uri);
--
-- // resource://gre/ points to jar:omni.jar!/
-- SetSubstitution(kGRE, uri);
--
-- return NS_OK;
--}
--#endif
--
- #ifdef MOZ_IPC
- static PLDHashOperator
- EnumerateSubstitution(const nsACString& aKey,
- nsIURI* aURI,
- void* aArg)
- {
- nsTArray<ResourceMapping>* resources =
- static_cast<nsTArray<ResourceMapping>*>(aArg);
-diff --git a/startupcache/StartupCache.cpp b/startupcache/StartupCache.cpp
---- a/startupcache/StartupCache.cpp
-+++ b/startupcache/StartupCache.cpp
-@@ -237,27 +237,36 @@ StartupCache::GetBuffer(const char* id,
- nsZipItemPtr<char> zipItem(mArchive, id, true);
- if (zipItem) {
- *outbuf = zipItem.Forget();
- *length = zipItem.Length();
- return NS_OK;
- }
- }
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarReader()) {
-+ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)) {
- // no need to checksum omnijarred entries
-- nsZipItemPtr<char> zipItem(mozilla::OmnijarReader(), id);
-+ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::APP), id);
- if (zipItem) {
- *outbuf = zipItem.Forget();
- *length = zipItem.Length();
- return NS_OK;
- }
- }
--#endif
-+
-+ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) {
-+ // no need to checksum omnijarred entries
-+ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE), id);
-+ if (zipItem) {
-+ *outbuf = zipItem.Forget();
-+ *length = zipItem.Length();
-+ return NS_OK;
-+ }
-+ }
-+
- return NS_ERROR_NOT_AVAILABLE;
- }
-
- // Makes a copy of the buffer, client retains ownership of inbuf.
- nsresult
- StartupCache::PutBuffer(const char* id, const char* inbuf, PRUint32 len)
- {
- WaitOnWriteThread();
-diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
---- a/toolkit/xre/nsAppRunner.cpp
-+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3897,35 +3897,45 @@ XRE_InitCommandLine(int aArgc, char* aAr
- CommandLine::Init(aArgc, canonArgs);
-
- for (int i = 0; i < aArgc; ++i)
- free(canonArgs[i]);
- delete[] canonArgs;
- #endif
- #endif
-
--#ifdef MOZ_OMNIJAR
-- const char *omnijarPath = nsnull;
-- ArgResult ar = CheckArg("omnijar", PR_FALSE, &omnijarPath);
-+ const char *path = nsnull;
-+ ArgResult ar = CheckArg("grebase", PR_FALSE, &path);
- if (ar == ARG_BAD) {
-- PR_fprintf(PR_STDERR, "Error: argument -omnijar requires an omnijar path\n");
-+ PR_fprintf(PR_STDERR, "Error: argument -grebase requires a path argument\n");
- return NS_ERROR_FAILURE;
- }
-
-- if (!omnijarPath)
-+ if (!path)
- return rv;
-
-- nsCOMPtr<nsILocalFile> omnijar;
-- rv = NS_NewNativeLocalFile(nsDependentCString(omnijarPath), PR_TRUE,
-- getter_AddRefs(omnijar));
-- if (NS_SUCCEEDED(rv))
-- mozilla::SetOmnijar(omnijar);
--#endif
--
-- return rv;
-+ nsCOMPtr<nsILocalFile> greBase;
-+ rv = XRE_GetFileFromPath(path, getter_AddRefs(greBase));
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ ar = CheckArg("appbase", PR_FALSE, &path);
-+ if (ar == ARG_BAD) {
-+ PR_fprintf(PR_STDERR, "Error: argument -appbase requires a path argument\n");
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ nsCOMPtr<nsILocalFile> appBase;
-+ if (path) {
-+ rv = XRE_GetFileFromPath(path, getter_AddRefs(appBase));
-+ if (NS_FAILED(rv))
-+ return rv;
-+ }
-+
-+ return mozilla::Omnijar::SetBase(greBase, appBase);
- }
-
- nsresult
- XRE_DeinitCommandLine()
- {
- nsresult rv = NS_OK;
-
- #if defined(MOZ_IPC)
-diff --git a/toolkit/xre/nsEmbedFunctions.cpp b/toolkit/xre/nsEmbedFunctions.cpp
---- a/toolkit/xre/nsEmbedFunctions.cpp
-+++ b/toolkit/xre/nsEmbedFunctions.cpp
-@@ -512,19 +512,17 @@ XRE_InitChildProcess(int aArgc,
- }
-
- // Run the UI event loop on the main thread.
- uiMessageLoop.MessageLoop::Run();
-
- // Allow ProcessChild to clean up after itself before going out of
- // scope and being deleted
- process->CleanUp();
--#ifdef MOZ_OMNIJAR
-- mozilla::SetOmnijar(nsnull);
--#endif
-+ mozilla::Omnijar::SetBase(nsnull, nsnull);
- }
- }
-
- NS_LogTerm();
- return XRE_DeinitCommandLine();
- }
-
- MessageLoop*
-diff --git a/xpcom/build/Makefile.in b/xpcom/build/Makefile.in
---- a/xpcom/build/Makefile.in
-+++ b/xpcom/build/Makefile.in
-@@ -64,28 +64,25 @@ CSRCS = \
- $(NULL)
-
- CPPSRCS = \
- $(XPCOM_GLUE_SRC_LCPPSRCS) \
- $(XPCOM_GLUENS_SRC_LCPPSRCS) \
- nsXPComInit.cpp \
- nsXPCOMStrings.cpp \
- Services.cpp \
-+ Omnijar.cpp \
- $(NULL)
-
- ifndef MOZ_ENABLE_LIBXUL
- ifeq (,$(filter-out WINNT WINCE OS2,$(OS_ARCH)))
- CPPSRCS += dlldeps.cpp
- endif
- endif
-
--ifdef MOZ_OMNIJAR
--CPPSRCS += Omnijar.cpp
--endif
--
- SHARED_LIBRARY_LIBS = \
- $(DEPTH)/chrome/src/$(LIB_PREFIX)chrome_s.$(LIB_SUFFIX) \
- ../ds/$(LIB_PREFIX)xpcomds_s.$(LIB_SUFFIX) \
- ../io/$(LIB_PREFIX)xpcomio_s.$(LIB_SUFFIX) \
- ../components/$(LIB_PREFIX)xpcomcomponents_s.$(LIB_SUFFIX) \
- ../threads/$(LIB_PREFIX)xpcomthreads_s.$(LIB_SUFFIX) \
- ../proxy/src/$(LIB_PREFIX)xpcomproxy_s.$(LIB_SUFFIX) \
- ../base/$(LIB_PREFIX)xpcombase_s.$(LIB_SUFFIX) \
-diff --git a/xpcom/build/Omnijar.cpp b/xpcom/build/Omnijar.cpp
---- a/xpcom/build/Omnijar.cpp
-+++ b/xpcom/build/Omnijar.cpp
-@@ -16,16 +16,17 @@
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Michael Wu <mwu@mozilla.com>
-+ * Mike Hommey <mh@glandium.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
-@@ -33,69 +34,175 @@
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #include "Omnijar.h"
-
--#include "nsILocalFile.h"
--#include "nsXULAppAPI.h"
-+#include "nsIFile.h"
- #include "nsZipArchive.h"
-+#include "nsNetUtil.h"
-
--static nsILocalFile* sOmnijarPath = nsnull;
--static nsZipArchive* sOmnijarReader = nsnull;
-+namespace mozilla {
-
--static void
--SetupReader()
-+nsIFile *Omnijar::sPath[2] = { nsnull, nsnull };
-+PRBool Omnijar::sIsOmnijar[2] = { PR_FALSE, PR_FALSE };
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+nsZipArchive *Omnijar::sReader[2] = { nsnull, nsnull };
-+#endif
-+
-+static already_AddRefed<nsIFile>
-+ComputePath(nsIFile *aPath, PRBool &aIsOmnijar)
- {
-- if (!sOmnijarPath) {
-- return;
-+ PRBool isDir;
-+ aIsOmnijar = PR_FALSE;
-+ if (!aPath || NS_FAILED(aPath->IsDirectory(&isDir)) || !isDir)
-+ return nsnull;
-+
-+ nsCOMPtr<nsIFile> path;
-+#ifdef MOZ_ENABLE_LIBXUL
-+ // Search for omni.jar in the given directory
-+ if (!isDir || NS_FAILED(aPath->Clone(getter_AddRefs(path))))
-+ return nsnull;
-+
-+ if (NS_FAILED(path->AppendNative(NS_LITERAL_CSTRING("omni.jar"))))
-+ return nsnull;
-+
-+ if (NS_FAILED(path->Exists(&aIsOmnijar)))
-+ return nsnull;
-+#endif
-+
-+ if (!aIsOmnijar && NS_FAILED(aPath->Clone(getter_AddRefs(path))))
-+ return nsnull;
-+
-+ return path.forget();
-+}
-+
-+nsresult
-+Omnijar::SetBase(nsIFile *aGrePath, nsIFile *aAppPath)
-+{
-+ NS_ABORT_IF_FALSE(aGrePath || !aAppPath, "Omnijar::SetBase(NULL, something) call forbidden");
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+ if (sReader[GRE]) {
-+ sReader[GRE]->CloseArchive();
-+ delete sReader[GRE];
-+ }
-+ if (sReader[APP]) {
-+ sReader[APP]->CloseArchive();
-+ delete sReader[APP];
-+ }
-+ sReader[APP] = sReader[GRE] = nsnull;
-+#endif
-+
-+ nsresult rv;
-+ PRBool equals;
-+ if (aAppPath) {
-+ rv = aAppPath->Equals(aGrePath, &equals);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ } else {
-+ equals = PR_TRUE;
- }
-
-- nsZipArchive* zipReader = new nsZipArchive();
-- if (!zipReader) {
-- NS_IF_RELEASE(sOmnijarPath);
-- return;
-+ nsCOMPtr<nsIFile> grePath = ComputePath(aGrePath, sIsOmnijar[GRE]);
-+ nsCOMPtr<nsIFile> appPath = ComputePath(equals ? nsnull : aAppPath, sIsOmnijar[APP]);
-+
-+ NS_IF_RELEASE(sPath[GRE]);
-+ sPath[GRE] = grePath;
-+ NS_IF_ADDREF(sPath[GRE]);
-+
-+ NS_IF_RELEASE(sPath[APP]);
-+ sPath[APP] = appPath;
-+ NS_IF_ADDREF(sPath[APP]);
-+
-+ return NS_OK;
-+}
-+
-+already_AddRefed<nsIFile>
-+Omnijar::GetBase(Type aType)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ if (!sIsOmnijar[aType]) {
-+ NS_IF_ADDREF(sPath[aType]);
-+ return sPath[aType];
- }
-
-- if (NS_FAILED(zipReader->OpenArchive(sOmnijarPath))) {
-+ nsCOMPtr<nsIFile> file, path;
-+ if (NS_FAILED(sPath[aType]->Clone(getter_AddRefs(file))))
-+ return nsnull;
-+
-+ if (NS_FAILED(file->GetParent(getter_AddRefs(path))))
-+ return nsnull;
-+ return path.forget();
-+}
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+nsZipArchive *
-+Omnijar::GetReader(Type aType)
-+{
-+ if (!sIsOmnijar[aType])
-+ return nsnull;
-+
-+ if (sReader[aType])
-+ return sReader[aType];
-+
-+ nsZipArchive* zipReader = new nsZipArchive();
-+ if (!zipReader)
-+ return nsnull;
-+
-+ if (NS_FAILED(zipReader->OpenArchive(sPath[aType]))) {
- delete zipReader;
-- NS_IF_RELEASE(sOmnijarPath);
-- return;
-+ return nsnull;
- }
-
-- sOmnijarReader = zipReader;
-+ return (sReader[aType] = zipReader);
- }
-
--nsILocalFile*
--mozilla::OmnijarPath()
-+nsZipArchive *
-+Omnijar::GetReader(nsIFile *aPath)
- {
-- if (!sOmnijarReader)
-- SetupReader();
-+ PRBool equals;
-+ nsresult rv;
-
-- return sOmnijarPath;
-+ if (sIsOmnijar[GRE]) {
-+ rv = sPath[GRE]->Equals(aPath, &equals);
-+ if (NS_SUCCEEDED(rv) && equals)
-+ return GetReader(GRE);
-+ }
-+ if (sIsOmnijar[APP]) {
-+ rv = sPath[APP]->Equals(aPath, &equals);
-+ if (NS_SUCCEEDED(rv) && equals)
-+ return GetReader(APP);
-+ }
-+ return nsnull;
-+}
-+#endif
-+
-+nsresult
-+Omnijar::GetURIString(Type aType, nsCString &result)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ result = "";
-+
-+ if ((aType == APP) && (!sPath[APP]))
-+ return NS_OK;
-+
-+ nsCAutoString omniJarSpec;
-+ nsresult rv = NS_GetURLSpecFromActualFile(sPath[aType], omniJarSpec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ if (sIsOmnijar[aType]) {
-+ result = "jar:";
-+ result += omniJarSpec;
-+ result += "!";
-+ } else {
-+ result = omniJarSpec;
-+ }
-+ result += "/";
-+ return NS_OK;
- }
-
--nsZipArchive*
--mozilla::OmnijarReader()
--{
-- if (!sOmnijarReader)
-- SetupReader();
--
-- return sOmnijarReader;
--}
--
--void
--mozilla::SetOmnijar(nsILocalFile* aPath)
--{
-- NS_IF_RELEASE(sOmnijarPath);
-- if (sOmnijarReader) {
-- sOmnijarReader->CloseArchive();
-- delete sOmnijarReader;
-- sOmnijarReader = nsnull;
-- }
--
-- sOmnijarPath = aPath;
-- NS_IF_ADDREF(sOmnijarPath);
--}
--
-+} /* namespace mozilla */
-diff --git a/xpcom/build/Omnijar.h b/xpcom/build/Omnijar.h
---- a/xpcom/build/Omnijar.h
-+++ b/xpcom/build/Omnijar.h
-@@ -16,16 +16,17 @@
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Michael Wu <mwu@mozilla.com>
-+ * Mike Hommey <mh@glandium.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
-@@ -34,29 +35,137 @@
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #ifndef mozilla_Omnijar_h
- #define mozilla_Omnijar_h
-
--class nsILocalFile;
-+#include "nscore.h"
-+#include "nsTArray.h"
-+#include "nsCOMPtr.h"
-+#include "nsString.h"
-+
-+class nsIFile;
- class nsZipArchive;
--
--#ifdef MOZ_OMNIJAR
-+class nsIURI;
-
- namespace mozilla {
-
-+#ifdef MOZ_ENABLE_LIBXUL
-+#define OMNIJAR_EXPORT
-+#else
-+#define OMNIJAR_EXPORT NS_EXPORT
-+#endif
-+
-+class OMNIJAR_EXPORT Omnijar {
-+private:
- /**
-- * This returns the path to the omnijar.
-- * If the omnijar isn't available, this function will return null.
-- * Callers should fallback to flat packaging if null.
-+ * Store an nsIFile for either a base directory when there is no omni.jar,
-+ * or omni.jar itself. We can store two paths here, one for GRE
-+ * (corresponding to resource://gre/) and one for APP
-+ * (corresponding to resource:/// and resource://app/), but only
-+ * store one when both point to the same location (unified).
- */
--nsILocalFile *OmnijarPath();
--nsZipArchive *OmnijarReader();
--void SetOmnijar(nsILocalFile* aPath);
-+static nsIFile *sPath[2];
-+/**
-+ * Store whether the corresponding sPath is an omni.jar or a directory
-+ */
-+static PRBool sIsOmnijar[2];
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+/**
-+ * Cached nsZipArchives for the corresponding sPath
-+ */
-+static nsZipArchive *sReader[2];
-+#endif
-+
-+public:
-+enum Type {
-+ GRE = 0,
-+ APP = 1
-+};
-+
-+/**
-+ * Returns whether SetBase has been called at least once with
-+ * a valid nsIFile
-+ */
-+static PRBool
-+IsInitialized()
-+{
-+ // GRE path is always set after initialization.
-+ return sPath[0] != nsnull;
-+}
-+
-+/**
-+ * Sets the base directories for GRE and APP. APP base directory
-+ * may be nsnull, in case the APP and GRE directories are the same.
-+ */
-+static nsresult SetBase(nsIFile *aGrePath, nsIFile *aAppPath);
-+
-+/**
-+ * Returns an nsIFile pointing to the omni.jar file for GRE or APP.
-+ * Returns nsnull when there is no corresponding omni.jar.
-+ * Also returns nsnull for APP in the unified case.
-+ */
-+static already_AddRefed<nsIFile>
-+GetPath(Type aType)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ if (sIsOmnijar[aType]) {
-+ NS_IF_ADDREF(sPath[aType]);
-+ return sPath[aType];
-+ }
-+ return nsnull;
-+}
-+
-+/**
-+ * Returns whether GRE or APP use an omni.jar. Returns PR_False when
-+ * using an omni.jar in the unified case.
-+ */
-+static PRBool
-+HasOmnijar(Type aType)
-+{
-+ return sIsOmnijar[aType];
-+}
-+
-+/**
-+ * Returns the base directory for GRE or APP. In the unified case,
-+ * returns nsnull for APP.
-+ */
-+static already_AddRefed<nsIFile> GetBase(Type aType);
-+
-+/**
-+ * Returns a nsZipArchive pointer for the omni.jar file for GRE or
-+ * APP. Returns nsnull in the same cases GetPath() would.
-+ */
-+#ifdef MOZ_ENABLE_LIBXUL
-+static nsZipArchive *GetReader(Type aType);
-+#else
-+static nsZipArchive *GetReader(Type aType) { return nsnull; }
-+#endif
-+
-+/**
-+ * Returns a nsZipArchive pointer for the given path IAOI the given
-+ * path is the omni.jar for either GRE or APP.
-+ */
-+#ifdef MOZ_ENABLE_LIBXUL
-+static nsZipArchive *GetReader(nsIFile *aPath);
-+#else
-+static nsZipArchive *GetReader(nsIFile *aPath) { return nsnull; }
-+#endif
-+
-+/**
-+ * Returns the URI string corresponding to the omni.jar or directory
-+ * for GRE or APP. i.e. jar:/path/to/omni.jar!/ for omni.jar and
-+ * /path/to/base/dir/ otherwise. Returns an empty string for APP in
-+ * the unified case.
-+ * The returned URI is guaranteed to end with a slash.
-+ */
-+static nsresult GetURIString(Type aType, nsCString &result);
-+
-+}; /* class Omnijar */
-
- } /* namespace mozilla */
-
--#endif /* MOZ_OMNIJAR */
--
- #endif /* mozilla_Omnijar_h */
-diff --git a/xpcom/build/nsXPComInit.cpp b/xpcom/build/nsXPComInit.cpp
---- a/xpcom/build/nsXPComInit.cpp
-+++ b/xpcom/build/nsXPComInit.cpp
-@@ -462,35 +462,35 @@ NS_InitXPCOM2(nsIServiceManager* *result
- nsDirectoryService::gService->Set(NS_XPCOM_LIBRARY_FILE, xpcomLib);
- }
-
- if (appFileLocationProvider) {
- rv = nsDirectoryService::gService->RegisterProvider(appFileLocationProvider);
- if (NS_FAILED(rv)) return rv;
- }
-
--#ifdef MOZ_OMNIJAR
- NS_TIME_FUNCTION_MARK("Next: Omnijar init");
-
-- if (!mozilla::OmnijarPath()) {
-- nsCOMPtr<nsILocalFile> omnijar;
-+ if (!mozilla::Omnijar::IsInitialized()) {
-+ nsCOMPtr<nsILocalFile> greDir, appDir;
- nsCOMPtr<nsIFile> file;
-
-- rv = NS_ERROR_FAILURE;
- nsDirectoryService::gService->Get(NS_GRE_DIR,
- NS_GET_IID(nsIFile),
- getter_AddRefs(file));
-- if (file)
-- rv = file->Append(NS_LITERAL_STRING("omni.jar"));
-- if (NS_SUCCEEDED(rv))
-- omnijar = do_QueryInterface(file);
-- if (NS_SUCCEEDED(rv))
-- mozilla::SetOmnijar(omnijar);
-+ greDir = do_QueryInterface(file);
-+
-+ nsDirectoryService::gService->Get(NS_XPCOM_CURRENT_PROCESS_DIR,
-+ NS_GET_IID(nsIFile),
-+ getter_AddRefs(file));
-+ appDir = do_QueryInterface(file);
-+
-+ rv = mozilla::Omnijar::SetBase(greDir, appDir);
-+ NS_ENSURE_SUCCESS(rv, rv);
- }
--#endif
-
- #ifdef MOZ_IPC
- if ((sCommandLineWasInitialized = !CommandLine::IsInitialized())) {
- NS_TIME_FUNCTION_MARK("Next: IPC command line init");
-
- #ifdef OS_WIN
- CommandLine::Init(0, nsnull);
- #else
-@@ -769,18 +769,16 @@ ShutdownXPCOM(nsIServiceManager* servMgr
- sCommandLineWasInitialized = false;
- }
- if (sExitManager) {
- delete sExitManager;
- sExitManager = nsnull;
- }
- #endif
-
--#ifdef MOZ_OMNIJAR
-- mozilla::SetOmnijar(nsnull);
--#endif
-+ mozilla::Omnijar::SetBase(nsnull, nsnull);
-
- NS_LogTerm();
-
- return NS_OK;
- }
-
- } // namespace mozilla
-diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp
---- a/xpcom/components/nsComponentManager.cpp
-+++ b/xpcom/components/nsComponentManager.cpp
-@@ -175,18 +175,16 @@ NS_DEFINE_CID(kCategoryManagerCID, NS_CA
- #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) \
- NS_TIME_FUNCTION_MIN_FMT(5, "%s (line %d) (contractid: %s)", MOZ_FUNCTION_NAME, \
- __LINE__, (cid))
- #else
- #define COMPMGR_TIME_FUNCTION_CID(cid) do {} while (0)
- #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) do {} while (0)
- #endif
-
--#define kOMNIJAR_PREFIX NS_LITERAL_CSTRING("resource:///")
--
- nsresult
- nsGetServiceFromCategory::operator()(const nsIID& aIID, void** aInstancePtr) const
- {
- nsresult rv;
- nsXPIDLCString value;
- nsCOMPtr<nsICategoryManager> catman;
- nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager;
- if (!compMgr) {
-@@ -390,47 +388,44 @@ nsresult nsComponentManagerImpl::Init()
-
- nsCategoryManager::GetSingleton()->SuppressNotifications(true);
-
- RegisterModule(&kXPCOMModule, NULL);
-
- for (PRUint32 i = 0; i < sStaticModules->Length(); ++i)
- RegisterModule((*sStaticModules)[i], NULL);
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarPath()) {
-- nsCOMPtr<nsIZipReader> omnijarReader = new nsJAR();
-- rv = omnijarReader->Open(mozilla::OmnijarPath());
-- if (NS_SUCCEEDED(rv))
-- RegisterJarManifest(omnijarReader, "chrome.manifest", false);
-+ nsCOMPtr<nsIFile> appOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::APP);
-+ if (appOmnijar) {
-+ cl = sModuleLocations->InsertElementAt(1); // Insert after greDir
-+ cl->type = NS_COMPONENT_LOCATION;
-+ cl->location = do_QueryInterface(appOmnijar);
-+ cl->jar = true;
- }
--#endif
-+ nsCOMPtr<nsIFile> greOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::GRE);
-+ if (greOmnijar) {
-+ cl = sModuleLocations->InsertElementAt(0);
-+ cl->type = NS_COMPONENT_LOCATION;
-+ cl->location = do_QueryInterface(greOmnijar);
-+ cl->jar = true;
-+ }
-
- for (PRUint32 i = 0; i < sModuleLocations->Length(); ++i) {
- ComponentLocation& l = sModuleLocations->ElementAt(i);
- if (!l.jar) {
- RegisterManifestFile(l.type, l.location, false);
- continue;
- }
-
- nsCOMPtr<nsIZipReader> reader = do_CreateInstance(kZipReaderCID, &rv);
- rv = reader->Open(l.location);
- if (NS_SUCCEEDED(rv))
- RegisterJarManifest(reader, "chrome.manifest", false);
- }
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarPath()) {
-- cl = sModuleLocations->InsertElementAt(0);
-- cl->type = NS_COMPONENT_LOCATION;
-- cl->location = mozilla::OmnijarPath();
-- cl->jar = true;
-- }
--#endif
--
- nsCategoryManager::GetSingleton()->SuppressNotifications(false);
-
- mStatus = NORMAL;
-
- return NS_OK;
- }
-
- void
-# HG changeset patch
-# Parent ff1b810f78226d7f4010909d3cde05a57fdcf20c
-Bug 620931 part 4 - Fix resource://app/ to always point to the same as resource:///
-
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -74,16 +74,17 @@ static nsResProtocolHandler *gResHandler
- // set NSPR_LOG_FILE=log.txt
- //
- // this enables PR_LOG_ALWAYS level information and places all output in
- // the file log.txt
- //
- static PRLogModuleInfo *gResLog;
- #endif
-
-+#define kAPP NS_LITERAL_CSTRING("app")
- #define kGRE NS_LITERAL_CSTRING("gre")
-
- //----------------------------------------------------------------------------
- // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
- //----------------------------------------------------------------------------
-
- nsresult
- nsResURL::EnsureFile()
-@@ -179,16 +180,22 @@ nsResProtocolHandler::Init()
- nsCOMPtr<nsIURI> uri;
- rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
- NS_ENSURE_SUCCESS(rv, rv);
-
- rv = SetSubstitution(EmptyCString(), uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
-+ // make resource://app/ point to the application directory or omnijar
-+ //
-+ rv = SetSubstitution(kAPP, uri);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ //
- // make resource://gre/ point to the GRE directory
- //
- if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
- rv = NS_NewURI(getter_AddRefs(uri), greURI);
- NS_ENSURE_SUCCESS(rv, rv);
- }
-
- rv = SetSubstitution(kGRE, uri);
-diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
---- a/toolkit/xre/nsXREDirProvider.cpp
-+++ b/toolkit/xre/nsXREDirProvider.cpp
-@@ -300,19 +300,16 @@ nsXREDirProvider::GetFile(const char* aP
- }
- }
- else if (!strcmp(aProperty, XRE_EXECUTABLE_FILE) && gArgv[0]) {
- nsCOMPtr<nsILocalFile> lf;
- rv = XRE_GetBinaryPath(gArgv[0], getter_AddRefs(lf));
- if (NS_SUCCEEDED(rv))
- file = lf;
- }
-- else if (!strcmp(aProperty, "resource:app")) {
-- rv = GetAppDir()->Clone(getter_AddRefs(file));
-- }
-
- else if (!strcmp(aProperty, NS_APP_PROFILE_DIR_STARTUP) && mProfileDir) {
- return mProfileDir->Clone(aFile);
- }
- else if (!strcmp(aProperty, NS_APP_PROFILE_LOCAL_DIR_STARTUP)) {
- if (mProfileLocalDir)
- return mProfileLocalDir->Clone(aFile);
-
-# HG changeset patch
-# Parent 7d2228db71a299afca60babff632a967d2d6c456
-Bug 620931 part 5 - Enable omni.jar by default on xulrunner
-
-diff --git a/xulrunner/confvars.sh b/xulrunner/confvars.sh
---- a/xulrunner/confvars.sh
-+++ b/xulrunner/confvars.sh
-@@ -36,15 +36,16 @@
- #
- # ***** END LICENSE BLOCK *****
-
- MOZ_APP_NAME=xulrunner
- MOZ_APP_DISPLAYNAME=XULRunner
- MOZ_UPDATER=1
- MOZ_XULRUNNER=1
- MOZ_ENABLE_LIBXUL=1
-+MOZ_CHROME_FILE_FORMAT=omni
- MOZ_STATIC_BUILD_UNSUPPORTED=1
- MOZ_APP_VERSION=$MOZILLA_VERSION
- if test "$MOZ_STORAGE"; then
- MOZ_PLACES=1
- fi
- MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
- MOZ_URL_CLASSIFIER=1
diff --git a/community-staging/xulrunner-oss/xulrunner-version.patch b/community-staging/xulrunner-oss/xulrunner-version.patch
deleted file mode 100644
index 8e81b23ea..000000000
--- a/community-staging/xulrunner-oss/xulrunner-version.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
---- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 01:58:19.663360705 -0800
-@@ -44,6 +44,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+MOZ_APP_VERSION="2.0"
-+
- NO_PKG_FILES = \
- xulrunner-config \
- regchrome* \
diff --git a/community-staging/yaz/PKGBUILD b/community-staging/yaz/PKGBUILD
deleted file mode 100644
index bf42c005f..000000000
--- a/community-staging/yaz/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 48643 2011-06-03 16:57:46Z stephane $
-# Maintainer: Ray Rashif <schiv@archlinux.org>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
-# Contributor: William Rea <sillywilly@gmail.com>
-# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
-
-pkgname=yaz
-pkgver=4.1.7
-pkgrel=2
-pkgdesc="A toolkit supporting the development of Z39.50/SRW/SRU clients and servers"
-arch=('i686' 'x86_64')
-license=('BSD')
-url="http://www.indexdata.dk/yaz"
-depends=('openssl' 'libxslt' 'icu')
-options=('!libtool')
-source=("http://ftp.indexdata.dk/pub/$pkgname/$pkgname-$pkgver.tar.gz")
-md5sums=('d4b94fc70bfc105fc034c4b51b7b5cae')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- ./configure --prefix=/usr \
- --enable-shared=yaz \
- --with-openssl=/usr
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
-
- make DESTDIR="$pkgdir/" install
-
- install -Dm644 LICENSE \
- "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/community-testing/perl-digest-md5/PKGBUILD b/community-testing/perl-digest-md5/PKGBUILD
deleted file mode 100644
index c0d7a1512..000000000
--- a/community-testing/perl-digest-md5/PKGBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id: PKGBUILD 48561 2011-06-02 06:48:37Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Ashok `ScriptDevil` Gautham <ScriptDevil@gmail.com>
-
-pkgname=perl-digest-md5
-pkgver=2.51
-pkgrel=2
-pkgdesc="Digest::MD5::Perl - Perl implementation of Ron Rivests MD5 Algorithm"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/dist/Digest-MD5"
-license=('GPL' 'PerlArtistic')
-depends=('perl>=5.10.0')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-MD5-$pkgver.tar.gz)
-md5sums=('73967d50b9d19990a1d609fe2b1e36c3')
-
-build() {
- cd "$srcdir/Digest-MD5-$pkgver"
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-package() {
- cd "$srcdir/Digest-MD5-$pkgver"
- make install DESTDIR="$pkgdir/"
- # remove perllocal.pod and .packlist
- find "$pkgdir" -name perllocal.pod -delete
- find "$pkgdir" -name .packlist -delete
-}
diff --git a/community/abuse/PKGBUILD b/community/abuse/PKGBUILD
deleted file mode 100644
index 705a4c446..000000000
--- a/community/abuse/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 46622 2011-05-10 10:00:25Z lfleischer $
-# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
-# Contributor: jlvsimoes <jlvsimoes@oninet.pt>
-# Contributor: kevin <kevin@archlinux.org>
-
-pkgname=abuse
-pkgver=0.8
-pkgrel=1
-pkgdesc='A side-scroller action game that pits you against ruthless alien killers.'
-arch=('i686' 'x86_64')
-url='http://abuse.zoy.org/'
-license=('GPL' 'custom')
-depends=('gcc-libs' 'libgl' 'sdl' 'sdl_mixer')
-install='abuse.install'
-source=("http://abuse.zoy.org/raw-attachment/wiki/download/${pkgname}-${pkgver}.tar.gz")
-md5sums=('ec678b8dc8d00e0382d8c805c6438489')
->>>>>>> 8867b1d4d0601b21618d44d015460739590ca01d
-
-build() {
- cd "${srcdir}/abuse-${pkgver}"
-
- ./configure --prefix=/usr --with-assetdir=/usr/share/abuse/orig --with-x
- make
-}
-
-package() {
- cd "${srcdir}/abuse-${pkgver}"
-
- make DESTDIR="${pkgdir}" install
-
- install -d "${pkgdir}/usr/share/licenses/abuse"
- sed -n '1,/^$/p' src/view.cpp > "${pkgdir}/usr/share/licenses/abuse/orig.code.license"
-}
diff --git a/community/abuse/abuse.install b/community/abuse/abuse.install
deleted file mode 100644
index 4d28ebacd..000000000
--- a/community/abuse/abuse.install
+++ /dev/null
@@ -1,13 +0,0 @@
-# arg 1: the new package version
-post_install() {
-# echo "If you get a BOSS_ANT error trying to run abuse, copy /usr/share/games/abuse/gamma.lsp to ~/.abuse"
- echo "Abuse uses the original game levels by default. To use the frabs levels"
- echo "use '-datadir' or set 'datadir' in the abuserc to /usr/share/abuse/frabs"
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install
-}
-
diff --git a/community/atanks/PKGBUILD b/community/atanks/PKGBUILD
index 561826e5f..6bdf29c51 100644
--- a/community/atanks/PKGBUILD
+++ b/community/atanks/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 42290 2011-03-16 10:36:27Z spupykin $
+# $Id: PKGBUILD 48863 2011-06-06 21:45:37Z tdziedzic $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jacek Poplawski <jacekpoplawski@gmail.com>
# Contributor: Charlie Cox <ccoxiv@yahoo.com>
pkgname=atanks
-pkgver=4.8
+pkgver=5.0
pkgrel=1
pkgdesc="Atomic Tanks"
url="http://atanks.sourceforge.net"
@@ -12,25 +12,32 @@ license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
makedepends=('sed')
depends=('allegro>=4.4.0.1' 'gcc-libs')
-source=(http://downloads.sourceforge.net/project/atanks/atanks/atanks-$pkgver/atanks-$pkgver.tar.gz)
-md5sums=('a00b709f6aec4e0e33ab0d56a6e932e7')
+source=("http://downloads.sourceforge.net/project/atanks/atanks/atanks-${pkgver}/atanks-${pkgver}.tar.gz")
+md5sums=('1978fabfb5ab2c33bd079eb492ee4362')
build() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd atanks-${pkgver}
#debug messages fix
- sed -i '/lines->Display_All(TRUE)/d' src/files.cpp
- sed -i '/Scroll Offset:/d' src/files.cpp
- sed -i '/T offset:/d' src/files.cpp
+ #sed -i '/lines->Display_All(TRUE)/d' src/files.cpp
+ #sed -i '/Scroll Offset:/d' src/files.cpp
+ #sed -i '/T offset:/d' src/files.cpp
#
- sed -i '1,1i#include <sys/stat.h>' src/files.cpp
+ #sed -i '1,1i#include <sys/stat.h>' src/files.cpp
make
+}
+
+package() {
+ cd atanks-${pkgver}
+
make PREFIX=${pkgdir}/usr/ INSTALL="install -c" install
sed -i 's/^Name=atanks/Name=Atomic Tanks/' atanks.desktop
sed -i 's/^Categories=Game;/Categories=Game;StrategyGame;/' atanks.desktop
- install -Dm644 atanks.desktop $pkgdir/usr/share/applications/atanks.desktop
- install -Dm644 atanks.png $pkgdir/usr/share/pixmaps/atanks.png
+ install -Dm644 atanks.desktop \
+ $pkgdir/usr/share/applications/atanks.desktop
+ install -Dm644 atanks.png \
+ $pkgdir/usr/share/pixmaps/atanks.png
}
diff --git a/community/calibre/PKGBUILD b/community/calibre/PKGBUILD
index 7d368870d..5ad10d94b 100644
--- a/community/calibre/PKGBUILD
+++ b/community/calibre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 48179 2011-05-29 13:13:23Z giovanni $
+# $Id: PKGBUILD 48634 2011-06-03 16:47:30Z stephane $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Petrov Roman <nwhisper@gmail.com>
# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
pkgname=calibre
pkgver=0.8.3
-pkgrel=1
+pkgrel=2
pkgdesc="Ebook management application"
arch=('i686' 'x86_64')
url="http://calibre-ebook.com/"
diff --git a/community/couchdb/PKGBUILD b/community/couchdb/PKGBUILD
index 43a6fbc75..7af150b48 100644
--- a/community/couchdb/PKGBUILD
+++ b/community/couchdb/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 44051 2011-04-01 20:08:22Z spupykin $
+# $Id: PKGBUILD 48868 2011-06-06 21:47:32Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua
# Previous Contributor: Michael Fellinger <m.fellinger@gmail.com>
pkgname=couchdb
-pkgver=1.0.2
-pkgrel=2
+pkgver=1.1.0
+pkgrel=1
pkgdesc="A document-oriented database that can be queried and indexed in a MapReduce fashion using JSON"
arch=('i686' 'x86_64' 'mips64el')
url="http://couchdb.apache.org"
@@ -19,22 +19,26 @@ backup=('etc/couchdb/local.ini'
'etc/logrotate.d/couchdb')
source=("http://www.apache.org/dist/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz"
"rc-script.patch")
-md5sums=('7ffbbe0f23f672181c89923c9f7a1de1'
+md5sums=('907b763d3a14b6649bf0371ffa75a36b'
'e9b5595338efbdc1a5db13284a296612')
build() {
- cd "$srcdir/apache-$pkgname-$pkgver"
+ cd "$srcdir/apache-$pkgname-$pkgver"
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
- make
- patch etc/init/couchdb <$srcdir/rc-script.patch
- make DESTDIR="$pkgdir" install
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+ patch etc/init/couchdb <$srcdir/rc-script.patch
+}
+
+package() {
+ cd "$srcdir/apache-$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
- install -Dm755 etc/default/couchdb $pkgdir/etc/conf.d/couchdb
- sed -i 's|\(CONFIGURATION_FILE=/etc/\)default\(/couchdb\)|\1conf.d\2|' $pkgdir/etc/rc.d/couchdb
- sed -i 's|\(COUCHDB_OPTIONS=\)|\1"-p /var/run/couchdb/couchdb.pid"|' $pkgdir/etc/conf.d/couchdb
- sed -i 's|$COUCHDB -s|$COUCHDB $COUCHDB_OPTIONS -s|' $pkgdir/etc/rc.d/couchdb
- sed -i 's|su $COUCHDB_USER -c|su $COUCHDB_USER -s /bin/bash -c|' $pkgdir/etc/rc.d/couchdb
+ install -Dm755 etc/default/couchdb $pkgdir/etc/conf.d/couchdb
+ sed -i 's|\(CONFIGURATION_FILE=/etc/\)default\(/couchdb\)|\1conf.d\2|' $pkgdir/etc/rc.d/couchdb
+ sed -i 's|\(COUCHDB_OPTIONS=\)|\1"-p /var/run/couchdb/couchdb.pid"|' $pkgdir/etc/conf.d/couchdb
+ sed -i 's|$COUCHDB -s|$COUCHDB $COUCHDB_OPTIONS -s|' $pkgdir/etc/rc.d/couchdb
+ sed -i 's|su $COUCHDB_USER -c|su $COUCHDB_USER -s /bin/bash -c|' $pkgdir/etc/rc.d/couchdb
- rm -rf $pkgdir/etc/default/ $pkgdir/var/run
+ rm -rf $pkgdir/etc/default/ $pkgdir/var/run
}
diff --git a/community/cppunit/PKGBUILD b/community/cppunit/PKGBUILD
deleted file mode 100644
index 44dfad9b1..000000000
--- a/community/cppunit/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id: PKGBUILD 16187 2010-04-26 10:05:11Z andrea $
-# Maintainer:
-# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
-
-pkgname=cppunit
-pkgver=1.12.1
-pkgrel=2
-pkgdesc="A C++ unit testing framework"
-arch=('i686' 'x86_64' 'mips64el')
-url="http://cppunit.sourceforge.net"
-license=('LGPL')
-depends=('sh' 'gcc-libs')
-makedepends=('gcc')
-options=('!libtool')
-source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
- 'gcc4.5.patch')
-md5sums=('bd30e9cf5523cdfc019b94f5e1d7fd19'
- '7f4e3b50fa1ee8bc854ab431848dddec')
-
-build() {
- cd ${srcdir}/$pkgname-$pkgver
- patch -Np1 -i ${srcdir}/gcc4.5.patch
- autoreconf
- libtoolize -f
- ./configure --prefix=/usr
- make || return 1
-}
-
-package() {
- cd ${srcdir}/$pkgname-$pkgver
- make DESTDIR=${pkgdir} install || return 1
-}
diff --git a/community/cppunit/gcc4.5.patch b/community/cppunit/gcc4.5.patch
deleted file mode 100644
index 86d4a424d..000000000
--- a/community/cppunit/gcc4.5.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- cppunit-1.12.1.orig/src/cppunit/Makefile.am
-+++ cppunit-1.12.1/src/cppunit/Makefile.am
-@@ -63,5 +63,11 @@
-
- libcppunit_la_LDFLAGS= \
- -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-- -release $(LT_RELEASE)
-+ -release $(LT_RELEASE) @LIBADD_DL@
-
-+TESTS = t_link
-+
-+check_PROGRAMS = t_link
-+
-+t_link_SOURCES = t_link.cpp
-+t_link_LDADD = libcppunit.la
diff --git a/community/dar/PKGBUILD b/community/dar/PKGBUILD
index 792a6871d..79dc0b56a 100644
--- a/community/dar/PKGBUILD
+++ b/community/dar/PKGBUILD
@@ -1,16 +1,18 @@
-# $Id: PKGBUILD 42079 2011-03-13 09:21:39Z shusmann $
+# $Id: PKGBUILD 48698 2011-06-05 04:47:47Z shusmann $
# Contributor: Aaron Schaefer <aaron@elasticdog.com>
# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
pkgname=dar
-pkgver=2.3.11
+pkgver=2.4.0
pkgrel=1
pkgdesc='A full featured command-line backup tool, short for Disk ARchive'
arch=('i686' 'x86_64' 'mips64el')
url='http://dar.linux.free.fr/'
license=('GPL')
-depends=('attr' 'bzip2' 'gcc-libs' 'openssl' 'zlib')
+depends=('bzip2' 'lzo2' 'libgcrypt')
+optdepends=('perl: for running some samples')
source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
-md5sums=('5f8766f50069faf0a915e691372e56f8')
+md5sums=('1e0e02d3c90cdaaaf2850eff25599fba')
+options=('!libtool')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/dwdiff/PKGBUILD b/community/dwdiff/PKGBUILD
index 78a27c3f2..be3c974d1 100644
--- a/community/dwdiff/PKGBUILD
+++ b/community/dwdiff/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 40270 2011-02-22 18:14:28Z spupykin $
+# $Id: PKGBUILD 48640 2011-06-03 16:55:04Z stephane $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=dwdiff
pkgver=1.9
-pkgrel=1
+pkgrel=2
pkgdesc="a front-end for the diff program that operates at the word level instead of the line level"
arch=('i686' 'x86_64' 'mips64el')
url="http://os.ghalkes.nl/dwdiff.html"
@@ -13,8 +13,12 @@ source=(http://os.ghalkes.nl/dist/$pkgname-$pkgver.tgz)
md5sums=('f483d8d8dab7a972ef21d5096e07fd47')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr
make
- make prefix=$pkgdir/usr install
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir"/usr install
}
diff --git a/community/ejabberd/PKGBUILD b/community/ejabberd/PKGBUILD
index 51b3637bb..10559993d 100644
--- a/community/ejabberd/PKGBUILD
+++ b/community/ejabberd/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 44013 2011-04-01 16:47:17Z spupykin $
+# $Id: PKGBUILD 48921 2011-06-07 16:36:53Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Jeff 'codemac' Mickey <jeff@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=ejabberd
-pkgver=2.1.6
-pkgrel=2
+pkgver=2.1.8
+pkgrel=1
pkgdesc="An erlang jabber server"
arch=(i686 x86_64 'mips64el')
url="http://www.ejabberd.im/"
@@ -18,7 +18,7 @@ install=ejabberd.install
source=(http://www.process-one.net/downloads/ejabberd/${pkgver/_/-}/ejabberd-${pkgver}.tar.gz \
ejabberd \
ejabberd.logrotate)
-md5sums=('f5a41edee2204c414150075331ced506'
+md5sums=('d7dae7e5a7986c5ad71beac2798cc406'
'd2ed73bc83b7f0e423a3fd7fdf1b43d6'
'f97c8a96160f30e0aecc9526c12e6606')
@@ -28,6 +28,10 @@ build() {
sed -i "s|EJABBERDDIR = \$(DESTDIR)@prefix@/var/lib/ejabberd|EJABBERDDIR = \$(DESTDIR)@prefix@/usr/lib/ejabberd|g" ./Makefile.in
[ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-pam --enable-odbc
make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}/src
make DESTDIR=${pkgdir} install
install -D -m 0755 ${srcdir}/ejabberd ${pkgdir}/etc/rc.d/ejabberd
diff --git a/community/fb-client/PKGBUILD b/community/fb-client/PKGBUILD
index 488ba23de..dcdaaff20 100644
--- a/community/fb-client/PKGBUILD
+++ b/community/fb-client/PKGBUILD
@@ -1,6 +1,6 @@
# Maintainer: Florian "Bluewind" Pritz <flo@xssn.at>
pkgname=fb-client
-pkgver=0.7.3
+pkgver=0.8
pkgrel=1
pkgdesc="Client for paste.xinu.at"
arch=('i686' 'x86_64' 'mips64el')
@@ -9,6 +9,7 @@ license=('GPL3')
depends=('curl')
optdepends=('xclip: for automatically copying the URL into the clipboard')
source=(http://paste.xinu.at/data/client/fb-$pkgver.tar.gz)
+md5sums=('d7d1edb2d6fc22004bad8a10392c2f7d')
build() {
cd "$srcdir/fb-$pkgver"
@@ -20,8 +21,6 @@ package() {
cd "$srcdir/fb-$pkgver"
make DESTDIR="$pkgdir" install
- install -Dm644 COPYING "$pkgdir/usr/share/licenses/fb/COPYING"
}
# vim:set ts=2 sw=2 et:
-md5sums=('eca03932db65d02a8e69e25224f14599')
diff --git a/community/fotoxx/PKGBUILD b/community/fotoxx/PKGBUILD
index 8703c0fea..3c7e384f8 100644
--- a/community/fotoxx/PKGBUILD
+++ b/community/fotoxx/PKGBUILD
@@ -1,30 +1,29 @@
# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
pkgname=fotoxx
-pkgver=11.05.1
+pkgver=11.06
pkgrel=1
pkgdesc="A program for improving image files made with a digital camera"
url="http://kornelix.squarespace.com/fotoxx"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL3')
-depends=('gimp-ufraw' 'perl-exiftool' 'xdg-utils')
+depends=('gimp-ufraw' 'perl-exiftool' 'xdg-utils' 'desktop-file-utils')
optdepends=('mashup: for printing from within fotoxx' 'brasero: for burning')
source=("http://kornelix.squarespace.com/storage/downloads/$pkgname-$pkgver.tar.gz")
-md5sums=('27e1501ec6426286bc1da935fd2fa7e9')
-replaces=('fotox')
+md5sums=('e636e10f6a46f0a813e704f18eac3176')
+install=fotoxx.install
build() {
cd $srcdir/$pkgname-$pkgver
make PREFIX=/usr \
CFLAGS+="-c `pkg-config --cflags gtk+-2.0`" \
LFLAGS+="`pkg-config --libs gtk+-2.0 gthread-2.0`"
- sed -i '8,9d' data/desktop
+ sed -i 's+^# ++' data/desktop
}
package() {
cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir PREFIX=/usr install
+ rm $pkgdir/usr/share/applications/kornelix-$pkgname.desktop
install -Dm644 data/desktop \
- $pkgdir/usr/share/applications/$pkgname.desktop
- make MENUFILE1=$pkgdir/usr/share/applications/$pkgname.desktop \
- DESTDIR=$pkgdir PREFIX=/usr install
-rm $pkgdir/usr/share/applications/kornelix-$pkgname.desktop
+ $pkgdir/usr/share/applications/$pkgname.desktop
}
diff --git a/community/fotoxx/fotoxx.install b/community/fotoxx/fotoxx.install
index 03d1a4eaf..90156a79c 100644
--- a/community/fotoxx/fotoxx.install
+++ b/community/fotoxx/fotoxx.install
@@ -1,17 +1,9 @@
post_install() {
- echo "Adding desktop file"
- echo "[Desktop Entry]" > /usr/share/applications/fotoxx.desktop
- echo "Name=fotoxx" >> /usr/share/applications/fotoxx.desktop
- echo "Categories=Graphics" >> /usr/share/applications/fotoxx.desktop
- echo "Type=Application" >> /usr/share/applications/fotoxx.desktop
- echo "Terminal=false" >> /usr/share/applications/fotoxx.desktop
- echo "Exec=/usr/bin/fotoxx" >> /usr/share/applications/fotoxx.desktop
- echo "Icon=/usr/share/icons/fotoxx.png" >> /usr/share/applications/fotoxx.desktop
- echo "GenericName=Digital Photo Editor" >> /usr/share/applications/fotoxx.desktop
+ update-desktop-database -q
}
post_update() {
- post_install
+ update-desktop-database -q
}
-pre_remove() {
- [ -f /usr/share/applications/fotoxx.desktop ] && rm /usr/share/applications/fotoxx.desktop
+post_remove() {
+ update-desktop-database -q
}
diff --git a/community/gnustep-base/PKGBUILD b/community/gnustep-base/PKGBUILD
index 7839af753..f217b2504 100644
--- a/community/gnustep-base/PKGBUILD
+++ b/community/gnustep-base/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 45211 2011-04-18 12:45:17Z spupykin $
+# $Id: PKGBUILD 48665 2011-06-03 22:32:57Z stephane $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: Sebastian Sareyko <public@nooms.de>
pkgname=gnustep-base
pkgver=1.22.0
-pkgrel=1
+pkgrel=2
pkgdesc="The GNUstep base package"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.gnustep.org/"
@@ -19,12 +19,16 @@ source=(ftp://ftp.gnustep.org/pub/gnustep/core/$pkgname-$pkgver.tar.gz)
md5sums=('7faab4891ae6c1e7a6c806d6da368410')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd "$srcdir/$pkgname-$pkgver"
source /etc/profile.d/GNUstep.sh
./configure --prefix=/usr --sysconfdir=/etc/GNUstep --with-ffi-include=/usr/lib/libffi-3.0.9/include/
# fix file ownership
sed -i 's/tar -xf $(TIMEZONE_ARCHIVE);/tar -xf $(TIMEZONE_ARCHIVE);chown -R root:root * ;/' NSTimeZones/Makefile.postamble
make VERBOSE=1
- make DESTDIR=$pkgdir install
- chown -R root.root $pkgdir/
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ chown -R root.root "$pkgdir/"
}
diff --git a/community/goldendict/PKGBUILD b/community/goldendict/PKGBUILD
index 4abaf32a9..10a54a374 100644
--- a/community/goldendict/PKGBUILD
+++ b/community/goldendict/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 36565 2011-01-04 21:08:42Z jlichtblau $
+# $Id: PKGBUILD 48628 2011-06-03 15:58:27Z stephane $
# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: m0rph <m0rph.mailbox@gmail.com>
pkgname=goldendict
pkgver=1.0.1
-pkgrel=2
+pkgrel=3
pkgdesc="Feature-rich dictionary lookup program"
arch=('i686' 'x86_64' 'mips64el')
url="http://goldendict.berlios.de/"
diff --git a/community/hostapd/PKGBUILD b/community/hostapd/PKGBUILD
index 8af3d64b0..8a9458dd2 100644
--- a/community/hostapd/PKGBUILD
+++ b/community/hostapd/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 48326 2011-05-31 10:29:12Z spupykin $
+# $Id: PKGBUILD 48888 2011-06-07 11:05:59Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
_madwifiver=0.9.4.4133
pkgname=hostapd
pkgver=0.7.3
-pkgrel=4
+pkgrel=5
pkgdesc="daemon for wireless software access points"
arch=('i686' 'x86_64' 'mips64el')
url="http://hostap.epitest.fi/hostapd/"
@@ -14,7 +14,16 @@ makedepends=('svn')
provides=('hostapd')
conflicts=('hostapd')
backup=('etc/hostapd/hostapd.conf'
- 'etc/conf.d/hostapd')
+ 'etc/conf.d/hostapd'
+ 'etc/hostapd/hlr_auc_gw.milenage_db'
+ 'etc/hostapd/hostapd.accept'
+ 'etc/hostapd/hostapd.deny'
+ 'etc/hostapd/hostapd.eap_user'
+ 'etc/hostapd/hostapd.radius_clients'
+ 'etc/hostapd/hostapd.sim_db'
+ 'etc/hostapd/hostapd.vlan'
+ 'etc/hostapd/hostapd.wpa_psk'
+ 'etc/hostapd/wired.conf')
install=hostapd.install
source=(http://hostap.epitest.fi/releases/$pkgname-$pkgver.tar.gz
ftp://ftp.archlinux.org/other/madwifi/madwifi-${_madwifiver}.tar.bz2
diff --git a/community/ibus-qt/PKGBUILD b/community/ibus-qt/PKGBUILD
index 794ac6fdc..9b0a52782 100644
--- a/community/ibus-qt/PKGBUILD
+++ b/community/ibus-qt/PKGBUILD
@@ -1,10 +1,11 @@
+# $Id: PKGBUILD 48593 2011-06-03 07:34:58Z andrea $
# Maintainer: Thomas Dziedzic < gostrc at gmail >
# Contributor: garion < garion @ mailoo.org >
-# Contributor:leemars
+# Contributor: leemars
pkgname=ibus-qt
pkgver=1.3.1
-pkgrel=2
+pkgrel=3
pkgdesc='IBus qt library and IBus qt input method plugin'
arch=('i686' 'x86_64' 'mips64el')
license=('LGPL')
@@ -15,15 +16,16 @@ source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}-Source.tar.gz")
md5sums=('769e8872ca8a59327b2073ce2f142589')
build() {
- cd ${pkgname}-${pkgver}-Source
-
- cmake -DCMAKE_INSTALL_PREFIX=/usr -Wno-dev
-
+ cd "${srcdir}"
+ mkdir build
+ cd build
+
+ cmake ../${pkgname}-${pkgver}-Source \
+ -DCMAKE_INSTALL_PREFIX=/usr
make
}
package() {
- cd ${pkgname}-${pkgver}-Source
-
- make DESTDIR=${pkgdir} install
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
}
diff --git a/community/icon-slicer/PKGBUILD b/community/icon-slicer/PKGBUILD
deleted file mode 100644
index fc29352af..000000000
--- a/community/icon-slicer/PKGBUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# $Id: PKGBUILD 5685 2009-11-14 10:50:07Z ibiru $
-# Contributor: William Rea <sillywilly@gmail.com>
-pkgname=icon-slicer
-pkgver=0.3
-pkgrel=3
-pkgdesc="A utility for generating icon themes and libXcursor cursor themes"
-arch=('i686' 'x86_64' 'mips64el')
-url="http://freedesktop.org/wiki/Software/icon-slicer"
-license=("GPL")
-depends=('gtk2' 'popt')
-source=(http://freedesktop.org/software/$pkgname/releases/icon-slicer-$pkgver.tar.gz)
-md5sums=('5c5374d4f265b0abe4daef1d03f87104')
-
-build() {
- cd $startdir/src/icon-slicer-$pkgver
- ./configure --prefix=/usr
- make || return 1
- make DESTDIR=$startdir/pkg install
-}
diff --git a/community/libfbclient/PKGBUILD b/community/libfbclient/PKGBUILD
index 1b19e605c..b3f1f9b02 100755
--- a/community/libfbclient/PKGBUILD
+++ b/community/libfbclient/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 37821 2011-01-18 09:28:10Z lcarlier $
+# $Id: PKGBUILD 48689 2011-06-04 20:28:04Z lcarlier $
# Maintainer: Carlier Laurent <lordheavym@gmail.com>
# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
pkgname=libfbclient
pkgver=2.5.0.26074
-pkgrel=2
+pkgrel=3
pkgdesc="Client library for Firebird."
arch=('i686' 'x86_64' 'mips64el')
url="http://www.firebirdsql.org/"
diff --git a/community/libmicrohttpd/PKGBUILD b/community/libmicrohttpd/PKGBUILD
index 08c0b1322..f79669d29 100644
--- a/community/libmicrohttpd/PKGBUILD
+++ b/community/libmicrohttpd/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 45868 2011-04-30 09:25:16Z spupykin $
+# $Id: PKGBUILD 47393 2011-05-22 11:59:43Z jelle $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Norberto Lopes <shelika@mail.telepac.pt>
# Contributor: Kao Dome <kaodome@gmail.com>
@@ -6,7 +6,7 @@
# Contributor: Mathias Rohnstock <linksoft@gmx.de>
pkgname=libmicrohttpd
-pkgver=0.9.10
+pkgver=0.9.11
pkgrel=1
pkgdesc="a small C library that is supposed to make it easy to run an HTTP server as part of another application."
arch=('i686' 'x86_64' 'mips64el')
@@ -16,7 +16,7 @@ options=('!libtool')
depends=('gnutls')
install=libmicrohttpd.install
source=(ftp://ftp.gnu.org/gnu/libmicrohttpd/$pkgname-$pkgver.tar.gz)
-md5sums=('7cc44373fe1b03348510755839091578')
+md5sums=('69b97b11437e53863e92d5f0221f339b')
build() {
cd ${pkgname}-${pkgver}
diff --git a/community/libraw/PKGBUILD b/community/libraw/PKGBUILD
index 7476fdd31..1e4ff5faf 100644
--- a/community/libraw/PKGBUILD
+++ b/community/libraw/PKGBUILD
@@ -1,9 +1,11 @@
-# $Id: PKGBUILD 41732 2011-03-08 17:21:40Z ibiru $
+# $Id: PKGBUILD 48795 2011-06-05 19:15:38Z bfanella $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
+
pkgname=libraw
_pkgbasename=LibRaw
-pkgver=0.13.2
+pkgver=0.13.5
pkgrel=1
pkgdesc="A library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others)"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,16 +14,17 @@ license=('CDDL' 'LGPL' 'custom')
depends=('lcms')
options=('!makeflags')
source=(http://www.libraw.org/data/${_pkgbasename}-${pkgver}.tar.gz)
-md5sums=('e92895f6b8f975be63f59448c1b8a79b')
+md5sums=('bf6894f6a60b411da012f58a0954e910')
build() {
- cd ${srcdir}/${_pkgbasename}-${pkgver}
- ./configure --prefix=/usr
- make
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
}
package() {
- cd ${srcdir}/${_pkgbasename}-${pkgver}
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
- make DESTDIR=${pkgdir} install
+ make DESTDIR=${pkgdir} install
}
diff --git a/community/libvirt/PKGBUILD b/community/libvirt/PKGBUILD
index 96d77eb23..5ab7903be 100644
--- a/community/libvirt/PKGBUILD
+++ b/community/libvirt/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 46367 2011-05-06 10:37:16Z spupykin $
+# $Id: PKGBUILD 48842 2011-06-06 14:43:46Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jonathan Wiersma <archaur at jonw dot org>
pkgname=libvirt
-pkgver=0.9.1
+pkgver=0.9.2
pkgrel=1
pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)"
arch=('i686' 'x86_64' 'mips64el')
@@ -37,10 +37,10 @@ source=("http://libvirt.org/sources/$pkgname-$pkgver.tar.gz"
openbsd-netcat-default.patch
unixperms.patch
yajl-2.x.patch)
-md5sums=('4182dbe290cca4344a5387950dc06433'
+md5sums=('a9f974e173471a9c9b381ad1e93642b0'
'018d97dafc0049075fba6f2850f17a12'
'3ed0e24f5b5e25bf553f5427d64915e6'
- '7d5a841d51321be56ad3c4f93d112fb0'
+ '1c151434af552b8a30fe87d21ef5d783'
'db95aecdf2ccf3693fef5821cdcb7eba'
'5745bb8d0b254abb7a3528c66e03b0f9')
@@ -62,7 +62,7 @@ build() {
[ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir"/openbsd-netcat-default.patch
# fixes for yajl 2.0 API changes
- [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir/yajl-2.x.patch"
+# [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir/yajl-2.x.patch"
export LDFLAGS=-lX11
[ -f Makefile ] || ./configure --prefix=/usr --libexec=/usr/lib/"$pkgname" \
diff --git a/community/libvirt/openbsd-netcat-default.patch b/community/libvirt/openbsd-netcat-default.patch
index 382611c74..8a0d9aec8 100644
--- a/community/libvirt/openbsd-netcat-default.patch
+++ b/community/libvirt/openbsd-netcat-default.patch
@@ -1,24 +1,24 @@
-diff -wbBur libvirt-0.9.0/src/qemu/qemu_migration.c libvirt-0.9.0.my/src/qemu/qemu_migration.c
---- libvirt-0.9.0/src/qemu/qemu_migration.c 2011-03-29 14:18:53.000000000 +0000
-+++ libvirt-0.9.0.my/src/qemu/qemu_migration.c 2011-04-04 14:34:43.000000000 +0000
-@@ -819,7 +819,7 @@
+diff -wbBur libvirt-0.9.2/src/qemu/qemu_migration.c libvirt-0.9.2.my/src/qemu/qemu_migration.c
+--- libvirt-0.9.2/src/qemu/qemu_migration.c 2011-06-06 06:47:32.000000000 +0400
++++ libvirt-0.9.2.my/src/qemu/qemu_migration.c 2011-06-06 18:27:38.000000000 +0400
+@@ -1770,7 +1770,7 @@
+ ret = qemuMonitorMigrateToUnix(priv->mon, background_flags,
unixfile);
- }
- else if (qemuCapsGet(qemuCaps, QEMU_CAPS_MIGRATE_QEMU_EXEC)) {
+ } else if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATE_QEMU_EXEC)) {
- const char *args[] = { "nc", "-U", unixfile, NULL };
+ const char *args[] = { "nc.openbsd", "-U", unixfile, NULL };
- internalret = qemuMonitorMigrateToCommand(priv->mon, QEMU_MONITOR_MIGRATE_BACKGROUND, args);
+ ret = qemuMonitorMigrateToCommand(priv->mon, QEMU_MONITOR_MIGRATE_BACKGROUND, args);
} else {
- internalret = -1;
-diff -wbBur libvirt-0.9.0/src/remote/remote_driver.c libvirt-0.9.0.my/src/remote/remote_driver.c
---- libvirt-0.9.0/src/remote/remote_driver.c 2011-03-29 12:57:01.000000000 +0000
-+++ libvirt-0.9.0.my/src/remote/remote_driver.c 2011-04-04 14:34:23.000000000 +0000
-@@ -777,7 +777,7 @@
- cmd_argv[j++] = strdup ("none");
+ ret = -1;
+diff -wbBur libvirt-0.9.2/src/remote/remote_driver.c libvirt-0.9.2.my/src/remote/remote_driver.c
+--- libvirt-0.9.2/src/remote/remote_driver.c 2011-06-06 04:15:12.000000000 +0400
++++ libvirt-0.9.2.my/src/remote/remote_driver.c 2011-06-06 18:27:52.000000000 +0400
+@@ -774,7 +774,7 @@
+ virCommandAddArgList(cmd, "-T", "-o", "BatchMode=yes", "-e",
+ "none", NULL);
}
- cmd_argv[j++] = strdup (priv->hostname);
-- cmd_argv[j++] = strdup (netcat ? netcat : "nc");
-+ cmd_argv[j++] = strdup (netcat ? netcat : "nc.openbsd");
- cmd_argv[j++] = strdup ("-U");
- cmd_argv[j++] = strdup (sockname ? sockname :
- (flags & VIR_CONNECT_RO
+- virCommandAddArgList(cmd, priv->hostname, netcat ? netcat : "nc",
++ virCommandAddArgList(cmd, priv->hostname, netcat ? netcat : "nc.openbsd",
+ "-U", (sockname ? sockname :
+ (flags & VIR_CONNECT_RO
+ ? LIBVIRTD_PRIV_UNIX_SOCKET_RO
diff --git a/community/luaexpat/PKGBUILD b/community/luaexpat/PKGBUILD
index 9a9fb1960..a69a617b8 100644
--- a/community/luaexpat/PKGBUILD
+++ b/community/luaexpat/PKGBUILD
@@ -1,22 +1,28 @@
# Contributor: Lucas Hermann Negri <kkndrox@gmail.com>
-pkgname='luaexpat'
-pkgver='1.1'
-pkgrel='3'
+
+pkgname=luaexpat
+pkgver=1.2.0
+pkgrel=1
pkgdesc='LuaExpat is a SAX XML parser based on the Expat library. LuaExpat is free software and uses the same license as Lua 5.0.'
-arch=('i686' 'x86_64' 'mips64el')
-url='http://luaforge.net/projects/luaexpat/'
+arch=('i686' 'x86_64')
+url='http://code.matthewwild.co.uk/lua-expat'
license=('MIT')
makedepends=('gcc' 'lua>=5.1' 'expat>=2')
depends=('lua' 'expat')
-source=(http://luaforge.net/frs/download.php/2469/$pkgname-$pkgver.tar.gz 'newconfig')
-md5sums=('6ecb895ccf5cff1e7f2facd438b1f8d0' 'b89a09379d3e46e6496255e44cecc316')
+source=("http://matthewwild.co.uk/projects/luaexpat/luaexpat-$pkgver.tar.gz"
+ 'newconfig')
+md5sums=('03efe50c7f30a34580701e6527d7bfee'
+ 'b89a09379d3e46e6496255e44cecc316')
build() {
- cd $startdir/src/
- mv newconfig $pkgname-$pkgver/config
- cd $pkgname-$pkgver
- make || return 1
- make DESTDIR=$startdir/pkg install || return 1
- mv usr $startdir/pkg
+ cd $startdir/src/
+ mv newconfig $pkgname-$pkgver/config
+ cd $pkgname-$pkgver
+ make
}
+package() {
+ cd $startdir/src/$pkgname-$pkgver
+ make DESTDIR=$startdir/pkg install
+ mv usr $startdir/pkg
+}
diff --git a/community/luxrays/PKGBUILD b/community/luxrays/PKGBUILD
new file mode 100644
index 000000000..47f1abe5d
--- /dev/null
+++ b/community/luxrays/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 48847 2011-06-06 14:44:47Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=luxrays
+pkgver=0.8
+_pkgver=ed424ec77571
+pkgrel=1
+epoch=0
+pkgdesc="Accelerate the ray intersection process by using GPUs"
+arch=('i686' 'x86_64')
+url="http://www.luxrender.net/"
+license=('GPL')
+depends=('freeimage' 'freeglut' 'glew' 'libgl' 'libcl')
+makedepends=('cmake' 'boost' 'opencl-headers')
+source=(http://src.luxrender.net/luxrays/archive/$_pkgver.tar.bz2)
+md5sums=('32ac9ebd0a4de217fb3362494ce16a8e')
+
+build() {
+ cd "$srcdir/$pkgname-$_pkgver"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$_pkgver"
+
+ install -d -m755 "$pkgdir"/usr/{bin,include,lib}
+ install -m755 bin/* "$pkgdir"/usr/bin
+ install -m644 lib/* "$pkgdir"/usr/lib
+ cp -a include/luxrays "$pkgdir"/usr/include
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/luxrender/PKGBUILD b/community/luxrender/PKGBUILD
index e60fdd628..c7c7ee4a9 100644
--- a/community/luxrender/PKGBUILD
+++ b/community/luxrender/PKGBUILD
@@ -2,30 +2,26 @@
# Initial contributor: flixie <69one@gmx.net>
# Contributor: Imanol Celaya <ornitorrincos@archlinux-es.org>
pkgname=luxrender
-pkgver=0.7.1
-_pkgver=9206b3ba7011
-_luxblend=f93faf8189c1
-pkgrel=5
+pkgver=0.8
+_pkgver=45d3e13eb94c
+_luxblend=9cb3fcee0be8
+_blender=2.57
+pkgrel=1
pkgdesc="Rendering system for physically correct, unbiased image synthesis"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.luxrender.net/"
license=('GPL')
-depends=('boost-libs' 'freeimage')
-optdepends=('python2: luxblend' 'qt: Qt GUI' 'wxgtk: wxGTK GUI')
-makedepends=('cmake' 'boost' 'mesa' 'wxgtk' 'qt' 'libpng' 'openexr')
+depends=('boost-libs' 'luxrays' 'openexr')
+optdepends=('blender: Blender exporter' 'qt: Qt GUI')
+makedepends=('cmake' 'boost' 'qt' 'opencl-headers')
source=(http://src.luxrender.net/lux/archive/$_pkgver.tar.bz2
- http://src.luxrender.net/luxblend/archive/$_luxblend.tar.bz2
- libpng.patch)
-md5sums=('44b819d37c2cccd8b1a890e6c67061a8'
- 'daf70af98123d31303c2c037244c527c'
- '4bbd82a31aa3f6ee2644a712bf2bfc05')
+ http://src.luxrender.net/luxblend25/archive/$_luxblend.tar.bz2)
+md5sums=('ad8d2ede00aa244cad884d9696ff5fbb'
+ '29c34f97791db3af1b827d9e9a1b3d79')
+
build() {
cd "$srcdir"/lux-$_pkgver
- patch -Np1 -i "${srcdir}/libpng.patch" || true
-
- export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
-
cmake -DCMAKE_INSTALL_PREFIX=/usr .
make
}
@@ -38,8 +34,9 @@ package() {
[ "$CARCH" = "x86_64" ] && mv "$pkgdir"/usr/lib64 "$pkgdir"/usr/lib
# install blender exporter
- install -d -m755 "$pkgdir"/usr/share/blender/scripts
- install -m644 "$srcdir"/luxblend-$_luxblend/*.py "$pkgdir"/usr/share/blender/scripts
+ install -d -m755 "$pkgdir"/usr/share/blender/$_blender/scripts/addons
+ cp -a "$srcdir"/luxblend25-$_luxblend/src/luxrender \
+ "$pkgdir"/usr/share/blender/$_blender/scripts/addons
}
# vim:set ts=2 sw=2 et:
diff --git a/community/mapnik/PKGBUILD b/community/mapnik/PKGBUILD
index 25f922cd8..0de6cc82b 100644
--- a/community/mapnik/PKGBUILD
+++ b/community/mapnik/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 47631 2011-05-24 14:03:50Z jelle $
+# $Id: PKGBUILD 48662 2011-06-03 19:43:21Z stephane $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: David Dent <thewinch@gmail.com>
# Contributor: orbisvicis <orbisvicis@gmail.com>
pkgname=mapnik
pkgver=0.7.1
-pkgrel=9
+pkgrel=10
pkgdesc="Free Toolkit for developing mapping applications. Above all Mapnik is about rendering beautiful maps."
arch=('i686' 'x86_64' 'mips64el')
url="http://mapnik.org/"
diff --git a/community/mathomatic/PKGBUILD b/community/mathomatic/PKGBUILD
index 2837a9802..03a6b610e 100755
--- a/community/mathomatic/PKGBUILD
+++ b/community/mathomatic/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
pkgname=mathomatic
-pkgver=15.5.3
+pkgver=15.6.1
pkgrel=1
pkgdesc="General purpose Computer Algebra System written in C"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,7 +15,7 @@ optdepends=('python2: for running /usr/share/doc/mathomatic/factorial/factorial'
'bash: for running a test script'
'gnuplot: for plotting')
source=(http://mathomatic.org/$pkgname-$pkgver.tar.bz2)
-md5sums=('661efbc2482acb343db521ea69a4a088')
+md5sums=('78d5eec8b64cbb3b00162f616f6a477c')
build() {
cd "$srcdir"/$pkgname-$pkgver
diff --git a/community/naev/naev.desktop b/community/naev/naev.desktop
deleted file mode 100644
index b66c906d0..000000000
--- a/community/naev/naev.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Name=naev
-Comment=2D action/rpg space game
-Exec=naev
-Icon=naev.png
-Terminal=false
-Type=Application
-Categories=Application;Game;
-GenericName=
diff --git a/community/naev/naev.png b/community/naev/naev.png
deleted file mode 100644
index f683c3dfb..000000000
--- a/community/naev/naev.png
+++ /dev/null
Binary files differ
diff --git a/community/nginx/PKGBUILD b/community/nginx/PKGBUILD
index 4baafd3d9..e998b7606 100644
--- a/community/nginx/PKGBUILD
+++ b/community/nginx/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 47990 2011-05-26 22:02:37Z tdziedzic $
+# $Id: PKGBUILD 48812 2011-06-06 11:51:15Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
@@ -11,7 +11,7 @@ _user=http
_group=http
pkgname=nginx
-pkgver=1.0.3
+pkgver=1.0.4
pkgrel=1
pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server"
arch=('i686' 'x86_64' 'mips64el')
@@ -27,7 +27,7 @@ backup=("etc/nginx/conf/nginx.conf"
"etc/logrotate.d/nginx")
source=(http://sysoev.ru/nginx/nginx-${pkgver}.tar.gz
nginx)
-md5sums=('eebf1e9c7e86f923923b828ae0156103'
+md5sums=('d23f6e6b07b57ac061e790b1ed64bb98'
'837b010afcbdfe82d8e65ef00c4e14ba')
build() {
diff --git a/community/open-vm-tools/PKGBUILD b/community/open-vm-tools/PKGBUILD
index 25314acaa..ac1c1d47d 100644
--- a/community/open-vm-tools/PKGBUILD
+++ b/community/open-vm-tools/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 45812 2011-04-29 12:03:32Z spupykin $
+# $Id: PKGBUILD 48659 2011-06-03 19:34:11Z stephane $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
pkgname=open-vm-tools
pkgver=2011.03.28
_pkgsubver=387002
-pkgrel=3
+pkgrel=4
pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
arch=('i686' 'x86_64' 'mips64el')
url="http://open-vm-tools.sourceforge.net/"
license=('LGPL')
depends=('open-vm-tools-modules' 'libdnet' 'icu' 'procps' 'glib2' 'uriparser' 'libsigc++' 'libxss')
-makedepends=('chrpath' 'doxygen' 'gtkmm' 'fuse')
+makedepends=('chrpath' 'doxygen' 'gtkmm' 'fuse' 'libxtst')
optdepends=('gtkmm' 'libnotify' 'libxtst' 'fuse' 'libsm')
options=('docs' '!libtool')
install=$pkgname.install
diff --git a/community/openttd/PKGBUILD b/community/openttd/PKGBUILD
index 6a8bc29eb..10d4fee18 100644
--- a/community/openttd/PKGBUILD
+++ b/community/openttd/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 45321 2011-04-20 07:05:05Z jelle $
+# $Id: PKGBUILD 48779 2011-06-05 15:15:50Z vegai $
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
pkgname=openttd
-pkgver=1.1.0
+pkgver=1.1.1
pkgrel=1
pkgdesc='An engine for running Transport Tycoon Deluxe.'
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +13,6 @@ install=openttd.install
optdepends=('openttd-opengfx: free graphics'
'openttd-opensfx: free soundset')
source=("http://binaries.openttd.org/releases/${pkgver}/${pkgname}-${pkgver}-source.tar.xz")
-md5sums=('b5b1f2ecc7327505e360047236b09d06')
build() {
cd ${pkgname}-${pkgver}
@@ -36,3 +35,5 @@ package() {
make install
}
+
+md5sums=('825f6274bd46a1d56f4e95ef25a325ca')
diff --git a/community/parrot/PKGBUILD b/community/parrot/PKGBUILD
index 73aa20e61..aa0b2006a 100644
--- a/community/parrot/PKGBUILD
+++ b/community/parrot/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 45351 2011-04-20 15:07:06Z spupykin $
+# $Id: PKGBUILD 48652 2011-06-03 17:21:22Z stephane $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributer: mpie <michael.kyne-phillips1@ntlworld.com>
@@ -6,7 +6,7 @@ pkgname=parrot
pkgver=3.3.0
#_rel=devel
_rel=stable
-pkgrel=1
+pkgrel=2
pkgdesc="standalone virtual machine that can be used to execute bytecode compiled dynamic languages"
arch=(i686 x86_64 'mips64el')
url="http://www.parrotcode.org/"
diff --git a/community/prosody/PKGBUILD b/community/prosody/PKGBUILD
index 4e55a092c..34a000900 100644
--- a/community/prosody/PKGBUILD
+++ b/community/prosody/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 44453 2011-04-07 16:06:39Z spupykin $
+# $Id: PKGBUILD 48848 2011-06-06 14:44:51Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Dwayne Bent <dbb.0@liqd.org>
# Contributor: Paul-Sebastian Manole <brokenthorn@gmail.com>
pkgname=prosody
-pkgver=0.8.0
+pkgver=0.8.1
pkgrel=1
pkgdesc="Lightweight and extensible Jabber/XMPP server written in Lua."
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,8 @@ url="http://prosody.im/"
license=('MIT')
depends=('lua>=5.1' 'luasocket' 'luaexpat' 'luafilesystem' 'libidn>=0.5.18' 'openssl')
optdepends=('luasec: TLS encryption support'
- 'lua-zlib: compression support')
+ 'lua-zlib: compression support'
+ 'luadbi: SQL storage support')
install=prosody.install
backup=('etc/logrotate.d/prosody'
'etc/prosody/prosody.cfg.lua')
@@ -20,19 +21,22 @@ source=("http://prosody.im/depot/${pkgver}/prosody-${pkgver}.tar.gz"
'prosody.rcd'
'prosody.logrotated'
'fix-config.patch')
-md5sums=('8b057f62875b46b4a8061853a0953473'
+md5sums=('2be3e9deed0b96f109efc5707d7728ba'
'd2b5f9c8e42bb31819e715eb1756ee53'
'26466fdbea87963a3ca6f48f76fe4a29'
'59a1bf2dfd0bd386cef6fa646e2a3752')
build() {
cd "$srcdir/prosody-$pkgver"
-
patch -p1 <$srcdir/fix-config.patch
-
./configure --prefix=/usr --sysconfdir=/etc/prosody \
--datadir=/var/lib/prosody
make
+}
+
+package() {
+ cd "$srcdir/prosody-$pkgver"
+
make DESTDIR="$pkgdir" install
rm $pkgdir/etc/prosody/certs/*
diff --git a/community/qps/PKGBUILD b/community/qps/PKGBUILD
index c95fdd07d..60bc67be0 100644
--- a/community/qps/PKGBUILD
+++ b/community/qps/PKGBUILD
@@ -1,24 +1,27 @@
-# $Id: PKGBUILD 43435 2011-03-26 08:43:39Z spupykin $
+# $Id: PKGBUILD 48817 2011-06-06 11:52:03Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: David Rosenstrauch <darose@darose.net>
pkgname=qps
-pkgver=1.10.12.2
+pkgver=1.10.12.3
pkgrel=1
-_dlpkgver=5843
+_dlpkgver=5930
pkgdesc="Qps is a visual process manager, an X11 version of 'top' or 'ps'."
-url="http://qps.kldp.net/"
+url="http://qps.kldp.net/projects/qps"
depends=('qt')
-source=(http://kldp.net/frs/download.php/$_dlpkgver/qps-$pkgver.tar.bz2)
-md5sums=('26ed0f55828229dd6000d3487455e9b4')
-arch=('i686' 'x86_64' 'mips64el')
+arch=('i686' 'x86_64')
license="GPL"
-md5sums=('59a456fe5fc6af3743137e5bf8c25a88')
+source=(http://kldp.net/frs/download.php/$_dlpkgver/qps-$pkgver.tar.bz2)
+md5sums=('43f8c0c00e31c869d6a4bb5e42d6680a')
build() {
cd $srcdir/$pkgname-$pkgver
qmake
make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
install -D -m 755 qps $pkgdir/usr/bin/qps
install -D -m 644 qps.1 $pkgdir/usr/share/man/man1/qps.1
install -D -m 644 qps.desktop $pkgdir/usr/share/applications/qps.desktop
diff --git a/community/qtcreator/PKGBUILD b/community/qtcreator/PKGBUILD
index fbf6eae59..b0e514e57 100644
--- a/community/qtcreator/PKGBUILD
+++ b/community/qtcreator/PKGBUILD
@@ -1,29 +1,32 @@
-# $Id: PKGBUILD 43503 2011-03-26 23:39:42Z andrea $
+# $Id: PKGBUILD 48916 2011-06-07 16:02:27Z svenstaro $
# Maintainer: Imanol Celaya <ornitorrincos@archlinux-es.org>
+# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
# Contributor: Dan Vratil <progdan@progdansoft.com>
# Contributor: thotypous <matiasΘarchlinux-br·org>
# Contributor: delor <bartekpiech gmail com>
pkgbase=qtcreator
-pkgname=('qtcreator' 'qtcreator-todo-plugin' 'qtcreator-artisticstyle-plugin')
-pkgver=2.1.0
-pkgrel=3
+# artisticstyle plugin does currently not support qtcreator 2.2.0
+#pkgname=('qtcreator' 'qtcreator-todo-plugin' 'qtcreator-artisticstyle-plugin')
+pkgname=('qtcreator' 'qtcreator-todo-plugin')
+pkgver=2.2.0
+pkgrel=1
pkgdesc='Lightweight, cross-platform integrated development environment'
arch=('i686' 'x86_64' 'mips64el')
url='http://qt.nokia.com/products/developer-tools'
license=('LGPL')
-depends=('qt>=4.7.2')
-makedepends=('git' 'qt-private-headers')
+depends=('qt>=4.7.3')
+makedepends=('git' 'qt-private-headers>=4.7.3')
options=('docs')
-source=("http://get.qt.nokia.com/qtcreator/qt-creator-${pkgver}-src.zip"
+source=("http://get.qt.nokia.com/qtcreator/qt-creator-${pkgver}-src.tar.gz"
'http://download.berlios.de/astyleplugin/ArtisticStylePlugin-0.6-src.zip'
- "ftp://ftp.archlinux.org/other/community/${pkgbase}/qt-creator-todo-plugin-git20110323.tar.bz2"
+ "https://gitorious.org/qt-creator-todo-plugin/qt-creator-todo-plugin/archive-tarball/88f8fc50"
'qtcreator.desktop')
-md5sums=('a6e48b4347314fb2a92b77f40b4fc9a5'
- '4dab1bb07ba5c39ae4c975a333d32ec1'
- '3b0f89d7a1e7dd19208998a2ba84abe1'
- '2c3ffbd66845b37be9804f2966815a10')
+md5sums=('4e02382db7b850f3a3b20c6a8707269e'
+ '4dab1bb07ba5c39ae4c975a333d32ec1'
+ '734a6f375e595de796f9802087845dfe'
+ '2c3ffbd66845b37be9804f2966815a10')
#_gitroot_todo="git://gitorious.org/qt-creator-todo-plugin/qt-creator-todo-plugin.git"
@@ -33,26 +36,27 @@ build() {
cd build
qmake ${srcdir}/qt-creator-${pkgver}-src/qtcreator.pro
- make
+ make --quiet
# Building TODO plugin
msg "Starting TODO plugin build...."
- cd $srcdir/qt-creator-todo-plugin
- sed -i "s|QTC_BUILD_DIR = /opt/qtcreator-2.0.92|QTC_BUILD_DIR = ${srcdir}/build|g" todoplugin.pro
- sed -i "s|QTC_SOURCE_DIR = /home/vass/qt-creator-2.1.0-beta1-src|QTC_SOURCE_DIR = $srcdir/qt-creator-${pkgver}-src/|g" todoplugin.pro
+ cd $srcdir/qt-creator-todo-plugin-qt-creator-todo-plugin
+ sed -i "s|QTC_BUILD_DIR = .*|QTC_BUILD_DIR = ${srcdir}/build|g" todoplugin.pro
+ sed -i "s|QTC_SOURCE_DIR = .*|QTC_SOURCE_DIR = $srcdir/qt-creator-${pkgver}-src/|g" todoplugin.pro
sed -i "s|\"2.0.92\"|\"${pkgver}\"|g" todo.pluginspec
qmake
make
- msg "Starting ArtisticStyle plugin build...."
- cd $srcdir/ArtisticStylePlugin-0.6
- qmake QTC_BUILD=$srcdir/build QTC_SOURCE=$srcdir/qt-creator-${pkgver}-src -config release
- make
+# msg "Starting ArtisticStyle plugin build...."
+# cd $srcdir/ArtisticStylePlugin-0.6
+# qmake QTC_BUILD=$srcdir/build QTC_SOURCE=$srcdir/qt-creator-${pkgver}-src -config release
+# make
}
package_qtcreator() {
optdepends=('qt-doc: for the integrated Qt documentation'
'gdb: for the debugger'
+ 'cmake: for cmake project suppport'
'openssh-askpass: for ssh support'
'git: for git support'
'mercurial: for mercurial support')
@@ -69,23 +73,27 @@ package_qtcreator() {
package_qtcreator-todo-plugin() {
license=('BSD')
- depends=('qtcreator=2.1.0')
+ depends=('qtcreator=2.2.0')
pkgdesc='TODO plugin for QtCreator'
- url='http://gitorious.org/qt-creator-todo-plugin'
+ url='http://gitorious.org/qt-creator-tod
+ install -Dm644 ${srcdir}/qtcreator.desktop \
+ ${pkgdir}/usr/share/applications/qtcreator.desktop
+ install -Dm644 ${srcdir}/qt-creator-${pkgver}-src/LGPL_EXCEPTION.TXT \
+ o-plugin'
- cd $srcdir/qt-creator-todo-plugin
+ cd $srcdir/qt-creator-todo-plugin-qt-creator-todo-plugin
make INSTALL_ROOT=$pkgdir/usr/ install
install -Dm644 LICENSE.BSD \
$pkgdir/usr/share/licenses/${pkgname}/LICENSE
}
-package_qtcreator-artisticstyle-plugin() {
- license=('GPL3' 'LGPL')
- depends=('qtcreator=2.1.0')
- pkgdesc='ArtisticStyle plugin for QtCreator'
- url='http://astyleplugin.berlios.de/index.php'
-
- cd $srcdir/ArtisticStylePlugin-0.6
- make INSTALL_ROOT=$pkgdir/usr/ install
-}
+#package_qtcreator-artisticstyle-plugin() {
+# license=('GPL3' 'LGPL')
+# depends=('qtcreator=2.2.0')
+# pkgdesc='ArtisticStyle plugin for QtCreator'
+# url='http://astyleplugin.berlios.de/index.php'
+#
+# cd $srcdir/ArtisticStylePlugin-0.6
+# make INSTALL_ROOT=$pkgdir/usr/ install
+#}
diff --git a/community/shotwell/PKGBUILD b/community/shotwell/PKGBUILD
index ed81809a9..eb3f238e9 100644
--- a/community/shotwell/PKGBUILD
+++ b/community/shotwell/PKGBUILD
@@ -1,35 +1,33 @@
-# $Id: PKGBUILD 48133 2011-05-28 22:32:26Z tdziedzic $
+# $Id: PKGBUILD 48825 2011-06-06 11:53:22Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
pkgname=shotwell
-pkgver=0.10
+pkgver=0.10.1
pkgrel=1
pkgdesc="A digital photo organizer designed for the GNOME desktop environment"
arch=('i686' 'x86_64' 'mips64el')
url="http://yorba.org/shotwell/"
license=('LGPL2.1')
-depends=('gconf' 'libgee' 'libgphoto2' 'libunique' 'libwebkit' 'libgexiv2' 'libraw' 'librsvg' 'json-glib' 'desktop-file-utils' 'gnome-vfs')
+depends=('gconf' 'libgee' 'libgphoto2' 'libunique' 'libwebkit' 'libgexiv2' 'libraw'
+ 'librsvg' 'json-glib' 'desktop-file-utils' 'gnome-vfs')
makedepends=('intltool' 'vala')
install=shotwell.install
-source=("http://yorba.org/download/shotwell/${pkgver}/shotwell-${pkgver}.tar.bz2")
-md5sums=('680c688cefdf6929f0a995d755b9f8f7')
+source=("http://yorba.org/download/shotwell/0.10/shotwell-${pkgver}.tar.bz2")
+md5sums=('ef75923257e8554d14a6545c83406700')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
-
./configure --prefix=/usr \
--with-gconf-schema-file-dir=/usr/share/gconf/schemas \
--disable-schemas-install \
--disable-desktop-update \
--disable-icon-update
-
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
-
make DESTDIR="${pkgdir}" install
}
diff --git a/community/sword/PKGBUILD b/community/sword/PKGBUILD
index 30746deb3..d6148decb 100644
--- a/community/sword/PKGBUILD
+++ b/community/sword/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=sword
pkgver=1.6.2
-pkgrel=2
+pkgrel=3
pkgdesc="SWORD libraries for Bible programs"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.crosswire.org/sword/index.jsp"
@@ -14,13 +14,13 @@ md5sums=('a7dc4456e20e915fec46d774b690e305')
backup=('etc/sword.conf')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr --sysconfdir=/etc --with-icu
make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
- make DESTDIR=${pkgdir} install_config
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ make DESTDIR="${pkgdir}" install_config
}
diff --git a/community/tea/PKGBUILD b/community/tea/PKGBUILD
index cafa11dc2..c6378a352 100644
--- a/community/tea/PKGBUILD
+++ b/community/tea/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 47317 2011-05-21 17:27:47Z jelle $
+# $Id: PKGBUILD 48620 2011-06-03 13:51:59Z ibiru $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Roman Kyrylych <roman@archlinux.org>
@@ -7,31 +7,29 @@
pkgname=tea
pkgver=29.0.3
-pkgrel=1
+pkgrel=2
pkgdesc="A QT-based text editor for Linux and *BSD. With an ultimate small size TEA provides you hundreds of functions."
arch=('i686' 'x86_64' 'mips64el')
url="http://tea-editor.sourceforge.net/"
license=('GPL')
depends=('qt' 'aspell' 'hunspell')
install=tea.install
-source=(http://downloads.sourceforge.net/tea-editor/$pkgname-$pkgver.tar.bz2
+source=(http://downloads.sourceforge.net/tea-editor/${pkgname}-${pkgver}.tar.bz2
tea.desktop)
md5sums=('1c900e7f57a0fe72fb4cc481450a5b32'
'377ace3363124f4c086de0babb820761')
build() {
- cd ${srcdir}/$pkgname-$pkgver
+ cd "${srcdir}/${pkgname}-${pkgver}"
- qmake
+ qmake PREFIX=/usr/bin
make
}
-package(){
- cd ${srcdir}/$pkgname-$pkgver
- make INSTALL_ROOT=${pkgdir} install
- install -Dm755 ${pkgdir}/usr/local/bin/tea ${pkgdir}/usr/bin/tea
- rm -rf ${pkgdir}/usr/local
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}" install
- install -Dm644 ${srcdir}/tea.desktop ${pkgdir}/usr/share/applications/tea.desktop
- install -Dm644 icons/tea_icon_v2.png ${pkgdir}/usr/share/pixmaps/tea.png
+ install -Dm644 "${srcdir}/tea.desktop" "${pkgdir}/usr/share/applications/tea.desktop"
+ install -Dm644 icons/tea_icon_v2.png "${pkgdir}/usr/share/pixmaps/tea.png"
}
diff --git a/community/tracker/PKGBUILD b/community/tracker/PKGBUILD
index 5f6a28550..77e396cf3 100644
--- a/community/tracker/PKGBUILD
+++ b/community/tracker/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 48573 2011-06-02 16:37:10Z spupykin $
+# $Id: PKGBUILD 48893 2011-06-07 11:06:49Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Alexander Fehr <pizzapunk gmail com>
pkgname=tracker
-pkgver=0.10.15
+pkgver=0.10.16
pkgrel=1
pkgdesc="Powerful object database, tag/metadata database, search tool and indexer"
arch=('i686' 'x86_64' 'mips64el')
@@ -25,7 +25,7 @@ conflicts=('libtracker')
provides=("libtracker")
install=tracker.install
source=(http://ftp.gnome.org/pub/GNOME/sources/tracker/0.10/tracker-$pkgver.tar.bz2)
-md5sums=('c948ef3988b08e81cad3ff980b17a0fd')
+md5sums=('5be2bdb5ee20d3e9a15c6e6649a733f7')
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -38,9 +38,8 @@ build() {
done
./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/$pkgname \
- --enable-video-extractor=gstreamer --disable-unac --disable-hal \
- --disable-devkit-power --disable-miner-evolution
- touch docs/manpages/tracker-search-bar.1
+ --enable-video-extractor=gstreamer --disable-hal \
+ --disable-miner-evolution
make
}
diff --git a/community/xfe/PKGBUILD b/community/xfe/PKGBUILD
index ca11928f7..8788a2600 100644
--- a/community/xfe/PKGBUILD
+++ b/community/xfe/PKGBUILD
@@ -1,23 +1,28 @@
-# $Id: PKGBUILD 43121 2011-03-24 07:49:15Z spupykin $
+# $Id: PKGBUILD 48873 2011-06-06 21:48:23Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Eric Belanger <belanger@astro.umontreal.ca>
# Contributor: Ravi Desai <ravster3@hotmail.com>
pkgname=xfe
-pkgver=1.32.3
+pkgver=1.32.4
pkgrel=1
pkgdesc="X File Explorer (Xfe) is an MS-Explorer like file manager for X."
arch=('i686' 'x86_64' 'mips64el')
url="http://roland65.free.fr/xfe"
license=("GPL")
depends=('fox')
+makedepends=('intltool')
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
-md5sums=('f9fe72a2a9cf55fb36ac2f9d20f8210a')
+md5sums=('ed9db4338b9191adb5267fd12f64e774')
build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr
sed -i 's|inline||' src/xfeutils.cpp
make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install
}
diff --git a/community/xulrunner-oss/PKGBUILD b/community/xulrunner-oss/PKGBUILD
index 756e41e3f..db518bfbc 100644
--- a/community/xulrunner-oss/PKGBUILD
+++ b/community/xulrunner-oss/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=xulrunner-oss
pkgver=2.0.1
_ffoxver=4.0.1
-pkgrel=1
+pkgrel=2
pkgdesc="Mozilla Runtime Environment compiled with OSS support"
arch=('i686' 'x86_64' 'mips64el')
license=('MPL' 'GPL' 'LGPL')
diff --git a/community/yaz/PKGBUILD b/community/yaz/PKGBUILD
index 7621ce2df..3c326284e 100644
--- a/community/yaz/PKGBUILD
+++ b/community/yaz/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 43397 2011-03-25 16:19:23Z schiv $
+# $Id: PKGBUILD 48643 2011-06-03 16:57:46Z stephane $
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
@@ -7,7 +7,7 @@
pkgname=yaz
pkgver=4.1.7
-pkgrel=1
+pkgrel=2
pkgdesc="A toolkit supporting the development of Z39.50/SRW/SRU clients and servers"
arch=('i686' 'x86_64' 'mips64el')
license=('BSD')
diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD
index 725e0b615..4a31b72f9 100644
--- a/core/gcc/PKGBUILD
+++ b/core/gcc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 123891 2011-05-14 08:26:23Z allan $
+# $Id: PKGBUILD 126413 2011-06-05 07:20:02Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
@@ -6,34 +6,23 @@
pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc')
pkgver=4.6.0
-pkgrel=5
-_snapshot=4.6-20110513
+pkgrel=6
+pkgrel=3 # Hold!
+_snapshot=4.6-20110603
_libstdcppmanver=20110201 # Note: check source directory name when updating this
pkgdesc="The GNU Compiler Collection"
license=('GPL' 'LGPL' 'custom')
arch=('i686' 'x86_64' 'mips64el')
license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
-#makedepends=('binutils>=2.21' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'dejagnu')
makedepends=('binutils>=2.21' 'libmpc' 'cloog' 'ppl' 'dejagnu')
options=('!libtool' '!emptydirs')
-source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc}-${pkgver}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc}-${_snapshot}.tar.bz2
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
gcc_pure64.patch
gcc_mips64el_lib.patch
gcc-hash-style-both.patch)
-md5sums=('2be769db16ac02f30fb62423b4c50145'
- 'a310d230945f4b3093dd3ca72839c649'
- '361a10c5a5545c80fd271b18036dd00c'
- 'f7db2f6ed34398361de62cb6b8eb53d2'
- '9b69c1d8874e8496c1965ee3e32eaa6d'
- '248e53b461078bf1c89528fb8e4ba051'
- 'e15a01b0d02ff12e975e4c2649e71e55'
- '1e9fd2eaf0ee47ea64e82c48998f1999'
- '4030ee1c08dd1e843c0225b772360e76'
- '67e337993d821d72fccacbed52d48c34'
- '4df25b623799b148a0703eaeec8fdf3f')
if [ -n "${_snapshot}" ]; then
_basedir="${srcdir}/gcc-${_snapshot}"
@@ -96,7 +85,7 @@ package_gcc-libs()
{
pkgdesc="Runtime libraries shipped by GCC"
groups=('base')
- depends=('glibc>=2.11.1-2')
+ depends=('glibc>=2.13')
install=gcc-libs.install
cd gcc-build
@@ -125,7 +114,7 @@ package_gcc-libs()
package_gcc()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends"
- depends=('binutils>=2.20.1' 'libmpc>=0.8.1-2' 'cloog' 'ppl')
+ depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.21' 'libmpc' 'cloog' 'ppl')
groups=('base-devel')
install=gcc.install
@@ -133,13 +122,18 @@ package_gcc()
# unfortunately it is much, much easier to install the lot and clean-up the mess...
make -j1 DESTDIR=${pkgdir} install
- rm $pkgdir/usr/bin/{$CHOST-,}gfortran
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
rm $pkgdir/usr/lib/*.so*
- rm $pkgdir/usr/lib/lib{gfortran,objc}.a
+ rm $pkgdir/usr/lib/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
rm $pkgdir/usr/lib/libgfortran.spec
- rm $pkgdir/usr/share/info/libgomp.info
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a}
+ rm -r $pkgdir/usr/lib/go
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
- rm $pkgdir/usr/share/man/man1/gfortran.1
+ rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm $pkgdir/usr/share/man/man3/ffi*
# many packages require these symlinks
install -dm755 ${pkgdir}/lib
@@ -199,7 +193,8 @@ package_gcc-fortran()
install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
# remove libraries included in gcc-libs
- rm ${pkgdir}/usr/lib/libgfortran.so*
+ rm ${pkgdir}/usr/lib/lib{gfortran,quadmath}.so*
+ rm ${pkgdir}/usr/share/info/libquadmath.info
# Install Runtime Library Exception
install -Dm644 ${_basedir}/COPYING.RUNTIME \
@@ -254,11 +249,3 @@ package_gcc-go()
install -Dm644 ${_basedir}/COPYING.RUNTIME \
${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
}
-md5sums=('2be769db16ac02f30fb62423b4c50145'
- 'a310d230945f4b3093dd3ca72839c649'
- '361a10c5a5545c80fd271b18036dd00c'
- 'f7db2f6ed34398361de62cb6b8eb53d2'
- '1e9fd2eaf0ee47ea64e82c48998f1999'
- '4030ee1c08dd1e843c0225b772360e76'
- '67e337993d821d72fccacbed52d48c34'
- '4df25b623799b148a0703eaeec8fdf3f')
diff --git a/core/gcc/gcc_mips64el_lib.patch b/core/gcc/gcc_mips64el_lib.patch
new file mode 100644
index 000000000..425758e88
--- /dev/null
+++ b/core/gcc/gcc_mips64el_lib.patch
@@ -0,0 +1,25 @@
+--- gcc/config/mips/t-linux64.orig 2011-04-09 20:28:51.729723495 -0300
++++ gcc/config/mips/t-linux64 2011-04-09 20:29:06.913724013 -0300
+@@ -18,7 +18,7 @@
+
+ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+ MULTILIB_DIRNAMES = n32 32 64
+-MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
++MULTILIB_OSDIRNAMES = ../lib ../lib32 ../lib64
+
+ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+
+--- gcc/config/mips/linux64.h.orig 2011-04-09 20:27:06.909723735 -0300
++++ gcc/config/mips/linux64.h 2011-04-09 20:28:16.033723803 -0300
+@@ -35,9 +35,9 @@
+ %{!shared: \
+ %{profile:-lc_p} %{!profile:-lc}}"
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld.so.1"
+ #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
++#define GLIBC_DYNAMIC_LINKERN32 "/lib/ld.so.1"
+ #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
+ #define LINUX_DYNAMIC_LINKERN32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
diff --git a/core/glib2/PKGBUILD b/core/glib2/PKGBUILD
index ed77bbb82..019c768a8 100644
--- a/core/glib2/PKGBUILD
+++ b/core/glib2/PKGBUILD
@@ -1,20 +1,21 @@
-# $Id: PKGBUILD 124444 2011-05-21 07:53:58Z ibiru $
+# $Id: PKGBUILD 126555 2011-06-06 09:24:36Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=glib2
-pkgver=2.28.7
+pkgver=2.28.8
pkgrel=1
pkgdesc="Common C routines used by GTK+ and other libs"
url="http://www.gtk.org/"
arch=(i686 x86_64 'mips64el')
license=('LGPL')
-depends=('pcre>=8.02')
+depends=('pcre>=8.12')
makedepends=('pkgconfig' 'python2')
+checkdepends=('pygobject' 'dbus-python')
options=('!libtool' '!docs')
-source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.28/glib-${pkgver}.tar.bz2
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.28/glib-${pkgver}.tar.xz
glib2.sh
glib2.csh)
-sha256sums=('0e1b3816a8934371d4ea2313dfbe25d10d16c950f8d02e0a7879ae10d91b1631'
+sha256sums=('4d7ca95dbde8e8f60ab428c765b0dbb8a44be9eb9316491803ce5ee7b4748353'
'9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
'8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
@@ -39,3 +40,9 @@ package() {
chmod -x "${_i}"
done
}
+
+check() {
+ cd "${srcdir}/glib-${pkgver}"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' gio/tests/gdbus-testserver.py
+ make -k check || true
+}
diff --git a/testing/man-db/1361_1360.diff b/core/man-db/1361_1360.diff
index c93856980..c93856980 100644
--- a/testing/man-db/1361_1360.diff
+++ b/core/man-db/1361_1360.diff
diff --git a/core/man-db/PKGBUILD b/core/man-db/PKGBUILD
index d1256be0e..7a2ece22f 100644
--- a/core/man-db/PKGBUILD
+++ b/core/man-db/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 119687 2011-04-13 16:45:31Z andyrtr $
+# $Id: PKGBUILD 126294 2011-06-04 09:41:54Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
pkgname=man-db
pkgver=2.6.0.2
-pkgrel=1
+pkgrel=2
pkgdesc="A utility for reading man pages"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.nongnu.org/man-db/"
@@ -19,16 +19,19 @@ provides=('man')
replaces=('man')
install=${pkgname}.install
source=(http://savannah.nongnu.org/download/man-db/$pkgname-$pkgver.tar.gz
+ 1361_1360.diff
#http://launchpad.net/man-db/main/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz
convert-mans man-db.cron.daily)
+options=('!libtool')
md5sums=('2b41c96efec032d2b74ccbf2e401f93e'
+ '08b76b1f924c5493a280b79fc0aebde4'
'2b7662a7d5b33fe91f9f3e034361a2f6'
'd30c39ae47560304471b5461719e0f03')
-options=('!libtool')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
-
+ # https://bugs.archlinux.org/task/18722
+ patch -Np0 -i $srcdir/1361_1360.diff
./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
--with-db=gdbm --disable-setuid --enable-mandirs=GNU \
--with-sections="1 n l 8 3 0 2 5 4 9 6 7"
diff --git a/core/pacman/pacman.conf.mips64el b/core/pacman/pacman.conf.mips64el
new file mode 100644
index 000000000..09a5c8d5a
--- /dev/null
+++ b/core/pacman/pacman.conf.mips64el
@@ -0,0 +1,86 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+HoldPkg = pacman glibc
+# If upgrades are available for these packages they will be asked for first
+SyncFirst = pacman
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#XferCommand = /usr/bin/curl -C - -f %u > %o
+#CleanMethod = KeepInstalled
+Architecture = mips64el
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options (all disabled by default)
+#UseSyslog
+#ShowSize
+#UseDelta
+#TotalDownload
+#CheckSpace
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#Server = file:///home/custompkgs
+
diff --git a/extra/avidemux/PKGBUILD b/extra/avidemux/PKGBUILD
index 44aec569a..59dec52ad 100644
--- a/extra/avidemux/PKGBUILD
+++ b/extra/avidemux/PKGBUILD
@@ -1,29 +1,22 @@
-# $Id: PKGBUILD 117286 2011-03-30 16:57:22Z ibiru $
-# Maintainer: Eric Belanger <eric@archlinux.org>
+# $Id: PKGBUILD 126410 2011-06-05 07:19:37Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgbase=avidemux
pkgname=('avidemux-cli' 'avidemux-gtk' 'avidemux-qt')
-pkgver=2.5.4
-pkgrel=4
-arch=('i686' 'x86_64' 'mips64el')
+pkgver=2.5.5
+pkgrel=1
+arch=('i686' 'x86_64')
license=('GPL')
url="http://fixounet.free.fr/avidemux/"
makedepends=('cmake' 'libxslt' 'gtk2' 'qt' 'jack' 'esound' 'libvorbis' 'sdl' 'libxv' \
'alsa-lib' 'lame' 'xvidcore' 'faad2' 'faac' 'x264' 'libsamplerate' \
- 'opencore-amr' 'yasm' 'mesa' 'libvpx')
-source=(http://downloads.sourceforge.net/avidemux/avidemux_${pkgver}.tar.gz 2.5.4_audioDevice.patch
- x264.patch)
-md5sums=('b849460f6480df92bfd72d1a3dc288d4'
- 'ef375051a12c911c6bd8a7bf85b76330'
- '0d01294b8171a856f718ab8131bea074')
+ 'opencore-amr' 'yasm' 'mesa' 'libvpx' 'libpulse')
+source=(http://downloads.sourceforge.net/avidemux/avidemux_${pkgver}.tar.gz)
+md5sums=('33bbe210c6826cea1987ed18a41d57a7')
build() {
cd "${srcdir}/${pkgbase}_${pkgver}"
- #gcc 4.6 workaround
- export CXXFLAGS="$CXXFLAGS -fpermissive"
- patch -p0 < ../2.5.4_audioDevice.patch
- patch -Np1 -i "${srcdir}/x264.patch"
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_RPATH=ON -D GTK=1 -D QT4=1 ..
@@ -53,6 +46,7 @@ package_avidemux-cli() {
'opencore-amr: for the corresponding audio decoder plugin'
'esound: for the corresponding audio device plugin'
'jack: for the corresponding audio device plugin'
+ 'libpulse: for the corresponding audio device plugin'
'sdl: for the corresponding audio device plugin'
'x264: for the corresponding video encoder plugin'
'xvidcore: for the corresponding video encoder plugin')
@@ -81,7 +75,8 @@ package_avidemux-cli() {
package_avidemux-gtk() {
pkgdesc="A graphical tool to edit video (filter/re-encode/split) - GTK GUI"
- depends=("avidemux-cli=${pkgver}" 'gtk2' 'libxv')
+ depends=("avidemux-cli=${pkgver}" 'gtk2' 'libxv' 'desktop-file-utils')
+ install=avidemux.install
cd "${srcdir}/${pkgbase}_${pkgver}"
install -D -m755 build/avidemux/avidemux2_gtk "${pkgdir}/usr/bin/avidemux2_gtk"
@@ -100,7 +95,8 @@ package_avidemux-gtk() {
package_avidemux-qt() {
pkgdesc="A graphical tool to edit video (filter/re-encode/split) - QT GUI"
- depends=("avidemux-cli=${pkgver}" 'qt')
+ depends=("avidemux-cli=${pkgver}" 'qt' 'desktop-file-utils')
+ install=avidemux.install
cd "${srcdir}/${pkgbase}_${pkgver}"
install -D -m755 build/avidemux/avidemux2_qt4 "${pkgdir}/usr/bin/avidemux2_qt4"
diff --git a/testing/dvdrip/dvdrip.install b/extra/avidemux/avidemux.install
index e111ef946..e111ef946 100644
--- a/testing/dvdrip/dvdrip.install
+++ b/extra/avidemux/avidemux.install
diff --git a/extra/boost/PKGBUILD b/extra/boost/PKGBUILD
index 7237e301b..1509bdc33 100644
--- a/extra/boost/PKGBUILD
+++ b/extra/boost/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 124783 2011-05-24 12:31:42Z ibiru $
+# $Id: PKGBUILD 126799 2011-06-07 11:40:27Z ibiru $
# Maintainer: kevin <kevin@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Kritoke <kritoke@gamebox.net>
@@ -8,7 +8,7 @@ pkgbase=boost
pkgname=('boost-libs' 'boost')
pkgver=1.46.1
_boostver=${pkgver//./_}
-pkgrel=1
+pkgrel=3
arch=('i686' 'x86_64')
url="http://www.boost.org/"
makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi')
@@ -40,11 +40,19 @@ build() {
install -d "${_stagedir}"/usr/bin
install ${_bindir}/bjam "${_stagedir}"/usr/bin/bjam
- # build bcp
- cd "${srcdir}/${pkgbase}_${_boostver}/tools/bcp"
- ../build/v2/engine/src/${_bindir}/bjam --toolset=gcc
- install -m755 "${srcdir}/${pkgbase}_${_boostver}/dist/bin/bcp" \
- ${_stagedir}/usr/bin/bcp
+ # build tools
+ cd "${srcdir}/${pkgbase}_${_boostver}/tools/"
+ "${_stagedir}"/usr/bin/bjam --toolset=gcc
+
+ # copy the tools
+ cd "${srcdir}/${pkgbase}_${_boostver}/dist/bin"
+ for i in *;do
+ install -m755 "${i}" "${_stagedir}/usr/bin/${i}"
+ done
+
+ #boostbook needed by quickbook
+ cd "${srcdir}/${pkgbase}_${_boostver}/dist/"
+ cp -r share "${_stagedir}"
# build libs
cd "${srcdir}/${pkgbase}_${_boostver}"
@@ -60,7 +68,7 @@ build() {
# --layout=system no longer adds the -mt suffix for multi-threaded libs.
# install to ${_stagedir} in preparation for split packaging
- ./tools/build/v2/engine/src/${_bindir}/bjam \
+ "${_stagedir}"/usr/bin/bjam \
release debug-symbols=off threading=multi \
runtime-link=shared link=shared,static \
cflags=-fno-strict-aliasing \
@@ -83,7 +91,7 @@ package_boost() {
optdepends=('python: for python bindings'
'python2: for python2 bindings')
- install -d "${pkgdir}"/usr/{include,lib}
+ install -d "${pkgdir}"/usr/{include,lib,share}
# headers/source files
cp -r "${_stagedir}"/include/ "${pkgdir}"/usr/
@@ -93,6 +101,9 @@ package_boost() {
# utilities (bjam, bcp, pyste)
cp -r "${_stagedir}"/usr/* "${pkgdir}"/usr/
+ #boostbook
+ cp -r "${_stagedir}"/share/* "${pkgdir}"/usr/share
+
# license
install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
"${pkgdir}"/usr/share/licenses/boost/LICENSE_1_0.txt
diff --git a/extra/brltty/PKGBUILD b/extra/brltty/PKGBUILD
index 3581508c6..32801c297 100644
--- a/extra/brltty/PKGBUILD
+++ b/extra/brltty/PKGBUILD
@@ -1,10 +1,11 @@
-# $Id: PKGBUILD 102193 2010-12-06 16:20:30Z andrea $
+# $Id: PKGBUILD 126155 2011-06-01 20:36:52Z andyrtr $
+# Maintainer:
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=brltty
pkgver=4.2
-pkgrel=3
+pkgrel=4
pkgdesc="Braille display driver for Linux/Unix"
arch=('i686' 'x86_64' 'mips64el')
url="http://mielke.cc/brltty"
diff --git a/extra/claws-mail/PKGBUILD b/extra/claws-mail/PKGBUILD
index e6e328a7b..ef3b236bf 100644
--- a/extra/claws-mail/PKGBUILD
+++ b/extra/claws-mail/PKGBUILD
@@ -10,7 +10,7 @@ license=('GPL3')
url="http://www.claws-mail.org"
depends=('gtk2' 'gnutls' 'startup-notification' 'pilot-link' 'enchant'
'gpgme' 'libetpan' 'libsm' 'db' 'dbus-glib' 'hicolor-icon-theme' 'desktop-file-utils')
-makedepends=('compface' 'spamassassin' 'bogofilter' 'valgrind')
+makedepends=('compface' 'spamassassin' 'bogofilter')
optdepends=('python2: needed for some tools'
'perl: needed for some tools'
'spamassassin: adds support for spamfiltering'
diff --git a/extra/clutter-gst/PKGBUILD b/extra/clutter-gst/PKGBUILD
index 76dc16593..c5f7697a3 100644
--- a/extra/clutter-gst/PKGBUILD
+++ b/extra/clutter-gst/PKGBUILD
@@ -1,7 +1,7 @@
-# $Id: PKGBUILD 118181 2011-04-05 18:32:42Z ibiru $
+# $Id: PKGBUILD 126722 2011-06-06 21:13:23Z heftig $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=clutter-gst
-pkgver=1.3.8
+pkgver=1.3.12
pkgrel=1
pkgdesc="GStreamer bindings for clutter"
arch=('i686' 'x86_64')
@@ -11,7 +11,7 @@ depends=('clutter' 'gstreamer0.10-base')
makedepends=('gobject-introspection' 'gtk-doc')
options=('!libtool')
source=(http://clutter-project.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
-sha256sums=('376c069bed2a6b374d96615b7196cb5f6ee4bbbd94243f92b64dee3ec56aec28')
+sha256sums=('bfb652721469a73badb2c2c0470a8a45c784bce7abf14bb41dd2bd633417556d')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/extra/enchant/PKGBUILD b/extra/enchant/PKGBUILD
index 0d61fff40..145324321 100644
--- a/extra/enchant/PKGBUILD
+++ b/extra/enchant/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 77532 2010-04-15 13:26:42Z andrea $
+# $Id: PKGBUILD 126152 2011-06-01 20:31:07Z andyrtr $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: dorphell <dorphell@archlinux.org>
pkgname=enchant
pkgver=1.6.0
-pkgrel=1
+pkgrel=2
pkgdesc="A wrapper library for generic spell checking"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.abisource.com/enchant/"
@@ -20,11 +20,11 @@ build() {
./configure --prefix=/usr \
--disable-static \
--disable-ispell \
- --with-myspell-dir=/usr/share/myspell || return 1
- make || return 1
+ --with-myspell-dir=/usr/share/myspell
+ make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install || return 1
+ make DESTDIR="${pkgdir}" install
}
diff --git a/extra/fetchmail/PKGBUILD b/extra/fetchmail/PKGBUILD
index 511538481..bb7d3346d 100644
--- a/extra/fetchmail/PKGBUILD
+++ b/extra/fetchmail/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 126284 2011-06-04 05:34:18Z eric $
+# $Id: PKGBUILD 126713 2011-06-06 20:27:56Z eric $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
pkgname=fetchmail
-pkgver=6.3.19
-pkgrel=3
+pkgver=6.3.20
+pkgrel=1
pkgdesc="A remote-mail retrieval utility"
arch=('i686' 'x86_64')
url="http://fetchmail.berlios.de/"
@@ -15,10 +15,10 @@ options=('!makeflags')
install=fetchmail.install
source=(http://download2.berlios.de/fetchmail/${pkgname}-${pkgver}.tar.bz2
fetchmail.rc fetchmail.conf)
-md5sums=('64519711c8533f5a34d20c9ff620d880'
+md5sums=('9176a9005a816946f766774bc4cbc642'
'89fdde15bf81b3a5c065949322b5d138'
'8fcd6a22dfbc247755fdd050c5c5c4d3')
-sha1sums=('fcc9b9299fe147d8f522cff93f8f619e5e1372b7'
+sha1sums=('797b5b0050763ad111c244aba606b2fcb4dfdaad'
'910ec21ad0a619db67e4665189dc46d2a0634ea5'
'30401729386d6f774c6c36ab8530842166de54a8')
diff --git a/extra/gnutls/PKGBUILD b/extra/gnutls/PKGBUILD
index 475cfafca..ec6ac7c02 100644
--- a/extra/gnutls/PKGBUILD
+++ b/extra/gnutls/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 123950 2011-05-14 15:29:59Z andyrtr $
+# $Id: PKGBUILD 126447 2011-06-05 13:11:49Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=gnutls
-pkgver=2.12.5
+pkgver=2.12.6.1
pkgrel=1
pkgdesc="A library which provides a secure layer over a reliable transport layer"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ install=gnutls.install
options=('!libtool' '!zipman')
depends=('gcc-libs' 'libtasn1' 'readline' 'zlib' 'libgcrypt')
source=(ftp://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('2d0bd5ae11534074fcd78da6ea384e64')
+md5sums=('e724e37f96984f3b0a215c11f03729bd')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -28,7 +28,8 @@ build() {
check() {
cd "${srcdir}/${pkgname}-${pkgver}"
- make check # passes all || /bin/true
+ #make check # passes all || /bin/true
+ make check || /bin/true # see https://lists.gnu.org/archive/html/gnutls-devel/2011-06/msg00007.html
}
package() {
diff --git a/extra/gptfdisk/PKGBUILD b/extra/gptfdisk/PKGBUILD
index e5f2470f3..c3e5215e6 100644
--- a/extra/gptfdisk/PKGBUILD
+++ b/extra/gptfdisk/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 124135 2011-05-16 17:24:42Z foutrelis $
+# $Id: PKGBUILD 126131 2011-06-01 17:33:51Z foutrelis $
# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Hokum <hokum_at_mail_dot_ru>
pkgname=gptfdisk
pkgver=0.7.1
-pkgrel=2
+pkgrel=3
pkgdesc="A text-mode partitioning tool that works on Globally Unique Identifier (GUID) Partition Table (GPT) disks"
arch=('i686' 'x86_64')
url="http://www.rodsbooks.com/gdisk/"
@@ -19,13 +19,13 @@ md5sums=('7c8d810df61e81c821bef399b832e89e')
build() {
cd "$srcdir/$pkgname-$pkgver"
-
+
make
}
package () {
cd "$srcdir/$pkgname-$pkgver"
-
+
install -d "$pkgdir"/{sbin,usr/share/{man/man8,gdisk}}
install -t "$pkgdir/sbin" gdisk sgdisk fixparts
install -m644 -t "$pkgdir/usr/share/man/man8" {gdisk,sgdisk}.8
diff --git a/extra/gthumb/PKGBUILD b/extra/gthumb/PKGBUILD
index 22b63c6ba..4c62ed307 100644
--- a/extra/gthumb/PKGBUILD
+++ b/extra/gthumb/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 113327 2011-03-08 12:34:07Z heftig $
+# $Id: PKGBUILD 126718 2011-06-06 21:12:59Z heftig $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Tobias Kieslich <tobias@justdreams.de>
pkgname=gthumb
-pkgver=2.13.1
+pkgver=2.13.2
pkgrel=1
pkgdesc="Image browser and viewer for the GNOME Desktop"
arch=(i686 x86_64 'mips64el')
@@ -14,8 +14,8 @@ makedepends=('intltool' 'gnome-doc-utils' 'libsm' 'gstreamer0.10-base' 'brasero'
optdepends=('gstreamer0.10-base: video support')
options=('!libtool' '!emptydirs')
install=gthumb.install
-source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('3b124e1b3ae5a3496d9392c11052792e5168535b849756b53cefd9d7b1e8e7b9')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('14d4dc212c9f924ff3161733842edccbf6b6ac5d829808ae11f8af29d10ac5de')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/gtk3/PKGBUILD b/extra/gtk3/PKGBUILD
index 4cff80b52..bd05b7cdd 100644
--- a/extra/gtk3/PKGBUILD
+++ b/extra/gtk3/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 125375 2011-05-26 12:54:23Z ibiru $
+# $Id: PKGBUILD 126728 2011-06-06 21:19:26Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=gtk3
-pkgver=3.0.10
-pkgrel=2
+pkgver=3.0.11
+pkgrel=1
pkgdesc="The GTK+ Toolkit (v3)"
arch=('i686' 'x86_64')
url="http://www.gtk.org/"
@@ -13,16 +13,13 @@ makedepends=('gobject-introspection')
options=('!libtool' '!docs')
backup=(etc/gtk-3.0/settings.ini)
license=('LGPL')
-source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.0/gtk+-${pkgver}.tar.bz2
- settings.ini
- only_draw_resize_grip_if_its_window_exists.patch)
-sha256sums=('a217ed31aed9843810eabb241239e0f2c5ca0e14bd91687cf4180b3e346abc30'
- 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621'
- 'fa2bd8085cae6cdb4f3b8baae11d3c0b38afec2eb4503f5bacabf87aee15313a')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.0/gtk+-${pkgver}.tar.xz
+ settings.ini)
+sha256sums=('e2e38b316c4657df0cf376c3b6aad63158a9068c557ad41033a677f29967001b'
+ 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621')
build() {
cd "${srcdir}/gtk+-${pkgver}"
- patch -Np1 -i "${srcdir}/only_draw_resize_grip_if_its_window_exists.patch"
CXX=/bin/false ./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
diff --git a/extra/hugin/PKGBUILD b/extra/hugin/PKGBUILD
index 9533f55ee..15dfdc82b 100644
--- a/extra/hugin/PKGBUILD
+++ b/extra/hugin/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 125347 2011-05-26 02:15:23Z eric $
+# $Id: PKGBUILD 126376 2011-06-05 04:38:18Z eric $
# Maintainer: Tobias Kieslich <tobias@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Dominik Ryba <domryba@post.pl>
pkgname=hugin
-pkgver=2010.4.0
-pkgrel=4
+pkgver=2011.0.0
+pkgrel=1
pkgdesc="A frontend to the panorama-tools"
arch=('i686' 'x86_64' 'mips64el')
url="http://hugin.sourceforge.net/"
@@ -14,23 +14,18 @@ depends=('wxgtk' 'libpano13' 'boost-libs' 'enblend-enfuse' 'exiv2' 'openexr'
'autopano-sift-c' 'lapack' 'desktop-file-utils' 'make' 'perl-exiftool')
makedepends=('zip' 'cmake' 'boost')
install=${pkgname}.install
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2 hugin-gcc46.patch)
-md5sums=('bfd716655461987312b2f2f00c90dcc5'
- '4393c7b31da60f230c85e63a6a2e43a0')
-sha1sums=('47f25c0a8b97c27108e567bcd22203c87f268d07'
- '52798a155a037f853f41402f797e8a4cb6bb3e07')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ac8a129b4c3021233df6d9368c8164cf')
+sha1sums=('22e1ad3846291a9bbe58570683e213921a6f0116')
build() {
cd "${srcdir}"
- (cd ${pkgname}-${pkgver}; patch -p1 -i ../hugin-gcc46.patch)
mkdir build && cd build
-
cmake "${srcdir}/${pkgname}-${pkgver}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_EXE_LINKER_FLAGS="-lpthread" \
-DENABLE_LAPACK=yes
-
make
}
diff --git a/extra/hunspell/PKGBUILD b/extra/hunspell/PKGBUILD
index 713f7ff9e..7996411ee 100644
--- a/extra/hunspell/PKGBUILD
+++ b/extra/hunspell/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 108140 2011-01-30 10:19:56Z andyrtr $
+# $Id: PKGBUILD 125861 2011-05-30 15:55:43Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Hussam Al-Tayeb <ht990332@gmail.com>
pkgname=hunspell
-pkgver=1.2.15
+pkgver=1.3.2
pkgrel=1
pkgdesc="Spell checker and morphological analyzer library and program"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +13,7 @@ depends=('gcc-libs' 'readline')
optdepends=('perl: for ispellaff2myspell')
options=('!libtool')
source=(http://downloads.sourceforge.net/hunspell/hunspell-$pkgver.tar.gz)
-md5sums=('3fa2644b8d48cae48cb0967ffba91c9d')
+md5sums=('3121aaf3e13e5d88dfff13fb4a5f1ab8')
build() {
cd "$srcdir/hunspell-$pkgver"
diff --git a/extra/icu/PKGBUILD b/extra/icu/PKGBUILD
index b020e631d..92af99e08 100644
--- a/extra/icu/PKGBUILD
+++ b/extra/icu/PKGBUILD
@@ -1,20 +1,19 @@
-# $Id: PKGBUILD 123623 2011-05-11 21:09:44Z andyrtr $
+# $Id: PKGBUILD 125862 2011-05-30 16:53:31Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Art Gramlich <art@gramlich-net.com>
pkgname=icu
-pkgver=4.6.1
-pkgrel=2
+pkgver=4.8
+pkgrel=1
pkgdesc="International Components for Unicode library"
arch=(i686 x86_64 'mips64el')
url="http://www.icu-project.org/"
license=('custom:"icu"')
depends=('gcc-libs' 'sh')
-source=(http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver//./_}-src.tgz
- #http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver/./_}-src.tgz
- icu.8198.revert.icu5431.patch
-)
-md5sums=('da64675d85f0c2191cef93a8cb5eea88'
+source=(http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver/./_}-src.tgz
+ #http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver//./_}-src.tgz
+ icu.8198.revert.icu5431.patch)
+md5sums=('e78194c49d7fd8131353aa180d11b789'
'ebd5470fc969c75e52baf4af94a9ee82')
build() {
diff --git a/extra/kdesdk/PKGBUILD b/extra/kdesdk/PKGBUILD
index 26c56d65e..afb12e671 100644
--- a/extra/kdesdk/PKGBUILD
+++ b/extra/kdesdk/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 121103 2011-04-29 00:28:04Z andrea $
+# $Id: PKGBUILD 126168 2011-06-02 00:51:07Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -24,8 +24,8 @@ pkgname=('kdesdk-cervisia'
'kdesdk-strigi-analyzer'
'kdesdk-umbrello')
pkgver=4.6.3
-pkgrel=1
-arch=('i686' 'x86_64' 'mips64el')
+pkgrel=2
+arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdesdk')
@@ -89,7 +89,7 @@ package_kdesdk-kapptemplate() {
package_kdesdk-kate() {
pkgdesc='Advanced Text Editor'
- depends=('kdebase-runtime')
+ depends=('kdebase-runtime' 'kdebase-lib')
url="http://kde.org/applications/utilities/kate/"
install='kdesdk-kate.install'
cd $srcdir/build/kate
diff --git a/extra/libreoffice/ArchLinux.patch b/extra/libreoffice/ArchLinux.patch
deleted file mode 100644
index 2bcf9296d..000000000
--- a/extra/libreoffice/ArchLinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- patches/dev300/apply 2009-05-07 19:44:13.000000000 +0000
-+++ patches/dev300/apply.new 2009-05-11 18:46:58.108316633 +0000
-@@ -108,7 +108,7 @@
- rpl2: rPathCommon
- rpl2-64: rPathCommon
- # ArchLinux
--ArchLinux: LinuxCommon
-+ArchLinux: LinuxCommon, NotDebian, CairoFonts, Shrink
- # Win32
- Win32 : Win32Common
- # translate.org.za
diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD
index 4c3853010..4fd0cf1a8 100644
--- a/extra/libreoffice/PKGBUILD
+++ b/extra/libreoffice/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 125824 2011-05-30 09:43:02Z andyrtr $
+# $Id: PKGBUILD 126270 2011-06-03 14:47:40Z stephane $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
pkgbase="libreoffice"
@@ -26,7 +26,7 @@ pkgname=('libreoffice' 'libreoffice-sdk'
'libreoffice-extension-wiki-publisher')
_LOver=3.4.0.2
pkgver=3.4.0
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
#_LO_tree="3.4"
_OFFICEUPD="340"
@@ -36,19 +36,19 @@ makedepends=( # makedepends
'sane' 'perl-archive-zip' 'zip' 'unzip' 'xulrunner' 'unixodbc' 'hsqldb-java' #'boost' - we use internal one for now that has some gcc4.6 fixes.
'apache-ant' 'gperf' 'poppler' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient'
'beanshell' 'vigra' 'libldap' 'lucene' 'libmythes' 'junit' 'libwpg' 'imagemagick'
- 'mesa' 'gstreamer0.10-base' 'java-runtime'
+ 'mesa' 'gstreamer0.10-base' 'java-runtime'
#'saxon' - currently broken
# the depends from libreoffice main pkg
"curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt'
'redland' 'libgraphite' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat'
'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' # keep gtk2 for install script
- 'ttf-dejavu') # to satisfy regression tests
+ 'ttf-dejavu') # to satisfy regression tests
# translate-toolkit - todo move them to extra to allow --with-system-foo builds
# http://download.documentfoundation.org/mirrors/all.html
# http://wiki.documentfoundation.org/Mirrors
-#_mirror="http://download.documentfoundation.org/libreoffice/src"
-_mirror="http://dev-builds.libreoffice.org/pre-releases/src/"
+_mirror="http://download.documentfoundation.org/libreoffice/src"
+#_mirror="http://dev-builds.libreoffice.org/pre-releases/src/"
_additional_source_url="http://hg.services.openoffice.org/binaries"
source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2 #,translations
${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
diff --git a/extra/libwebkit/PKGBUILD b/extra/libwebkit/PKGBUILD
index d2b541f1e..779c4b22f 100644
--- a/extra/libwebkit/PKGBUILD
+++ b/extra/libwebkit/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 121025 2011-04-27 21:44:28Z ibiru $
+# $Id: PKGBUILD 126732 2011-06-06 21:34:03Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgbase=libwebkit
pkgname=(libwebkit libwebkit3)
-pkgver=1.4.0
+pkgver=1.4.1
pkgrel=1
pkgdesc="An opensource web content engine"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,13 +13,14 @@ depends=('libxt' 'libxslt' 'sqlite3' 'icu' 'gstreamer0.10-base' 'libsoup' 'encha
makedepends=('gperf' 'gtk-doc' 'gobject-introspection' 'python2' 'gtk2' 'gtk3')
options=('!libtool')
install=libwebkit.install
-source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz gcc46.patch)
-md5sums=('10c969db3b5484c71df1aa9a338377ff'
- '970a2fa91b9827dff8e9b9edb4867701')
+source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz
+ replace-switch-with-given-when.patch)
+md5sums=('c1a4f732a77d6f8197437b50678d3dbc'
+ '3ba708a26b7af0e1e853867966fe14f7')
build() {
cd "${srcdir}/webkit-${pkgver}"
- patch -Np1 -i "${srcdir}/gcc46.patch"
+ patch -Np1 -i "${srcdir}/replace-switch-with-given-when.patch"
mkdir build-gtk{2,3}
( cd build-gtk2 && _build --with-gtk=2.0 )
diff --git a/staging/libwebkit/replace-switch-with-given-when.patch b/extra/libwebkit/replace-switch-with-given-when.patch
index 4e64610bb..4e64610bb 100644
--- a/staging/libwebkit/replace-switch-with-given-when.patch
+++ b/extra/libwebkit/replace-switch-with-given-when.patch
diff --git a/extra/modemmanager/PKGBUILD b/extra/modemmanager/PKGBUILD
index 1259b3b7e..114e8441c 100644
--- a/extra/modemmanager/PKGBUILD
+++ b/extra/modemmanager/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 122603 2011-05-04 20:10:03Z ibiru $
+# $Id: PKGBUILD 126693 2011-06-06 16:09:07Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=modemmanager
_realname=ModemManager
-pkgver=0.4.996
+pkgver=0.4.997
pkgrel=1
pkgdesc="Mobile broadband modem management service"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,9 +11,9 @@ license=('GPL2')
depends=('dbus-glib' 'udev' 'ppp')
makedepends=('intltool')
options=('!libtool')
-source=(http://download.gnome.org/sources/${_realname}/0.4/${_realname}-${pkgver}.tar.bz2)
+source=(http://download.gnome.org/sources/${_realname}/0.4/${_realname}-${pkgver}.tar.xz)
optdepends=('usb_modeswitch: install if your modem shows up as a storage drive')
-sha256sums=('4e82b8ef5f5e5e737212b8d077a59ac9e1fb21b65e8df98005b2beaad265c16b')
+sha256sums=('88fa2f098b9fbbfb4e91e78e200404ce6dd6258102a197a635a3bd789302c6e4')
build() {
cd "$srcdir/${_realname}-${pkgver}"
diff --git a/extra/openjdk6/aatext_by_default.diff b/extra/openjdk6/aatext_by_default.diff
deleted file mode 100644
index 268ea99a9..000000000
--- a/extra/openjdk6/aatext_by_default.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java.old 2008-01-08 20:23:56.000000000 +0200
-+++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java 2008-02-24 12:39:19.000000000 +0200
-@@ -1875,7 +1875,6 @@
- */
- private static boolean useSystemAAFontSettings() {
- if (!checkedSystemAAFontSettings) {
-- useSystemAAFontSettings = true; /* initially set this true */
- String systemAAFonts = null;
- Toolkit tk = Toolkit.getDefaultToolkit();
- if (tk instanceof SunToolkit) {
-@@ -1883,20 +1882,10 @@
- (String)AccessController.doPrivileged(
- new GetPropertyAction("awt.useSystemAAFontSettings"));
- }
-- if (systemAAFonts != null) {
-- useSystemAAFontSettings =
-- Boolean.valueOf(systemAAFonts).booleanValue();
-- /* If it is anything other than "true", then it may be
-- * a hint name , or it may be "off, "default", etc.
-- */
-- if (!useSystemAAFontSettings) {
-- desktopFontHints = getDesktopAAHintsByName(systemAAFonts);
-- }
-- }
-- /* If its still true, apply the extra condition */
-- if (useSystemAAFontSettings) {
-- useSystemAAFontSettings = lastExtraCondition;
-- }
-+ if (systemAAFonts == null || Boolean.parseBoolean(systemAAFonts))
-+ systemAAFonts = "on";
-+ desktopFontHints = getDesktopAAHintsByName(systemAAFonts);
-+ useSystemAAFontSettings = desktopFontHints != null;
- checkedSystemAAFontSettings = true;
- }
- return useSystemAAFontSettings;
diff --git a/extra/php/PKGBUILD b/extra/php/PKGBUILD
index 8f54d6031..dd3f42f36 100644
--- a/extra/php/PKGBUILD
+++ b/extra/php/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 120015 2011-04-18 10:42:15Z pierre $
+# $Id: PKGBUILD 126095 2011-06-01 12:12:00Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgbase=php
@@ -24,7 +24,7 @@ pkgname=('php'
'php-tidy'
'php-xsl')
pkgver=5.3.6
-pkgrel=3
+pkgrel=4
_suhosinver=${pkgver}-0.9.10
arch=('i686' 'x86_64' 'mips64el')
license=('PHP')
diff --git a/extra/pidgin/PKGBUILD b/extra/pidgin/PKGBUILD
index 05883a1d8..d7930f9f7 100644
--- a/extra/pidgin/PKGBUILD
+++ b/extra/pidgin/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 124929 2011-05-25 09:33:46Z foutrelis $
+# $Id: PKGBUILD 126832 2011-06-07 15:43:55Z foutrelis $
# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
@@ -6,8 +6,8 @@
# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
pkgname=('pidgin' 'libpurple' 'finch')
-pkgver=2.7.11
-pkgrel=5
+pkgver=2.8.0
+pkgrel=1
arch=('i686' 'x86_64')
url="http://pidgin.im/"
license=('GPL')
@@ -17,19 +17,15 @@ makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
'networkmanager')
options=('!libtool')
source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
- nm09-pidgin.patch
nm09-more.patch)
-md5sums=('07c2a2535b4d7436b5ec7685fe063fec'
- '744a21b4dbaf949dba7cd3b75b12b4fe'
+md5sums=('d1656c443a5d91f4aa0d95915f1f50c3'
'a673659d86c7a65aa710f7c8c7feda82')
build() {
cd "$srcdir/$pkgname-$pkgver"
- # Update for NetworkManager 0.9 connection states
- # (http://developer.pidgin.im/ticket/13505)
+ # Further fixes for NetworkManager 0.9
# (http://developer.pidgin.im/ticket/13859)
- patch -Np1 -i "$srcdir/nm09-pidgin.patch"
patch -Np1 -i "$srcdir/nm09-more.patch"
# Use Python 2
diff --git a/extra/pixman/PKGBUILD b/extra/pixman/PKGBUILD
index 366cf4e51..bf392b456 100644
--- a/extra/pixman/PKGBUILD
+++ b/extra/pixman/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 106857 2011-01-19 14:56:47Z jgc $
+# $Id: PKGBUILD 124049 2011-05-16 10:05:58Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=pixman
-pkgver=0.20.2
+pkgver=0.22.0
pkgrel=1
pkgdesc="Pixman library"
arch=(i686 x86_64 'mips64el')
@@ -12,14 +12,22 @@ license=('custom')
depends=('glibc')
options=('!libtool')
source=(http://xorg.freedesktop.org/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('9972c8f8ce484f7649d9f588168cd29f61c05c63')
+sha1sums=('d24ea233755d7dce9f0d93136ad99fba8d4e4fa0')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr --disable-static
make
- make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
diff --git a/extra/python-egenix-mx-base/PKGBUILD b/extra/python-egenix-mx-base/PKGBUILD
index 0fedaee98..3ef1b6b16 100644
--- a/extra/python-egenix-mx-base/PKGBUILD
+++ b/extra/python-egenix-mx-base/PKGBUILD
@@ -1,24 +1,29 @@
-# $Id: PKGBUILD 89533 2010-09-01 15:30:54Z remy $
+# $Id: PKGBUILD 126581 2011-06-06 10:49:23Z stephane $
# Maintainer:
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
pkgname=python-egenix-mx-base
origname=egenix-mx-base
-pkgver=3.1.3
-pkgrel=2
-pkgdesc="A collection of professional quality Python software tools which enhance Python's usability in many important areas - Open Source parts of the eGenix.com mx Extension series"
-arch=('i686' 'x86_64' 'mips64el')
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="A collection of Python tools"
+arch=('i686' 'x86_64')
license=('custom')
url="http://www.egenix.com/products/python/mxBase/"
depends=('python2')
+makedepends=('python2-distribute')
replaces=('egenix-mx-base')
provides=('egenix-mx-base')
source=("http://downloads.egenix.com/python/${origname}-${pkgver}.tar.gz")
-md5sums=('398d6f8d62029f5bea4f94765a6ab4c8')
+sha1sums=('7346268002461512ef59da726047f79649a82b27')
+
+build() {
+ cd "${srcdir}/${origname}-${pkgver}"
+ python2 setup.py build
+}
package() {
- cd $srcdir/$origname-$pkgver
- BASECFLAGS=$BASECFLAGS" -DNDEBUG -O0 -Wall -Wstrict-prototypes "
- python2 setup.py install --root=$pkgdir
- install -D -m644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ cd "${srcdir}/${origname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" --skip-build --optimize=1
+ install -D -m644 COPYRIGHT "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
}
diff --git a/extra/qt/PKGBUILD b/extra/qt/PKGBUILD
index b3fc7aacd..89e96034f 100644
--- a/extra/qt/PKGBUILD
+++ b/extra/qt/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 122539 2011-05-04 13:21:18Z andrea $
+# $Id: PKGBUILD 125344 2011-05-26 00:12:04Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgbase=qt
pkgname=('qt' 'qt-private-headers')
pkgver=4.7.3
-pkgrel=1
-arch=('i686' 'x86_64' 'mips64el')
+pkgrel=2
+arch=('i686' 'x86_64')
url='http://qt.nokia.com/'
license=('GPL3' 'LGPL')
makedepends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
@@ -17,12 +17,14 @@ options=('!libtool')
_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
'assistant.desktop' 'designer.desktop' 'linguist.desktop'
- 'qtconfig.desktop')
+ 'qtconfig.desktop'
+ 'qtbug-16292.patch')
md5sums=('49b96eefb1224cc529af6fe5608654fe'
'fc211414130ab2764132e7370f8e5caa'
'85179f5e0437514f8639957e1d8baf62'
'f11852b97583610f3dbb669ebc3e21bc'
- '6b771c8a81dd90b45e8a79afa0e5bbfd')
+ '6b771c8a81dd90b45e8a79afa0e5bbfd'
+ 'dc7ed8c2e8c68a175f7f05a34dccc937')
build() {
unset QMAKESPEC
@@ -31,6 +33,9 @@ build() {
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
cd $srcdir/$_pkgfqn
+
+ # Already fixed upstream
+ patch -p1 -i "${srcdir}"/qtbug-16292.patch
sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf
sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf
diff --git a/extra/qt/qtbug-16292.patch b/extra/qt/qtbug-16292.patch
new file mode 100644
index 000000000..9728e28f5
--- /dev/null
+++ b/extra/qt/qtbug-16292.patch
@@ -0,0 +1,62 @@
+From e340844bd614add505a39a3a6b915632476f6305 Mon Sep 17 00:00:00 2001
+From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
+Date: Tue, 15 Feb 2011 11:19:26 +0100
+Subject: [PATCH] Fix crash in KPackageKit
+
+QTreeViewPrivate::itemHeight() may refer to an invalid QModelIndex
+after calling QTreeView::indexRowSizeHint().
+
+Same thing inside QTreeView::indexRowSizeHint(), since
+QHeaderView::count() will call
+QAbstractItemViewPrivate::executePostedLayout() which may invalidate
+all the QModelIndex.
+
+Reviewed-by: Olivier
+Task-number: QTBUG-16292
+---
+ src/gui/itemviews/qtreeview.cpp | 11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
+index f1f3236..c0573bb 100644
+--- a/src/gui/itemviews/qtreeview.cpp
++++ b/src/gui/itemviews/qtreeview.cpp
+@@ -2753,6 +2753,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const
+
+ int start = -1;
+ int end = -1;
++ int indexRow = index.row();
+ int count = d->header->count();
+ bool emptyHeader = (count == 0);
+ QModelIndex parent = index.parent();
+@@ -2789,7 +2790,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const
+ int logicalColumn = emptyHeader ? column : d->header->logicalIndex(column);
+ if (d->header->isSectionHidden(logicalColumn))
+ continue;
+- QModelIndex idx = d->model->index(index.row(), logicalColumn, parent);
++ QModelIndex idx = d->model->index(indexRow, logicalColumn, parent);
+ if (idx.isValid()) {
+ QWidget *editor = d->editorForIndex(idx).editor;
+ if (editor && d->persistent.contains(editor)) {
+@@ -3224,14 +3225,14 @@ int QTreeViewPrivate::itemHeight(int item) const
+ if (viewItems.isEmpty())
+ return 0;
+ const QModelIndex &index = viewItems.at(item).index;
++ if (!index.isValid())
++ return 0;
+ int height = viewItems.at(item).height;
+- if (height <= 0 && index.isValid()) {
++ if (height <= 0) {
+ height = q_func()->indexRowSizeHint(index);
+ viewItems[item].height = height;
+ }
+- if (!index.isValid() || height < 0)
+- return 0;
+- return height;
++ return qMax(height, 0);
+ }
+
+
+--
+1.6.1
+
diff --git a/extra/swh-plugins/PKGBUILD b/extra/swh-plugins/PKGBUILD
index 7d48b47e9..b51701d23 100644
--- a/extra/swh-plugins/PKGBUILD
+++ b/extra/swh-plugins/PKGBUILD
@@ -1,29 +1,46 @@
-# $Id: PKGBUILD 77978 2010-04-19 08:02:08Z dgriffiths $
-#Maintainer: Damir Perisa <damir.perisa@bluewin.ch>
-#Contributor: Robert Emil Berge
+# $Id: PKGBUILD 126506 2011-06-05 21:13:52Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Contributor: Robert Emil Berge
pkgname=swh-plugins
pkgver=0.4.15
-pkgrel=3
-pkgdesc="LADSPA Plugin-Collection from plugin.org.uk"
-arch=(i686 x86_64 'mips64el')
+pkgrel=4
+pkgdesc="Steve Harris' LADSPA plug-ins suite"
+arch=('i686' 'x86_64')
url="http://plugin.org.uk/"
license=('GPL')
depends=('fftw' 'ladspa')
+makedepends=('libxml2')
groups=('ladspa-plugins')
-source=(http://plugin.org.uk/releases/${pkgver}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('2fbdccef2462ea553901acd429fa3573')
+source=("http://plugin.org.uk/releases/$pkgver/$pkgname-$pkgver.tar.gz"
+ 'mbeq_crash_fix.patch')
+md5sums=('2fbdccef2462ea553901acd429fa3573'
+ 'a60422c8dea95bee6f9adcdc70dff7e0')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "$srcdir/$pkgname-$pkgver"
-#Arch64 fix, -fPIC seems to be the only option
-if [ "$CARCH" = "x86_64" ]; then
- export CFLAGS="$CFLAGS -fPIC"
- export CXXFLAGS="$CFLAGS"
-fi
+ # Arch64 fix;
+ # -fPIC seems to be the only option
+ if [ "$CARCH" = 'x86_64' ]; then
+ export CFLAGS="$CFLAGS -fPIC"
+ export CXXFLAGS="$CFLAGS"
+ fi
- ./configure --prefix=/usr || return 1
- make || return 1
- make DESTDIR=${pkgdir} install || return 1
+ # fix Firefox crash on x64 when
+ # plugin is in use by ALSA;
+ # see https://bugs.archlinux.org/task/24579
+ patch -Np1 -i "$srcdir/mbeq_crash_fix.patch"
+
+ ./configure --prefix=/usr
+ make
}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/swh-plugins/mbeq_crash_fix.patch b/extra/swh-plugins/mbeq_crash_fix.patch
new file mode 100644
index 000000000..37ddd33a9
--- /dev/null
+++ b/extra/swh-plugins/mbeq_crash_fix.patch
@@ -0,0 +1,39 @@
+diff -Nru swh-plugins-0.4.15.orig/mbeq_1197.c swh-plugins-0.4.15/mbeq_1197.c
+--- swh-plugins-0.4.15.orig/mbeq_1197.c 2006-08-09 01:49:15.000000000 +1000
++++ swh-plugins-0.4.15/mbeq_1197.c 2011-06-05 10:57:17.929107102 +1000
+@@ -457,7 +457,8 @@
+ #endif
+
+ // Multiply the bins magnitudes by the coeficients
+- for (i = 0; i < FFT_LENGTH/2; i++) {
++ comp[0] *= coefs[0];
++ for (i = 1; i < FFT_LENGTH/2; i++) {
+ comp[i] *= coefs[i];
+ comp[FFT_LENGTH-i] *= coefs[i];
+ }
+diff -Nru swh-plugins-0.4.15.orig/mbeq_1197.so.c swh-plugins-0.4.15/mbeq_1197.so.c
+--- swh-plugins-0.4.15.orig/mbeq_1197.so.c 2003-10-22 02:13:40.000000000 +1000
++++ swh-plugins-0.4.15/mbeq_1197.so.c 2011-06-05 10:57:52.265774336 +1000
+@@ -446,7 +446,8 @@
+ #endif
+
+ // Multiply the bins magnitudes by the coeficients
+- for (i = 0; i < FFT_LENGTH/2; i++) {
++ comp[0] *= coefs[0];
++ for (i = 1; i < FFT_LENGTH/2; i++) {
+ comp[i] *= coefs[i];
+ comp[FFT_LENGTH-i] *= coefs[i];
+ }
+diff -Nru swh-plugins-0.4.15.orig/mbeq_1197.xml swh-plugins-0.4.15/mbeq_1197.xml
+--- swh-plugins-0.4.15.orig/mbeq_1197.xml 2005-06-01 19:51:58.000000000 +1000
++++ swh-plugins-0.4.15/mbeq_1197.xml 2011-06-05 10:57:39.335774121 +1000
+@@ -171,7 +171,8 @@
+ #endif
+
+ // Multiply the bins magnitudes by the coeficients
+- for (i = 0; i < FFT_LENGTH/2; i++) {
++ comp[0] *= coefs[0];
++ for (i = 1; i < FFT_LENGTH/2; i++) {
+ comp[i] *= coefs[i];
+ comp[FFT_LENGTH-i] *= coefs[i];
+ }
diff --git a/extra/swig/swig-deprecated-pycobject.patch b/extra/swig/swig-deprecated-pycobject.patch
deleted file mode 100644
index 5665252bb..000000000
--- a/extra/swig/swig-deprecated-pycobject.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-diff -up swig-2.0.0/Lib/python/pyrun.swg.rh623854 swig-2.0.0/Lib/python/pyrun.swg
---- swig-2.0.0/Lib/python/pyrun.swg.rh623854 2010-02-28 00:26:02.000000000 +0100
-+++ swig-2.0.0/Lib/python/pyrun.swg 2010-08-17 16:32:16.581604656 +0200
-@@ -45,8 +45,18 @@
- #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg
- #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code)
- #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg)
--#define SWIG_fail goto fail
-+#define SWIG_fail goto fail
-
-+/*
-+ * Python 2.7 and newer and Python 3.1 and newer should use Capsules API instead of
-+ * CObjects API.
-+ */
-+#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \
-+ (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0))
-+#define USE_CAPSULES
-+#define TYPE_POINTER_NAME \
-+ ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
-+#endif
-
- /* Runtime API implementation */
-
-@@ -1356,8 +1366,12 @@ SWIG_Python_GetModule(void) {
- #ifdef SWIG_LINK_RUNTIME
- type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
- #else
-+#ifdef USE_CAPSULES
-+ type_pointer = PyCapsule_Import(TYPE_POINTER_NAME, 0);
-+#else
- type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
- (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
-+#endif
- if (PyErr_Occurred()) {
- PyErr_Clear();
- type_pointer = (void *)0;
-@@ -1402,9 +1416,14 @@ PyModule_AddObject(PyObject *m, char *na
- SWIGRUNTIME void
- SWIG_Python_DestroyModule(void *vptr)
- {
-+ size_t i;
-+#ifdef USE_CAPSULES
-+ swig_module_info *swig_module =
-+ (swig_module_info *) PyCapsule_GetPointer((PyObject *)vptr, TYPE_POINTER_NAME);
-+#else
- swig_module_info *swig_module = (swig_module_info *) vptr;
-+#endif
- swig_type_info **types = swig_module->types;
-- size_t i;
- for (i =0; i < swig_module->size; ++i) {
- swig_type_info *ty = types[i];
- if (ty->owndata) {
-@@ -1426,9 +1445,18 @@ SWIG_Python_SetModule(swig_module_info *
- PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
- swig_empty_runtime_method_table);
- #endif
-+#ifdef USE_CAPSULES
-+ PyObject *pointer = PyCapsule_New((void *)swig_module, TYPE_POINTER_NAME,
-+ (PyCapsule_Destructor)SWIG_Python_DestroyModule);
-+#else
- PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
-+#endif
- if (pointer && module) {
-+#ifdef USE_CAPSULES
-+ PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
-+#else
- PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
-+#endif
- } else {
- Py_XDECREF(pointer);
- }
-@@ -1449,12 +1477,20 @@ SWIG_Python_TypeQuery(const char *type)
- PyObject *obj = PyDict_GetItem(cache, key);
- swig_type_info *descriptor;
- if (obj) {
-+#ifdef USE_CAPSULES
-+ descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, type);
-+#else
- descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
-+#endif
- } else {
- swig_module_info *swig_module = SWIG_Python_GetModule();
- descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
- if (descriptor) {
-+#ifdef USE_CAPSULES
-+ obj = PyCapsule_New(descriptor, type, NULL);
-+#else
- obj = PyCObject_FromVoidPtr(descriptor, NULL);
-+#endif
- PyDict_SetItem(cache, key, obj);
- Py_DECREF(obj);
- }
diff --git a/extra/swig/swig-pyslice.patch b/extra/swig/swig-pyslice.patch
deleted file mode 100644
index a6dd852ec..000000000
--- a/extra/swig/swig-pyslice.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-diff -Naur swig-2.0.3.ori/Lib/python/pycontainer.swg swig-2.0.3/Lib/python/pycontainer.swg
---- swig-2.0.3.ori/Lib/python/pycontainer.swg 2010-10-18 23:31:31.000000000 -0700
-+++ swig-2.0.3/Lib/python/pycontainer.swg 2011-04-08 08:50:37.281941342 -0700
-@@ -630,6 +630,7 @@
- return x;
- }
-
-+#if !NO_PYSLICE
- /* typemap for slice object support */
- %typemap(in) PySliceObject* {
- $1 = (PySliceObject *) $input;
-@@ -637,6 +638,7 @@
- %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) PySliceObject* {
- $1 = PySlice_Check($input);
- }
-+#endif
-
- Sequence* __getslice__(difference_type i, difference_type j) throw (std::out_of_range) {
- return swig::getslice(self, i, j);
-@@ -659,7 +661,11 @@
- /* Overloaded methods for Python 3 compatibility
- * (Also useful in Python 2.x)
- */
-+#if NO_PYSLICE
-+ Sequence* __getitem__(PyObject *slice) throw (std::out_of_range) {
-+#else
- Sequence* __getitem__(PySliceObject *slice) throw (std::out_of_range) {
-+#endif
- Py_ssize_t i, j, step;
- if( !PySlice_Check(slice) ) {
- SWIG_Error(SWIG_TypeError, "Slice object expected.");
-@@ -669,7 +675,11 @@
- return swig::getslice(self, i, j);
- }
-
-+#if NO_PYSLICE
-+ void __setitem__(PyObject *slice, const Sequence& v)
-+#else
- void __setitem__(PySliceObject *slice, const Sequence& v)
-+#endif
- throw (std::out_of_range, std::invalid_argument) {
- Py_ssize_t i, j, step;
- if( !PySlice_Check(slice) ) {
-@@ -680,7 +690,11 @@
- swig::setslice(self, i, j, v);
- }
-
-+#if NO_PYSLICE
-+ void __delitem__(PyObject *slice)
-+#else
- void __delitem__(PySliceObject *slice)
-+#endif
- throw (std::out_of_range) {
- Py_ssize_t i, j, step;
- if( !PySlice_Check(slice) ) {
-diff -Naur swig-2.0.3.ori/Source/Modules/python.cxx swig-2.0.3/Source/Modules/python.cxx
---- swig-2.0.3.ori/Source/Modules/python.cxx 2011-03-14 00:22:08.000000000 -0700
-+++ swig-2.0.3/Source/Modules/python.cxx 2011-04-08 08:53:39.288607977 -0700
-@@ -437,6 +437,7 @@
-
- if (py3) {
- /* force disable features that not compatible with Python 3.x */
-+ Preprocessor_define((DOH *) "NO_PYSLICE 1", 0);
- classic = 0;
- }
-
diff --git a/extra/vlc/PKGBUILD b/extra/vlc/PKGBUILD
index 330a34938..f3b47e7ca 100644
--- a/extra/vlc/PKGBUILD
+++ b/extra/vlc/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 126365 2011-06-05 01:44:34Z giovanni $
+# $Id: PKGBUILD 126600 2011-06-06 13:01:06Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
# Contributor: Martin Sandsmark <martin.sandsmark@kde.org>
pkgname=vlc
-pkgver=1.1.9
-pkgrel=4
+pkgver=1.1.10
+pkgrel=1
pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player"
arch=('i686' 'x86_64')
url="http://www.videolan.org/vlc/"
@@ -35,7 +35,7 @@ replaces=('vlc-plugin')
options=('!libtool')
install=vlc.install
source=("http://download.videolan.org/pub/videolan/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('06adb1848e6b87fbe1ced77ec0f91e4c')
+md5sums=('066cb94b1e3aa848d828121354d6be4d')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/vte/PKGBUILD b/extra/vte/PKGBUILD
index 90e371e2b..3b4cf529e 100644
--- a/extra/vte/PKGBUILD
+++ b/extra/vte/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 117622 2011-04-04 13:08:29Z ibiru $
+# $Id: PKGBUILD 126563 2011-06-06 09:54:32Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=vte
pkgname=(vte vte3 vte-common)
pkgver=0.28.0
-pkgrel=1
+pkgrel=2
pkgdesc="Virtual Terminal Emulator widget for use with"
arch=('i686' 'x86_64' 'mips64el')
license=('LGPL')
diff --git a/extra/wireshark/PKGBUILD b/extra/wireshark/PKGBUILD
index 5181428a6..a617eb19e 100644
--- a/extra/wireshark/PKGBUILD
+++ b/extra/wireshark/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 126090 2011-06-01 11:36:55Z guillaume $
+# $Id: PKGBUILD 126496 2011-06-05 16:47:00Z guillaume $
# Maintainer: Guillaume ALAUX <guillaume at alaux dot net>
# Contributor: Florian Pritz <bluewind at jabber dot ccc dot de>
pkgname=(wireshark-cli wireshark-gtk)
pkgbase=wireshark
pkgver=1.4.7
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
license=('GPL2')
-makedepends=('bison' 'flex' 'gtk2' 'krb5' 'libpcap' 'bash' 'gnutls' 'libcap')
+makedepends=('bison' 'flex' 'gtk2' 'krb5' 'libpcap' 'bash' 'gnutls' 'libcap' 'lua')
url="http://www.wireshark.org/"
options=(!libtool)
source=(http://www.wireshark.org/download/src/${pkgbase}-${pkgver}.tar.bz2)
@@ -17,13 +17,17 @@ build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
export CFLAGS="-fno-unit-at-a-time ${CFLAGS}"
- ./configure --prefix=/usr --with-ssl --with-zlib=no
+ ./configure \
+ --prefix=/usr \
+ --with-ssl \
+ --with-zlib=no \
+ --with-lua
make all
}
package_wireshark-cli() {
pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - CLI version"
- depends=('krb5' 'libpcap' 'bash' 'gnutls' 'libcap' 'glib2')
+ depends=('krb5' 'libpcap' 'bash' 'gnutls' 'libcap' 'glib2' 'lua')
install=wireshark.install
conflicts=(wireshark)
diff --git a/extra/xf86-input-synaptics/PKGBUILD b/extra/xf86-input-synaptics/PKGBUILD
index d4d4cffdd..d32626177 100644
--- a/extra/xf86-input-synaptics/PKGBUILD
+++ b/extra/xf86-input-synaptics/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 115455 2011-03-18 08:10:17Z andyrtr $
+# $Id: PKGBUILD 126576 2011-06-06 10:40:59Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Bächler <thomas@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=xf86-input-synaptics
-pkgver=1.4.0
-pkgrel=2
+pkgver=1.4.0.901
+pkgrel=1
pkgdesc="Synaptics driver for notebook touchpads"
arch=(i686 x86_64 'mips64el')
license=('custom')
@@ -22,7 +22,7 @@ options=(!libtool)
backup=('etc/X11/xorg.conf.d/10-synaptics.conf')
source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
10-synaptics.conf)
-sha1sums=('96541b063482568e177f883a9fcfbe9a22c25569'
+sha1sums=('2203f64a9d656088387c81c5914422c63827848f'
'68e1f4ef5e1038231d210eb422fa4d18c5922f0f')
build() {
diff --git a/extra/xorg-xlsclients/PKGBUILD b/extra/xorg-xlsclients/PKGBUILD
index 8d3ce59f4..d0b5ac155 100644
--- a/extra/xorg-xlsclients/PKGBUILD
+++ b/extra/xorg-xlsclients/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 113796 2011-03-10 15:46:24Z jgc $
+# $Id: PKGBUILD 126568 2011-06-06 09:58:54Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xorg-xlsclients
-pkgver=1.1.1
-pkgrel=2
+pkgver=1.1.2
+pkgrel=1
pkgdesc="List client applications running on a display"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
-depends=('libxcb' 'xcb-util')
+depends=('libxcb')
makedepends=('xorg-util-macros')
groups=('xorg-apps' 'xorg')
source=(http://xorg.freedesktop.org/archive/individual/app/xlsclients-${pkgver}.tar.bz2)
-sha1sums=('67bfdcb089e8669df7ec5bc7a137e037047f2535')
+sha1sums=('c4051429c190444ae9ba327f0ad776a74eb7b27b')
build() {
cd "${srcdir}/xlsclients-${pkgver}"
diff --git a/extra/xterm/PKGBUILD b/extra/xterm/PKGBUILD
index e7d5f1fba..146e8e880 100644
--- a/extra/xterm/PKGBUILD
+++ b/extra/xterm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 113886 2011-03-10 17:49:42Z jgc $
+# $Id: PKGBUILD 126558 2011-06-06 09:30:30Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=xterm
-pkgver=269
+pkgver=270
pkgrel=1
pkgdesc="X Terminal Emulator"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ license=('custom')
depends=('libxft' 'libxaw' 'ncurses' 'xorg-luit' 'xbitmaps')
source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz
LICENSE)
-md5sums=('d32150a7c1b2a8b6e2cbc95d180b9fec'
+md5sums=('92d654f3aa4ad694a4f61d980d14c24b'
'10ecc3f8ee91e3189863a172f68282d2')
build() {
@@ -42,7 +42,8 @@ build() {
--enable-mini-luit \
--enable-narrowproto \
--enable-exec-xterm \
- --with-tty-group=tty
+ --with-tty-group=tty \
+ --with-utmp-setgid=utmp
make
}
diff --git a/extra/xulrunner/PKGBUILD b/extra/xulrunner/PKGBUILD
index 1d353f6b3..8156af39a 100644
--- a/extra/xulrunner/PKGBUILD
+++ b/extra/xulrunner/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 121212 2011-04-29 14:12:33Z ibiru $
+# $Id: PKGBUILD 126161 2011-06-01 20:45:14Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=xulrunner
pkgver=2.0.1
_ffoxver=4.0.1
-pkgrel=1
+pkgrel=2
pkgdesc="Mozilla Runtime Environment"
arch=('i686' 'x86_64' 'mips64el')
license=('MPL' 'GPL' 'LGPL')
@@ -18,13 +18,6 @@ source=(http://ftp.gnu.org/gnu/gnuzilla/${_ffoxver}/icecat-${_ffoxver}.tar.xz
xulrunner-omnijar.patch
port_gnomevfs_to_gio.patch
mips.patch)
-md5sums=('1b4d44ee5badc28fd332cba564ecde0a'
- '2358a2ddd35bcdd62ff42442dfe548d9'
- '639ea80e823543dd415b90c0ee804186'
- 'a0236f6c3e55f60b7888d8cf137ff209'
- '0bf82bc6677e3ce57fd20a147fe8d7b1'
- '42f83468b296452fb754a81a4317ca64'
- '0e970ff5600246e953f527813883e744')
options=('!emptydirs')
build() {
@@ -69,3 +62,10 @@ package() {
install -d ${pkgdir}/etc/ld.so.conf.d
echo "/usr/lib/xulrunner-2.0" > ${pkgdir}/etc/ld.so.conf.d/xulrunner.conf
}
+md5sums=('1b4d44ee5badc28fd332cba564ecde0a'
+ '2358a2ddd35bcdd62ff42442dfe548d9'
+ '639ea80e823543dd415b90c0ee804186'
+ 'a0236f6c3e55f60b7888d8cf137ff209'
+ 'f8b64cf798636a9c1e4e10c08de0b859'
+ '42f83468b296452fb754a81a4317ca64'
+ '0e970ff5600246e953f527813883e744')
diff --git a/extra/xulrunner/mips.patch b/extra/xulrunner/mips.patch
new file mode 100644
index 000000000..f9de910b2
--- /dev/null
+++ b/extra/xulrunner/mips.patch
@@ -0,0 +1,114 @@
+--- ../../tmp.ne6Bz1oy72/xulrunner/src/mozilla-2.0/js/src/assembler/jit/ExecutableAllocator.h 2011-03-18 20:33:47.000000000 -0300
++++ js/src/assembler/jit/ExecutableAllocator.h 2011-03-30 15:45:07.537247142 -0300
+@@ -44,9 +44,7 @@
+ #include <e32std.h>
+ #endif
+
+-#if WTF_CPU_MIPS && WTF_PLATFORM_LINUX
+ #include <sys/cachectl.h>
+-#endif
+
+ #if WTF_PLATFORM_WINCE
+ // From pkfuncs.h (private header file from the Platform Builder)
+@@ -311,89 +309,10 @@
+ #endif
+
+
+-#if WTF_CPU_X86 || WTF_CPU_X86_64
+- static void cacheFlush(void*, size_t)
+- {
+- }
+-#elif WTF_CPU_MIPS
+ static void cacheFlush(void* code, size_t size)
+ {
+-#if WTF_COMPILER_GCC && (GCC_VERSION >= 40300)
+-#if WTF_MIPS_ISA_REV(2) && (GCC_VERSION < 40403)
+- int lineSize;
+- asm("rdhwr %0, $1" : "=r" (lineSize));
+- //
+- // Modify "start" and "end" to avoid GCC 4.3.0-4.4.2 bug in
+- // mips_expand_synci_loop that may execute synci one more time.
+- // "start" points to the fisrt byte of the cache line.
+- // "end" points to the last byte of the line before the last cache line.
+- // Because size is always a multiple of 4, this is safe to set
+- // "end" to the last byte.
+- //
+- intptr_t start = reinterpret_cast<intptr_t>(code) & (-lineSize);
+- intptr_t end = ((reinterpret_cast<intptr_t>(code) + size - 1) & (-lineSize)) - 1;
+- __builtin___clear_cache(reinterpret_cast<char*>(start), reinterpret_cast<char*>(end));
+-#else
+- intptr_t end = reinterpret_cast<intptr_t>(code) + size;
+- __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
+-#endif
+-#else
+ _flush_cache(reinterpret_cast<char*>(code), size, BCACHE);
+-#endif
+- }
+-#elif WTF_CPU_ARM_THUMB2 && WTF_PLATFORM_IPHONE
+- static void cacheFlush(void* code, size_t size)
+- {
+- sys_dcache_flush(code, size);
+- sys_icache_invalidate(code, size);
+- }
+-#elif WTF_CPU_ARM_THUMB2 && WTF_PLATFORM_LINUX
+- static void cacheFlush(void* code, size_t size)
+- {
+- asm volatile (
+- "push {r7}\n"
+- "mov r0, %0\n"
+- "mov r1, %1\n"
+- "movw r7, #0x2\n"
+- "movt r7, #0xf\n"
+- "movs r2, #0x0\n"
+- "svc 0x0\n"
+- "pop {r7}\n"
+- :
+- : "r" (code), "r" (reinterpret_cast<char*>(code) + size)
+- : "r0", "r1", "r2");
+- }
+-#elif WTF_PLATFORM_SYMBIAN
+- static void cacheFlush(void* code, size_t size)
+- {
+- User::IMB_Range(code, static_cast<char*>(code) + size);
+- }
+-#elif WTF_CPU_ARM_TRADITIONAL && WTF_PLATFORM_LINUX && WTF_COMPILER_RVCT
+- static __asm void cacheFlush(void* code, size_t size);
+-#elif WTF_CPU_ARM_TRADITIONAL && (WTF_PLATFORM_LINUX || WTF_PLATFORM_ANDROID) && WTF_COMPILER_GCC
+- static void cacheFlush(void* code, size_t size)
+- {
+- asm volatile (
+- "push {r7}\n"
+- "mov r0, %0\n"
+- "mov r1, %1\n"
+- "mov r7, #0xf0000\n"
+- "add r7, r7, #0x2\n"
+- "mov r2, #0x0\n"
+- "svc 0x0\n"
+- "pop {r7}\n"
+- :
+- : "r" (code), "r" (reinterpret_cast<char*>(code) + size)
+- : "r0", "r1", "r2");
+- }
+-#elif WTF_PLATFORM_WINCE
+- static void cacheFlush(void* code, size_t size)
+- {
+- CacheRangeFlush(code, size, CACHE_SYNC_ALL);
+ }
+-#else
+- #error "The cacheFlush support is missing on this platform."
+-#endif
+
+ private:
+
+--- js/src/Makefile.in.orig 2011-03-30 22:02:39.725318514 -0300
++++ js/src/Makefile.in 2011-03-30 22:02:51.689347820 -0300
+@@ -914,7 +914,7 @@
+ # Needed to "configure" it correctly. Unfortunately these
+ # flags wind up being applied to all code in js/src, not just
+ # the code in js/src/assembler.
+-CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1
++CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_JIT=1
+
+ INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr
+
+
diff --git a/extra/xulrunner/xulrunner-omnijar.patch b/extra/xulrunner/xulrunner-omnijar.patch
index 66ec5206c..2cfab6b33 100644
--- a/extra/xulrunner/xulrunner-omnijar.patch
+++ b/extra/xulrunner/xulrunner-omnijar.patch
@@ -93,28 +93,6 @@ diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/re
# Parent 3038cccba1a071d6b418e15442d0f2d9f3dcb11d
Bug 620931 part 2 - When building --with-libxul-sdk, use the right preferences directory
-diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
---- a/browser/locales/Makefile.in
-+++ b/browser/locales/Makefile.in
-@@ -183,17 +183,17 @@ install:: $(addsuffix .xml,$(SEARCH_PLUG
- $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/searchplugins
-
-
- libs-%:
- $(NSINSTALL) -D $(DIST)/install
- @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-- @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
-+ @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
- @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-
-
- repackage-win32-installer: WIN32_INSTALLER_OUT="$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe"
- repackage-win32-installer: $(WIN32_INSTALLER_IN) $(SUBMAKEFILES)
- @echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
- $(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY) export
- $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/setup.exe l10ngen/7zSD.sfx
diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
--- a/toolkit/mozapps/installer/packager.mk
+++ b/toolkit/mozapps/installer/packager.mk
@@ -1735,3 +1713,14 @@ diff --git a/xulrunner/confvars.sh b/xulrunner/confvars.sh
fi
MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
MOZ_URL_CLASSIFIER=1
+--- a/browser/locales/Makefile.in.orig 2011-06-02 14:05:23.166534416 -0300
++++ b/browser/locales/Makefile.in 2011-06-02 14:05:35.948920125 -0300
+@@ -194,7 +194,7 @@ libs-%:
+ @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
+ @$(MAKE) -C ../../extensions/reporter/locales libs AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+ @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+- @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
++ @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
+ ifdef MOZ_BRANDING_DIRECTORY
+ @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+ endif
diff --git a/extra/zziplib/PKGBUILD b/extra/zziplib/PKGBUILD
new file mode 100644
index 000000000..4783fc5ee
--- /dev/null
+++ b/extra/zziplib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 126501 2011-06-05 18:50:29Z remy $
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+
+pkgname=zziplib
+pkgver=0.13.60
+pkgrel=1
+pkgdesc="A lightweight library that offers the ability to easily extract data from files archived in a single zip file"
+arch=('i686' 'x86_64')
+url="http://zziplib.sourceforge.net"
+license=('LGPL' 'MPL')
+depends=('zlib')
+makedepends=('python2')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ zziplib-0.13.60-ldflags.patch)
+md5sums=('54a6aa53262483a4d54f7c59f0a7258b'
+ 'e585052f884525a338ca341b5d2957dc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export PYTHON=/usr/bin/python2
+ patch -p1 -i ../zziplib-0.13.60-ldflags.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+#fix permission
+ chmod -s "${pkgdir}/usr/share/man/man3"
+ chmod 644 "${pkgdir}"/usr/share/man/man3/*
+ chown -R root:root "${pkgdir}/usr/share/man/man3"
+}
diff --git a/extra/zziplib/zziplib-0.13.60-ldflags.patch b/extra/zziplib/zziplib-0.13.60-ldflags.patch
new file mode 100644
index 000000000..3c95ff465
--- /dev/null
+++ b/extra/zziplib/zziplib-0.13.60-ldflags.patch
@@ -0,0 +1,14 @@
+https://sourceforge.net/tracker/?func=detail&aid=3175466&group_id=6389&atid=306389
+https://bugs.gentoo.org/354051
+
+--- a/configure
++++ b/configure
+@@ -292,7 +292,7 @@
+ # ---------------------------------------------------------------
+ AC_MSG_CHECKING([link options])
+ ZZIPLIB_LDFLAGS=""
+-test ".$can_build_shared" != ".no" && ZZIPLIB_LDFLAGS="--export-dynamic"
++test ".$can_build_shared" != ".no" && ZZIPLIB_LDFLAGS="-export-dynamic"
+ RESOLVES=" # "
+ case "$host_os" in mingw*)
+ ZZIPLIB_LDFLAGS="-no-undefined -export-all-symbols -mconsole"
diff --git a/libre/thunderbird-libre/rePKGBUILD b/libre/thunderbird-libre/rePKGBUILD
index c6d33d6d1..215f893a1 100644
--- a/libre/thunderbird-libre/rePKGBUILD
+++ b/libre/thunderbird-libre/rePKGBUILD
@@ -19,7 +19,6 @@ build() {
rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
pushd usr/lib/${pkgname%-libre}-3.1/defaults/pref/ >/dev/null
-
patch -Np0 -i "${srcdir}/gnuzilla-addons.patch"
popd >/dev/null
rm "${srcdir}/gnuzilla-addons.patch"
diff --git a/multilib-testing/binutils-multilib/PKGBUILD b/multilib-testing/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..f3be8bdc7
--- /dev/null
+++ b/multilib-testing/binutils-multilib/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 48900 2011-06-07 12:25:49Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils-multilib
+pkgver=2.21
+pkgrel=9
+_date=20110605
+pkgdesc="A set of programs to assemble and manipulate binary and object files for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('multilib-devel')
+provides=("binutils=$pkgver-$pkgrel")
+conflicts=('binutils')
+depends=('glibc>=2.14' 'zlib')
+makedepends=('dejagnu' 'gcc-multilib') # Make sure we compile this with gcc-multilib
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(http://mirrors.kernel.org/archlinux/other/binutils/binutils-${pkgver}_${_date}.tar.bz2)
+md5sums=('a2e7784d5d66c1d692a0a1fa248ea66c')
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared \
+ --enable-64-bit-bfd --enable-multilib
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+}
+
+check() {
+ cd ${srcdir}/binutils-build
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/multilib-testing/binutils-multilib/binutils.install b/multilib-testing/binutils-multilib/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/multilib-testing/binutils-multilib/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/multilib-testing/gcc-multilib/PKGBUILD b/multilib-testing/gcc-multilib/PKGBUILD
new file mode 100644
index 000000000..952d22b11
--- /dev/null
+++ b/multilib-testing/gcc-multilib/PKGBUILD
@@ -0,0 +1,298 @@
+# $Id: PKGBUILD 48902 2011-06-07 12:26:35Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgbase='gcc-multilib'
+pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
+pkgver=4.6.0
+pkgrel=7
+_snapshot=4.6-20110603
+_libstdcppmanver=20110201 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection for multilib"
+arch=('x86_64')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils-multilib>=2.21-9' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib' 'dejagnu'
+ 'lib32-glibc>=2.13')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
+ gcc_pure64.patch
+ gcc-hash-style-both.patch)
+md5sums=('c97d52b2b4e6c8c5cf665ae3eb9e8e49'
+ '1e9fd2eaf0ee47ea64e82c48998f1999'
+ '22cec272f9cc2801d3cd348feaca888b'
+ '4df25b623799b148a0703eaeec8fdf3f')
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ cd ${_basedir}
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+
+ ${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://bugs.archlinux.org/ \
+ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
+ --enable-shared --enable-threads=posix \
+ --with-system-zlib --enable-__cxa_atexit \
+ --disable-libunwind-exceptions --enable-clocale=gnu \
+ --enable-gnu-unique-object --enable-linker-build-id \
+ --with-ppl --enable-cloog-backend=isl \
+ --enable-lto --enable-gold --enable-ld=default \
+ --enable-plugin --with-plugin-ld=ld.gold \
+ --enable-multilib --disable-libstdcxx-pch \
+ --enable-checking=release
+ make
+}
+
+check() {
+ cd gcc-build
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs-multilib()
+{
+ pkgdesc="Runtime libraries shipped by GCC for multilib"
+ depends=('glibc>=2.13' "lib32-gcc-libs=$pkgver-$pkgrel")
+ provides=("gcc-libs=$pkgver-$pkgrel")
+ conflicts=('gcc-libs')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
+
+ # remove stuff in lib32-gcc-libs
+ rm -rf ${pkgdir}/usr/lib32
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_lib32-gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC (32-bit)"
+ depends=('lib32-glibc>=2.13' "gcc-libs>=$pkgver")
+
+ cd gcc-build
+ make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm ${pkgdir}/usr/lib32/libgfortran.spec
+
+ # remove stuff in gcc-libs-multilib
+ rm -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/info
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-multilib()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
+ depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.21-9' 'libmpc' 'cloog' 'ppl')
+ groups=('multilib-devel')
+ provides=("gcc=$pkgver-$pkgrel")
+ conflicts=('gcc')
+ install=gcc.install
+
+ cd gcc-build
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm $pkgdir/usr/lib{,32}/*.so*
+ rm $pkgdir/usr/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm $pkgdir/usr/lib{,32}/libgfortran.spec
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,{,32/}libgfortranbegin.a}
+ rm -r $pkgdir/usr/lib{,32}/go
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm $pkgdir/usr/share/man/man3/ffi*
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran-multilib()
+{
+ pkgdesc="Fortran front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-fortran=$pkgver-$pkgrel")
+ conflicts=('gcc-fortran')
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib{,32}/lib{gfortran,quadmath}.so*
+ rm ${pkgdir}/usr/share/info/libquadmath.info
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc-multilib()
+{
+ pkgdesc="Objective-C front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-objc=$pkgver-$pkgrel")
+ conflicts=('gcc-objc')
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib{,32}/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada-multilib()
+{
+ pkgdesc="Ada front-end for GCC (GNAT) for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-ada=$pkgver-$pkgrel")
+ conflicts=('gcc-ada')
+ install=gcc-ada.install
+
+ cd gcc-build/gcc
+ make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+
+ cd ../$CHOST/32/libada
+ make -j1 DESTDIR=${pkgdir} INSTALL="install" \
+ INSTALL_DATA="install -m644" install-gnatlib
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-go-multilib()
+{
+ pkgdesc="Go front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-go=$pkgver-$pkgrel")
+ conflicts=('gcc-go')
+ install=gcc-go.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgo
+ make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
+ install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
+}
diff --git a/multilib-testing/gcc-multilib/gcc-ada.install b/multilib-testing/gcc-multilib/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-ada.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/multilib-testing/gcc-multilib/gcc-fortran.install b/multilib-testing/gcc-multilib/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-fortran.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/multilib-testing/gcc-multilib/gcc-go.install b/multilib-testing/gcc-multilib/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-go.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gccgo.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/multilib-testing/gcc-multilib/gcc-hash-style-both.patch b/multilib-testing/gcc-multilib/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-hash-style-both.patch
@@ -0,0 +1,122 @@
+--- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
+@@ -41,7 +41,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
++++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -78,7 +78,7 @@
+ %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
++++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -104,7 +104,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -64,7 +64,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
++++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
+@@ -389,11 +389,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
+
+--- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
++++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
+@@ -830,7 +830,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
+
+--- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
++++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -113,7 +113,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -121,7 +121,7 @@
+ %{static:-static}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -193,7 +193,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
++++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -74,7 +74,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!static: \
diff --git a/multilib-testing/gcc-multilib/gcc-libs.install b/multilib-testing/gcc-multilib/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-libs.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+filelist=(libgomp.info libquadmath.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/multilib-testing/gcc-multilib/gcc.install b/multilib-testing/gcc-multilib/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/multilib-testing/gcc-multilib/gcc_pure64.patch b/multilib-testing/gcc-multilib/gcc_pure64.patch
new file mode 100644
index 000000000..8c6b08171
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc_pure64.patch
@@ -0,0 +1,24 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,7 +49,7 @@
+ done. */
+
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..f5958c7da
--- /dev/null
+++ b/multilib-testing/lib32-glibc/PKGBUILD
@@ -0,0 +1,133 @@
+# $Id: PKGBUILD 48898 2011-06-07 12:25:15Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuild with each new glibc version
+
+_pkgbasename=glibc
+pkgname=lib32-$_pkgbasename
+pkgver=2.14
+pkgrel=1
+_glibcdate=20110605
+pkgdesc="GNU C Library for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+depends=("glibc>=$pkgver")
+makedepends=('gcc-multilib>=4.4')
+options=('!strip' '!emptydirs')
+source=(http://mirrors.kernel.org/archlinux/other/glibc/${_pkgbasename}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.1-static-shared-getpagesize.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.13-futex.patch
+ glibc-2.14-libdl-crash.patch
+ lib32-glibc.conf)
+md5sums=('a96742599fc8a99e52b9e344f39a1000'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ 'cea62cc6b903d222c5f26e05a3c0e0e6'
+ '6e052f1cb693d5d3203f50f9d4e8c33b')
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+ patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+ # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+ patch -Np1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
+ # using Fedora "fix" as patch in that bug report causes breakages...
+ patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
+
+ # http://www.exploit-db.com/exploits/15274/
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/usr/lib32" >> configparms
+
+ export CC="gcc -m32"
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib32 --libexecdir=/usr/lib32 \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --disable-multi-arch i686-unknown-linux-gnu
+
+ make
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share}}
+
+ # We need one 32 bit specific header file
+ find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete
+
+ # manually strip files as stripping libpthread-*.so and libthread_db.so
+ # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+ # valgrind on x86_64
+
+ cd $pkgdir
+ strip $STRIP_BINARIES usr/lib32/getconf/*
+
+ strip $STRIP_STATIC usr/lib32/*.a \
+ usr/lib32/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ usr/lib32/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ usr/lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ usr/lib32/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib32/{pt_chown,gconv/*.so}
+
+ # Dynamic linker
+ install -d -m755 ${pkgdir}/lib
+ ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add /usr/lib32 to the default library search path
+ install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
+
+ # Symlink /usr/lib32/locale to /usr/lib/locale
+ ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
+}
diff --git a/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch b/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch b/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch b/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
@@ -0,0 +1,11 @@
+--- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+ #else
diff --git a/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
@@ -0,0 +1,26 @@
+From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH 1/1] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 22a1635..7674d49 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.2
diff --git a/multilib-testing/lib32-glibc/glibc-2.13-futex.patch b/multilib-testing/lib32-glibc/glibc-2.13-futex.patch
new file mode 100644
index 000000000..9b9c3ac45
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.13-futex.patch
@@ -0,0 +1,31 @@
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock:
+
+ 7: movq %rdx, %rax
+
+-#ifndef __ASSUME_PRIVATE_FUTEX
++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ addq $16, %rsp
+ cfi_adjust_cfa_offset(-16)
+ popq %r14
+@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..ee29f8c20
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+ }
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/multilib-testing/lib32-glibc/glibc-__i686.patch b/multilib-testing/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/multilib-testing/lib32-glibc/lib32-glibc.conf b/multilib-testing/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib-testing/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/staging/boost/4994-compile-fix-for-Python32-v2.patch b/staging/boost/4994-compile-fix-for-Python32-v2.patch
deleted file mode 100644
index 22613b3f2..000000000
--- a/staging/boost/4994-compile-fix-for-Python32-v2.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: libs/python/src/converter/builtin_converters.cpp
-===================================================================
---- libs/python/src/converter/builtin_converters.cpp (revision 67279)
-+++ libs/python/src/converter/builtin_converters.cpp (working copy)
-@@ -431,7 +431,11 @@
- if (!result.empty())
- {
- int err = PyUnicode_AsWideChar(
-+#if PY_VERSION_HEX >= 0x03020000
-+ intermediate
-+#else
- (PyUnicodeObject *)intermediate
-+#endif
- , &result[0]
- , result.size());
-
diff --git a/staging/boost/PKGBUILD b/staging/boost/PKGBUILD
deleted file mode 100644
index 9329f188a..000000000
--- a/staging/boost/PKGBUILD
+++ /dev/null
@@ -1,112 +0,0 @@
-# $Id: PKGBUILD 126149 2011-06-01 20:01:54Z ibiru $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Kritoke <kritoke@gamebox.net>
-# Contributor: Luca Roccia <little_rock@users.sourceforge.net>
-
-pkgbase=boost
-pkgname=('boost-libs' 'boost')
-pkgver=1.46.1
-_boostver=${pkgver//./_}
-pkgrel=2
-arch=('i686' 'x86_64')
-url="http://www.boost.org/"
-makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi')
-source=(http://downloads.sourceforge.net/sourceforge/${pkgbase}/${pkgbase}_${_boostver}.tar.gz
- 4994-compile-fix-for-Python32-v2.patch
- boost-1.46.0-spirit.patch)
-license=('custom')
-md5sums=('341e5d993b19d099bf1a548495ea91ec'
- 'cb59e8adbf2a45ef9264a2f4ab92b849'
- '9d6e2f13fef23bf27d7bdddc104e182a')
-
-_stagedir="${srcdir}/stagedir"
-
-build() {
- # set python path for bjam
- cd "${srcdir}/${pkgbase}_${_boostver}/tools"
- echo "using python : 2.7 : /usr/bin/python2 ;" >> build/v2/user-config.jam
- echo "using python : 3.2 : /usr/bin/python : /usr/include/python3.2mu : /usr/lib ;" >> build/v2/user-config.jam
- echo "using mpi ;" >> build/v2/user-config.jam
-
- # build bjam
- cd "${srcdir}/${pkgbase}_${_boostver}/tools/build/v2/engine/src"
- ./build.sh cc
-
- _bindir="bin.linuxx86"
- [ "${CARCH}" = "x86_64" ] && _bindir="bin.linuxx86_64"
-
- install -d "${_stagedir}"/usr/bin
- install ${_bindir}/bjam "${_stagedir}"/usr/bin/bjam
-
- # build bcp
- cd "${srcdir}/${pkgbase}_${_boostver}/tools/bcp"
- ../build/v2/engine/src/${_bindir}/bjam --toolset=gcc
- install -m755 "${srcdir}/${pkgbase}_${_boostver}/dist/bin/bcp" \
- ${_stagedir}/usr/bin/bcp
-
- # build libs
- cd "${srcdir}/${pkgbase}_${_boostver}"
- #python 3.2 support
- #https://svn.boost.org/trac/boost/ticket/4994
- patch -Np0 -i "${srcdir}/4994-compile-fix-for-Python32-v2.patch"
- patch -Np0 -i "${srcdir}/boost-1.46.0-spirit.patch"
-
- # default "minimal" install: "release link=shared,static
- # runtime-link=shared threading=single,multi"
- # --layout=tagged will add the "-mt" suffix for multithreaded libraries
- # and installs includes in /usr/include/boost.
- # --layout=system no longer adds the -mt suffix for multi-threaded libs.
- # install to ${_stagedir} in preparation for split packaging
-
- ./tools/build/v2/engine/src/${_bindir}/bjam \
- release debug-symbols=off threading=multi \
- runtime-link=shared link=shared,static \
- cflags=-fno-strict-aliasing \
- toolset=gcc \
- --prefix="${_stagedir}" \
- -sTOOLS=gcc \
- --layout=system \
- ${MAKEFLAGS} \
- install
-
- # pyste is unmaintained: http://www.boost.org/doc/libs/1_46_0/libs/python/doc/index.html
- # build pyste
- #cd "${srcdir}/${pkgbase}_${_boostver}/libs/python/pyste/install"
- #python2 setup.py install --root=${_stagedir} --optimize=1
-}
-
-package_boost() {
- pkgdesc="Free peer-reviewed portable C++ source libraries - Development"
- depends=("boost-libs=${pkgver}")
- optdepends=('python: for python bindings'
- 'python2: for python2 bindings')
-
- install -d "${pkgdir}"/usr/{include,lib}
- # headers/source files
- cp -r "${_stagedir}"/include/ "${pkgdir}"/usr/
-
- # static libs
- cp -r "${_stagedir}"/lib/*.a "${pkgdir}"/usr/lib/
-
- # utilities (bjam, bcp, pyste)
- cp -r "${_stagedir}"/usr/* "${pkgdir}"/usr/
-
- # license
- install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
- "${pkgdir}"/usr/share/licenses/boost/LICENSE_1_0.txt
-}
-
-package_boost-libs() {
- pkgdesc="Free peer-reviewed portable C++ source libraries - Runtime"
- depends=('gcc-libs' 'bzip2' 'zlib' 'icu')
- optdepends=('openmpi: for mpi support')
-
- install -d "${pkgdir}/usr/lib"
- #shared libs
- cp -r "${_stagedir}"/lib/*.so{,.*} "${pkgdir}/usr/lib/"
-
- # license
- install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
- "${pkgdir}"/usr/share/licenses/boost-libs/LICENSE_1_0.txt
-}
diff --git a/staging/boost/boost-1.46.0-spirit.patch b/staging/boost/boost-1.46.0-spirit.patch
deleted file mode 100644
index 6fae331ee..000000000
--- a/staging/boost/boost-1.46.0-spirit.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-Index: boost/spirit/home/qi/nonterminal/detail/parameterized.hpp
-===================================================================
---- boost/spirit/home/qi/nonterminal/detail/parameterized.hpp (revision 68724)
-+++ boost/spirit/home/qi/nonterminal/detail/parameterized.hpp (revision 68725)
-@@ -14,6 +14,7 @@
-
- #include <boost/ref.hpp>
-
-+#include <boost/spirit/home/support/handles_container.hpp>
- #include <boost/spirit/home/qi/parser.hpp>
-
- namespace boost { namespace spirit { namespace qi
-@@ -59,4 +60,16 @@ namespace boost { namespace spirit { nam
- };
- }}}
-
-+namespace boost { namespace spirit { namespace traits
-+{
-+ ///////////////////////////////////////////////////////////////////////////
-+ template <typename Subject, typename Params, typename Attribute
-+ , typename Context, typename Iterator>
-+ struct handles_container<qi::parameterized_nonterminal<Subject, Params>
-+ , Attribute, Context, Iterator>
-+ : handles_container<typename remove_const<Subject>::type
-+ , Attribute, Context, Iterator>
-+ {};
-+}}}
-+
- #endif
-Index: boost/spirit/home/karma/nonterminal/detail/parameterized.hpp
-===================================================================
---- boost/spirit/home/karma/nonterminal/detail/parameterized.hpp (revision 68724)
-+++ boost/spirit/home/karma/nonterminal/detail/parameterized.hpp (revision 68725)
-@@ -14,6 +14,7 @@
-
- #include <boost/ref.hpp>
-
-+#include <boost/spirit/home/support/handles_container.hpp>
- #include <boost/spirit/home/karma/generator.hpp>
-
- namespace boost { namespace spirit { namespace karma
-@@ -60,4 +61,17 @@ namespace boost { namespace spirit { nam
- };
- }}}
-
-+
-+namespace boost { namespace spirit { namespace traits
-+{
-+ ///////////////////////////////////////////////////////////////////////////
-+ template <typename Subject, typename Params, typename Attribute
-+ , typename Context, typename Iterator>
-+ struct handles_container<karma::parameterized_nonterminal<Subject, Params>
-+ , Attribute, Context, Iterator>
-+ : handles_container<typename remove_const<Subject>::type
-+ , Attribute, Context, Iterator>
-+ {};
-+}}}
-+
- #endif
diff --git a/staging/brltty/PKGBUILD b/staging/brltty/PKGBUILD
deleted file mode 100644
index e173c7e6c..000000000
--- a/staging/brltty/PKGBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# $Id: PKGBUILD 126155 2011-06-01 20:36:52Z andyrtr $
-# Maintainer:
-# Contributor: Jan de Groot <jgc@archlinux.org>
-# Contributor: Giovanni Scafora <giovanni@archlinux.org>
-
-pkgname=brltty
-pkgver=4.2
-pkgrel=4
-pkgdesc="Braille display driver for Linux/Unix"
-arch=('i686' 'x86_64')
-url="http://mielke.cc/brltty"
-license=('GPL' 'LGPL')
-depends=('libxaw' 'at-spi' 'gpm' 'icu' 'python2' 'tcl' 'atk' 'libxtst')
-makedepends=('pyrex' 'bluez')
-optdepends=('bluez: bluetooth support')
-backup=(etc/brltty.conf etc/conf.d/brltty.conf)
-options=('!makeflags' '!emptydirs')
-source=(http://mielke.cc/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz
- 'brltty-4.2-S_ISCHR.patch'
- 'brltty'
- 'brltty.conf')
-md5sums=('192af5e634210616928496645e392097'
- '5954b289efaf2ff17676d06de9a88854'
- '831ebaf0c56091702929c68805d20c4f'
- 'a8ab8b3dd059e96e1734bc9cdcf844fc')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- CFLAGS+="${CFLAGS} -D_GNU_SOURCE" \
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-gpm \
- --disable-java-bindings \
- --disable-caml-bindings \
- PYTHON=/usr/bin/python2
-
- patch -Np1 -i ${srcdir}/brltty-4.2-S_ISCHR.patch
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make INSTALL_ROOT="${pkgdir}" install
- install -D -m755 ${srcdir}/brltty ${pkgdir}/etc/rc.d/brltty
- install -D -m644 ${srcdir}/brltty.conf ${pkgdir}/etc/conf.d/brltty.conf
- install -D -m644 Documents/brltty.conf ${pkgdir}/etc/brltty.conf
-}
diff --git a/staging/brltty/brltty b/staging/brltty/brltty
deleted file mode 100755
index 5ed21a52d..000000000
--- a/staging/brltty/brltty
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-daemon_name=brltty
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/$daemon_name.conf
-
-get_pid() {
- pidof -o %PPID $daemon_name
-}
-
-case "$1" in
- start)
- stat_busy "Starting $daemon_name daemon"
-
- PID=$(get_pid)
- if [ -z "$PID" ]; then
- [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
- # RUN
- $daemon_name $brltty_args
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- echo $(get_pid) > /var/run/$daemon_name.pid
- add_daemon $daemon_name
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- ;;
-
- stop)
- stat_busy "Stopping $daemon_name daemon"
- PID=$(get_pid)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- rm -f /var/run/$daemon_name.pid &> /dev/null
- rm_daemon $daemon_name
- stat_done
- fi
- ;;
-
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
-
- status)
- stat_busy "Checking $daemon_name status";
- ck_status $daemon_name
- ;;
-
- *)
- echo "usage: $0 {start|stop|restart|status}"
-esac
-
-exit 0
diff --git a/staging/brltty/brltty-4.2-S_ISCHR.patch b/staging/brltty/brltty-4.2-S_ISCHR.patch
deleted file mode 100644
index eddac9616..000000000
--- a/staging/brltty/brltty-4.2-S_ISCHR.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up brltty-4.2/Programs/sys_linux.c.BAD brltty-4.2/Programs/sys_linux.c
---- brltty-4.2/Programs/sys_linux.c.BAD 2010-05-21 09:04:10.003122084 -0400
-+++ brltty-4.2/Programs/sys_linux.c 2010-05-21 09:04:19.376198268 -0400
-@@ -23,6 +23,7 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
-+#include <sys/stat.h>
- #include <linux/kd.h>
-
- #ifdef HAVE_LINUX_INPUT_H
diff --git a/staging/brltty/brltty.conf b/staging/brltty/brltty.conf
deleted file mode 100644
index 94115e1d5..000000000
--- a/staging/brltty/brltty.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-# Specify any arguments to pass to brltty here.
-brltty_args="" \ No newline at end of file
diff --git a/staging/enchant/PKGBUILD b/staging/enchant/PKGBUILD
deleted file mode 100644
index 1f95981e7..000000000
--- a/staging/enchant/PKGBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id: PKGBUILD 126152 2011-06-01 20:31:07Z andyrtr $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: dorphell <dorphell@archlinux.org>
-
-pkgname=enchant
-pkgver=1.6.0
-pkgrel=2
-pkgdesc="A wrapper library for generic spell checking"
-arch=('i686' 'x86_64')
-url="http://www.abisource.com/enchant/"
-license=('LGPL')
-depends=('aspell' 'dbus-glib' 'hunspell')
-makedepends=('hspell')
-options=('!libtool')
-source=("http://www.abisource.com/downloads/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
-md5sums=('de11011aff801dc61042828041fb59c7')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr \
- --disable-static \
- --disable-ispell \
- --with-myspell-dir=/usr/share/myspell
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/staging/gptfdisk/PKGBUILD b/staging/gptfdisk/PKGBUILD
deleted file mode 100644
index c3e5215e6..000000000
--- a/staging/gptfdisk/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id: PKGBUILD 126131 2011-06-01 17:33:51Z foutrelis $
-# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
-# Contributor: Tobias Powalowski <tpowa@archlinux.org>
-# Contributor: Hokum <hokum_at_mail_dot_ru>
-
-pkgname=gptfdisk
-pkgver=0.7.1
-pkgrel=3
-pkgdesc="A text-mode partitioning tool that works on Globally Unique Identifier (GUID) Partition Table (GPT) disks"
-arch=('i686' 'x86_64')
-url="http://www.rodsbooks.com/gdisk/"
-license=('GPL2')
-depends=('gcc-libs' 'util-linux' 'popt' 'icu')
-provides=('gdisk')
-conflicts=('gdisk')
-replaces=('gdisk')
-source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tgz)
-md5sums=('7c8d810df61e81c821bef399b832e89e')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- make
-}
-
-package () {
- cd "$srcdir/$pkgname-$pkgver"
-
- install -d "$pkgdir"/{sbin,usr/share/{man/man8,gdisk}}
- install -t "$pkgdir/sbin" gdisk sgdisk fixparts
- install -m644 -t "$pkgdir/usr/share/man/man8" {gdisk,sgdisk}.8
- install -m644 -t "$pkgdir/usr/share/gdisk" README NEWS
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/staging/hunspell/PKGBUILD b/staging/hunspell/PKGBUILD
deleted file mode 100644
index fefa04db4..000000000
--- a/staging/hunspell/PKGBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id: PKGBUILD 125861 2011-05-30 15:55:43Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Hussam Al-Tayeb <ht990332@gmail.com>
-
-pkgname=hunspell
-pkgver=1.3.2
-pkgrel=1
-pkgdesc="Spell checker and morphological analyzer library and program"
-arch=('i686' 'x86_64')
-url="http://hunspell.sourceforge.net/"
-license=('GPL' 'LGPL' 'MPL')
-depends=('gcc-libs' 'readline')
-optdepends=('perl: for ispellaff2myspell')
-options=('!libtool')
-source=(http://downloads.sourceforge.net/hunspell/hunspell-$pkgver.tar.gz)
-md5sums=('3121aaf3e13e5d88dfff13fb4a5f1ab8')
-
-build() {
- cd "$srcdir/hunspell-$pkgver"
- ./configure --prefix=/usr --disable-static \
- --with-ui --with-readline --with-experimental
- make
-}
-
-package() {
- cd "$srcdir/hunspell-$pkgver"
- make DESTDIR="$pkgdir" install
-}
diff --git a/staging/icu/PKGBUILD b/staging/icu/PKGBUILD
deleted file mode 100644
index 8321c3e82..000000000
--- a/staging/icu/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id: PKGBUILD 125862 2011-05-30 16:53:31Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Art Gramlich <art@gramlich-net.com>
-
-pkgname=icu
-pkgver=4.8
-pkgrel=1
-pkgdesc="International Components for Unicode library"
-arch=(i686 x86_64)
-url="http://www.icu-project.org/"
-license=('custom:"icu"')
-depends=('gcc-libs' 'sh')
-source=(http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver/./_}-src.tgz
- #http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver//./_}-src.tgz
- icu.8198.revert.icu5431.patch)
-md5sums=('e78194c49d7fd8131353aa180d11b789'
- 'ebd5470fc969c75e52baf4af94a9ee82')
-
-build() {
- cd ${srcdir}/icu/source
- # fix Malayalam encoding https://bugzilla.redhat.com/show_bug.cgi?id=654200
- patch -Rp3 -i ${srcdir}/icu.8198.revert.icu5431.patch
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man
- make
-}
-
-package() {
- cd ${srcdir}/icu/source
- make -j1 DESTDIR=${pkgdir} install
-
- # Install license
- install -Dm644 ${srcdir}/icu/license.html ${pkgdir}/usr/share/licenses/icu/license.html
-}
diff --git a/staging/icu/icu.8198.revert.icu5431.patch b/staging/icu/icu.8198.revert.icu5431.patch
deleted file mode 100644
index 4c3e78b8e..000000000
--- a/staging/icu/icu.8198.revert.icu5431.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-Index: icu/trunk/source/layout/IndicReordering.cpp
-===================================================================
---- icu/trunk/source/layout/IndicReordering.cpp (revision 25772)
-+++ icu/trunk/source/layout/IndicReordering.cpp (revision 26090)
-@@ -126,4 +126,8 @@
- FeatureMask fSMFeatures;
-
-+ LEUnicode fPreBaseConsonant;
-+ LEUnicode fPreBaseVirama;
-+ le_int32 fPBCIndex;
-+ FeatureMask fPBCFeatures;
-
- void saveMatra(LEUnicode matra, le_int32 matraIndex, IndicClassTable::CharClass matraClass)
-@@ -172,5 +176,6 @@
- fMatraFeatures(0), fMPreOutIndex(-1), fMPreFixups(mpreFixups),
- fVMabove(0), fVMpost(0), fVMIndex(0), fVMFeatures(0),
-- fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0)
-+ fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0),
-+ fPreBaseConsonant(0), fPreBaseVirama(0), fPBCIndex(0), fPBCFeatures(0)
- {
- // nothing else to do...
-@@ -191,4 +196,6 @@
- fVMabove = fVMpost = 0;
- fSMabove = fSMbelow = 0;
-+
-+ fPreBaseConsonant = fPreBaseVirama = 0;
- }
-
-@@ -386,4 +393,12 @@
- }
-
-+ void notePreBaseConsonant(le_uint32 index,LEUnicode PBConsonant, LEUnicode PBVirama, FeatureMask features)
-+ {
-+ fPBCIndex = index;
-+ fPreBaseConsonant = PBConsonant;
-+ fPreBaseVirama = PBVirama;
-+ fPBCFeatures = features;
-+ }
-+
- void noteBaseConsonant()
- {
-@@ -465,4 +480,20 @@
- }
-
-+ void writePreBaseConsonant()
-+ {
-+ // The TDIL spec says that consonant + virama + RRA should produce a rakar in Malayalam. However,
-+ // it seems that almost none of the fonts for Malayalam are set up to handle this.
-+ // So, we're going to force the issue here by using the rakar as defined with RA in most fonts.
-+
-+ if (fPreBaseConsonant == 0x0d31) { // RRA
-+ fPreBaseConsonant = 0x0d30; // RA
-+ }
-+
-+ if (fPreBaseConsonant != 0) {
-+ writeChar(fPreBaseConsonant, fPBCIndex, fPBCFeatures);
-+ writeChar(fPreBaseVirama,fPBCIndex-1,fPBCFeatures);
-+ }
-+ }
-+
- le_int32 getOutputIndex()
- {
-@@ -723,4 +754,5 @@
- }
-
-+
- IndicClassTable::CharClass charClass = CC_RESERVED;
- IndicClassTable::CharClass nextClass = CC_RESERVED;
-@@ -730,7 +762,9 @@
- le_bool seenVattu = FALSE;
- le_bool seenBelowBaseForm = FALSE;
-+ le_bool seenPreBaseForm = FALSE;
- le_bool hasNukta = FALSE;
- le_bool hasBelowBaseForm = FALSE;
- le_bool hasPostBaseForm = FALSE;
-+ le_bool hasPreBaseForm = FALSE;
-
- if (postBase < markStart && classTable->isNukta(chars[postBase])) {
-@@ -746,12 +780,20 @@
- hasBelowBaseForm = IndicClassTable::hasBelowBaseForm(charClass) && !hasNukta;
- hasPostBaseForm = IndicClassTable::hasPostBaseForm(charClass) && !hasNukta;
-+ hasPreBaseForm = IndicClassTable::hasPreBaseForm(charClass) && !hasNukta;
-
- if (IndicClassTable::isConsonant(charClass)) {
- if (postBaseLimit == 0 || seenVattu ||
- (baseConsonant > baseLimit && !classTable->isVirama(chars[baseConsonant - 1])) ||
-- !(hasBelowBaseForm || hasPostBaseForm)) {
-+ !(hasBelowBaseForm || hasPostBaseForm || hasPreBaseForm)) {
- break;
- }
-
-+ // Note any pre-base consonants
-+ if ( baseConsonant == lastConsonant && lastConsonant > 0 &&
-+ hasPreBaseForm && classTable->isVirama(chars[baseConsonant - 1])) {
-+ output.notePreBaseConsonant(lastConsonant,chars[lastConsonant],chars[lastConsonant-1],tagArray2);
-+ seenPreBaseForm = TRUE;
-+
-+ }
- // consonants with nuktas are never vattus
- seenVattu = IndicClassTable::isVattu(charClass) && !hasNukta;
-@@ -786,10 +828,12 @@
-
- // write any pre-base consonants
-+ output.writePreBaseConsonant();
-+
- le_bool supressVattu = TRUE;
-
- for (i = baseLimit; i < baseConsonant; i += 1) {
- LEUnicode ch = chars[i];
-- // Don't put 'blwf' on first consonant.
-- FeatureMask features = (i == baseLimit? tagArray2 : tagArray1);
-+ // Don't put 'pstf' or 'blwf' on anything before the base consonant.
-+ FeatureMask features = tagArray1 & ~( pstfFeatureMask | blwfFeatureMask );
-
- charClass = classTable->getCharClass(ch);
-@@ -842,5 +886,5 @@
-
- // write below-base consonants
-- if (baseConsonant != lastConsonant) {
-+ if (baseConsonant != lastConsonant && !seenPreBaseForm) {
- for (i = bcSpan + 1; i < postBase; i += 1) {
- output.writeChar(chars[i], i, tagArray1);
-@@ -872,5 +916,5 @@
- // write post-base consonants
- // FIXME: does this put the right tags on post-base consonants?
-- if (baseConsonant != lastConsonant) {
-+ if (baseConsonant != lastConsonant && !seenPreBaseForm) {
- if (postBase <= lastConsonant) {
- for (i = postBase; i <= lastConsonant; i += 1) {
diff --git a/staging/kdeaccessibility/PKGBUILD b/staging/kdeaccessibility/PKGBUILD
new file mode 100644
index 000000000..646a47d71
--- /dev/null
+++ b/staging/kdeaccessibility/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 126536 2011-06-06 06:09:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeaccessibility
+pkgname=('kdeaccessibility-colorschemes'
+ 'kdeaccessibility-iconthemes'
+ 'kdeaccessibility-jovie'
+ 'kdeaccessibility-kaccessible'
+ 'kdeaccessibility-kmag'
+ 'kdeaccessibility-kmousetool'
+ 'kdeaccessibility-kmouth')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://accessibility.kde.org'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-runtime'
+ 'speech-dispatcher')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('5a8ede86e6a483379ff62c1d85445c93c8400857')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Opentts=OFF
+ make
+}
+
+package_kdeaccessibility-colorschemes() {
+ pkgdesc='KDE Accessibility color schemes'
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-iconthemes() {
+ pkgdesc='KDE Accessibility icon themes'
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-jovie() {
+ pkgdesc='A text to speech application'
+ depends=('kdebase-runtime' 'speech-dispatcher')
+ replaces=('kdeaccessibility-kttsd')
+ install='kdeaccessibility.install'
+ cd $srcdir/build/jovie
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/jovie
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kaccessible() {
+ pkgdesc='Provides accessibility services like focus tracking and a screenreader'
+ depends=('kdebase-runtime' 'speech-dispatcher')
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kaccessible
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmag() {
+ pkgdesc='Screen Magnifier'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kmag/"
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kmag
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmag
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmousetool() {
+ pkgdesc='Clicks the mouse for you, reducing the effects of RSI'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kmousetool/"
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kmousetool
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmousetool
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmouth() {
+ pkgdesc='Speech Synthesizer Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kmouth/"
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kmouth
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmouth
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdesdk/kdesdk.install b/staging/kdeaccessibility/kdeaccessibility.install
index e70c054ec..e70c054ec 100644
--- a/staging/kdesdk/kdesdk.install
+++ b/staging/kdeaccessibility/kdeaccessibility.install
diff --git a/staging/kdeadmin/PKGBUILD b/staging/kdeadmin/PKGBUILD
new file mode 100644
index 000000000..de420aef1
--- /dev/null
+++ b/staging/kdeadmin/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 126537 2011-06-06 06:09:35Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeadmin
+pkgname=('kdeadmin-kcron'
+ 'kdeadmin-ksystemlog'
+ 'kdeadmin-kuser'
+ 'kdeadmin-system-config-printer-kde')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeadmin')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebindings-python'
+ 'system-config-printer-common' 'python2-pyqt')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'syslog-path.patch')
+sha1sums=('5f683dbdeec75b4baa025a987692a63912b7e4af'
+ '20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -p1 -i ${srcdir}/syslog-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_kpackage=OFF \
+ -DBUILD_knetworkconf=OFF \
+ -DBUILD_lilo-config=OFF \
+ -DBUILD_strigi-analyzer=OFF
+ make
+}
+
+package_kdeadmin-kcron() {
+ pkgdesc='Configure and schedule tasks'
+ depends=('kdelibs')
+ cd $srcdir/build/kcron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-ksystemlog() {
+ pkgdesc='System log viewer tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/ksystemlog/"
+ cd $srcdir/build/ksystemlog
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksystemlog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-kuser() {
+ pkgdesc='User Manager'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/system/kuser/"
+ install='kdeadmin.install'
+ cd $srcdir/build/kuser
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kuser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-system-config-printer-kde() {
+ pkgdesc='Configure local and remote Printers'
+ depends=('kdebindings-python' 'system-config-printer-common' 'python2-pyqt')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/system-config-printer-kde
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find ${pkgdir} -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/testing/koffice/koffice.install b/staging/kdeadmin/kdeadmin.install
index e70c054ec..e70c054ec 100644
--- a/testing/koffice/koffice.install
+++ b/staging/kdeadmin/kdeadmin.install
diff --git a/staging/kdeadmin/syslog-path.patch b/staging/kdeadmin/syslog-path.patch
new file mode 100644
index 000000000..8a9142bf6
--- /dev/null
+++ b/staging/kdeadmin/syslog-path.patch
@@ -0,0 +1,11 @@
+--- kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h~ 2011-01-27 14:24:29.840000005 +0100
++++ kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h 2011-01-27 14:24:53.803333335 +0100
+@@ -39,7 +39,7 @@
+ SystemConfiguration() :
+ GenericLogModeConfiguration(
+ QLatin1String( SYSTEM_LOG_MODE_ID ),
+- QStringList() << QLatin1String( "/var/log/syslog" ),
++ QStringList() << QLatin1String( "/var/log/messages.log" ),
+ QList<int>() << INFORMATION_LOG_LEVEL_ID
+ ) {
+
diff --git a/staging/kdeartwork/PKGBUILD b/staging/kdeartwork/PKGBUILD
new file mode 100644
index 000000000..d3e8a4147
--- /dev/null
+++ b/staging/kdeartwork/PKGBUILD
@@ -0,0 +1,102 @@
+# $Id: PKGBUILD 126538 2011-06-06 06:09:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeartwork
+pkgname=('kdeartwork-aurorae'
+ 'kdeartwork-colorschemes'
+ 'kdeartwork-desktopthemes'
+ 'kdeartwork-emoticons'
+ 'kdeartwork-iconthemes'
+ 'kdeartwork-kscreensaver'
+ 'kdeartwork-sounds'
+ 'kdeartwork-styles'
+ 'kdeartwork-wallpapers'
+ 'kdeartwork-weatherwallpapers')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeartwork')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'xscreensaver' 'eigen'
+ 'kdebase-workspace' 'kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('460b8bff5f6799f0e2553e1b78112e3192ade2b3')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeartwork-aurorae() {
+ pkgdesc='An Aurorae theme based on the Oxygen plasma theme'
+ cd $srcdir/build/aurorae
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-colorschemes() {
+ pkgdesc='KDE color schemes'
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-desktopthemes() {
+ pkgdesc='KDE desktop themes'
+ cd $srcdir/build/desktopthemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-emoticons() {
+ pkgdesc='KDE emoticons'
+ cd $srcdir/build/emoticons
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-iconthemes() {
+ pkgdesc='KDE icon themes'
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+ pkgdesc='KDE screensaver'
+ depends=('kdebase-workspace' 'kdegraphics-libs')
+ cd $srcdir/build/kscreensaver
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-sounds() {
+ pkgdesc='KDE sounds'
+ cd $srcdir/build/sounds
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-styles() {
+ pkgdesc='KDE styles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/styles
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kwin-styles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-wallpapers() {
+ pkgdesc='KDE wallpapers'
+ cd $srcdir/build/wallpapers
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/HighResolutionWallpapers
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-weatherwallpapers() {
+ pkgdesc='KDE weather wallpapers'
+ cd $srcdir/build/WeatherWallpapers
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdebase-runtime/PKGBUILD b/staging/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..4479b4d31
--- /dev/null
+++ b/staging/kdebase-runtime/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 126530 2011-06-06 06:06:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-runtime
+pkgver=4.6.4
+pkgrel=1
+pkgdesc="KDE Base Runtime Environment"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'ntrack' 'smbclient' 'libssh' 'libcanberra' 'oxygen-icons'
+ 'xorg-xauth' 'hicolor-icon-theme')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'kdepimlibs' 'openslp' 'xine-lib')
+optdepends=('htdig: to build the search index in khelpcenter'
+ 'rarian: needed by khelpcenter'
+ 'gdb: drkonq crash handler')
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('63f30be47a4b592a0820ed200004543e7cba956d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+ ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+}
diff --git a/staging/kdesdk/kdesdk-okteta.install b/staging/kdebase-runtime/kdebase-runtime.install
index 3f06b8deb..3f06b8deb 100644
--- a/staging/kdesdk/kdesdk-okteta.install
+++ b/staging/kdebase-runtime/kdebase-runtime.install
diff --git a/staging/kdebase-workspace/PKGBUILD b/staging/kdebase-workspace/PKGBUILD
new file mode 100644
index 000000000..88d0b2d57
--- /dev/null
+++ b/staging/kdebase-workspace/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 126533 2011-06-06 06:09:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-workspace
+pkgver=4.6.4
+pkgrel=1
+pkgdesc="KDE Base Workspace"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde')
+# note on libxdamage:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxdamage
+depends=('kdepim-runtime' 'lm_sensors' 'libraw1394' 'qimageblitz' 'libqalculate'
+ 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage' 'libxklavier' 'libdmtx'
+ 'xorg-xsetroot' 'libxcomposite' 'libxinerama')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdebindings-python')
+replaces=('kdmtheme' 'kde-common' 'guidance-power-manager' 'policykit-kde' 'kdebase-kinfocenter')
+conflicts=('kde-common' 'guidance-power-manager' 'policykit-kde' 'kdebase-kinfocenter')
+install="${pkgname}.install"
+backup=('usr/share/config/kdm/kdmrc'
+ 'etc/pam.d/kde'
+ 'etc/pam.d/kde-np'
+ 'etc/pam.d/kscreensaver')
+options=('emptydirs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kdm-zsh-profile.patch' 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam'
+ 'fixpath.patch' 'terminate-server.patch')
+sha1sums=('303f4881b3c87d1bdbdfc8c4b5fd5a2492191d87'
+ '8c2bdefb23a03b753b78d16944d03fa3939d2d99'
+ '5db3a245201bd4a50e65aa2ef583cf5490e4f646'
+ 'f7b38af38549242a240f1a90ab9964ca8a366129'
+ '603cc79c4d2b4eae62bb5f244aeecb3a778b5516'
+ '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
+ 'd7b5883f7e65c6839b1f65f94d58026673dd0226'
+ 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 -i ${srcdir}/kdm-zsh-profile.patch
+ patch -p0 -i ${srcdir}/fixpath.patch
+ patch -p0 -i ${srcdir}/terminate-server.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xmms=OFF \
+ -DWITH_Googlegadgets=OFF \
+ -DWITH_NetworkManager=OFF
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+
+ install -D -m755 ${srcdir}/kdm ${pkgdir}/etc/rc.d/kdm
+ install -D -m644 ${srcdir}/kde.pam ${pkgdir}/etc/pam.d/kde
+ install -D -m644 ${srcdir}/kde-np.pam ${pkgdir}/etc/pam.d/kde-np
+ install -D -m644 ${srcdir}/kscreensaver.pam ${pkgdir}/etc/pam.d/kscreensaver
+ install -d -m755 ${pkgdir}/usr/share/xsessions/
+ ln -sf /usr/share/apps/kdm/sessions/kde-plasma{,-safe}.desktop ${pkgdir}/usr/share/xsessions/
+ install -d -m755 ${pkgdir}/etc/kde/{env,shutdown}
+
+ install -d -g 135 -o 135 ${pkgdir}/var/lib/kdm
+}
diff --git a/staging/kdebase-workspace/fixpath.patch b/staging/kdebase-workspace/fixpath.patch
new file mode 100644
index 000000000..be2b8383e
--- /dev/null
+++ b/staging/kdebase-workspace/fixpath.patch
@@ -0,0 +1,34 @@
+--- startkde.cmake.orig 2009-01-15 14:24:44.000000000 +0100
++++ startkde.cmake 2009-01-15 14:33:08.000000000 +0100
+@@ -34,22 +34,6 @@
+ MALLOC_CHECK_=2
+ export MALLOC_CHECK_
+
+-# in case we have been started with full pathname spec without being in PATH
+-bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'`
+-if [ -n "$bindir" ]; then
+- qbindir=`$bindir/kde4-config --qt-binaries`
+- if [ -n "$qbindir" ]; then
+- case $PATH in
+- $qbindir|$qbindir:*|*:$qbindir|*:$qbindir:*) ;;
+- *) PATH=$qbindir:$PATH; export PATH;;
+- esac
+- fi
+- case $PATH in
+- $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;;
+- *) PATH=$bindir:$PATH; export PATH;;
+- esac
+-fi
+-
+ # Boot sequence:
+ #
+ # kdeinit is used to fork off processes which improves memory usage
+@@ -206,7 +190,7 @@
+ # For anything else (that doesn't set env vars, or that needs a window manager),
+ # better use the Autostart folder.
+
+-libpath=`kde4-config --path lib | tr : '\n'`
++libpath=`kde4-config --path lib | tr : '\n'`$(echo -e '\n/etc/kde/lib/')
+
+ for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/env/,p'`; do
+ for file in "$prefix"*.sh; do
diff --git a/staging/kdebase-workspace/kde-np.pam b/staging/kdebase-workspace/kde-np.pam
new file mode 100644
index 000000000..81eeef47b
--- /dev/null
+++ b/staging/kdebase-workspace/kde-np.pam
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth required pam_nologin.so
+auth required pam_permit.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so \ No newline at end of file
diff --git a/staging/kdebase-workspace/kde.pam b/staging/kdebase-workspace/kde.pam
new file mode 100644
index 000000000..1a259390f
--- /dev/null
+++ b/staging/kdebase-workspace/kde.pam
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth required pam_unix.so
+auth required pam_nologin.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so \ No newline at end of file
diff --git a/staging/kdebase-workspace/kdebase-workspace.install b/staging/kdebase-workspace/kdebase-workspace.install
new file mode 100644
index 000000000..f7d6d305b
--- /dev/null
+++ b/staging/kdebase-workspace/kdebase-workspace.install
@@ -0,0 +1,25 @@
+post_install() {
+ groupadd -g 135 kdm &>/dev/null
+ useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+ chown -R 135:135 var/lib/kdm &>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ getent group kdm >/dev/null 2>&1 || groupadd -g 135 kdm &>/dev/null
+ getent passwd kdm >/dev/null 2>&1 || useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+ chown -R 135:135 var/lib/kdm &>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_remove() {
+ if getent passwd kdm >/dev/null 2>&1; then
+ userdel kdm
+ fi
+ if getent group kdm >/dev/null 2>&1; then
+ groupdel kdm
+ fi
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/testing/net-snmp/snmpd.rc b/staging/kdebase-workspace/kdm
index 9f1b83f64..799d58f4b 100644
--- a/testing/net-snmp/snmpd.rc
+++ b/staging/kdebase-workspace/kdm
@@ -3,36 +3,34 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=`pidof -o %PPID /usr/sbin/snmpd`
+PID=$(pidof -o %PPID /usr/bin/kdm)
case "$1" in
start)
- stat_busy "Starting Net-SNMP"
- [ -z "$PID" ] && /usr/sbin/snmpd
+ stat_busy "Starting KDE Desktop Manager"
+ [ -z "$PID" ] && /usr/bin/kdm &>/dev/null
if [ $? -gt 0 ]; then
stat_fail
else
- echo $PID > /var/run/snmpd.pid
- add_daemon snmpd
+ add_daemon kdm
stat_done
fi
;;
stop)
- stat_busy "Stopping Net-SNMP"
+ stat_busy "Stopping KDE Desktop Manager"
[ ! -z "$PID" ] && kill $PID &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
- rm /var/run/snmpd.pid
- rm_daemon snmpd
+ rm_daemon kdm
stat_done
fi
;;
restart)
$0 stop
- sleep 2
+ sleep 3
$0 start
;;
*)
- echo "usage: $0 {start|stop|restart}"
+ echo "usage: $0 {start|stop|restart}"
esac
exit 0
diff --git a/staging/kdebase-workspace/kdm-zsh-profile.patch b/staging/kdebase-workspace/kdm-zsh-profile.patch
new file mode 100644
index 000000000..779456b39
--- /dev/null
+++ b/staging/kdebase-workspace/kdm-zsh-profile.patch
@@ -0,0 +1,11 @@
+--- kdm/kfrontend/genkdmconf.c 2008-02-13 09:40:49.000000000 +0000
++++ kdm/kfrontend/genkdmconf.c 2008-05-16 12:47:36.000000000 +0000
+@@ -662,7 +662,7 @@
+ " [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc\n"
+ " zhome=${ZDOTDIR:-$HOME}\n"
+ " # zshenv is always sourced automatically.\n"
+-" [ -f $zdir/zprofile ] && . $zdir/zprofile\n"
++" [ -f /etc/profile ] && . /etc/profile\n"
+ " [ -f $zhome/.zprofile ] && . $zhome/.zprofile\n"
+ " [ -f $zdir/zlogin ] && . $zdir/zlogin\n"
+ " [ -f $zhome/.zlogin ] && . $zhome/.zlogin\n"
diff --git a/staging/kdebase-workspace/kscreensaver.pam b/staging/kdebase-workspace/kscreensaver.pam
new file mode 100644
index 000000000..b4d80c21f
--- /dev/null
+++ b/staging/kdebase-workspace/kscreensaver.pam
@@ -0,0 +1 @@
+auth required pam_unix_auth.so
diff --git a/staging/kdebase-workspace/terminate-server.patch b/staging/kdebase-workspace/terminate-server.patch
new file mode 100644
index 000000000..094591317
--- /dev/null
+++ b/staging/kdebase-workspace/terminate-server.patch
@@ -0,0 +1,11 @@
+--- kdm/config.def 2009-08-27 10:17:39.000000000 +0200
++++ kdm/config.def 2009-10-31 00:40:21.000000000 +0100
+@@ -1448,7 +1448,7 @@
+
+ Key: TerminateServer
+ Type: bool
+-Default: false
++Default: true
+ User: core
+ Instance: #:*/!
+ Merge: xdm
diff --git a/staging/kdebase/PKGBUILD b/staging/kdebase/PKGBUILD
new file mode 100644
index 000000000..c16031161
--- /dev/null
+++ b/staging/kdebase/PKGBUILD
@@ -0,0 +1,129 @@
+# $Id: PKGBUILD 126534 2011-06-06 06:09:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebase
+pkgname=('kdebase-dolphin'
+ 'kdebase-kdepasswd'
+ 'kdebase-kdialog'
+ 'kdebase-keditbookmarks'
+ 'kdebase-kfind'
+ 'kdebase-konqueror'
+ 'kdebase-konsole'
+ 'kdebase-kwrite'
+ 'kdebase-lib'
+ 'kdebase-plasma')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdebase-workspace' 'pkgconfig' 'cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('aef0d3f2ed8cc54cbe1ae6025091c9e0a43235c4')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdebase-dolphin() {
+ pkgdesc='File Manager'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ optdepends=('ruby: servicemenu installation')
+ url="http://kde.org/applications/system/dolphin/"
+ cd $srcdir/build/dolphin
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dolphin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdepasswd() {
+ pkgdesc='Change Password'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ cd $srcdir/build/kdepasswd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdepasswd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdialog() {
+ pkgdesc='A utility for displaying dialog boxes from shell scripts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kdialog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-keditbookmarks() {
+ pkgdesc='Bookmark Organizer and Editor'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/keditbookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kfind() {
+ pkgdesc='Find Files/Folders'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ url="http://kde.org/applications/utilities/kfind/"
+ install='kdebase.install'
+ cd $srcdir/build/kfind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfind
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konqueror() {
+ pkgdesc='KDE File Manager & Web Browser'
+ depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+ optdepends=('kwebkitpart: to enable webkit engine')
+ url="http://kde.org/applications/internet/konqueror/"
+ install='kdebase.install'
+ conflicts=('kdebase-nsplugins')
+ replaces=('kdebase-nsplugins')
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdebase-konsole() {
+ pkgdesc='Terminal'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/konsole/"
+ cd $srcdir/build/konsole
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/konsole/doc/manual
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kwrite() {
+ pkgdesc='Text Editor'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kwrite/"
+ cd $srcdir/build/kwrite
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kwrite
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-lib() {
+ pkgdesc='KDE libraries for the basic desktop applications'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/lib
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-plasma() {
+ pkgdesc='Display the contents of folders (User´s home folder as default)'
+ depends=('kdebase-workspace' 'kdebase-lib')
+ cd $srcdir/build/plasma
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdesdk/kdesdk-kate.install b/staging/kdebase/kdebase.install
index a60d358ce..e70c054ec 100644
--- a/staging/kdesdk/kdesdk-kate.install
+++ b/staging/kdebase/kdebase.install
@@ -1,6 +1,5 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
- update-mime-database usr/share/mime &> /dev/null
}
post_upgrade() {
diff --git a/staging/kdebindings/PKGBUILD b/staging/kdebindings/PKGBUILD
new file mode 100644
index 000000000..edd902881
--- /dev/null
+++ b/staging/kdebindings/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 107102 2011-01-21 11:16:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebindings
+pkgname=('kdebindings-csharp'
+ 'kdebindings-python'
+ 'kdebindings-ruby'
+ 'kdebindings-smoke')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'python2-pyqt' 'kdepim-runtime' 'mono'
+ 'kdegraphics-okular' 'qwt' 'boost' 'qscintilla' 'ruby')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('ee5d85598e278bda76f7937c0a832723785ffe49')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/build/.mono"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd ${srcdir}/build
+
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DRUBY_SITE_LIB_DIR="/usr/lib/ruby/site_ruby/1.9.1" \
+ -DRUBY_SITE_ARCH_DIR="/usr/lib/ruby/site_ruby/1.9.1/${CARCH}-linux" \
+ -DBUILD_falcon=OFF \
+ -DBUILD_java=OFF \
+ -DBUILD_php=OFF \
+ -DWITH_PolkitQt=OFF
+ make
+}
+
+package_kdebindings-csharp() {
+ pkgdesc='KDE bindings for mono'
+ depends=('kdebindings-smoke' 'mono')
+ export MONO_SHARED_DIR="${srcdir}/build/.mono"
+ mkdir -p "$MONO_SHARED_DIR"
+ cd $srcdir/build/csharp
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebindings-python() {
+ pkgdesc='KDE bindings for python'
+ depends=('kdepim-runtime' 'python2-pyqt' 'qscintilla')
+ cd $srcdir/build/python
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdebindings-ruby() {
+ pkgdesc='KDE Bindings for ruby'
+ depends=('kdebindings-smoke' 'ruby')
+ cd $srcdir/build/ruby
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebindings-smoke() {
+ pkgdesc='Language independent library for Qt and KDE bindings'
+ depends=('qscintilla' 'kdegraphics-okular' 'kdepim-runtime')
+ cd $srcdir/build/smoke
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/generator/smokebase
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdeedu/PKGBUILD b/staging/kdeedu/PKGBUILD
new file mode 100644
index 000000000..0dee4aeef
--- /dev/null
+++ b/staging/kdeedu/PKGBUILD
@@ -0,0 +1,270 @@
+# $Id: PKGBUILD 126535 2011-06-06 06:09:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeedu
+pkgname=('kdeedu-blinken'
+ 'kdeedu-cantor'
+ 'kdeedu-kalgebra'
+ 'kdeedu-kalzium'
+ 'kdeedu-kanagram'
+ 'kdeedu-kbruch'
+ 'kdeedu-kgeography'
+ 'kdeedu-khangman'
+ 'kdeedu-kig'
+ 'kdeedu-kiten'
+ 'kdeedu-klettres'
+ 'kdeedu-kmplot'
+ 'kdeedu-kstars'
+ 'kdeedu-ktouch'
+ 'kdeedu-kturtle'
+ 'kdeedu-kwordquiz'
+ 'kdeedu-libkdeedu'
+ 'kdeedu-marble'
+ 'kdeedu-parley'
+ 'kdeedu-rocs'
+ 'kdeedu-step')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ocaml' 'facile' 'cfitsio' 'gpsd'
+ 'kdebase-runtime' 'libqalculate' 'gsl' 'boost' 'libindi' 'r' 'libspectre'
+ 'python2' 'avogadro')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'gpsd-2.96.patch')
+sha1sums=('c58c2afbedccfa12d25e47202da995940cc9acb4'
+ 'fd6b6b81945d951bb6ad0bb735df33c11bb2008e')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -Np1 -i ${srcdir}/gpsd-2.96.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeedu-blinken() {
+ pkgdesc='A memory enhancement game'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu')
+ install='kdeedu.install'
+ cd $srcdir/build/blinken
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/blinken/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-cantor() {
+ pkgdesc='KDE Frontend to Mathematical Software'
+ depends=('kdeedu-libkdeedu' 'libspectre')
+ optdepends=('kdeedu-kalgebra: backend'
+ 'maxima: backend'
+ 'r: backend')
+ install='kdeedu.install'
+ cd $srcdir/build/cantor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/cantor/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kalgebra() {
+ pkgdesc='Math Expression Solver and Plotter'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kalgebra
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kalgebra/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kalzium() {
+ pkgdesc='KDE Periodic Table of Elements'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu' 'avogadro')
+ install='kdeedu.install'
+ cd $srcdir/build/kalzium
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kalzium/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kanagram() {
+ pkgdesc='KDE Letter Order Game'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu')
+ install='kdeedu.install'
+ cd $srcdir/build/kanagram
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kanagram/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kbruch() {
+ pkgdesc='Practice exercises with fractions'
+ depends=('kdelibs' 'kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kbruch
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kbruch/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kgeography() {
+ pkgdesc='A Geography Learning Program'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kgeography
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kgeography/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-khangman() {
+ pkgdesc='KDE Hangman Game'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu')
+ install='kdeedu.install'
+ cd $srcdir/build/khangman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/khangman/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kig() {
+ pkgdesc='Explore Geometric Constructions'
+ depends=('kdebase-runtime' 'boost-libs' 'python2')
+ install='kdeedu.install'
+ cd $srcdir/build/kig
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kig/doc
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' ${pkgdir}/usr/bin/pykig.py
+}
+
+package_kdeedu-kiten() {
+ pkgdesc='Japanese Reference and Study Tool'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kiten
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kiten/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-klettres() {
+ pkgdesc='a KDE program to learn the alphabet'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/klettres
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/klettres/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kmplot() {
+ pkgdesc='Function Plotter'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kmplot
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kmplot/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kstars() {
+ pkgdesc='Desktop Planetarium'
+ depends=('kdebase-runtime' 'libindi')
+ install='kdeedu.install'
+ cd $srcdir/build/kstars
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kstars/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-ktouch() {
+ pkgdesc='Touch Typing Tutor'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/ktouch
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/ktouch/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kturtle() {
+ pkgdesc='Educational Programming Environment'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kturtle
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kturtle/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kwordquiz() {
+ pkgdesc='A flashcard and vocabulary learning program'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu')
+ install='kdeedu.install'
+ cd $srcdir/build/kwordquiz
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kwordquiz/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-libkdeedu() {
+ pkgdesc='Support library for KDE Educational Software'
+ groups=()
+ depends=('kdelibs')
+ install='kdeedu.install'
+ replaces=('kdeedu-data')
+ conflicts=('kdeedu-data')
+ cd $srcdir/build/libkdeedu
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-marble() {
+ pkgdesc='Desktop Globe'
+ depends=('kdebase-runtime' 'gpsd')
+ install='kdeedu.install'
+ cd $srcdir/build/marble
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/marble/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-parley() {
+ pkgdesc='Vocabulary Trainer'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu' 'kdebindings-python')
+ install='kdeedu.install'
+ cd $srcdir/build/parley
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/parley/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-rocs() {
+ pkgdesc='Graph Theory Tool for Professors and Students.'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu')
+ install='kdeedu.install'
+ cd $srcdir/build/rocs
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/rocs/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-step() {
+ pkgdesc='Simulate physics experiments'
+ depends=('kdebase-runtime' 'gsl' 'libqalculate')
+ install='kdeedu.install'
+ cd $srcdir/build/step
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/step/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdeedu/gpsd-2.96.patch b/staging/kdeedu/gpsd-2.96.patch
new file mode 100644
index 000000000..ec515e99d
--- /dev/null
+++ b/staging/kdeedu/gpsd-2.96.patch
@@ -0,0 +1,43 @@
+Index: kdeedu-4.5.5/marble/src/plugins/positionprovider/gpsd/GpsdConnection.cpp
+===================================================================
+--- kdeedu-4.5.5.orig/marble/src/plugins/positionprovider/gpsd/GpsdConnection.cpp
++++ kdeedu-4.5.5/marble/src/plugins/positionprovider/gpsd/GpsdConnection.cpp
+@@ -18,6 +18,9 @@ using namespace Marble;
+
+ GpsdConnection::GpsdConnection( QObject* parent )
+ : QObject( parent ),
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++ m_gpsd("localhost", DEFAULT_GPSD_PORT),
++#endif
+ m_timer( 0 )
+ {
+ connect( &m_timer, SIGNAL( timeout() ), this, SLOT( update() ) );
+@@ -26,7 +29,11 @@ GpsdConnection::GpsdConnection( QObject*
+ void GpsdConnection::initialize()
+ {
+ m_timer.stop();
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++ gps_data_t* data;
++#else
+ gps_data_t* data = m_gpsd.open();
++#endif
+ if ( data ) {
+ m_status = PositionProviderStatusAcquiring;
+ emit statusChanged( m_status );
+@@ -73,8 +80,16 @@ void GpsdConnection::initialize()
+ void GpsdConnection::update()
+ {
+ #if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 3 ) && defined( PACKET_SET )
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++ if ( m_gpsd.waiting(0) ) {
++#else
+ if ( m_gpsd.waiting() ) {
++#endif
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++ gps_data_t* data = m_gpsd.read();
++#else
+ gps_data_t* data = m_gpsd.poll();
++#endif
+ if ( data && data->set & PACKET_SET ) {
+ emit gpsdInfo( *data );
+ }
diff --git a/staging/kdeedu/kdeedu.install b/staging/kdeedu/kdeedu.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeedu/kdeedu.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/PKGBUILD b/staging/kdegames/PKGBUILD
new file mode 100644
index 000000000..e57ff75ec
--- /dev/null
+++ b/staging/kdegames/PKGBUILD
@@ -0,0 +1,514 @@
+# $Id: PKGBUILD 126539 2011-06-06 06:09:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegames
+pkgname=('kdegames-bomber'
+ 'kdegames-bovo'
+ 'kdegames-granatier'
+ 'kdegames-kajongg'
+ 'kdegames-kapman'
+ 'kdegames-katomic'
+ 'kdegames-kbattleship'
+ 'kdegames-kblackbox'
+ 'kdegames-kblocks'
+ 'kdegames-kbounce'
+ 'kdegames-kbreakout'
+ 'kdegames-kdiamond'
+ 'kdegames-kfourinline'
+ 'kdegames-kgoldrunner'
+ 'kdegames-kigo'
+ 'kdegames-killbots'
+ 'kdegames-kiriki'
+ 'kdegames-kjumpingcube'
+ 'kdegames-klines'
+ 'kdegames-klickety'
+ 'kdegames-kmahjongg'
+ 'kdegames-kmines'
+ 'kdegames-knetwalk'
+ 'kdegames-kolf'
+ 'kdegames-kollision'
+ 'kdegames-konquest'
+ 'kdegames-kpatience'
+ 'kdegames-kreversi'
+ 'kdegames-kshisen'
+ 'kdegames-ksirk'
+ 'kdegames-kspaceduel'
+ 'kdegames-ksquares'
+ 'kdegames-ksudoku'
+ 'kdegames-ktron'
+ 'kdegames-ktuberling'
+ 'kdegames-kubrick'
+ 'kdegames-libkdegames'
+ 'kdegames-libkmahjongg'
+ 'kdegames-lskat'
+ 'kdegames-palapeli')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ggz-client-libs' 'twisted'
+ 'kdebindings-python' 'openal')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('a5f6d07d8149fe00dbb61ae667eea741887966f3')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdegames-bomber() {
+ pkgdesc='Arcade Bombing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bomber/"
+ install='kdegames.install'
+ cd $srcdir/build/bomber
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bomber
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-bovo() {
+ pkgdesc='Five-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bovo/"
+ install='kdegames.install'
+ cd $srcdir/build/bovo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bovo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-granatier() {
+ pkgdesc='Granatier'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/granatier/"
+ install='kdegames.install'
+ cd $srcdir/build/granatier
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/granatier
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kajongg() {
+ pkgdesc='The ancient Chinese board game for 4 players'
+ depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python' 'twisted')
+ install='kdegames.install'
+ cd $srcdir/build/kajongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kajongg
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdegames-kapman() {
+ pkgdesc='Eat pills escaping ghosts'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kapman/"
+ install='kdegames.install'
+ cd $srcdir/build/kapman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapman
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-katomic() {
+ pkgdesc='Sokoban-like Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/katomic/"
+ install='kdegames.install'
+ cd $srcdir/build/katomic
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/katomic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbattleship() {
+ pkgdesc='Battleship Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kbattleship/"
+ install='kdegames-kbattleship.install'
+ cd $srcdir/build/kbattleship
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbattleship
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kbattleship/src/module.dsc \
+ $pkgdir/usr/share/ggz/kbattleship.dsc
+}
+
+package_kdegames-kblackbox() {
+ pkgdesc='Blackbox Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblackbox/"
+ install='kdegames.install'
+ cd $srcdir/build/kblackbox
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblackbox
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblocks() {
+ pkgdesc='Falling Blocks Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblocks/"
+ install='kdegames.install'
+ cd $srcdir/build/kblocks
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblocks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbounce() {
+ pkgdesc='Ball Bouncing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbounce/"
+ install='kdegames.install'
+ cd $srcdir/build/kbounce
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbounce
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbreakout() {
+ pkgdesc='Breakout-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbreakout/"
+ install='kdegames.install'
+ cd $srcdir/build/kbreakout
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbreakout
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kdiamond() {
+ pkgdesc='Three-in-a-row game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kdiamond/"
+ install='kdegames.install'
+ cd $srcdir/build/kdiamond
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdiamond
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kfourinline() {
+ pkgdesc='Four-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kfourinline/"
+ install='kdegames-kfourinline.install'
+ cd $srcdir/build/kfourinline
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfourinline
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kgoldrunner() {
+ pkgdesc='A game of action and puzzle-solving'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/kgoldrunner/"
+ install='kdegames.install'
+ cd $srcdir/build/kgoldrunner
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgoldrunner
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kigo() {
+ pkgdesc='Go Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo')
+ url="http://kde.org/applications/games/kigo/"
+ install='kdegames-kigo.install'
+ cd $srcdir/build/kigo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kigo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-killbots() {
+ pkgdesc='Killbots'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/killbots/"
+ install='kdegames.install'
+ cd $srcdir/build/killbots
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/killbots
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kiriki() {
+ pkgdesc='Yahtzee-like Dice Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kiriki/"
+ install='kdegames.install'
+ cd $srcdir/build/kiriki
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kiriki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kjumpingcube() {
+ pkgdesc='Territory Capture Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kjumpingcube/"
+ install='kdegames.install'
+ cd $srcdir/build/kjumpingcube
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kjumpingcube
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klickety() {
+ pkgdesc='Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ replaces=('kdegames-ksame')
+ conflicts=('kdegames-ksame')
+ url="http://kde.org/applications/games/ksame/"
+ install='kdegames.install'
+ cd $srcdir/build/klickety
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klickety
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klines() {
+ pkgdesc='Tactical Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/klines/"
+ install='kdegames.install'
+ cd $srcdir/build/klines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmahjongg() {
+ pkgdesc='Mahjongg Solitaire'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kmahjongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kmahjongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmines() {
+ pkgdesc='Minesweeper-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kmines/"
+ install='kdegames.install'
+ cd $srcdir/build/kmines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-knetwalk() {
+ pkgdesc='Network Construction Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/knetwalk/"
+ install='kdegames.install'
+ cd $srcdir/build/knetwalk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/knetwalk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kolf() {
+ pkgdesc='Miniature Golf'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kolf/"
+ install='kdegames-kolf.install'
+ cd $srcdir/build/kolf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kolf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kollision() {
+ pkgdesc='A simple ball dodging game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kollision/"
+ install='kdegames.install'
+ cd $srcdir/build/kollision
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kollision
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-konquest() {
+ pkgdesc='Galactic Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/konquest/"
+ install='kdegames.install'
+ cd $srcdir/build/konquest
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/konquest
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kpatience() {
+ pkgdesc='Patience Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kpatience/"
+ install='kdegames.install'
+ replaces=('kdegames-kpat')
+ cd $srcdir/build/kpat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kpat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kreversi() {
+ pkgdesc='Reversi Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kreversi/"
+ install='kdegames-kreversi.install'
+ cd $srcdir/build/kreversi
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kreversi
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kreversi/module.dsc \
+ $pkgdir/usr/share/ggz/kreversi.dsc
+}
+
+package_kdegames-kshisen() {
+ pkgdesc='Shisen-Sho Mahjongg-like Tile Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kshisen/"
+ install='kdegames.install'
+ cd $srcdir/build/kshisen
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kshisen
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksirk() {
+ pkgdesc='World Domination Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksirk/"
+ install='kdegames.install'
+ cd $srcdir/build/ksirk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksirk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kspaceduel() {
+ pkgdesc='Space Arcade Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kspaceduel/"
+ install='kdegames-kspaceduel.install'
+ cd $srcdir/build/kspaceduel
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kspaceduel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksquares() {
+ pkgdesc='Connect the dots to create squares'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/ksquares/"
+ install='kdegames-ksquares.install'
+ cd $srcdir/build/ksquares
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksquares
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/ksquares/src/module.dsc \
+ $pkgdir/usr/share/ggz/ksquares.dsc
+}
+
+package_kdegames-ksudoku() {
+ pkgdesc='KSudoku, Sudoku game & more for KDE'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksudoku/"
+ install='kdegames.install'
+ cd $srcdir/build/ksudoku
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksudoku
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktron() {
+ pkgdesc='Tron-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktron/"
+ install='kdegames.install'
+ cd $srcdir/build/ktron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktuberling() {
+ pkgdesc='Picture Game for Children'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktuberling/"
+ install='kdegames-ktuberling.install'
+ cd $srcdir/build/ktuberling
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktuberling
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kubrick() {
+ pkgdesc='A 3-D game based on Rubik´s Cube'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kubrick/"
+ install='kdegames.install'
+ cd $srcdir/build/kubrick
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kubrick
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-libkdegames() {
+ pkgdesc='KDE game library'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkdegames
+ make DESTDIR=$pkgdir install
+ for i in $srcdir/${pkgbase}-${pkgver}/cmake/modules/*.cmake; do
+ install -D -m644 $i $pkgdir/usr/share/apps/cmake/modules/$(basename $i)
+ done
+}
+
+package_kdegames-libkmahjongg() {
+ pkgdesc='Library used for loading and rendering of Mahjongg tilesets'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-lskat() {
+ pkgdesc='Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/lskat/"
+ install='kdegames-lskat.install'
+ cd $srcdir/build/lskat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lskat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-palapeli() {
+ pkgdesc='Jigsaw puzzle game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/palapeli/"
+ install='kdegames-palapeli.install'
+ cd $srcdir/build/palapeli
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/palapeli
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdegames/kdegames-kbattleship.install b/staging/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..ac4516ed0
--- /dev/null
+++ b/staging/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,24 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ ggz-config -i -f -m usr/share/ggz/kbattleship.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kbattleship.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kbattleship.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
diff --git a/staging/kdegames/kdegames-kfourinline.install b/staging/kdegames/kdegames-kfourinline.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kfourinline.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-kigo.install b/staging/kdegames/kdegames-kigo.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kigo.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-kolf.install b/staging/kdegames/kdegames-kolf.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kolf.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-kreversi.install b/staging/kdegames/kdegames-kreversi.install
new file mode 100644
index 000000000..4623e6e49
--- /dev/null
+++ b/staging/kdegames/kdegames-kreversi.install
@@ -0,0 +1,22 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ ggz-config -i -f -m usr/share/ggz/kreversi.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kreversi.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kreversi.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/staging/kdegames/kdegames-kspaceduel.install b/staging/kdegames/kdegames-kspaceduel.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-kspaceduel.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-ksquares.install b/staging/kdegames/kdegames-ksquares.install
new file mode 100644
index 000000000..5a619897d
--- /dev/null
+++ b/staging/kdegames/kdegames-ksquares.install
@@ -0,0 +1,22 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ ggz-config -i -f -m usr/share/ggz/ksquares.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/ksquares.dsc ]; then
+ ggz-config -r -m usr/share/ggz/ksquares.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/staging/kdegames/kdegames-ktuberling.install b/staging/kdegames/kdegames-ktuberling.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-ktuberling.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-lskat.install b/staging/kdegames/kdegames-lskat.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/staging/kdegames/kdegames-lskat.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames-palapeli.install b/staging/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/staging/kdegames/kdegames-palapeli.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegames/kdegames.install b/staging/kdegames/kdegames.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdegames/kdegames.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdegraphics/PKGBUILD b/staging/kdegraphics/PKGBUILD
new file mode 100644
index 000000000..713f57cbd
--- /dev/null
+++ b/staging/kdegraphics/PKGBUILD
@@ -0,0 +1,141 @@
+# $Id: PKGBUILD 126531 2011-06-06 06:06:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegraphics
+pkgname=('kdegraphics-gwenview'
+ 'kdegraphics-kamera'
+ 'kdegraphics-kcolorchooser'
+ 'kdegraphics-kgamma'
+ 'kdegraphics-kolourpaint'
+ 'kdegraphics-kruler'
+ 'kdegraphics-ksnapshot'
+ 'kdegraphics-libs'
+ 'kdegraphics-okular')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'qimageblitz' 'sane' 'lcms'
+ 'libxxf86vm' 'poppler-qt' 'libspectre' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'kdebase-runtime')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('a208cef52de6345996a7cc68b1c09944da7253aa')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdegraphics-gwenview() {
+ pkgdesc='A simple image viewer'
+ depends=('kdebase-runtime' 'kdegraphics-libs')
+ url="http://kde.org/applications/graphics/gwenview/"
+ replaces=('gwenview' 'gwenview-i18n')
+ install='kdegraphics.install'
+ cd $srcdir/build/gwenview
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/gwenview/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kamera() {
+ pkgdesc='Configure Kamera'
+ depends=('kdelibs' 'libgphoto2')
+ cd $srcdir/build/kamera
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kamera/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kcolorchooser() {
+ pkgdesc='Color Chooser'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/graphics/kcolorchooser/"
+ install='kdegraphics.install'
+ cd $srcdir/build/kcolorchooser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kgamma() {
+ pkgdesc='A monitor calibration tool'
+ # note on libxxf86vm:
+ # not detected by namcap because libgl depends on it
+ # but nvidia providing libgl does not depend on libxxf86vm
+ depends=('kdebase-runtime' 'libxxf86vm')
+ install='kdegraphics.install'
+ cd $srcdir/build/kgamma
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kgamma/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kolourpaint() {
+ pkgdesc='Paint Program'
+ depends=('kdebase-runtime' 'qimageblitz' 'kdegraphics-libs')
+ url="http://kde.org/applications/graphics/kolourpaint/"
+ install='kdegraphics.install'
+ cd $srcdir/build/kolourpaint
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kolourpaint/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kruler() {
+ pkgdesc='Screen Ruler'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/graphics/kruler/"
+ install='kdegraphics.install'
+ cd $srcdir/build/kruler
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kruler/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-ksnapshot() {
+ pkgdesc='Screen Capture Program'
+ depends=('kdebase-runtime' 'kdegraphics-libs')
+ url="http://kde.org/applications/graphics/ksnapshot/"
+ install='kdegraphics.install'
+ cd $srcdir/build/ksnapshot
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/ksnapshot/doc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-libs() {
+ pkgdesc='Support library for KDE Graphics Software'
+ groups=()
+ depends=('kdelibs' 'sane' 'lcms')
+ conflicts=('kdegraphics-ksaneplugin' 'kdegraphics-strigi-analyzer'
+ 'kdegraphics-svgpart' 'kdegraphics-thumbnailers')
+ replaces=('libkexiv2' 'libkdcraw' 'kdegraphics-ksaneplugin'
+ 'kdegraphics-strigi-analyzer' 'kdegraphics-svgpart' 'kdegraphics-thumbnailers')
+ install='kdegraphics.install'
+ for i in libs ksaneplugin strigi-analyzer svgpart thumbnailers; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/cmake/modules/FindKSane.cmake \
+ $pkgdir/usr/share/apps/cmake/modules/FindKSane.cmake
+}
+
+package_kdegraphics-okular() {
+ pkgdesc='Document Viewer'
+ depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+ url="http://kde.org/applications/graphics/okular/"
+ install='kdegraphics.install'
+ cd $srcdir/build/okular
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/okular
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdegraphics/kdegraphics.install b/staging/kdegraphics/kdegraphics.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdegraphics/kdegraphics.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdelibs/PKGBUILD b/staging/kdelibs/PKGBUILD
new file mode 100644
index 000000000..7368231c5
--- /dev/null
+++ b/staging/kdelibs/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 126527 2011-06-06 06:05:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.6.4
+pkgrel=1
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'krb5'
+ 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt' 'grantlee'
+ 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'xdg-utils'
+ 'phonon' 'hicolor-icon-theme' 'upower' 'udisks' 'libxcursor'
+ 'docbook-xsl')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'intltool' 'avahi' 'libgl'
+ 'hspell')
+replaces=('arts' 'kdelibs-experimental')
+install='kdelibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch' 'archlinux-menu.patch'
+ 'abs-syntax-highlight.patch')
+sha1sums=('088778bdda8b8c7a7b192abbf0d2a0660a20626d'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+ '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
+ 'd994f262356af5b9e4e9619646e471bd98c91efb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menu
+ patch -p1 -i $srcdir/kde-applications-menu.patch
+ # add Archlinux menu entry
+ patch -p1 -i $srcdir/archlinux-menu.patch
+ # add syntax highlightning for PKGBUILD and .install files
+ patch -p1 -i $srcdir/abs-syntax-highlight.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+ -DKDE_DEFAULT_HOME='.kde4' \
+ -DWITH_FAM=OFF \
+ -DKAUTH_BACKEND=PolkitQt-1
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f $pkgdir/usr/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt $pkgdir/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/staging/kdelibs/abs-syntax-highlight.patch b/staging/kdelibs/abs-syntax-highlight.patch
new file mode 100644
index 000000000..477479a9b
--- /dev/null
+++ b/staging/kdelibs/abs-syntax-highlight.patch
@@ -0,0 +1,12 @@
+diff -Nura kdelibs-4.3.0.orig/kate/syntax/data/bash.xml kdelibs-4.3.0/kate/syntax/data/bash.xml
+--- kdelibs-4.3.0.orig/kate/syntax/data/bash.xml 2009-04-15 12:26:37.000000000 +0200
++++ kdelibs-4.3.0/kate/syntax/data/bash.xml 2009-07-30 13:24:01.000000000 +0200
+@@ -8,7 +8,7 @@
+ <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
+ <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
+ ]>
+-<language name="Bash" version="2.12" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
++<language name="Bash" version="2.12" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;*.install" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+
+ <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
+ Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
diff --git a/staging/kdelibs/archlinux-menu.patch b/staging/kdelibs/archlinux-menu.patch
new file mode 100644
index 000000000..546784fa2
--- /dev/null
+++ b/staging/kdelibs/archlinux-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/applications.menu 2010-01-31 19:28:11.000000000 +0000
++++ kdelibs-4.3.98/kded/applications.menu 2010-01-31 22:25:53.556043077 +0000
+@@ -16,11 +16,19 @@
+ </DefaultLayout>
+ <Layout>
+ <Merge type="menus"/>
++ <Menuname>Arch Linux</Menuname>
+ <Menuname>Applications</Menuname>
+ <Merge type="files"/>
+ </Layout>
+
+ <Menu>
++ <Name>Arch Linux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu>
++ <Menu>
+ <Name>Applications</Name>
+ <Directory>kde-unknown.directory</Directory>
+ <OnlyUnallocated/>
diff --git a/staging/kdelibs/kde-applications-menu.patch b/staging/kdelibs/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/staging/kdelibs/kde-applications-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt 2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt 2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu DESTINATION ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp 2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp 2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+ if (!m_trackId.isEmpty())
+ g_vfolder->setTrackId(m_trackId);
+
+- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+
+ KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+ entry->setLayoutInfo(kdeMenu->layoutList);
diff --git a/testing/koffice/krita.install b/staging/kdelibs/kdelibs.install
index ce5c32e1b..ce5c32e1b 100644
--- a/testing/koffice/krita.install
+++ b/staging/kdelibs/kdelibs.install
diff --git a/staging/kdemultimedia/PKGBUILD b/staging/kdemultimedia/PKGBUILD
new file mode 100644
index 000000000..5a501bab1
--- /dev/null
+++ b/staging/kdemultimedia/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 126540 2011-06-06 06:09:45Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdemultimedia
+pkgname=('kdemultimedia-dragonplayer'
+ 'kdemultimedia-ffmpegthumbs'
+ 'kdemultimedia-juk'
+ 'kdemultimedia-kioslave'
+ 'kdemultimedia-kmix'
+ 'kdemultimedia-kscd'
+ 'kdemultimedia-mplayerthumbs')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdemultimedia')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-runtime' 'tunepimp'
+ 'ffmpeg' 'mplayer' 'pulseaudio' 'libmusicbrainz3')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'mplayerthumbs.config')
+sha1sums=('22178350b72e142b9f5e65a4bb85027f82b14988'
+ 'ba016fa2563c14ffcba852c62506b66bfc6ee683')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xine=OFF
+ make
+}
+
+package_kdemultimedia-dragonplayer() {
+ pkgdesc='Video Player'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/multimedia/dragonplayer/"
+ install='kdemultimedia.install'
+ cd $srcdir/build/dragonplayer
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dragonplayer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-ffmpegthumbs() {
+ pkgdesc='Video Files (ffmpegthumbs)'
+ depends=('kdebase-runtime' 'ffmpeg')
+ install='kdemultimedia.install'
+ cd $srcdir/build/ffmpegthumbs
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-juk() {
+ pkgdesc='Music Player'
+ depends=('kdebase-runtime' 'tunepimp')
+ url="http://kde.org/applications/multimedia/juk"
+ install='kdemultimedia.install'
+ cd $srcdir/build/juk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/juk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kioslave() {
+ pkgdesc='Audio CD Browser'
+ depends=('kdelibs' 'libmusicbrainz3' 'cdparanoia')
+ conflicts=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+ replaces=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+ for i in kioslave doc/kioslave libkcddb libkcompactdisc; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdemultimedia-kmix() {
+ pkgdesc='Sound Mixer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/multimedia/kmix"
+ install='kdemultimedia.install'
+ cd $srcdir/build/kmix
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmix
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kscd() {
+ pkgdesc='CD Player'
+ depends=('kdebase-runtime' 'libmusicbrainz3')
+ url="http://kde.org/applications/multimedia/kscd"
+ install='kdemultimedia.install'
+ cd $srcdir/build/kscd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcontrol/cddbretrieval
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-mplayerthumbs() {
+ pkgdesc='Video Files (MPlayerThumbs)'
+ depends=('kdebase-runtime' 'mplayer')
+ replaces=('mplayerthumbs')
+ conflicts=('mplayerthumbs')
+ cd $srcdir/build/mplayerthumbs
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/mplayerthumbs.config $pkgdir/usr/share/config/mplayerthumbs
+}
diff --git a/staging/kdemultimedia/kdemultimedia.install b/staging/kdemultimedia/kdemultimedia.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdemultimedia/kdemultimedia.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdemultimedia/mplayerthumbs.config b/staging/kdemultimedia/mplayerthumbs.config
new file mode 100644
index 000000000..761a17953
--- /dev/null
+++ b/staging/kdemultimedia/mplayerthumbs.config
@@ -0,0 +1,2 @@
+[MPlayerThumbsCfg]
+backend=0
diff --git a/staging/kdenetwork/PKGBUILD b/staging/kdenetwork/PKGBUILD
new file mode 100644
index 000000000..a4acbfbfb
--- /dev/null
+++ b/staging/kdenetwork/PKGBUILD
@@ -0,0 +1,116 @@
+# $Id: PKGBUILD 126547 2011-06-06 06:35:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdenetwork
+pkgname=('kdenetwork-filesharing'
+ 'kdenetwork-kdnssd'
+ 'kdenetwork-kget'
+ 'kdenetwork-kopete'
+ 'kdenetwork-kppp'
+ 'kdenetwork-krdc'
+ 'kdenetwork-krfb')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr'
+ 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
+ 'ppp' 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
+ 'telepathy-qt4' 'libktorrent')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('63bb58a457aed790e109a9dbeab73abb8c7ea1b2')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
+ -DWITH_Xmms=OFF \
+ -DWITH_WLM_MEDIASTREAMER=OFF \
+ -DWITH_LibMeanwhile=OFF \
+ -DWITH_msiLBC=OFF
+ make
+}
+
+package_kdenetwork-filesharing() {
+ pkgdesc='Konqueror properties dialog plugin to share a directory with the local network'
+ depends=('kdelibs' 'smbclient')
+ install='kdenetwork.install'
+ cd $srcdir/build/filesharing
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kdnssd() {
+ pkgdesc='Monitors the network for DNS-SD services'
+ depends=('kdelibs')
+ cd $srcdir/build/kdnssd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kget() {
+ pkgdesc='Download Manager'
+ depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent')
+ optdepends=('python2: YouTube plugin')
+ url="http://kde.org/applications/internet/kget/"
+ install='kdenetwork.install'
+ cd $srcdir/build/kget
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kget
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find ${pkgdir} -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdenetwork-kopete() {
+ pkgdesc='Instant Messenger'
+ depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+ 'libidn' 'qimageblitz' 'v4l-utils' 'libgadu')
+ url="http://kde.org/applications/internet/kopete/"
+ install='kdenetwork.install'
+ cd $srcdir/build/kopete
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kopete
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kppp() {
+ pkgdesc='Internet Dial-Up Tool'
+ depends=('kdebase-runtime' 'ppp')
+ url="http://kde.org/applications/internet/kppp/"
+ install='kdenetwork.install'
+ cd $srcdir/build/kppp
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kppp
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krdc() {
+ pkgdesc='Remote Desktop Client'
+ depends=('kdebase-runtime' 'libvncserver' 'rdesktop' 'telepathy-qt4')
+ optdepends=('kdebase-keditbookmarks: to edit bookmarks')
+ url="http://kde.org/applications/internet/krdc/"
+ cd $srcdir/build/krdc
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/krdc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krfb() {
+ pkgdesc='Desktop Sharing'
+ # note on libxdamage:
+ # not detected by namcap because libgl depends on it
+ # but nvidia providing libgl does not depend on libxdamage
+ depends=('kdebase-runtime' 'libvncserver' 'libxdamage')
+ cd $srcdir/build/krfb
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/krfb
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdenetwork/kdenetwork.install b/staging/kdenetwork/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdenetwork/kdenetwork.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepim-runtime/PKGBUILD b/staging/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..0b0e8fb96
--- /dev/null
+++ b/staging/kdepim-runtime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 126741 2011-06-07 06:22:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.6.0
+pkgrel=1
+pkgdesc='KDE PIM Runtime Environment'
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdepimlibs' 'kdebase-runtime')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/kdepim-${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('2a2e29ba805ae2c94fa4da6371693e59575d3ed8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdepim-runtime/kdepim-runtime.install b/staging/kdepim-runtime/kdepim-runtime.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/staging/kdepim-runtime/kdepim-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/staging/kdepim/PKGBUILD b/staging/kdepim/PKGBUILD
new file mode 100644
index 000000000..1f014e745
--- /dev/null
+++ b/staging/kdepim/PKGBUILD
@@ -0,0 +1,253 @@
+# $Id: PKGBUILD 126753 2011-06-07 06:46:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdepim
+pkgname=('kdepim-akonadiconsole'
+ 'kdepim-akregator'
+ 'kdepim-blogilo'
+ 'kdepim-console'
+ 'kdepim-kaddressbook'
+ 'kdepim-kalarm'
+ 'kdepim-kjots'
+ 'kdepim-kleopatra'
+ 'kdepim-kmail'
+ 'kdepim-knode'
+ 'kdepim-knotes'
+ 'kdepim-kontact'
+ 'kdepim-korganizer'
+ 'kdepim-kresources'
+ 'kdepim-ktimetracker'
+ 'kdepim-libkdepim'
+ 'kdepim-wizards')
+pkgver=4.6.0
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss'
+ 'pilot-link' 'kde-agent')
+source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('283ea87b68a4750194d785361f6534af59edacf9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDEPIM_BUILD_MOBILE=OFF
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/akonadiconsole
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/akregator/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/akregator
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-blogilo() {
+ pkgdesc='A KDE Blogging Client'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/internet/blogilo/"
+ replaces=('blogilo')
+ conflicts=('blogilo')
+ install='kdepim.install'
+ cd "${srcdir}"/build/blogilo
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/blogilo
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-console() {
+ pkgdesc='Command line tool for accessing calendar files'
+ depends=('kdepim-runtime')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/console
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kaddressbook/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kalarm() {
+ pkgdesc='Personal Alarm Scheduler'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kalarm/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kalarm
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kalarm
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kjots() {
+ pkgdesc='Note Taker'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kjots/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kjots
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kleopatra() {
+ pkgdesc='Certificate Manager and Unified Crypto GUI'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kleopatra/"
+ install='kdepim-kleopatra.install'
+ cd "${srcdir}"/build/kleopatra
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kleopatra
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kmail() {
+ pkgdesc='Mail Client'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/kmail/"
+ install='kdepim-kmail.install'
+ conflicts=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ replaces=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ optdepends=('cyrus-sasl-plugins: CRAM-MD5 authentication')
+ for i in kmail doc/kmail kmailcvt ksendemail libksieve mailcommon \
+ nepomuk_email_feeder ontologies templateparser kontact/plugins/kmail; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/knode/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knode
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-knotes() {
+ pkgdesc='Popup Notes'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/knotes/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knotes
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kontact() {
+ pkgdesc='Personal Information Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src doc/kontact \
+ kontact/plugins/summary kontact/plugins/specialdates; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim-korganizer.install'
+ cd "${srcdir}"/build/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/korganizer
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kresources() {
+ pkgdesc='KDE PIM resources'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/kresources
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdepim-kresources')
+ url="http://kde.org/applications/utilities/ktimetracker/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/ktimetracker
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-libkdepim() {
+ pkgdesc='Library for KDE PIM'
+ groups=()
+ depends=('kde-agent' 'kdepim-runtime')
+ url='http://pim.kde.org'
+ conflicts=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ for i in akonadi_next calendarsupport calendarviews incidenceeditor-ng \
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ messagecomposer messagecore messagelist messageviewer icons \
+ strigi-analyzer plugins/messageviewer plugins/ktexteditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-wizards() {
+ pkgdesc='KDE Groupware Wizard'
+ depends=('kdepim-kresources')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/wizards
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdepim/kdepim-kleopatra.install b/staging/kdepim/kdepim-kleopatra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdepim/kdepim-kleopatra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepim/kdepim-kmail.install b/staging/kdepim/kdepim-kmail.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdepim/kdepim-kmail.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepim/kdepim-korganizer.install b/staging/kdepim/kdepim-korganizer.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdepim/kdepim-korganizer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepim/kdepim.install b/staging/kdepim/kdepim.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdepim/kdepim.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepimlibs/PKGBUILD b/staging/kdepimlibs/PKGBUILD
new file mode 100644
index 000000000..84a193b31
--- /dev/null
+++ b/staging/kdepimlibs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 126528 2011-06-06 06:05:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepimlibs
+pkgver=4.6.4
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' )
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'cyrus-sasl' 'openldap')
+install='kdepimlibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('b7e48da0a3fa9c4d435ed2224909a5441450334f')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/testing/koffice/filters.install b/staging/kdepimlibs/kdepimlibs.install
index 7c8a8bd2b..99262607c 100644
--- a/testing/koffice/filters.install
+++ b/staging/kdepimlibs/kdepimlibs.install
@@ -8,4 +8,4 @@ post_upgrade() {
post_remove() {
post_install
-}
+} \ No newline at end of file
diff --git a/staging/kdeplasma-addons/PKGBUILD b/staging/kdeplasma-addons/PKGBUILD
new file mode 100644
index 000000000..d8482c9bf
--- /dev/null
+++ b/staging/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,603 @@
+# $Id: PKGBUILD 126542 2011-06-06 06:09:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeplasma-addons
+pkgname=('kdeplasma-addons-applets-bball'
+ 'kdeplasma-addons-applets-binary-clock'
+ 'kdeplasma-addons-applets-blackboard'
+ 'kdeplasma-addons-applets-bookmarks'
+ 'kdeplasma-addons-applets-bubblemon'
+ 'kdeplasma-addons-applets-calculator'
+ 'kdeplasma-addons-applets-charselect'
+ 'kdeplasma-addons-applets-comic'
+ 'kdeplasma-addons-applets-community'
+ 'kdeplasma-addons-applets-dict'
+ 'kdeplasma-addons-applets-eyes'
+ 'kdeplasma-addons-applets-fifteenpuzzle'
+ 'kdeplasma-addons-applets-filewatcher'
+ 'kdeplasma-addons-applets-frame'
+ 'kdeplasma-addons-applets-fuzzy-clock'
+ 'kdeplasma-addons-applets-incomingmsg'
+ 'kdeplasma-addons-applets-kdeobservatory'
+ 'kdeplasma-addons-applets-kimpanel'
+ 'kdeplasma-addons-applets-knowledgebase'
+ 'kdeplasma-addons-applets-kolourpicker'
+ 'kdeplasma-addons-applets-konqprofiles'
+ 'kdeplasma-addons-applets-konsoleprofiles'
+ 'kdeplasma-addons-applets-lancelot'
+ 'kdeplasma-addons-applets-leavenote'
+ 'kdeplasma-addons-applets-life'
+ 'kdeplasma-addons-applets-luna'
+ 'kdeplasma-addons-applets-magnifique'
+ 'kdeplasma-addons-applets-mediaplayer'
+ 'kdeplasma-addons-applets-microblog'
+ 'kdeplasma-addons-applets-news'
+ 'kdeplasma-addons-applets-notes'
+ 'kdeplasma-addons-applets-nowplaying'
+ 'kdeplasma-addons-applets-paste'
+ 'kdeplasma-addons-applets-pastebin'
+ 'kdeplasma-addons-applets-plasmaboard'
+ 'kdeplasma-addons-applets-previewer'
+ 'kdeplasma-addons-applets-qalculate'
+ 'kdeplasma-addons-applets-rememberthemilk'
+ 'kdeplasma-addons-applets-rssnow'
+ 'kdeplasma-addons-applets-showdashboard'
+ 'kdeplasma-addons-applets-showdesktop'
+ 'kdeplasma-addons-applets-social-news'
+ 'kdeplasma-addons-applets-spellcheck'
+ 'kdeplasma-addons-applets-systemloadviewer'
+ 'kdeplasma-addons-applets-timer'
+ 'kdeplasma-addons-applets-unitconverter'
+ 'kdeplasma-addons-applets-weather'
+ 'kdeplasma-addons-applets-weatherstation'
+ 'kdeplasma-addons-applets-webslice'
+ 'kdeplasma-addons-containments'
+ 'kdeplasma-addons-libs'
+ 'kdeplasma-addons-runners-audioplayercontrol'
+ 'kdeplasma-addons-runners-browserhistory'
+ 'kdeplasma-addons-runners-characters'
+ 'kdeplasma-addons-runners-contacts'
+ 'kdeplasma-addons-runners-converter'
+ 'kdeplasma-addons-runners-datetime'
+ 'kdeplasma-addons-runners-events'
+ 'kdeplasma-addons-runners-katesessions'
+ 'kdeplasma-addons-runners-konquerorsessions'
+ 'kdeplasma-addons-runners-konsolesessions'
+ 'kdeplasma-addons-runners-kopete'
+ 'kdeplasma-addons-runners-mediawiki'
+ 'kdeplasma-addons-runners-spellchecker'
+ 'kdeplasma-addons-wallpapers-mandelbrot'
+ 'kdeplasma-addons-wallpapers-marble'
+ 'kdeplasma-addons-wallpapers-pattern'
+ 'kdeplasma-addons-wallpapers-virus'
+ 'kdeplasma-addons-wallpapers-weather')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace' 'kdegraphics-libs'
+ 'kdeedu-marble' 'eigen' 'scim' 'qwt' 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('8d107bf8cc6b6b9d66e9178b5f18bdc1751a957f')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeplasma-addons-applets-bball() {
+ pkgdesc='A bouncy ball for plasma'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/bball
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-binary-clock() {
+ pkgdesc='Time displayed in binary format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/binary-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-blackboard() {
+ pkgdesc='Black Board'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/blackboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bookmarks() {
+ pkgdesc='Quick Access to the Bookmarks'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bubblemon() {
+ pkgdesc='A pretty bubble that monitors your system.'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bubblemon
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-calculator() {
+ pkgdesc='Calculate simple sums'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/calculator
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-charselect() {
+ pkgdesc='View, select, and copy characters from a font collection'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/charselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-comic() {
+ pkgdesc='View comic strips from the Internet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/comic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-community() {
+ pkgdesc='Communicate using the Social Desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/community
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-dict() {
+ pkgdesc='Look up the meaning of words and their translation into different languages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/dict
+ make DESTDIR=$pkgdir install
+ # FIXME
+ # /usr/share/icons/oxygen/scalable/apps/accessories-dictionary.svgz
+ rm -rf $pkgdir/usr/share/icons
+}
+
+package_kdeplasma-addons-applets-eyes() {
+ pkgdesc='XEyes clone'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/eyes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fifteenpuzzle() {
+ pkgdesc='Put the pieces in order'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/fifteenPuzzle
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-filewatcher() {
+ pkgdesc='Watch for changes in specified files'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fileWatcher
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-frame() {
+ pkgdesc='Display your favorite pictures'
+ depends=('kdebase-workspace' 'kdegraphics-libs')
+ cd $srcdir/build/applets/frame
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fuzzy-clock() {
+ pkgdesc='Time displayed in a less precise format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fuzzy-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-incomingmsg() {
+ pkgdesc='Notification of new messages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/incomingmsg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kdeobservatory() {
+ pkgdesc='Visualize the KDE ecosystem'
+ depends=('kdebase-workspace' 'qwt')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/kdeobservatory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kimpanel() {
+ pkgdesc='A generic input method panel for Oriental languages'
+ depends=('kdebase-workspace')
+ optdepends=('scim: SCIM backend'
+ 'fcitx: FCITX backend')
+ cd $srcdir/build/applets/kimpanel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-knowledgebase() {
+ pkgdesc='Opendesktop Knowledgebase'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/knowledgebase
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kolourpicker() {
+ pkgdesc='Pick a color from the desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/kolourpicker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konqprofiles() {
+ pkgdesc='List and launch Konqueror profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konqprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konsoleprofiles() {
+ pkgdesc='List and launch Konsole profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konsoleprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-lancelot() {
+ pkgdesc='Launcher to start applications'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ replaces=('lancelot')
+ provides=('lancelot')
+ conflicts=('lancelot')
+ install='kdeplasma-addons-applets-lancelot.install'
+ cd $srcdir/build/applets/lancelot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-leavenote() {
+ pkgdesc='Leave notes for users while they are away'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/leavenote
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-life() {
+ pkgdesc='Life'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/life
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-luna() {
+ pkgdesc='Display moon phases for your location'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/luna
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-magnifique() {
+ pkgdesc='A magnification glass for the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/magnifique
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-mediaplayer() {
+ pkgdesc='Widget that can play video and sound'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/mediaplayer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-microblog() {
+ pkgdesc='Update and view your microblog status.'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/microblog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-news() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-notes() {
+ pkgdesc='Desktop sticky notes'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/notes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-nowplaying() {
+ pkgdesc='Displays currently playing audio'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/nowplaying
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-paste() {
+ pkgdesc='Paste text snippets'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/paste
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-pastebin() {
+ pkgdesc='Paste text/images to a remote server'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/pastebin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-plasmaboard() {
+ pkgdesc='A virtual, on-screen keyboard'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/plasmaboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-previewer() {
+ pkgdesc='Preview This File'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/previewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-qalculate() {
+ pkgdesc='A powerful mathematical equation solver'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/qalculate
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rememberthemilk() {
+ pkgdesc='Remember The Milk Todo list applet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/rememberthemilk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rssnow() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/rssnow
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdashboard() {
+ pkgdesc='Show the Plasma widget dashboard above other windows'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdashboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdesktop() {
+ pkgdesc='Show the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdesktop
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-social-news() {
+ pkgdesc='Stay informed with the Social Desktop'
+ replaces=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ conflicts=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/social-news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-spellcheck() {
+ pkgdesc='Fast spell checking'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/spellcheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-systemloadviewer() {
+ pkgdesc='Tiny CPU/RAM/Swap monitor'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/systemloadviewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-timer() {
+ pkgdesc='Countdown over a specified time period'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/timer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-unitconverter() {
+ pkgdesc='Plasmoid for converting units'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/unitconverter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weather() {
+ pkgdesc='Displays Weather information'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weather
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weatherstation() {
+ pkgdesc='Weather reports with an LCD display style'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weatherstation
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-webslice() {
+ pkgdesc='Show a part of a webpage'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/webslice
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-containments() {
+ pkgdesc='Activities types for Plasma shells'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/containments
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-libs() {
+ pkgdesc='Plasma Addon Library'
+ depends=('kdebase-workspace')
+ groups=()
+ replaces=('kdeplasma-addons-dataengines')
+ provides=('kdeplasma-addons-dataengines')
+ conflicts=('kdeplasma-addons-dataengines')
+ cd $srcdir/build/libs
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/dataengines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-audioplayercontrol() {
+ pkgdesc='Allows to control MPRIS audio players (it is able to search through Amarok´s collection, too)'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/audioplayercontrol
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-browserhistory() {
+ pkgdesc='Searches in Konqueror´s history'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/browserhistory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-characters() {
+ pkgdesc='special Characters'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/characters
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-contacts() {
+ pkgdesc='Finds entries in your address book'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/contacts
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-converter() {
+ pkgdesc='Convert values to different units'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/runners/converter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-datetime() {
+ pkgdesc='The current date and time, locally or in any timezone'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/datetime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-events() {
+ pkgdesc='Calendar Events runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/events
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-katesessions() {
+ pkgdesc='Matches Kate Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/katesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konquerorsessions() {
+ pkgdesc='Matches Konqueror Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konquerorsessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konsolesessions() {
+ pkgdesc='Matches Konsole Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konsolesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-kopete() {
+ pkgdesc='Kopete Contact runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/kopete
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-mediawiki() {
+ pkgdesc='Search on Wikitravel'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/mediawiki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-spellchecker() {
+ pkgdesc='Check the spelling of a word'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/spellchecker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-mandelbrot() {
+ pkgdesc='Mandelbrot'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/mandelbrot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-marble() {
+ pkgdesc='Globe'
+ depends=('kdebase-workspace' 'kdeedu-marble')
+ cd $srcdir/build/wallpapers/marble
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-pattern() {
+ pkgdesc='Pattern'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/pattern
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-virus() {
+ pkgdesc='Virus'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/virus
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-weather() {
+ pkgdesc='Weather'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/wallpapers/weather
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install b/staging/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/staging/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/staging/kdeplasma-addons/kdeplasma-addons-applets.install b/staging/kdeplasma-addons/kdeplasma-addons-applets.install
new file mode 100644
index 000000000..c4ef46ba8
--- /dev/null
+++ b/staging/kdeplasma-addons/kdeplasma-addons-applets.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/staging/kdesdk/PKGBUILD b/staging/kdesdk/PKGBUILD
deleted file mode 100644
index afb12e671..000000000
--- a/staging/kdesdk/PKGBUILD
+++ /dev/null
@@ -1,243 +0,0 @@
-# $Id: PKGBUILD 126168 2011-06-02 00:51:07Z andrea $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Pierre Schmitz <pierre@archlinux.de>
-
-pkgbase=kdesdk
-pkgname=('kdesdk-cervisia'
- 'kdesdk-dolphin-plugins'
- 'kdesdk-kapptemplate'
- 'kdesdk-kate'
- 'kdesdk-kcachegrind'
- 'kdesdk-kdeaccounts-plugin'
- 'kdesdk-kdepalettes'
- 'kdesdk-kioslave'
- 'kdesdk-kmtrace'
- 'kdesdk-kompare'
- 'kdesdk-kpartloader'
- 'kdesdk-kprofilemethod'
- 'kdesdk-kstartperf'
- 'kdesdk-kuiviewer'
- 'kdesdk-lokalize'
- 'kdesdk-okteta'
- 'kdesdk-poxml'
- 'kdesdk-scripts'
- 'kdesdk-strigi-analyzer'
- 'kdesdk-umbrello')
-pkgver=4.6.3
-pkgrel=2
-arch=('i686' 'x86_64')
-url='http://www.kde.org'
-license=('GPL' 'LGPL' 'FDL')
-groups=('kde' 'kdesdk')
-makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'subversion'
- 'antlr2' 'kdebase-konqueror')
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
- 'fix-python2-path.patch')
-sha1sums=('6faecbd828fda6cf0aced642287d982d3541d746'
- 'd05ca0231869c484fd3861955d960a60aff7dcfb')
-
-build() {
- cd ${srcdir}/${pkgbase}-${pkgver}
-
- # Fix python2 path
- patch -Np1 -i ${srcdir}/fix-python2-path.patch
- sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
- -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
- $(find . -name '*.py')
-
- cd ${srcdir}
- mkdir build
- cd build
- cmake ../${pkgbase}-${pkgver} \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_SKIP_RPATH=ON \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
-}
-
-package_kdesdk-cervisia() {
- pkgdesc='CVS Frontend'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/development/cervisia/"
- install='kdesdk.install'
- cd $srcdir/build/cervisia
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/cervisia
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-dolphin-plugins() {
- pkgdesc='Extra Dolphin plugins'
- depends=('kdebase-dolphin' 'subversion' 'git' 'kdesdk-kompare')
- install='kdesdk.install'
- cd $srcdir/build/dolphin-plugins/git
- make DESTDIR=$pkgdir install
- cd $srcdir/build/dolphin-plugins/svn
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kapptemplate() {
- pkgdesc='KDE Template Generator'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/development/kapptemplate/"
- install='kdesdk.install'
- cd $srcdir/build/kapptemplate
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/kapptemplate
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kate() {
- pkgdesc='Advanced Text Editor'
- depends=('kdebase-runtime' 'kdebase-lib')
- url="http://kde.org/applications/utilities/kate/"
- install='kdesdk-kate.install'
- cd $srcdir/build/kate
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/kate
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kcachegrind() {
- pkgdesc='Visualization of Performance Profiling Data'
- depends=('kdebase-runtime' 'python2')
- optdepends=('php: PHP support')
- url="http://kde.org/applications/development/kcachegrind/"
- install='kdesdk.install'
- cd $srcdir/build/kcachegrind
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/kcachegrind
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kdeaccounts-plugin() {
- pkgdesc='KDE Repository Accounts'
- depends=('kdepim-runtime')
- cd $srcdir/build/kdeaccounts-plugin
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kdepalettes() {
- pkgdesc='Palettes for the Gimp that match the KDE standard color palette'
- optdepends=('gimp')
- install -D -m644 $srcdir/${pkgbase}-${pkgver}/kdepalettes/KDE_Gimp \
- $pkgdir/usr/share/gimp/2.0/palettes/KDE.gpl
-}
-
-package_kdesdk-kioslave() {
- pkgdesc='KDED Subversion Module'
- depends=('kdebase-runtime' 'subversion')
- cd $srcdir/build/kioslave
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kmtrace() {
- pkgdesc='A KDE tool to assist with malloc debugging using glibc´s "mtrace" functionality'
- depends=('kdebase-runtime')
- cd $srcdir/build/kmtrace
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/kmtrace
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kompare() {
- pkgdesc='Diff/Patch Frontend'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/development/kompare/"
- install='kdesdk.install'
- cd $srcdir/build/kompare
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/kompare
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kpartloader() {
- pkgdesc='A test application for KParts'
- depends=('kdebase-runtime')
- install='kdesdk.install'
- cd $srcdir/build/kpartloader
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kprofilemethod() {
- pkgdesc='Macros helping to profile'
- cd $srcdir/build/kprofilemethod
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kstartperf() {
- pkgdesc='Startup time measurement tool for KDE applications'
- depends=('kdebase-runtime')
- cd $srcdir/build/kstartperf
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-kuiviewer() {
- pkgdesc='Qt Designer UI File Viewer'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/development/kuiviewer/"
- install='kdesdk.install'
- cd $srcdir/build/kuiviewer
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-lokalize() {
- pkgdesc='Computer-Aided Translation System'
- depends=('kdebase-runtime' 'kdebindings-python')
- url="http://kde.org/applications/development/lokalize/"
- optdepends=('translate-toolkit: enable extra python script')
- install='kdesdk.install'
- cd $srcdir/build/lokalize
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/lokalize
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-okteta() {
- pkgdesc='Hex Editor'
- depends=('kdebase-runtime')
- replaces=('kdeutils-okteta')
- conflicts=('kdeutils-okteta')
- url="http://kde.org/applications/utilities/okteta"
- install='kdesdk-okteta.install'
- cd $srcdir/build/okteta
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/okteta
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-poxml() {
- pkgdesc='Translates DocBook XML files using gettext po files'
- depends=('qt' 'antlr2')
- cd $srcdir/build/poxml
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/poxml
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-scripts() {
- pkgdesc='KDE SDK scripts'
- depends=('python2')
- cd $srcdir/build/scripts
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/scripts
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-strigi-analyzer() {
- pkgdesc='Strigi-Analyzer for KDE SDK'
- depends=('kdelibs')
- cd $srcdir/build/strigi-analyzer
- make DESTDIR=$pkgdir install
-}
-
-package_kdesdk-umbrello() {
- pkgdesc='UML Modeller'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/development/umbrello/"
- install='kdesdk.install'
- cd $srcdir/build/umbrello
- make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/umbrello
- make DESTDIR=$pkgdir install
-}
diff --git a/staging/kdesdk/fix-python2-path.patch b/staging/kdesdk/fix-python2-path.patch
deleted file mode 100644
index c2c0745d1..000000000
--- a/staging/kdesdk/fix-python2-path.patch
+++ /dev/null
@@ -1,64 +0,0 @@
---- kdesdk-4.5.80/kcachegrind/converters/hotshot2calltree~ 2010-11-24 11:53:38.586666671 +0100
-+++ kdesdk-4.5.80/kcachegrind/converters/hotshot2calltree 2010-11-24 11:53:38.623333337 +0100
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- # _*_ coding: latin1 _*_
-
- #
---- kdesdk-4.5.80/lokalize/scripts/msgmerge.py~ 2010-11-24 11:22:42.120000002 +0100
-+++ kdesdk-4.5.80/lokalize/scripts/msgmerge.py 2010-11-24 11:22:42.146666670 +0100
-@@ -114,7 +114,7 @@
- print >>sys.stderr, "Execution failed:", e
-
- cmd='%s/odf/xliffmerge.py -i %s -t %s -o %s' % (ourPath,xliffpathname,xlifftemplatepathname,xliffpathname)
-- if os.name!='nt': cmd='python '+cmd
-+ if os.name!='nt': cmd='python2 '+cmd
- else: cmd=cmd.replace('/','\\')
- os.system(cmd)
-
---- kdesdk-4.5.80/lokalize/scripts/xliff2odf.py~ 2010-11-24 11:24:10.853333336 +0100
-+++ kdesdk-4.5.80/lokalize/scripts/xliff2odf.py 2010-11-24 11:24:10.883333336 +0100
-@@ -42,7 +42,7 @@
- xliff2odf.convertxliff(xliffinput, translatedodfpathname, odf)
-
- ourpath=([p for p in sys.path if os.path.exists(p+'/xliff2odf.py')]+[''])[0]
-- os.system('python "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
-+ os.system('python2 "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
-
- try: convert()
- except: print 'error occured'
---- kdesdk-4.5.80/scripts/rename_source_files~ 2010-11-24 11:45:41.040000004 +0100
-+++ kdesdk-4.5.80/scripts/rename_source_files 2010-11-24 11:45:41.093333336 +0100
-@@ -1,4 +1,4 @@
--#! /usr/bin/env python
-+#! /usr/bin/env python2
- #
- # Copyright David Faure <faure@kde.org>, License LGPL v2
- #
---- kdesdk-4.5.80/scripts/svn2log.sh~ 2010-11-24 11:46:24.863333337 +0100
-+++ kdesdk-4.5.80/scripts/svn2log.sh 2010-11-24 11:46:24.896666669 +0100
-@@ -17,6 +17,6 @@
- svn cat svn://anonsvn.kde.org/home/kde/trunk/kde-common/accounts > /tmp/accounts.$PPID
-
- echo "Creating changelog...";
--svn log -v --xml $1 | python $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
-+svn log -v --xml $1 | python2 $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
-
- rm /tmp/accounts.$PPID
---- kdesdk-4.5.80/scripts/kde_generate_export_header~ 2010-11-24 11:48:49.696666669 +0100
-+++ kdesdk-4.5.80/scripts/kde_generate_export_header 2010-11-24 11:48:49.753333338 +0100
-@@ -1,4 +1,4 @@
--#! /usr/bin/env python
-+#! /usr/bin/env python2
-
- import os, sys, string
-
---- kdesdk-4.5.80/scripts/reviewboarddiff~ 2010-11-24 11:49:37.686666670 +0100
-+++ kdesdk-4.5.80/scripts/reviewboarddiff 2010-11-24 11:49:37.740000003 +0100
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- # encoding: utf-8
- #
- # Generates reviewboard compatible diffs from git-svn repositories.
diff --git a/staging/kdetoys/PKGBUILD b/staging/kdetoys/PKGBUILD
new file mode 100644
index 000000000..b280bf58c
--- /dev/null
+++ b/staging/kdetoys/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 126544 2011-06-06 06:10:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdetoys
+pkgname=('kdetoys-amor'
+ 'kdetoys-kteatime'
+ 'kdetoys-ktux')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdetoys')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('12a0228010a1720649807cb8efe71f572bd24af3')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdetoys-amor() {
+ pkgdesc='On-Screen Creature'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/amor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/amor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-kteatime() {
+ pkgdesc='Tea Cooker'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/kteatime
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kteatime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-ktux() {
+ pkgdesc='KTux'
+ depends=('kdebase-workspace' )
+ install='kdetoys.install'
+ cd $srcdir/build/ktux
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdetoys/kdetoys.install b/staging/kdetoys/kdetoys.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdetoys/kdetoys.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdeutils/PKGBUILD b/staging/kdeutils/PKGBUILD
new file mode 100644
index 000000000..3307f045e
--- /dev/null
+++ b/staging/kdeutils/PKGBUILD
@@ -0,0 +1,180 @@
+# $Id: PKGBUILD 126545 2011-06-06 06:10:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeutils
+pkgname=('kdeutils-ark'
+ 'kdeutils-filelight'
+ 'kdeutils-kcalc'
+ 'kdeutils-kcharselect'
+ 'kdeutils-kdf'
+ 'kdeutils-kfloppy'
+ 'kdeutils-kgpg'
+ 'kdeutils-kremotecontrol'
+ 'kdeutils-ktimer'
+ 'kdeutils-kwallet'
+ 'kdeutils-printer-applet'
+ 'kdeutils-superkaramba'
+ 'kdeutils-sweeper')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeutils')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-lib' 'kdebase-workspace'
+ 'kdebindings-python' 'system-config-printer-common' 'libarchive' 'qimageblitz'
+ 'qjson')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('787653b60ce17e0e5900f9ec30f198b8d7bf1edf')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeutils-ark() {
+ pkgdesc='Archiving Tool'
+ depends=('kdebase-runtime' 'kdebase-lib' 'libarchive')
+ optdepends=('p7zip' 'zip' 'unzip' 'unrar')
+ url="http://kde.org/applications/utilities/ark/"
+ cd $srcdir/build/ark
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ark
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-filelight() {
+ pkgdesc='View disk usage information'
+ depends=('kdebase-runtime' 'qimageblitz')
+ replaces=('filelight')
+ conflicts=('filelight')
+ install='kdeutils.install'
+ url="http://methylblue.com/filelight/"
+ cd $srcdir/build/filelight
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/filelight
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kcalc() {
+ pkgdesc='Scientific Calculator'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kcalc/"
+ cd $srcdir/build/kcalc
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcalc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kcharselect() {
+ pkgdesc='Character Selector'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kcharselect/"
+ cd $srcdir/build/kcharselect
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcharselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kdf() {
+ pkgdesc='View Disk Usage'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/kdiskfree/"
+ install='kdeutils.install'
+ cd $srcdir/build/kdf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kfloppy() {
+ pkgdesc='Floppy Formatter'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kfloppy/"
+ install='kdeutils.install'
+ cd $srcdir/build/kfloppy
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfloppy
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kgpg() {
+ pkgdesc='A GnuPG frontend'
+ depends=('kdepim-runtime' 'kde-agent')
+ url="http://kde.org/applications/utilities/kgpg"
+ install='kdeutils.install'
+ cd $srcdir/build/kgpg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgpg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kremotecontrol() {
+ pkgdesc='Configure your remote controls for use with applications'
+ replaces=('kdeutils-kdelirc')
+ conflicts=('kdeutils-kdelirc')
+ depends=('kdebase-workspace')
+ url="http://kde.org/applications/utilities/kremotecontrol"
+ install='kdeutils.install'
+ cd $srcdir/build/kremotecontrol
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcontrol/kremotecontrol
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-ktimer() {
+ pkgdesc='Countdown Launcher'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/ktimer"
+ install='kdeutils.install'
+ cd $srcdir/build/ktimer
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktimer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kwallet() {
+ pkgdesc='Wallet Management Tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/kwalletmanager/"
+ install='kdeutils.install'
+ cd $srcdir/build/kwallet
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kwallet
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-printer-applet() {
+ pkgdesc='System tray icon for managing print jobs'
+ depends=('kdebase-runtime' 'kdebindings-python' 'system-config-printer-common')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/printer-applet
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdeutils-superkaramba() {
+ pkgdesc='An engine for cool desktop eyecandy'
+ depends=('kdebase-runtime' 'kdebindings-python' 'qimageblitz')
+ url="http://kde.org/applications/utilities/superkaramba"
+ install='kdeutils.install'
+ cd $srcdir/build/superkaramba
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-sweeper() {
+ pkgdesc='System Cleaner'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/sweeper/"
+ cd $srcdir/build/sweeper
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdeutils/kdeutils.install b/staging/kdeutils/kdeutils.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdeutils/kdeutils.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdewebdev/PKGBUILD b/staging/kdewebdev/PKGBUILD
new file mode 100644
index 000000000..c56e2c824
--- /dev/null
+++ b/staging/kdewebdev/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 126546 2011-06-06 06:10:12Z andrea $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdewebdev
+pkgname=('kdewebdev-kfilereplace'
+ 'kdewebdev-kimagemapeditor'
+ 'kdewebdev-klinkstatus'
+ 'kdewebdev-kommander')
+pkgver=4.6.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdewebdev')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepim-runtime'
+ 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('ef6b5142afd5b97ad8c1bffe0557e25477371344')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdewebdev-kfilereplace() {
+ pkgdesc='Search & Replace Tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kfilereplace/"
+ install='kdewebdev.install'
+ cd $srcdir/build/kfilereplace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfilereplace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-kimagemapeditor() {
+ pkgdesc='HTML Image Map Editor'
+ depends=('kdebase-runtime')
+ install='kdewebdev.install'
+ cd $srcdir/build/kimagemapeditor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kimagemapeditor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-klinkstatus() {
+ pkgdesc='Link Checker'
+ depends=('kdepim-runtime' 'tidyhtml')
+ install='kdewebdev.install'
+ cd $srcdir/build/klinkstatus
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klinkstatus
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-kommander() {
+ pkgdesc='Executor for Kommander dialogs'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kommander
+ make DESTDIR=$pkgdir install
+}
diff --git a/staging/kdewebdev/kdewebdev.install b/staging/kdewebdev/kdewebdev.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdewebdev/kdewebdev.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/libreoffice/PKGBUILD b/staging/libreoffice/PKGBUILD
deleted file mode 100644
index 4fd0cf1a8..000000000
--- a/staging/libreoffice/PKGBUILD
+++ /dev/null
@@ -1,701 +0,0 @@
-# $Id: PKGBUILD 126270 2011-06-03 14:47:40Z stephane $
-# Maintainer: AndyRTR <andyrtr@archlinux.org>
-
-pkgbase="libreoffice"
-pkgname=('libreoffice' 'libreoffice-sdk'
- #'libreoffice-extension-barcode' #
- 'libreoffice-extension-diagram'
- 'libreoffice-extension-google-docs'
- 'libreoffice-extension-hunart'
- #'libreoffice-extension-lightproof' # no source integration
- #'libreoffice-extension-mysql-connector' # missing libmysqlcppconn-dev configure: error: mysql_driver.h not found. install MySQL C++ Connectivity
- 'libreoffice-extension-nlpsolver'
- 'libreoffice-extension-ct2n'
- 'libreoffice-extension-numbertext'
- 'libreoffice-extension-oooblogger'
- 'libreoffice-extension-pdfimport'
- 'libreoffice-extension-presenter-screen'
- 'libreoffice-extension-presentation-minimizer'
- 'libreoffice-extension-report-builder'
- 'libreoffice-extension-scripting-beanshell'
- 'libreoffice-extension-scripting-javascript'
- 'libreoffice-extension-scripting-python'
- 'libreoffice-extension-typo'
- 'libreoffice-extension-validator'
- 'libreoffice-extension-watch-window'
- 'libreoffice-extension-wiki-publisher')
-_LOver=3.4.0.2
-pkgver=3.4.0
-pkgrel=2
-arch=('i686' 'x86_64')
-#_LO_tree="3.4"
-_OFFICEUPD="340"
-license=('LGPL3')
-url="http://www.libreoffice.org/"
-makedepends=( # makedepends
- 'sane' 'perl-archive-zip' 'zip' 'unzip' 'xulrunner' 'unixodbc' 'hsqldb-java' #'boost' - we use internal one for now that has some gcc4.6 fixes.
- 'apache-ant' 'gperf' 'poppler' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient'
- 'beanshell' 'vigra' 'libldap' 'lucene' 'libmythes' 'junit' 'libwpg' 'imagemagick'
- 'mesa' 'gstreamer0.10-base' 'java-runtime'
- #'saxon' - currently broken
- # the depends from libreoffice main pkg
- "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
- 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt'
- 'redland' 'libgraphite' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat'
- 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' # keep gtk2 for install script
- 'ttf-dejavu') # to satisfy regression tests
- # translate-toolkit - todo move them to extra to allow --with-system-foo builds
-# http://download.documentfoundation.org/mirrors/all.html
-# http://wiki.documentfoundation.org/Mirrors
-_mirror="http://download.documentfoundation.org/libreoffice/src"
-#_mirror="http://dev-builds.libreoffice.org/pre-releases/src/"
-_additional_source_url="http://hg.services.openoffice.org/binaries"
-source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2 #,translations
- ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
- ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
- ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
- ${_additional_source_url}/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
- ${_additional_source_url}/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
- ${_additional_source_url}/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
- ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
- ${_additional_source_url}/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
- ${_additional_source_url}/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
- ${_additional_source_url}/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
- ${_additional_source_url}/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
- ${_additional_source_url}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
- ${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- ${_additional_source_url}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
- ${_additional_source_url}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
- ${_additional_source_url}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
- ${_additional_source_url}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
- ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
- ${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
- ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
- ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
- ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
- http://download.go-oo.org/src/7a0dcb3fe1e8c7229ab4fb868b7325e6-mdds_0.5.2.tar.bz2
- http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
- http://download.go-oo.org/extern/b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2
- http://download.go-oo.org/src/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
- http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
- http://download.go-oo.org/src/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
- buildfix_i116795.diff
- buildfix_boost.diff
- buildfix_ct2n.diff
- vbahelper.visibility.patch
- buildfix_bison25.diff)
-noextract=(185d60944ea767075d27247c3162b3bc-unowinreg.dll
- b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2
- 7a0dcb3fe1e8c7229ab4fb868b7325e6-mdds_0.5.2.tar.bz2
- ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
- 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
- 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
- fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
- 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
- 2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
- a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
- 3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
- 2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
- 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
- af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
- eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
- 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
- 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
- f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
- 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
- d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
- 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
- ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
- db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
- ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
- 7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
- 41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
- 451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
- bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
- 23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
- b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
- b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
- 9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
- dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
- b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
- 90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
- f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2)
-md5sums=('7427ddd5ae63b6ee7aa868201dfbccaa'
- 'a78a8e08731213da02c65060cedc5589'
- '596da255e2728faccc8f2361171270ec'
- '8ed9803a34d13da1764e7523d550d6b0'
- '9be46d7c4bf3a60ee8dd0a5ef3638f82'
- 'b60db802866ab71c485de42e6382d1bb'
- '09e374cf3bd8f07a043883393012d69b'
- 'af9f25aa04dc4ef7b797f7bcc743877c'
- 'ad29de786d76d67759f9d2dd574b29be'
- 'ff13a8ac0ea324122b75773fd80a9245'
- '6eb8f53e01da7a945ee4cd42b7297732'
- '90df27d4cbf490668ce4f03ff7dba521'
- 'c0ea197183564c49306a1c79ca571e51'
- '91e69ed3c0be542fa7f69ca3da2d7808'
- 'a81c787b2e5469c2acc9f335b2c9e52f'
- 'ee1c78af6553657614b1a43adf4750ac'
- 'c970d6212618fc9b34526907eb030ce6'
- '6d25488c81af09d87015bf487243042f'
- '9a39234a49516b7035309e28dd4f0784'
- '1f24ab1d39f4a51faf22244c94a6203f'
- '35c94d2df8893241173de1d16b6034c0'
- '798b2ffdc8bcfe7bca2cf92b62caf685'
- 'fdb27bfe2dbe2e7b57ae194d9bf36bab'
- 'ada24d37d8d638b3d8a9985e80bc2978'
- '2a177023f9ea8ec8bd00837605c5df1b'
- 'a7983f859eafb2677d7ff386a023bc40'
- '3c219630e4302863a9a83d0efde889db'
- '2ae988b339daec234019a7066f96733e'
- '2c9b0f83ed5890af02c0df1c1776f39b'
- 'af3c3acf618de6108d65fcdc92b492e1'
- 'eeb2c7ddf0d302fba4bfc6e97eac9624'
- '39bb3fcea1514f1369fcfc87542390fd'
- '3404ab6b1792ae5f16bbd603bd1e1d03'
- '97b2d4dba862397f446b217e2b623e71'
- 'f94d9870737518e3b597f9265f4e9803'
- '8ce2fcd72becf06c41f7201d15373ed9'
- 'd8bd5eed178db6e2b18eeed243f85aa8'
- '3bdf40c0d199af31923e900d082ca2dd'
- 'ace6ab49184e329db254e454a010f56d'
- 'db60e4fde8dd6d6807523deb71ee34dc'
- 'ba2930200c9f019c2d93a8c88c651a0f'
- '18f577b374d60b3c760a3a3350407632'
- '7a0dcb3fe1e8c7229ab4fb868b7325e6'
- '185d60944ea767075d27247c3162b3bc'
- 'b4cae0700aa1c2aef7eb7f345365e6f1'
- '451ccf439a36a568653b024534669971'
- '90401bca927835b6fbae4a707ed187c8'
- 'f02578f5218f217a9f20e9c30e119c6a'
- '7e7efc5d4a03126bb9ae3ae9aa2c4e87'
- '41c9b65ad60af4b3255bbecdfef11736'
- '451ccf439a36a568653b024534669971'
- 'bbdd5639ada63e3130761daaecae1a10'
- '23bd75552206dfcd8fd4e29137dcac84'
- 'b8cbca7b3363e6ca2d02bc0ba2b63904'
- 'b632bdd25649cc4067bcb410bae23d2b'
- '9d60b6cfa3ef1926848710bbcd11115b'
- 'dbaafd21de055e582d92d7d32fe9da13'
- 'b7b2d0e04e142f26dd96119c80757d1f'
- '0520d63c946e272ed3bdfc863fbdc42e'
- 'bc228237108cab7745897a9f466b6d39'
- 'eee273f501ff45dc5f1365e78c6d57c0'
- '43b145db28e6c0d73578ae6fd35e510d'
- '4fa96e04b41a6e86774e74a972024b3e')
-
-build() {
-
- unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH; unset EXTRAOPTS
- [ -z "${JAVA_HOME}" ] && . /etc/profile.d/openjdk6.sh
- [ -z "${MOZ_PLUGIN_PATH}" ] && . /etc/profile.d/mozilla-common.sh
- [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh
-
- # move all LibO sources into one build directory
- mkdir ${srcdir}/build && cd ${srcdir}/build
- for i in libreoffice-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}; do #,translations
- mv ${srcdir}/$i/* .
- done
-
- # move external sources into place
- mkdir ${srcdir}/ext_sources && cd ${srcdir}/ext_sources
- for source in "${noextract[@]}"; do
- ln -s ${srcdir}/$source .
- done
-
- cd ${srcdir}/build
-
- # buildfixes & bugfixes
- patch -Np1 -i ${srcdir}/buildfix_i116795.diff
- patch -Np1 -i ${srcdir}/buildfix_boost.diff
- patch -Np1 -i ${srcdir}/buildfix_ct2n.diff
- patch -Np0 -i ${srcdir}/vbahelper.visibility.patch
- patch -Np0 -i ${srcdir}/buildfix_bison25.diff
-
- # unset C(XX)FLAGS
- # http://www.openoffice.org/issues/show_bug.cgi?id=103205
-# unset CFLAGS
-# unset CXXFLAGS
-
- #use the CFLAGS but remove the LibO overridden ones
- for i in $CFLAGS; do
- case "$i" in
- -O?|-pipe|-Wall|-g|-fexceptions) continue;;
- esac
- ARCH_FLAGS="$ARCH_FLAGS $i"
- done
-
- # python2 fix
- export PYTHON=python2
-
- # http://wiki.documentfoundation.org/Development/How_to_build/Configure_options
-
-# if [ "$CARCH" = "x86_64" ]; then
-# EXTRAOPTS="--without-stlport"
-# else
-# EXTRAOPTS="--with-stlport" # --without-system-boost"
-# # # avoid problems with ixion for now
-# sed -i '/fields-table-formula.diff/d' patches/dev300/apply || return 1
-# fi
-
-# autoconf -v -f
-
- # non-SMP test build
-# export MAKEFLAGS="-j1"
- ./configure --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \
- --with-unix-wrapper="libreoffice" \
- --with-max-jobs=${MAKEFLAGS/-j/} --with-num-cpus=${MAKEFLAGS/-j/} \
- --with-external-tar="${srcdir}/ext_sources" \
- --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
- --with-install-dirname="${pkgbase}" --libdir=/usr/lib --mandir=/usr/share/man \
- --with-lang="" \
- --disable-verbose \
- --enable-cairo\
- --enable-crashdump \
- --enable-dbus \
- --enable-evolution2\
- --disable-graphite\
- --enable-gio\
- --disable-gnome-vfs\
- --disable-kde\
- --enable-kde4\
- --enable-ldap \
- --enable-lockdown\
- --enable-opengl \
- --enable-odk\
- --enable-opengl\
- --enable-ext-barcode \
- --enable-ext-diagram \
- --enable-ext-google-docs \
- --enable-ext-hunart \
- --disable-ext-lightproof \
- --disable-ext-mysql-connector \
- --with-system-mysql \
- --enable-ext-nlpsolver \
- --enable-ext-ct2n \
- --enable-ext-numbertext \
- --enable-ext-oooblogger \
- --enable-ext-pdfimport \
- --enable-ext-presenter-console \
- --enable-ext-presenter-minimizer \
- --enable-ext-report-builder \
- --enable-ext-scripting-beanshell \
- --enable-ext-scripting-javascript \
- --enable-ext-scripting-python \
- --enable-ext-typo \
- --enable-ext-validator \
- --enable-ext-watch-window \
- --enable-ext-wiki-publisher \
- --without-fonts\
- --without-afms\
- --without-ppds\
- --without-system-libwps\
- --without-system-mdds\
- --without-myspell-dicts \
- --with-system-dicts \
- --with-external-dict-dir=/usr/share/hunspell \
- --with-external-hyph-dir=/usr/share/hyphen \
- --with-external-thes-dir=/usr/share/mythes \
- --with-system-cppunit\
- --with-system-libwpg \
- --with-system-libwps \
- --with-system-redland\
- --without-system-saxon\
- --with-system-libtextcat \
- --with-external-libtextcat-data \
- --with-openldap\
- --with-ant-home="/usr/share/java/apache-ant"\
- --without-system-boost\
- --with-system-cairo\
- --with-system-libs\
- --with-system-mozilla\
- --with-system-mythes\
- --with-system-xrender-headers\
- --with-system-headers\
- --with-alloc=system\
- --with-system-lucene\
- --with-lucene-core-jar=/usr/share/java/lucene-core.jar\
- --with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\
- $EXTRAOPTS || return 1
-
-#--with-system-graphite --enable-graohite ?
-#--with-servlet-api-jar=JARFILE
-# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136
-# --with-system-saxon\
-# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\
-
- touch src.downloaded
- #./download
- unset MAKEFLAGS
- ./bootstrap
- make
-}
-
-#check() {
-# cd ${srcdir}/build
-# make check
-#}
-
-package_libreoffice() {
-
- pkgdesc="a productivity suite that is compatible with other major office suites"
- install=${pkgbase}.install
- depends=("curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
- 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt'
- 'redland' 'libgraphite' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat'
- 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2') # keep gtk2 for install script
- #'java-runtime'
- #'saxon'
- optdepends=('java-runtime: adds java support'
- 'libcups: adds printing support'
- 'gconf: adds additional gnome support'
- 'nss: adds support for signed files/macros'
- 'pstoedit: translates PostScript and PDF graphics into other vector formats'
- 'poppler: for shipped pdfimport extension'
- 'kdelibs: for kde integration'
- 'libmythes: for use in thesaurus'
- 'hsqldb-java: default database format for OpenOffice.org'
- 'beanshell: interactive java -- good for prototyping /macros'
- 'vigra: C++ computer vision library, usable in Basebmp'
- 'libmspack: library for Microsoft compression formats for use in FontOOo'
- 'libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images'
- 'libldap: to get profiles via ldap'
- 'lucene: full-text search engine library for Java needed in the help section'
- 'sane: for scanner access'
- 'unixodbc: adds ODBC database support'
- 'mesa: for the OGLTrans extension'
- 'gstreamer0.10-base: + some gstr-plugins to support multimedia content, e.g. in impress')
- backup=(etc/libreoffice/sofficerc
- etc/libreoffice/bootstraprc
- etc/libreoffice/psprint.conf)
- provides=('go-openoffice')
- conflicts=('go-openoffice')
- replaces=('go-openoffice' 'openoffice-base' )
-
- cd ${srcdir}/build
- make DESTDIR=${pkgdir} install
-
- # fix missing desktop integration
- install -dm755 ${pkgdir}/usr/bin
- pushd ${pkgdir}/usr/bin
- ln -vs /usr/lib/libreoffice/program/soffice ./libreoffice
- ln -vs /usr/lib/libreoffice/program/soffice ./soffice
- ln -vs /usr/lib/libreoffice/program/sbase ./lobase
- ln -vs /usr/lib/libreoffice/program/scalc ./localc
- ln -vs /usr/lib/libreoffice/program/sdraw ./lodraw
- ln -vs /usr/lib/libreoffice/program/simpress ./loimpress
- ln -vs /usr/lib/libreoffice/program/smath ./lomath
- ln -vs /usr/lib/libreoffice/program/swriter ./lowriter
- ln -vs /usr/lib/libreoffice/program/unopkg ./unopkg
- popd
-
- # move sysui desktop files into place we want to use - javafilter and qstarter, but not unneeded printeradmin
- install -dm755 ${pkgdir}/usr/share/{applications,icons,mime/packages,pixmaps}
- rm ${pkgdir}/usr/lib/libreoffice/share/xdg/printeradmin.desktop
- for i in base calc draw impress javafilter math qstart startcenter writer; do
- cp ${pkgdir}/usr/lib/libreoffice/share/xdg/$i.desktop ${pkgdir}/usr/share/applications/libreoffice-$i.desktop
- done
- # remove version in menu entry and make it visible
- sed -i -e "s/3.4//g" ${pkgdir}/usr/share/applications/*.desktop
- sed -i -e "s/Icon=libreoffice34-/Icon=/g" ${pkgdir}/usr/share/applications/*.desktop
- sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
- echo "Icon=startcenter" >> ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
- # remove unneeded .desktop files
- rm -rf ${pkgdir}/usr/lib/libreoffice/share/xdg
-
- # add missing icon files
- cp -R ${srcdir}/build/sysui/desktop/icons/{hi,lo}color ${pkgdir}/usr/share/icons/
- pushd ${pkgdir}/usr/share/pixmaps
- for i in base calc draw impress main math printeradmin startcenter writer; do
- ln -vs /usr/share/icons/hicolor/48x48/apps/$i.png .
- done
- popd
- sed -i -e 's/Icon=libreoffice-/Icon=/' ${pkgdir}/usr/share/applications/*.desktop
-
- # add missing mimetype file
- install -m644 ${srcdir}/build/sysui/unxlng*/misc/libreoffice/openoffice.org.xml ${pkgdir}/usr/share/mime/packages/libreoffice.xml
-
- # put configuration files into place
- install -dm755 ${pkgdir}/etc/libreoffice
- install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} ${pkgdir}/etc/libreoffice/
- install -m644 ${pkgdir}/usr/lib/libreoffice/basis3.4/share/psprint/psprint.conf ${pkgdir}/etc/libreoffice/
- # install dummy links to make them found by LibO
- cd ${pkgdir}/usr/lib/libreoffice/program/
- ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} .
- cd ${pkgdir}/usr/lib/libreoffice/basis3.4/share/psprint/
- ln -vsf /etc/libreoffice/psprint.conf .
-
- #fix http://bugs.archlinux.org/task/17656
- find ${pkgdir} -perm 444 -exec ls -lh {} \;
- find ${pkgdir} -perm 444 -exec chmod 644 {} \;
- find ${pkgdir} -perm 555 -exec ls -lh {} \;
- find ${pkgdir} -perm 555 -exec chmod 755 {} \;
-
- # split out extensions
- mv ${pkgdir}/usr/lib/libreoffice/share/extensions ${srcdir}/extensions-install
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- install -m644 ${srcdir}/extensions-install/package.txt ${pkgdir}/usr/lib/libreoffice/share/extensions/
-
- # move SDK to separated package
- mkdir -p ${srcdir}/sdk-install/usr/lib/libreoffice/basis3.4/sdk
- mv ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk ${srcdir}/sdk-install/usr/lib/libreoffice/basis3.4/
-
- # cleanup gid_Module files
- mkdir ${srcdir}/splitlist
- mv -f ${pkgdir}/gid_Module* ${srcdir}/splitlist/
-}
-
-package_libreoffice-sdk() {
-
- pkgdesc="Software development kit for LibreOffice"
- depends=('libreoffice' 'gcc-libs' 'sh')
-
- cd ${srcdir}/sdk-install
- cp -r * ${pkgdir}
-
- cd ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk
- mv setsdkenv_unix setsdkenv_unix.sh && chmod 755 setsdkenv_unix.sh
- rm -f ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk/setsdkenv_unix.{csh,sh}.in
- #fix permissions
- find examples -type f -exec chmod -x {} \;
-}
-
-package_libreoffice-extension-barcode() {
-
- pkgdesc="This extension generates UPC-A, EAN-13, ISBN and JAN barcodes in Draw "
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
- chmod o-w -R ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
-}
-
-package_libreoffice-extension-diagram() {
-
- pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram
-}
-
-package_libreoffice-extension-google-docs() {
-
- pkgdesc="Google Documents extension for LibreOffice"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/google-docs
-}
-
-package_libreoffice-extension-hunart() {
-
- pkgdesc="Hungarian cross-reference toolbar extension"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart
-}
-
-#package_libreoffice-extension-lightproof() {
-
-# pkgdesc="Lightproof extension for LibreOffice"
- #arch=('any')
-# depends=('libreoffice')
-# groups=('libreoffice-extensions')
-
-# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
-# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Lightproof.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/lightproof
-#}
-
-#package_libreoffice-extension-mysql-connector() {
-
-# pkgdesc="MySQL Connector extension for LibreOffice"
- #arch=('any')
-# depends=('libreoffice')
-# groups=('libreoffice-extensions')
-
-# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
-# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Mysql-connector.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/mysql-connector
-#}
-
-package_libreoffice-extension-nlpsolver() {
-
- pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver
-}
-
-package_libreoffice-extension-ct2n() {
-
- pkgdesc="This extension enables you to convert text-cells in Calc with numbers and dates, to real numbers and dates."
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n
-}
-
-package_libreoffice-extension-numbertext() {
-
- pkgdesc="NUMBERTEXT/MONEYTEXT extensions"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext
-}
-
-package_libreoffice-extension-oooblogger() {
-
- pkgdesc="An extensions for blogging"
- #arch=('any')
- depends=('libreoffice' 'coreutils')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger
-}
-
-package_libreoffice-extension-pdfimport() {
-
- pkgdesc="This extension allows you to import and modify PDF documents"
- depends=('libreoffice' 'poppler')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/pdfimport/pdfimport.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/pdfimport
-}
-
-package_libreoffice-extension-presenter-screen() {
-
- pkgdesc="This extension provides more control over your slide show presentation, such as the ability to see the upcoming slide, the slide notes, and a presentation timer whereas the audience see only the current slide"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presenter-screen.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presenter-screen
-}
-
-package_libreoffice-extension-presentation-minimizer() {
-
- pkgdesc="This extension reduce the file size of the current presentation"
- depends=('libreoffice' 'gcc-libs')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presentation-minimizer
-}
-
-package_libreoffice-extension-report-builder() {
-
- pkgdesc="This extension creates smart-looking database reports"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder
-}
-
-package_libreoffice-extension-scripting-beanshell() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in BeanShell"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-beanshell.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-beanshell
-}
-
-package_libreoffice-extension-scripting-javascript() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in JavaScript"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-javascript.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-javascript
-}
-
-package_libreoffice-extension-scripting-python() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in Python"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python
-}
-
-package_libreoffice-extension-typo() {
-
- pkgdesc="Typography toolbar extension"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
- chmod o+r -R ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
-}
-
-package_libreoffice-extension-validator() {
-
- pkgdesc="Validator extension for LibreOffice"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/validator
-}
-
-package_libreoffice-extension-wiki-publisher() {
-
- pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher
-}
-
-package_libreoffice-extension-watch-window() {
-
- pkgdesc="A OOo Calc extension to add a Watch Window, which keeps the value of the monitored cell on the screen."
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window
-}
diff --git a/staging/libreoffice/buildfix_64bit_system_libjpeg.diff b/staging/libreoffice/buildfix_64bit_system_libjpeg.diff
deleted file mode 100644
index 1f4eb110f..000000000
--- a/staging/libreoffice/buildfix_64bit_system_libjpeg.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- solenv/inc/libs.mk 2009-07-02 09:44:33.084467312 +0000
-+++ solenv/inc/libs.mk.new 2009-07-02 10:44:03.420819776 +0000
-@@ -211,7 +211,7 @@
- .IF "$(OS)" == "FREEBSD"
- JPEG3RDLIB=/usr/local/lib/libjpeg.so
- .ELIF "$(CPUNAME)" == "X86_64" || "$(CPUNAME)" == "S390X" || "$(CPUNAME)" == "POWERPC64"
--JPEG3RDLIB=/usr/lib64/libjpeg.so
-+JPEG3RDLIB=/usr/lib/libjpeg.so
- .ELSE
- JPEG3RDLIB=/usr/lib/libjpeg.so
- .ENDIF
diff --git a/staging/libreoffice/buildfix_bison25.diff b/staging/libreoffice/buildfix_bison25.diff
deleted file mode 100644
index 869b6c81e..000000000
--- a/staging/libreoffice/buildfix_bison25.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- connectivity/source/parse/sqlbison.y 2011-05-20 13:21:02.000000000 -0600
-+++ connectivity/source/parse/sqlbison.y 2011-05-20 13:22:11.000000000 -0600
-@@ -4338,7 +4338,7 @@
- }
-
- // -------------------------------------------------------------------------
--void OSQLParser::error(sal_Char *fmt)
-+void OSQLParser::error(const sal_Char *fmt)
- {
- if(!m_sErrorMessage.getLength())
- {
---- connectivity/inc/connectivity/sqlparse.hxx 2011-05-20 13:23:58.000000000 -0600
-+++ connectivity/inc/connectivity/sqlparse.hxx 2011-05-20 13:23:46.000000000 -0600
-@@ -233,7 +233,7 @@
- // returns the type for a parameter in a given function name
- static sal_Int32 getFunctionParameterType(sal_uInt32 _nTokenId,sal_uInt32 _nPos);
-
-- void error(sal_Char *fmt);
-+ void error(const sal_Char *fmt);
- int SQLlex();
- #ifdef YYBISON
- void setParseTree(OSQLParseNode * pNewParseTree);
-
diff --git a/staging/libreoffice/buildfix_boost.diff b/staging/libreoffice/buildfix_boost.diff
deleted file mode 100644
index d8608d0d4..000000000
--- a/staging/libreoffice/buildfix_boost.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-From bae4fdbd105142cd3f317445eddc826da529a732 Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Tue, 05 Apr 2011 14:07:02 +0000
-Subject: silence some more of that annoying gcc#47679
-
----
-diff --git a/boost/boost.gcc47679.patch b/boost/boost.gcc47679.patch
-index 1c804aa..9b33a5f 100644
---- a/boost/boost.gcc47679.patch
-+++ b/boost/boost.gcc47679.patch
-@@ -36,3 +36,26 @@
- template <int MaxDigits>
- inline bool allow_more_digits(std::size_t i)
- {
-+--- misc/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
-++++ misc/build/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
-+@@ -31,6 +31,8 @@
-+
-+ #include "boost/optional/optional_fwd.hpp"
-+
-++#include <string.h>
-++
-+ #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
-+ // VC6.0 has the following bug:
-+ // When a templated assignment operator exist, an implicit conversion
-+@@ -114,6 +116,11 @@
-+
-+ public:
-+
-++ aligned_storage()
-++ {
-++ memset(&dummy_, 0, sizeof(dummy_));
-++ }
-++
-+ void const* address() const { return &dummy_.data[0]; }
-+ void * address() { return &dummy_.data[0]; }
-+ } ;
---
-cgit v0.8.3-6-g21f6
-
diff --git a/staging/libreoffice/buildfix_ct2n.diff b/staging/libreoffice/buildfix_ct2n.diff
deleted file mode 100644
index 979587f79..000000000
--- a/staging/libreoffice/buildfix_ct2n.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-From 90de903b28cb1884042be0eae3f8a55458c5bc29 Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Tue, 12 Apr 2011 19:35:51 +0000
-Subject: duplicate NULLs
-
----
-diff --git a/ct2n/prj/build.lst b/ct2n/prj/build.lst
-index 91f44b7..714d926 100644
---- a/ct2n/prj/build.lst
-+++ b/ct2n/prj/build.lst
-@@ -1,3 +1,3 @@
--ct2n ct2n : solenv NULL NULL
-+ct2n ct2n : solenv NULL
- ct2n ct2n usr1 - all ct2n_mkout NULL
- ct2n ct2n nmake - all ct2n_ct2n NULL
---
-cgit v0.8.3-6-g21f6
diff --git a/staging/libreoffice/buildfix_i116795.diff b/staging/libreoffice/buildfix_i116795.diff
deleted file mode 100644
index 8601bc164..000000000
--- a/staging/libreoffice/buildfix_i116795.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -r 4ab9e11cb892 connectivity/qa/makefile.mk
---- a/connectivity/qa/makefile.mk Thu Mar 03 15:22:23 2011 +0100
-+++ b/connectivity/qa/makefile.mk Fri Mar 04 09:51:48 2011 +0100
-@@ -35,9 +35,16 @@
-
- #----- compile .java files -----------------------------------------
-
--JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar hsqldb.jar
- JAVAFILES := $(shell @$(FIND) complex -name "*.java")
-
-+JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-+
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+EXTRAJARFILES = $(HSQLDB_JAR)
-+.ELSE
-+JARFILES += hsqldb.jar
-+.ENDIF
-+
- #----- make a jar from compiled files ------------------------------
-
- JARCLASSDIRS = $(PACKAGE)
-
diff --git a/staging/libreoffice/libreoffice.install b/staging/libreoffice/libreoffice.install
deleted file mode 100644
index 27f3173ae..000000000
--- a/staging/libreoffice/libreoffice.install
+++ /dev/null
@@ -1,25 +0,0 @@
-post_install() {
-
-gtk-update-icon-cache -f -q /usr/share/icons/hicolor
-update-desktop-database -q
-update-mime-database usr/share/mime > /dev/null 2>&1
-
-echo " * see http://wiki.archlinux.org/index.php/Openoffice"
-echo " * you may want to pacman -Ss libreoffice-extensions"
-echo " to see what extensions are prepared to install"
-echo " * it's recommended to install {hunspell,mythes,hyphen}-xx pkg for spell checking"
-echo " * make sure you have installed some ttf font (ttf-dejavu recommended)"
-}
-
-post_upgrade() {
-# post_install $1
-gtk-update-icon-cache -f -q /usr/share/icons/hicolor
-update-desktop-database -q
-update-mime-database usr/share/mime > /dev/null 2>&1
-}
-
-post_remove() {
-update-desktop-database -q
-gtk-update-icon-cache -f -q /usr/share/icons/hicolor
-update-mime-database usr/share/mime > /dev/null 2>&1
-}
diff --git a/staging/libreoffice/vbahelper.visibility.patch b/staging/libreoffice/vbahelper.visibility.patch
deleted file mode 100644
index 5739100d0..000000000
--- a/staging/libreoffice/vbahelper.visibility.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:27:51.507604173 +0000
-+++ vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:28:26.230045727 +0000
-@@ -238,7 +238,7 @@
-
- // including a HelperInterface implementation
- template< typename Ifc1 >
--class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
-+class VBAHELPER_DLLPUBLIC ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
- {
- typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase;
- protected:
---- sc/Library_vbaobj.mk
-+++ sc/Library_vbaobj.mk
-@@ -118,7 +118,6 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
- sc/source/ui/vba/vbaquerytable \
- sc/source/ui/vba/vbarange \
- sc/source/ui/vba/vbasheetobject \
-- sc/source/ui/vba/vbasheetobjects \
- sc/source/ui/vba/vbastyle \
- sc/source/ui/vba/vbastyles \
- sc/source/ui/vba/vbatextboxshape \
-@@ -133,6 +132,11 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
- sc/source/ui/vba/vbawsfunction \
- ))
-
-+$(eval $(call gb_Library_add_cxxobjects,vbaobj,\
-+ sc/source/ui/vba/vbasheetobjects \
-+ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-+))
-+
- ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS)))
- $(eval $(call gb_Library_set_ldflags,vbaobj,\
- $$(LDFLAGS) \
diff --git a/staging/libwebkit/PKGBUILD b/staging/libwebkit/PKGBUILD
deleted file mode 100644
index 032056ae3..000000000
--- a/staging/libwebkit/PKGBUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# $Id: PKGBUILD 126165 2011-06-01 22:31:25Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgbase=libwebkit
-pkgname=(libwebkit libwebkit3)
-pkgver=1.4.0
-pkgrel=2
-pkgdesc="An opensource web content engine"
-arch=('i686' 'x86_64')
-url="http://webkitgtk.org/"
-license=('custom')
-depends=('libxt' 'libxslt' 'sqlite3' 'icu' 'gstreamer0.10-base' 'libsoup' 'enchant')
-makedepends=('gperf' 'gtk-doc' 'gobject-introspection' 'python2' 'gtk2' 'gtk3')
-options=('!libtool')
-install=libwebkit.install
-source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz
- gcc46.patch
- replace-switch-with-given-when.patch)
-md5sums=('10c969db3b5484c71df1aa9a338377ff'
- '970a2fa91b9827dff8e9b9edb4867701'
- '3ba708a26b7af0e1e853867966fe14f7')
-
-build() {
- cd "${srcdir}/webkit-${pkgver}"
- patch -Np1 -i "${srcdir}/gcc46.patch"
- patch -Np1 -i "${srcdir}/replace-switch-with-given-when.patch"
- mkdir build-gtk{2,3}
-
- ( cd build-gtk2 && _build --with-gtk=2.0 )
- ( cd build-gtk3 && _build --with-gtk=3.0 )
-}
-
-_build() {
- PYTHON=/usr/bin/python2 ../configure --prefix=/usr \
- --enable-introspection \
- --with-font-backend=freetype --enable-gtk-doc \
- --with-unicode-backend=icu \
- --enable-spellcheck "$@"
- make all stamp-po
-}
-
-package_libwebkit() {
- pkgdesc+=" (for GTK2)"
- depends+=(gtk2)
- provides=('webkitgtk-svn')
- conflicts=('webkitgtk-svn')
- replaces=('webkitgtk-svn')
-
- cd "$srcdir/webkit-$pkgver/build-gtk2"
- make DESTDIR="${pkgdir}" install
- install -Dm644 ../Source/WebKit/LICENSE "${pkgdir}/usr/share/licenses/libwebkit/LICENSE"
-}
-
-package_libwebkit3() {
- pkgdesc+=" (for GTK3)"
- depends+=(gtk3)
-
- cd "${srcdir}/webkit-${pkgver}/build-gtk3"
- make DESTDIR="${pkgdir}" install
- install -Dm644 ../Source/WebKit/LICENSE "${pkgdir}/usr/share/licenses/libwebkit3/LICENSE"
-}
diff --git a/staging/libwebkit/gcc46.patch b/staging/libwebkit/gcc46.patch
deleted file mode 100644
index befd892d4..000000000
--- a/staging/libwebkit/gcc46.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Index: trunk/Source/WebCore/dom/make_names.pl
-===================================================================
---- trunk/Source/WebCore/dom/make_names.pl (revision 73989)
-+++ trunk/Source/WebCore/dom/make_names.pl (revision 84123)
-@@ -66,5 +66,5 @@
- $gccLocation = "/usr/bin/gcc";
- }
--my $preprocessor = $gccLocation . " -E -P -x c++";
-+my $preprocessor = $gccLocation . " -E -x c++";
-
- GetOptions(
diff --git a/staging/libwebkit/libwebkit.install b/staging/libwebkit/libwebkit.install
deleted file mode 100644
index 24072f316..000000000
--- a/staging/libwebkit/libwebkit.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
diff --git a/staging/php/PKGBUILD b/staging/php/PKGBUILD
deleted file mode 100644
index ccbaae0cd..000000000
--- a/staging/php/PKGBUILD
+++ /dev/null
@@ -1,379 +0,0 @@
-# $Id: PKGBUILD 126095 2011-06-01 12:12:00Z pierre $
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
-
-pkgbase=php
-pkgname=('php'
- 'php-cgi'
- 'php-apache'
- 'php-fpm'
- 'php-embed'
- 'php-pear'
- 'php-curl'
- 'php-enchant'
- 'php-gd'
- 'php-gmp'
- 'php-intl'
- 'php-ldap'
- 'php-mcrypt'
- 'php-mssql'
- 'php-odbc'
- 'php-pgsql'
- 'php-pspell'
- 'php-snmp'
- 'php-sqlite'
- 'php-tidy'
- 'php-xsl')
-pkgver=5.3.6
-pkgrel=4
-_suhosinver=${pkgver}-0.9.10
-arch=('i686' 'x86_64')
-license=('PHP')
-url='http://www.php.net'
-makedepends=('apache' 'imap' 'postgresql-libs' 'mysql' 'libldap' 'postfix'
- 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds'
- 'libmcrypt' 'tidyhtml' 'aspell' 'libtool' 'libpng' 'libjpeg' 'icu'
- 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2')
-source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2"
- "suhosin-patch-${_suhosinver}.patch.gz"
- 'php.ini.patch' 'apache.conf' 'rc.d.php-fpm' 'php-fpm.conf.in.patch'
- 'logrotate.d.php-fpm')
-md5sums=('2286f5a82a6e8397955a0025c1c2ad98'
- 'fff1a38877142f3ae6036dbe5a85d0a6'
- '39eaa70d276fc3d45d6bcf6cd5ae1106'
- 'dec2cbaad64e3abf4f0ec70e1de4e8e9'
- 'b01be5f816988fcee7e78225836e5e27'
- 'd50ff349da08110a7cc8c691ce2d0423'
- '07c4e412909ac65a44ec90e7a2c4bade')
-
-build() {
- # ldap-sasl does not compile with --as-needed
- export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
- export LDFLAGS="${LDFLAGS//,--as-needed}"
-
- phpconfig="--srcdir=../${pkgbase}-${pkgver} \
- --prefix=/usr \
- --sysconfdir=/etc/php \
- --localstatedir=/var \
- --with-layout=GNU \
- --with-config-file-path=/etc/php \
- --with-config-file-scan-dir=/etc/php/conf.d \
- --enable-inline-optimization \
- --disable-debug \
- --disable-rpath \
- --disable-static \
- --enable-shared \
- --mandir=/usr/share/man \
- --without-pear \
- "
-
- phpextensions="--enable-bcmath=shared \
- --enable-calendar=shared \
- --enable-dba=shared \
- --enable-exif=shared \
- --enable-ftp=shared \
- --enable-gd-native-ttf \
- --enable-intl=shared \
- --enable-json=shared \
- --enable-mbregex \
- --enable-mbstring \
- --enable-pdo \
- --enable-phar=shared \
- --enable-posix=shared \
- --enable-session \
- --enable-shmop=shared \
- --enable-soap=shared \
- --enable-sockets=shared \
- --enable-sqlite-utf8 \
- --enable-sysvmsg=shared \
- --enable-sysvsem=shared \
- --enable-sysvshm=shared \
- --enable-xml \
- --enable-zip=shared \
- --with-bz2=shared \
- --with-curl=shared \
- --with-db4=/usr \
- --with-enchant=shared,/usr \
- --with-freetype-dir=shared,/usr \
- --with-gd=shared \
- --with-gdbm=shared \
- --with-gettext=shared \
- --with-gmp=shared \
- --with-iconv=shared \
- --with-icu-dir=/usr \
- --with-imap-ssl=shared \
- --with-imap=shared \
- --with-jpeg-dir=shared,/usr \
- --with-ldap=shared \
- --with-ldap-sasl \
- --with-mcrypt=shared \
- --with-mhash \
- --with-mssql=shared \
- --with-mysql-sock=/var/run/mysqld/mysqld.sock \
- --with-mysql=shared,mysqlnd \
- --with-mysqli=shared,mysqlnd \
- --with-openssl=shared \
- --with-pcre-regex=/usr \
- --with-pdo-mysql=shared,mysqlnd \
- --with-pdo-odbc=shared,unixODBC,/usr \
- --with-pdo-pgsql=shared \
- --with-pdo-sqlite=shared,/usr \
- --with-pgsql=shared \
- --with-png-dir=shared,/usr \
- --with-pspell=shared \
- --with-regex=php \
- --with-snmp=shared \
- --with-sqlite3=shared,/usr \
- --with-sqlite=shared \
- --with-tidy=shared \
- --with-unixODBC=shared,/usr \
- --with-xmlrpc=shared \
- --with-xsl=shared \
- --with-zlib \
- --without-db2 \
- --without-db3 \
- "
-
- EXTENSION_DIR=/usr/lib/php/modules
- export EXTENSION_DIR
- PEAR_INSTALLDIR=/usr/share/pear
- export PEAR_INSTALLDIR
-
- cd ${srcdir}/${pkgbase}-${pkgver}
-
- # apply suhosin patch
- patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch
-
- # adjust paths
- patch -p0 -i ${srcdir}/php.ini.patch
- patch -p0 -i ${srcdir}/php-fpm.conf.in.patch
-
- # php
- mkdir ${srcdir}/build-php
- cd ${srcdir}/build-php
- ln -s ../${pkgbase}-${pkgver}/configure
- ./configure ${phpconfig} \
- --disable-cgi \
- --with-readline \
- --enable-pcntl \
- ${phpextensions}
- make
-
- # cgi and fcgi
- # reuse the previous run; this will save us a lot of time
- cp -a ${srcdir}/build-php ${srcdir}/build-cgi
- cd ${srcdir}/build-cgi
- ./configure ${phpconfig} \
- --disable-cli \
- --enable-cgi \
- ${phpextensions}
- make
-
- # apache
- cp -a ${srcdir}/build-php ${srcdir}/build-apache
- cd ${srcdir}/build-apache
- ./configure ${phpconfig} \
- --disable-cli \
- --with-apxs2 \
- ${phpextensions}
- make
-
- # fpm
- cp -a ${srcdir}/build-php ${srcdir}/build-fpm
- cd ${srcdir}/build-fpm
- ./configure ${phpconfig} \
- --disable-cli \
- --enable-fpm \
- --with-fpm-user=http \
- --with-fpm-group=http \
- ${phpextensions}
- make
-
- # embed
- cp -a ${srcdir}/build-php ${srcdir}/build-embed
- cd ${srcdir}/build-embed
- ./configure ${phpconfig} \
- --disable-cli \
- --enable-embed=shared \
- ${phpextensions}
- make
-
- # pear
- cp -a ${srcdir}/build-php ${srcdir}/build-pear
- cd ${srcdir}/build-pear
- ./configure ${phpconfig} \
- --disable-cgi \
- --with-readline \
- --enable-pcntl \
- --with-pear \
- ${phpextensions}
- make
-}
-
-# check() {
-# cd ${srcdir}/build-php
-# make test
-# }
-
-package_php() {
- pkgdesc='An HTML-embedded scripting language'
- depends=('pcre' 'libxml2' 'bzip2' 'openssl')
- replaces=('php-fileinfo')
- provides=('php-fileinfo')
- conflicts=('php-fileinfo')
- backup=('etc/php/php.ini')
-
- cd ${srcdir}/build-php
- make -j1 INSTALL_ROOT=${pkgdir} install
- install -d -m755 ${pkgdir}/usr/share/pear
- # install php.ini
- install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini
- install -d -m755 ${pkgdir}/etc/php/conf.d/
-
- # remove static modules
- rm -f ${pkgdir}/usr/lib/php/modules/*.a
- # remove modules provided by sub packages
- rm -f ${pkgdir}/usr/lib/php/modules/{curl,enchant,gd,gmp,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so
-}
-
-package_php-cgi() {
- pkgdesc='CGI and FCGI SAPI for PHP'
- depends=('php' 'pcre' 'libxml2')
-
- install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi
-}
-
-package_php-apache() {
- pkgdesc='Apache SAPI for PHP'
- depends=('php' 'apache' 'pcre' 'libxml2')
- backup=('etc/httpd/conf/extra/php5_module.conf')
-
- install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so
- install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf
-}
-
-package_php-fpm() {
- pkgdesc='FastCGI Process Manager for PHP'
- depends=('php')
- backup=('etc/php/php-fpm.conf')
-
- install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/sbin/php-fpm
- install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/php-fpm.8
- install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/php/php-fpm.conf
- install -D -m755 ${srcdir}/rc.d.php-fpm ${pkgdir}/etc/rc.d/php-fpm
- install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/php-fpm
- install -d -m755 ${pkgdir}/etc/php/fpm.d
-}
-
-package_php-embed() {
- pkgdesc='Embed SAPI for PHP'
- depends=('php' 'pcre' 'libxml2')
-
- install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp5.so
- install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/php/sapi/embed/php_embed.h
-}
-
-package_php-pear() {
- pkgdesc='PHP Extension and Application Repository'
- depends=('php' 'bash')
- backup=('etc/php/pear.conf')
-
- cd ${srcdir}/build-pear
- make -j1 install-pear INSTALL_ROOT=${pkgdir}
- local i
- while read i; do
- [ ! -e "$i" ] || rm -rf "$i"
- done < <(find ${pkgdir} -name '.*')
-}
-
-package_php-curl() {
- depends=('php' 'curl')
- pkgdesc='curl module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/curl.so ${pkgdir}/usr/lib/php/modules/curl.so
-}
-
-package_php-enchant() {
- depends=('php' 'enchant')
- pkgdesc='enchant module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so
-}
-
-package_php-gd() {
- depends=('php' 'libpng' 'libjpeg' 'freetype2')
- pkgdesc='gd module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so
-}
-
-package_php-gmp() {
- depends=('php' 'gmp')
- pkgdesc='gmp module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/gmp.so ${pkgdir}/usr/lib/php/modules/gmp.so
-}
-
-package_php-intl() {
- depends=('php' 'icu')
- pkgdesc='intl module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so
-}
-
-package_php-ldap() {
- depends=('php' 'libldap')
- pkgdesc='ldap module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so
-}
-
-package_php-mcrypt() {
- depends=('php' 'libmcrypt' 'libtool')
- pkgdesc='mcrypt module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so
-}
-
-package_php-mssql() {
- depends=('php' 'freetds')
- pkgdesc='mssql module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/php/modules/mssql.so
-}
-
-package_php-odbc() {
- depends=('php' 'unixodbc')
- pkgdesc='ODBC modules for PHP'
- install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so
- install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so
-}
-
-package_php-pgsql() {
- depends=('php' 'postgresql-libs')
- pkgdesc='PostgreSQL modules for PHP'
- install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so
- install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so
-}
-
-package_php-pspell() {
- depends=('php' 'aspell')
- pkgdesc='pspell module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so
-}
-
-package_php-snmp() {
- depends=('php' 'net-snmp')
- pkgdesc='snmp module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so
-}
-
-package_php-sqlite() {
- depends=('php' 'sqlite3')
- pkgdesc='sqlite3 module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so
- install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so
-}
-
-package_php-tidy() {
- depends=('php' 'tidyhtml')
- pkgdesc='tidy module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so
-}
-
-package_php-xsl() {
- depends=('php' 'libxslt')
- pkgdesc='xsl module for PHP'
- install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so
-}
diff --git a/staging/php/apache.conf b/staging/php/apache.conf
deleted file mode 100644
index c3ca0aad5..000000000
--- a/staging/php/apache.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-# Required modules: dir_module, php5_module
-
-<IfModule dir_module>
- <IfModule php5_module>
- DirectoryIndex index.php index.html
- <FilesMatch "\.php$">
- SetHandler application/x-httpd-php
- </FilesMatch>
- <FilesMatch "\.phps$">
- SetHandler application/x-httpd-php-source
- </FilesMatch>
- </IfModule>
-</IfModule>
diff --git a/staging/php/logrotate.d.php-fpm b/staging/php/logrotate.d.php-fpm
deleted file mode 100644
index 7a1ba2597..000000000
--- a/staging/php/logrotate.d.php-fpm
+++ /dev/null
@@ -1,6 +0,0 @@
-/var/log/php-fpm.log {
- missingok
- postrotate
- /etc/rc.d/php-fpm logrotate >/dev/null || true
- endscript
-}
diff --git a/staging/php/php-fpm.conf.in.patch b/staging/php/php-fpm.conf.in.patch
deleted file mode 100644
index 93c62430a..000000000
--- a/staging/php/php-fpm.conf.in.patch
+++ /dev/null
@@ -1,80 +0,0 @@
---- sapi/fpm/php-fpm.conf.in 2010-12-11 08:31:47.695294987 +0100
-+++ sapi/fpm/php-fpm.conf.in 2010-12-11 08:31:55.907812237 +0100
-@@ -12,7 +12,7 @@
- ; Relative path can also be used. They will be prefixed by:
- ; - the global prefix if it's been set (-p arguement)
- ; - @prefix@ otherwise
--;include=etc/fpm.d/*.conf
-+;include=/etc/php/fpm.d/*.conf
-
- ;;;;;;;;;;;;;;;;;;
- ; Global Options ;
-@@ -22,7 +22,7 @@
- ; Pid file
- ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
- ; Default Value: none
--;pid = run/php-fpm.pid
-+pid = run/php-fpm/php-fpm.pid
-
- ; Error log file
- ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
-@@ -93,7 +93,8 @@
- ; specific port;
- ; '/path/to/unix/socket' - to listen on a unix socket.
- ; Note: This value is mandatory.
--listen = 127.0.0.1:9000
-+;listen = 127.0.0.1:9000
-+listen = /var/run/php-fpm/php-fpm.sock
-
- ; Set listen(2) backlog. A value of '-1' means unlimited.
- ; Default Value: 128 (-1 on FreeBSD and OpenBSD)
-@@ -112,9 +113,9 @@
- ; BSD-derived systems allow connections regardless of permissions.
- ; Default Values: user and group are set as the running user
- ; mode is set to 0666
--;listen.owner = @php_fpm_user@
--;listen.group = @php_fpm_group@
--;listen.mode = 0666
-+listen.owner = @php_fpm_user@
-+listen.group = @php_fpm_group@
-+listen.mode = 0660
-
- ; Unix user/group of processes
- ; Note: The user is mandatory. If the group is not set, the default user's group
-@@ -154,23 +155,23 @@
- ; The number of child processes created on startup.
- ; Note: Used only when pm is set to 'dynamic'
- ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
--;pm.start_servers = 20
-+pm.start_servers = 20
-
- ; The desired minimum number of idle server processes.
- ; Note: Used only when pm is set to 'dynamic'
- ; Note: Mandatory when pm is set to 'dynamic'
--;pm.min_spare_servers = 5
-+pm.min_spare_servers = 5
-
- ; The desired maximum number of idle server processes.
- ; Note: Used only when pm is set to 'dynamic'
- ; Note: Mandatory when pm is set to 'dynamic'
--;pm.max_spare_servers = 35
-+pm.max_spare_servers = 35
-
- ; The number of requests each child process should execute before respawning.
- ; This can be useful to work around memory leaks in 3rd party libraries. For
- ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
- ; Default Value: 0
--;pm.max_requests = 500
-+pm.max_requests = 500
-
- ; The URI to view the FPM status page. If this value is not set, no URI will be
- ; recognized as a status page. By default, the status page shows the following
-@@ -264,7 +265,7 @@
- ; Chdir to this directory at the start.
- ; Note: relative path can be used.
- ; Default Value: current directory or / when chroot
--;chdir = /var/www
-+;chdir = /srv/http
-
- ; Redirect worker stdout and stderr into main error log. If not set, stdout and
- ; stderr will be redirected to /dev/null according to FastCGI specs.
diff --git a/staging/php/php.ini.patch b/staging/php/php.ini.patch
deleted file mode 100644
index 356e190b4..000000000
--- a/staging/php/php.ini.patch
+++ /dev/null
@@ -1,126 +0,0 @@
---- php.ini-production 2011-02-09 01:25:44.000000000 +0100
-+++ php.ini-production 2011-03-19 11:11:44.496987763 +0100
-@@ -376,7 +376,7 @@
- ; or per-virtualhost web server configuration file. This directive is
- ; *NOT* affected by whether Safe Mode is turned On or Off.
- ; http://php.net/open-basedir
--;open_basedir =
-+open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/
-
- ; This directive allows you to disable certain functions for security reasons.
- ; It receives a comma-delimited list of function names. This directive is
-@@ -781,7 +781,7 @@
- ;;;;;;;;;;;;;;;;;;;;;;;;;
-
- ; UNIX: "/path1:/path2"
--;include_path = ".:/php/includes"
-+include_path = ".:/usr/share/pear"
- ;
- ; Windows: "\path1;\path2"
- ;include_path = ".;c:\php\includes"
-@@ -804,7 +804,7 @@
-
- ; Directory in which the loadable extensions (modules) reside.
- ; http://php.net/extension-dir
--; extension_dir = "./"
-+extension_dir = "/usr/lib/php/modules/"
- ; On windows:
- ; extension_dir = "ext"
-
-@@ -938,53 +938,49 @@
- ; If you only provide the name of the extension, PHP will look for it in its
- ; default extension directory.
- ;
--; Windows Extensions
--; Note that ODBC support is built in, so no dll is needed for it.
--; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
--; extension folders as well as the separate PECL DLL download (PHP 5).
--; Be sure to appropriately set the extension_dir directive.
--;
--;extension=php_bz2.dll
--;extension=php_curl.dll
--;extension=php_fileinfo.dll
--;extension=php_gd2.dll
--;extension=php_gettext.dll
--;extension=php_gmp.dll
--;extension=php_intl.dll
--;extension=php_imap.dll
--;extension=php_interbase.dll
--;extension=php_ldap.dll
--;extension=php_mbstring.dll
--;extension=php_exif.dll ; Must be after mbstring as it depends on it
--;extension=php_mysql.dll
--;extension=php_mysqli.dll
--;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
--;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
--;extension=php_openssl.dll
--;extension=php_pdo_firebird.dll
--;extension=php_pdo_mssql.dll
--;extension=php_pdo_mysql.dll
--;extension=php_pdo_oci.dll
--;extension=php_pdo_odbc.dll
--;extension=php_pdo_pgsql.dll
--;extension=php_pdo_sqlite.dll
--;extension=php_pgsql.dll
--;extension=php_pspell.dll
--;extension=php_shmop.dll
--
--; The MIBS data available in the PHP distribution must be installed.
--; See http://www.php.net/manual/en/snmp.installation.php
--;extension=php_snmp.dll
--
--;extension=php_soap.dll
--;extension=php_sockets.dll
--;extension=php_sqlite.dll
--;extension=php_sqlite3.dll
--;extension=php_sybase_ct.dll
--;extension=php_tidy.dll
--;extension=php_xmlrpc.dll
--;extension=php_xsl.dll
--;extension=php_zip.dll
-+;extension=bcmath.so
-+;extension=bz2.so
-+;extension=calendar.so
-+;extension=curl.so
-+;extension=dba.so
-+;extension=enchant.so
-+;extension=exif.so
-+;extension=ftp.so
-+;extension=gd.so
-+extension=gettext.so
-+;extension=gmp.so
-+;extension=iconv.so
-+;extension=imap.so
-+;extension=intl.so
-+;extension=json.so
-+;extension=ldap.so
-+;extension=mcrypt.so
-+;extension=mssql.so
-+;extension=mysqli.so
-+;extension=mysql.so
-+;extension=odbc.so
-+;extension=openssl.so
-+;extension=pdo_mysql.so
-+;extension=pdo_odbc.so
-+;extension=pdo_pgsql.so
-+;extension=pdo_sqlite.so
-+;extension=pgsql.so
-+;extension=phar.so
-+;extension=posix.so
-+;extension=pspell.so
-+;extension=shmop.so
-+;extension=snmp.so
-+;extension=soap.so
-+;extension=sockets.so
-+;extension=sqlite3.so
-+;extension=sqlite.so
-+;extension=sysvmsg.so
-+;extension=sysvsem.so
-+;extension=sysvshm.so
-+;extension=tidy.so
-+;extension=xmlrpc.so
-+;extension=xsl.so
-+;extension=zip.so
-
- ;;;;;;;;;;;;;;;;;;;
- ; Module Settings ;
diff --git a/staging/php/rc.d.php-fpm b/staging/php/rc.d.php-fpm
deleted file mode 100644
index 54bcf4d5b..000000000
--- a/staging/php/rc.d.php-fpm
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-
-wait_for_pid () {
- try=0
- while test $try -lt 35 ; do
- case "$1" in
- 'created')
- if [ -f "$2" ] ; then
- try=''
- break
- fi
- ;;
- 'removed')
- if [ ! -f "$2" ] ; then
- try=''
- break
- fi
- ;;
- esac
-
- stat_append '.'
- try=`expr $try + 1`
- sleep 1
- done
-}
-
-test_config() {
- stat_busy 'Checking configuration'
- if [ $(id -u) -ne 0 ]; then
- stat_append '(This script must be run as root)'
- stat_die
- fi
-
- if [ ! -r /etc/php/php-fpm.conf ]; then
- stat_append '(/etc/php/php-fpm.conf not found)'
- stat_die
- fi
-
- local test=$(/usr/sbin/php-fpm -t 2>&1)
- if [ $? -gt 0 ]; then
- stat_append '(error in /etc/php/php-fpm.conf)'
- stat_die
- elif echo $test | grep -qi 'error'; then
- stat_append '(error in /etc/php/php.ini)'
- stat_die
- fi
-
- [ -d /var/run/php-fpm ] || install -d -m755 /var/run/php-fpm
-
- stat_done
-}
-
-case "$1" in
- start)
- test_config
- stat_busy 'Starting php-fpm'
-
- /usr/sbin/php-fpm
-
- if [ "$?" != 0 ] ; then
- stat_fail
- exit 1
- fi
-
- wait_for_pid created /var/run/php-fpm/php-fpm.pid
-
- if [ -n "$try" ] ; then
- stat_fail
- exit 1
- else
- add_daemon php-fpm
- stat_done
- fi
- ;;
-
- stop)
- test_config
- stat_busy 'Gracefully shutting down php-fpm'
-
- if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
- stat_fail
- exit 1
- fi
-
- kill -QUIT `cat /var/run/php-fpm/php-fpm.pid`
-
- wait_for_pid removed /var/run/php-fpm.pid
-
- if [ -n "$try" ] ; then
- stat_fail
- exit 1
- else
- rm_daemon php-fpm
- stat_done
- fi
- ;;
-
- force-quit)
- stat_busy 'Terminating php-fpm'
-
- if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
- stat_fail
- exit 1
- fi
-
- kill -TERM `cat /var/run/php-fpm/php-fpm.pid`
-
- wait_for_pid removed /var/run/php-fpm/php-fpm.pid
-
- if [ -n "$try" ] ; then
- stat_fail
- exit 1
- else
- rm_daemon php-fpm
- stat_done
- fi
- ;;
-
- restart)
- $0 stop
- $0 start
- ;;
-
- reload)
- test_config
- stat_busy 'Reload service php-fpm'
-
- if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
- stat_fail
- exit 1
- fi
-
- kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`
- stat_done
- ;;
-
- logrotate)
- stat_busy 'Reopen php-fpm log'
-
- if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
- stat_fail
- exit 1
- fi
-
- kill -USR1 `cat /var/run/php-fpm/php-fpm.pid`
- stat_done
- ;;
-
- *)
- echo "usage: $0 {start|stop|force-quit|restart|reload|logrotate}"
- exit 1
- ;;
-
-esac
diff --git a/staging/php/suhosin-patch-5.3.6-0.9.10.patch.gz b/staging/php/suhosin-patch-5.3.6-0.9.10.patch.gz
deleted file mode 100644
index 7167ce2d0..000000000
--- a/staging/php/suhosin-patch-5.3.6-0.9.10.patch.gz
+++ /dev/null
Binary files differ
diff --git a/staging/xulrunner/PKGBUILD b/staging/xulrunner/PKGBUILD
deleted file mode 100644
index d9ad07e87..000000000
--- a/staging/xulrunner/PKGBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# $Id: PKGBUILD 126161 2011-06-01 20:45:14Z ibiru $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: Alexander Baldeck <alexander@archlinux.org>
-pkgname=xulrunner
-pkgver=2.0.1
-_ffoxver=4.0.1
-pkgrel=2
-pkgdesc="Mozilla Runtime Environment"
-arch=('i686' 'x86_64')
-license=('MPL' 'GPL' 'LGPL')
-depends=('gtk2' 'gcc-libs' 'libidl2' 'mozilla-common' 'nss' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite3>=3.7.4' 'libnotify')
-makedepends=('zip' 'pkg-config' 'diffutils' 'python2' 'wireless_tools' 'yasm' 'mesa')
-url="http://wiki.mozilla.org/XUL:Xul_Runner"
-source=(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${_ffoxver}/source/firefox-${_ffoxver}.source.tar.bz2
- mozconfig
- mozilla-pkgconfig.patch
- xulrunner-version.patch
- xulrunner-omnijar.patch
- port_gnomevfs_to_gio.patch)
-options=('!emptydirs')
-md5sums=('9abda7d23151e97913c8555a64c13f34'
- '2358a2ddd35bcdd62ff42442dfe548d9'
- '639ea80e823543dd415b90c0ee804186'
- 'a0236f6c3e55f60b7888d8cf137ff209'
- '0bf82bc6677e3ce57fd20a147fe8d7b1'
- '42f83468b296452fb754a81a4317ca64')
-build() {
- cd "${srcdir}/mozilla-2.0"
- cp "${srcdir}/mozconfig" .mozconfig
-
- #fix libdir/sdkdir - fedora
- patch -Np1 -i "${srcdir}/mozilla-pkgconfig.patch"
-
- #Force installation to the same path for every version
- patch -Np1 -i "${srcdir}/xulrunner-version.patch"
-
- #https://bugzilla.mozilla.org/show_bug.cgi?id=620931
- patch -Np1 -i "${srcdir}/xulrunner-omnijar.patch"
-
- #https://bugzilla.mozilla.org/show_bug.cgi?id=494163
- patch -Np1 -i "${srcdir}/port_gnomevfs_to_gio.patch"
-
- unset CFLAGS
- unset CXXFLAGS
-
- export CXXFLAGS="-fpermissive"
-
- make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
-}
-
-package() {
- cd "${srcdir}/mozilla-2.0"
- make -j1 -f client.mk DESTDIR="${pkgdir}" install
-
- #Remove included dictionaries, add symlink to system myspell path.
- #Note: this will cause file conflicts when users have installed dictionaries in the old location
- rm -rf "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
- ln -sf /usr/share/myspell/dicts "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
-
- # add xulrunner library path to ld.so.conf
- install -d ${pkgdir}/etc/ld.so.conf.d
- echo "/usr/lib/xulrunner-2.0" > ${pkgdir}/etc/ld.so.conf.d/xulrunner.conf
-}
diff --git a/staging/xulrunner/mozconfig b/staging/xulrunner/mozconfig
deleted file mode 100644
index 03a352920..000000000
--- a/staging/xulrunner/mozconfig
+++ /dev/null
@@ -1,56 +0,0 @@
-. $topsrcdir/xulrunner/config/mozconfig
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-png
-ac_add_options --with-system-libevent
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-cairo
-ac_add_options --with-pthreads
-
-ac_add_options --enable-default-toolkit=cairo-gtk2
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-extensions=default
-ac_add_options --enable-startup-notification
-ac_add_options --enable-pango
-ac_add_options --enable-svg
-ac_add_options --enable-canvas
-ac_add_options --enable-smil
-ac_add_options --enable-canvas3d
-ac_add_options --enable-places
-ac_add_options --enable-shared-js
-ac_add_options --enable-url-classifier
-
-ac_add_options --enable-optimize
-ac_add_options --enable-strip
-ac_add_options --enable-install-strip
-ac_add_options --enable-jemalloc
-ac_add_options --enable-xterm-updates
-ac_add_options --enable-printing
-ac_add_options --enable-xinerama
-
-ac_add_options --disable-javaxpcom
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-xprint
-ac_add_options --disable-mochitest
-ac_add_options --disable-debug
-ac_add_options --disable-installer
-ac_add_options --disable-pedantic
-
-ac_add_options --enable-gio
-ac_add_options --disable-gnomevfs
-ac_add_options --enable-gconf
-ac_add_options --enable-libnotify
-
-export BUILD_OFFICIAL=1
-export MOZILLA_OFFICIAL=1
-mk_add_options BUILD_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
diff --git a/staging/xulrunner/mozilla-pkgconfig.patch b/staging/xulrunner/mozilla-pkgconfig.patch
deleted file mode 100644
index 2203efcde..000000000
--- a/staging/xulrunner/mozilla-pkgconfig.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in
---- mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in 2011-03-13 03:25:12.350027359 -0700
-@@ -6,5 +6,6 @@
- Name: libxul-embedding
- Description: Static library for version-independent embedding of the Mozilla runtime
- Version: %MOZILLA_VERSION%
-+Requires: %NSPR_NAME% >= %NSPR_VERSION%
- Libs: -L${sdkdir}/lib -lxpcomglue -ldl
- Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
-diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul.pc.in mozilla-2.0/xulrunner/installer/libxul.pc.in
---- mozilla-2.0.orig/xulrunner/installer/libxul.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/libxul.pc.in 2011-03-13 03:25:28.010027359 -0700
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
- idldir=%idldir%
-
-diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
---- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 03:25:55.570027359 -0700
-@@ -121,6 +121,7 @@
- -e "s|%includedir%|$(includedir)|" \
- -e "s|%idldir%|$(idldir)|" \
- -e "s|%sdkdir%|$(sdkdir)|" \
-+ -e "s|%libdir%|$(installdir)|" \
- -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
- -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
- -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
-diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in
---- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-13 03:26:18.676694023 -0700
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
-
- Name: mozilla-gtkembedmoz
-diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in
---- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-13 03:26:41.566694025 -0700
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
-
- Name: mozilla-gtkembedmoz
-diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in mozilla-2.0/xulrunner/installer/mozilla-js.pc.in
---- mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/mozilla-js.pc.in 2011-03-13 03:27:19.680027357 -0700
-@@ -7,4 +7,4 @@
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
- Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
--Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
-+Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE
diff --git a/staging/xulrunner/port_gnomevfs_to_gio.patch b/staging/xulrunner/port_gnomevfs_to_gio.patch
deleted file mode 100644
index 797baff42..000000000
--- a/staging/xulrunner/port_gnomevfs_to_gio.patch
+++ /dev/null
@@ -1,1316 +0,0 @@
-diff -r 49a1b2aa43c5 extensions/gio/Makefile.in
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/Makefile.in Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,69 @@
-+# vim:set ts=8 sw=8 sts=8 noet:
-+# ***** BEGIN LICENSE BLOCK *****
-+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+#
-+# The contents of this file are subject to the Mozilla Public License Version
-+# 1.1 (the "License"); you may not use this file except in compliance with
-+# the License. You may obtain a copy of the License at
-+# http://www.mozilla.org/MPL/
-+#
-+# Software distributed under the License is distributed on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+# for the specific language governing rights and limitations under the
-+# License.
-+#
-+# The Original Code is the Mozilla gnome-vfs extension.
-+#
-+# The Initial Developer of the Original Code is IBM Corporation.
-+#
-+# Portions created by IBM Corporation are Copyright (C) 2004
-+# IBM Corporation. All Rights Reserved.
-+#
-+# Contributor(s):
-+# Darin Fisher <darin@meer.net>
-+# Jan Horak <jhorak@redhat.com>
-+#
-+# Alternatively, the contents of this file may be used under the terms of
-+# either the GNU General Public License Version 2 or later (the "GPL"), or
-+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+# in which case the provisions of the GPL or the LGPL are applicable instead
-+# of those above. If you wish to allow use of your version of this file only
-+# under the terms of either the GPL or the LGPL, and not to allow others to
-+# use your version of this file under the terms of the MPL, indicate your
-+# decision by deleting the provisions above and replace them with the notice
-+# and other provisions required by the GPL or the LGPL. If you do not delete
-+# the provisions above, a recipient may use your version of this file under
-+# the terms of any one of the MPL, the GPL or the LGPL.
-+#
-+# ***** END LICENSE BLOCK *****
-+
-+DEPTH = ../..
-+topsrcdir = @top_srcdir@
-+srcdir = @srcdir@
-+VPATH = @srcdir@
-+
-+include $(DEPTH)/config/autoconf.mk
-+
-+MODULE = nkgio
-+LIBRARY_NAME = nkgio
-+SHORT_LIBNAME = nkgio
-+IS_COMPONENT = 1
-+
-+CPPSRCS = \
-+ nsGIOProtocolHandler.cpp \
-+ $(NULL)
-+
-+LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS)
-+
-+EXTRA_DSO_LDOPTS = \
-+ $(XPCOM_GLUE_LDOPTS) \
-+ $(NSPR_LIBS) \
-+ $(MOZ_GIO_LIBS) \
-+ $(NULL)
-+
-+# make sure this component is never statically linked into the main
-+# application. this is necessary since we don't want to force users
-+# to install gio in order to use the rest of mozilla ;-)
-+FORCE_SHARED_LIB= 1
-+
-+include $(topsrcdir)/config/rules.mk
-diff -r 49a1b2aa43c5 extensions/gio/makefiles.sh
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/makefiles.sh Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,41 @@
-+#! /bin/sh
-+# ***** BEGIN LICENSE BLOCK *****
-+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+#
-+# The contents of this file are subject to the Mozilla Public License Version
-+# 1.1 (the "License"); you may not use this file except in compliance with
-+# the License. You may obtain a copy of the License at
-+# http://www.mozilla.org/MPL/
-+#
-+# Software distributed under the License is distributed on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+# for the specific language governing rights and limitations under the
-+# License.
-+#
-+# The Original Code is Mozilla Build System
-+#
-+# The Initial Developer of the Original Code is
-+# Ben Turner <mozilla@songbirdnest.com>
-+#
-+# Portions created by the Initial Developer are Copyright (C) 2007
-+# the Initial Developer. All Rights Reserved.
-+#
-+# Contributor(s):
-+#
-+# Alternatively, the contents of this file may be used under the terms of
-+# either the GNU General Public License Version 2 or later (the "GPL"), or
-+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+# in which case the provisions of the GPL or the LGPL are applicable instead
-+# of those above. If you wish to allow use of your version of this file only
-+# under the terms of either the GPL or the LGPL, and not to allow others to
-+# use your version of this file under the terms of the MPL, indicate your
-+# decision by deleting the provisions above and replace them with the notice
-+# and other provisions required by the GPL or the LGPL. If you do not delete
-+# the provisions above, a recipient may use your version of this file under
-+# the terms of any one of the MPL, the GPL or the LGPL.
-+#
-+# ***** END LICENSE BLOCK *****
-+
-+add_makefiles "
-+ extensions/gio/Makefile
-+"
-diff -r 49a1b2aa43c5 extensions/gio/nsGIOProtocolHandler.cpp
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/nsGIOProtocolHandler.cpp Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,1163 @@
-+/* vim:set ts=2 sw=2 et cindent: */
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is the Mozilla gnome-vfs extension.
-+ *
-+ * The Initial Developer of the Original Code is IBM Corporation.
-+ *
-+ * Portions created by IBM Corporation are Copyright (C) 2004
-+ * IBM Corporation. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Darin Fisher <darin@meer.net>
-+ * Jan Horak <jhorak@redhat.com>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either the GNU General Public License Version 2 or later (the "GPL"), or
-+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+/*
-+ * This code is based on original Mozilla gnome-vfs extension. It implements
-+ * input stream provided by GVFS/GIO.
-+*/
-+#include "mozilla/ModuleUtils.h"
-+#include "nsIPrefService.h"
-+#include "nsIPrefBranch2.h"
-+#include "nsIObserver.h"
-+#include "nsThreadUtils.h"
-+#include "nsProxyRelease.h"
-+#include "nsIStringBundle.h"
-+#include "nsIStandardURL.h"
-+#include "nsMimeTypes.h"
-+#include "nsNetUtil.h"
-+#include "mozilla/Monitor.h"
-+#include <gio/gio.h>
-+
-+#define MOZ_GIO_SCHEME "moz-gio"
-+#define MOZ_GIO_SUPPORTED_PROTOCOLS "network.gio.supported-protocols"
-+
-+//-----------------------------------------------------------------------------
-+
-+// NSPR_LOG_MODULES=gio:5
-+#ifdef PR_LOGGING
-+static PRLogModuleInfo *sGIOLog;
-+#define LOG(args) PR_LOG(sGIOLog, PR_LOG_DEBUG, args)
-+#else
-+#define LOG(args)
-+#endif
-+
-+
-+//-----------------------------------------------------------------------------
-+static nsresult
-+MapGIOResult(gint code)
-+{
-+ switch (code)
-+ {
-+ case G_IO_ERROR_NOT_FOUND: return NS_ERROR_FILE_NOT_FOUND; // shows error
-+ case G_IO_ERROR_INVALID_ARGUMENT: return NS_ERROR_INVALID_ARG;
-+ case G_IO_ERROR_NOT_SUPPORTED: return NS_ERROR_NOT_AVAILABLE;
-+ case G_IO_ERROR_NO_SPACE: return NS_ERROR_FILE_NO_DEVICE_SPACE;
-+ case G_IO_ERROR_READ_ONLY: return NS_ERROR_FILE_READ_ONLY;
-+ case G_IO_ERROR_PERMISSION_DENIED: return NS_ERROR_FILE_ACCESS_DENIED; // wrong password/login
-+ case G_IO_ERROR_CLOSED: return NS_BASE_STREAM_CLOSED; // was EOF
-+ case G_IO_ERROR_NOT_DIRECTORY: return NS_ERROR_FILE_NOT_DIRECTORY;
-+ case G_IO_ERROR_PENDING: return NS_ERROR_IN_PROGRESS;
-+ case G_IO_ERROR_EXISTS: return NS_ERROR_FILE_ALREADY_EXISTS;
-+ case G_IO_ERROR_IS_DIRECTORY: return NS_ERROR_FILE_IS_DIRECTORY;
-+ case G_IO_ERROR_NOT_MOUNTED: return NS_ERROR_NOT_CONNECTED; // shows error
-+ case G_IO_ERROR_HOST_NOT_FOUND: return NS_ERROR_UNKNOWN_HOST; // shows error
-+ case G_IO_ERROR_CANCELLED: return NS_ERROR_ABORT;
-+ case G_IO_ERROR_NOT_EMPTY: return NS_ERROR_FILE_DIR_NOT_EMPTY;
-+ case G_IO_ERROR_FILENAME_TOO_LONG: return NS_ERROR_FILE_NAME_TOO_LONG;
-+ case G_IO_ERROR_INVALID_FILENAME: return NS_ERROR_FILE_INVALID_PATH;
-+ case G_IO_ERROR_TIMED_OUT: return NS_ERROR_NET_TIMEOUT; // shows error
-+ case G_IO_ERROR_WOULD_BLOCK: return NS_BASE_STREAM_WOULD_BLOCK;
-+ case G_IO_ERROR_FAILED_HANDLED: return NS_ERROR_ABORT; // Cancel on login dialog
-+
-+/* unhandled:
-+ G_IO_ERROR_NOT_REGULAR_FILE,
-+ G_IO_ERROR_NOT_SYMBOLIC_LINK,
-+ G_IO_ERROR_NOT_MOUNTABLE_FILE,
-+ G_IO_ERROR_TOO_MANY_LINKS,
-+ G_IO_ERROR_ALREADY_MOUNTED,
-+ G_IO_ERROR_CANT_CREATE_BACKUP,
-+ G_IO_ERROR_WRONG_ETAG,
-+ G_IO_ERROR_WOULD_RECURSE,
-+ G_IO_ERROR_BUSY,
-+ G_IO_ERROR_WOULD_MERGE,
-+ G_IO_ERROR_TOO_MANY_OPEN_FILES
-+*/
-+ // Make GCC happy
-+ default:
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ return NS_ERROR_FAILURE;
-+}
-+
-+static nsresult
-+MapGIOResult(GError *result)
-+{
-+ if (!result)
-+ return NS_OK;
-+ else
-+ return MapGIOResult(result->code);
-+}
-+/** Return values for mount operation.
-+ * These enums are used as mount operation return values.
-+ */
-+typedef enum {
-+ MOUNT_OPERATION_IN_PROGRESS, /** \enum operation in progress */
-+ MOUNT_OPERATION_SUCCESS, /** \enum operation successful */
-+ MOUNT_OPERATION_FAILED /** \enum operation not successful */
-+} MountOperationResult;
-+//-----------------------------------------------------------------------------
-+/**
-+ * Sort function compares according to file type (directory/file)
-+ * and alphabethical order
-+ * @param a pointer to GFileInfo object to compare
-+ * @param b pointer to GFileInfo object to compare
-+ * @return -1 when first object should be before the second, 0 when equal,
-+ * +1 when second object should be before the first
-+ */
-+static gint
-+FileInfoComparator(gconstpointer a, gconstpointer b)
-+{
-+ GFileInfo *ia = ( GFileInfo *) a;
-+ GFileInfo *ib = ( GFileInfo *) b;
-+ if (g_file_info_get_file_type(ia) == G_FILE_TYPE_DIRECTORY
-+ && g_file_info_get_file_type(ib) != G_FILE_TYPE_DIRECTORY)
-+ return -1;
-+ if (g_file_info_get_file_type(ib) == G_FILE_TYPE_DIRECTORY
-+ && g_file_info_get_file_type(ia) != G_FILE_TYPE_DIRECTORY)
-+ return 1;
-+
-+ return strcasecmp(g_file_info_get_name(ia), g_file_info_get_name(ib));
-+}
-+
-+/* Declaration of mount callback functions */
-+static void mount_enclosing_volume_finished (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data);
-+static void mount_operation_ask_password (GMountOperation *mount_op,
-+ const char *message,
-+ const char *default_user,
-+ const char *default_domain,
-+ GAskPasswordFlags flags,
-+ gpointer user_data);
-+//-----------------------------------------------------------------------------
-+
-+class nsGIOInputStream : public nsIInputStream
-+{
-+ public:
-+ NS_DECL_ISUPPORTS
-+ NS_DECL_NSIINPUTSTREAM
-+
-+ nsGIOInputStream(const nsCString &uriSpec)
-+ : mSpec(uriSpec)
-+ , mChannel(nsnull)
-+ , mHandle(nsnull)
-+ , mStream(nsnull)
-+ , mBytesRemaining(PR_UINT32_MAX)
-+ , mStatus(NS_OK)
-+ , mDirList(nsnull)
-+ , mDirListPtr(nsnull)
-+ , mDirBufCursor(0)
-+ , mDirOpen(PR_FALSE)
-+ , mMonitorMountInProgress("GIOInputStream::MountFinished") { }
-+
-+ ~nsGIOInputStream() { Close(); }
-+
-+ void SetChannel(nsIChannel *channel)
-+ {
-+ // We need to hold an owning reference to our channel. This is done
-+ // so we can access the channel's notification callbacks to acquire
-+ // a reference to a nsIAuthPrompt if we need to handle an interactive
-+ // mount operation.
-+ //
-+ // However, the channel can only be accessed on the main thread, so
-+ // we have to be very careful with ownership. Moreover, it doesn't
-+ // support threadsafe addref/release, so proxying is the answer.
-+ //
-+ // Also, it's important to note that this likely creates a reference
-+ // cycle since the channel likely owns this stream. This reference
-+ // cycle is broken in our Close method.
-+
-+ NS_ADDREF(mChannel = channel);
-+ }
-+ void SetMountResult(MountOperationResult result, gint error_code);
-+ private:
-+ nsresult DoOpen();
-+ nsresult DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead);
-+ nsresult SetContentTypeOfChannel(const char *contentType);
-+ nsresult MountVolume();
-+ nsresult DoOpenDirectory();
-+ nsresult DoOpenFile(GFileInfo *info);
-+ nsCString mSpec;
-+ nsIChannel *mChannel; // manually refcounted
-+ GFile *mHandle;
-+ GFileInputStream *mStream;
-+ PRUint64 mBytesRemaining;
-+ nsresult mStatus;
-+ GList *mDirList;
-+ GList *mDirListPtr;
-+ nsCString mDirBuf;
-+ PRUint32 mDirBufCursor;
-+ PRPackedBool mDirOpen;
-+ MountOperationResult mMountRes;
-+ mozilla::Monitor mMonitorMountInProgress;
-+ gint mMountErrorCode;
-+};
-+/**
-+ * Set result of mount operation and notify monitor waiting for results.
-+ * This method is called in main thread as long as it is used only
-+ * in mount_enclosing_volume_finished function.
-+ * @param result Result of mount operation
-+ */
-+void
-+nsGIOInputStream::SetMountResult(MountOperationResult result, gint error_code)
-+{
-+ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
-+ mMountRes = result;
-+ mMountErrorCode = error_code;
-+ mon.Notify();
-+}
-+
-+/**
-+ * Start mount operation and wait in loop until it is finished. This method is
-+ * called from thread which is trying to read from location.
-+ */
-+nsresult
-+nsGIOInputStream::MountVolume() {
-+ GMountOperation* mount_op = g_mount_operation_new();
-+ g_signal_connect (mount_op, "ask-password",
-+ G_CALLBACK (mount_operation_ask_password), mChannel);
-+ mMountRes = MOUNT_OPERATION_IN_PROGRESS;
-+ /* g_file_mount_enclosing_volume uses a dbus request to mount the volume.
-+ Callback mount_enclosing_volume_finished is called in main thread
-+ (not this thread on which this method is called). */
-+ g_file_mount_enclosing_volume(mHandle,
-+ G_MOUNT_MOUNT_NONE,
-+ mount_op,
-+ NULL,
-+ mount_enclosing_volume_finished,
-+ this);
-+ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
-+ /* Waiting for finish of mount operation thread */
-+ while (mMountRes == MOUNT_OPERATION_IN_PROGRESS)
-+ mon.Wait();
-+
-+ g_object_unref(mount_op);
-+
-+ if (mMountRes == MOUNT_OPERATION_FAILED) {
-+ return MapGIOResult(mMountErrorCode);
-+ } else {
-+ return NS_OK;
-+ }
-+}
-+
-+/**
-+ * Create list of infos about objects in opened directory
-+ * Return: NS_OK when list obtained, otherwise error code according
-+ * to failed operation.
-+ */
-+nsresult
-+nsGIOInputStream::DoOpenDirectory()
-+{
-+ GError *error = NULL;
-+
-+ GFileEnumerator *f_enum = g_file_enumerate_children(mHandle,
-+ "standard::*,time::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+ if (!f_enum) {
-+ nsresult rv = MapGIOResult(error);
-+ g_warning("Cannot read from directory: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ // fill list of file infos
-+ GFileInfo *info = g_file_enumerator_next_file(f_enum, NULL, &error);
-+ while (info) {
-+ mDirList = g_list_append(mDirList, info);
-+ info = g_file_enumerator_next_file(f_enum, NULL, &error);
-+ }
-+ g_object_unref(f_enum);
-+ if (error) {
-+ g_warning("Error reading directory content: %s", error->message);
-+ nsresult rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ mDirOpen = PR_TRUE;
-+
-+ // Sort list of file infos by using FileInfoComparator function
-+ mDirList = g_list_sort(mDirList, FileInfoComparator);
-+ mDirListPtr = mDirList;
-+
-+ // Write base URL (make sure it ends with a '/')
-+ mDirBuf.Append("300: ");
-+ mDirBuf.Append(mSpec);
-+ if (mSpec.get()[mSpec.Length() - 1] != '/')
-+ mDirBuf.Append('/');
-+ mDirBuf.Append('\n');
-+
-+ // Write column names
-+ mDirBuf.Append("200: filename content-length last-modified file-type\n");
-+
-+ // Write charset (assume UTF-8)
-+ // XXX is this correct?
-+ mDirBuf.Append("301: UTF-8\n");
-+ SetContentTypeOfChannel(APPLICATION_HTTP_INDEX_FORMAT);
-+ return NS_OK;
-+}
-+
-+/**
-+ * Create file stream and set mime type for channel
-+ * @param info file info used to determine mime type
-+ * @return NS_OK when file stream created successfuly, error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoOpenFile(GFileInfo *info)
-+{
-+ GError *error = NULL;
-+
-+ mStream = g_file_read(mHandle, NULL, &error);
-+ if (!mStream) {
-+ nsresult rv = MapGIOResult(error);
-+ g_warning("Cannot read from file: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+
-+ const char * content_type = g_file_info_get_content_type(info);
-+ if (content_type) {
-+ char *mime_type = g_content_type_get_mime_type(content_type);
-+ if (mime_type) {
-+ if (strcmp(mime_type, APPLICATION_OCTET_STREAM) != 0) {
-+ SetContentTypeOfChannel(mime_type);
-+ }
-+ g_free(mime_type);
-+ }
-+ } else {
-+ g_warning("Missing content type.");
-+ }
-+
-+ mBytesRemaining = g_file_info_get_size(info);
-+ // Update the content length attribute on the channel. We do this
-+ // synchronously without proxying. This hack is not as bad as it looks!
-+ mChannel->SetContentLength(mBytesRemaining);
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Start file open operation, mount volume when needed and according to file type
-+ * create file output stream or read directory content.
-+ * @return NS_OK when file or directory opened successfully, error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoOpen()
-+{
-+ nsresult rv;
-+ GError *error = NULL;
-+
-+ NS_ASSERTION(mHandle == nsnull, "already open");
-+
-+ mHandle = g_file_new_for_uri( mSpec.get() );
-+
-+ GFileInfo *info = g_file_query_info(mHandle,
-+ "standard::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+
-+ if (error) {
-+ if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_NOT_MOUNTED) {
-+ // location is not yet mounted, try to mount
-+ g_error_free(error);
-+ if (NS_IsMainThread())
-+ return NS_ERROR_NOT_CONNECTED;
-+ error = NULL;
-+ rv = MountVolume();
-+ if (rv != NS_OK) {
-+ return rv;
-+ }
-+ // get info again
-+ info = g_file_query_info(mHandle,
-+ "standard::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+ // second try to get file info from remote files after media mount
-+ if (!info) {
-+ g_warning("Unable to get file info: %s", error->message);
-+ rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ } else {
-+ g_warning("Unable to get file info: %s", error->message);
-+ rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ }
-+ // Get file type to handle directories and file differently
-+ GFileType f_type = g_file_info_get_file_type(info);
-+ if (f_type == G_FILE_TYPE_DIRECTORY) {
-+ // directory
-+ rv = DoOpenDirectory();
-+ } else if (f_type != G_FILE_TYPE_UNKNOWN) {
-+ // file
-+ rv = DoOpenFile(info);
-+ } else {
-+ g_warning("Unable to get file type.");
-+ rv = NS_ERROR_FILE_NOT_FOUND;
-+ }
-+ if (info)
-+ g_object_unref(info);
-+ return rv;
-+}
-+
-+/**
-+ * Read content of file or create file list from directory
-+ * @param aBuf read destination buffer
-+ * @param aCount length of destination buffer
-+ * @param aCountRead number of read characters
-+ * @return NS_OK when read successfully, NS_BASE_STREAM_CLOSED when end of file,
-+ * error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead)
-+{
-+ nsresult rv = NS_ERROR_NOT_AVAILABLE;
-+ if (mStream) {
-+ // file read
-+ GError *error = NULL;
-+ PRUint32 bytes_read = g_input_stream_read(G_INPUT_STREAM(mStream),
-+ aBuf,
-+ aCount,
-+ NULL,
-+ &error);
-+ if (error) {
-+ rv = MapGIOResult(error);
-+ *aCountRead = 0;
-+ g_warning("Cannot read from file: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ *aCountRead = bytes_read;
-+ mBytesRemaining -= *aCountRead;
-+ return NS_OK;
-+ }
-+ else if (mDirOpen) {
-+ // directory read
-+ while (aCount && rv != NS_BASE_STREAM_CLOSED)
-+ {
-+ // Copy data out of our buffer
-+ PRUint32 bufLen = mDirBuf.Length() - mDirBufCursor;
-+ if (bufLen)
-+ {
-+ PRUint32 n = PR_MIN(bufLen, aCount);
-+ memcpy(aBuf, mDirBuf.get() + mDirBufCursor, n);
-+ *aCountRead += n;
-+ aBuf += n;
-+ aCount -= n;
-+ mDirBufCursor += n;
-+ }
-+
-+ if (!mDirListPtr) // Are we at the end of the directory list?
-+ {
-+ rv = NS_BASE_STREAM_CLOSED;
-+ }
-+ else if (aCount) // Do we need more data?
-+ {
-+ GFileInfo *info = (GFileInfo *) mDirListPtr->data;
-+
-+ // Prune '.' and '..' from directory listing.
-+ const char * fname = g_file_info_get_name(info);
-+ if (fname && fname[0] == '.' &&
-+ (fname[1] == '\0' || (fname[1] == '.' && fname[2] == '\0')))
-+ {
-+ mDirListPtr = mDirListPtr->next;
-+ continue;
-+ }
-+
-+ mDirBuf.Assign("201: ");
-+
-+ // The "filename" field
-+ nsCString escName;
-+ nsCOMPtr<nsINetUtil> nu = do_GetService(NS_NETUTIL_CONTRACTID);
-+ if (nu && fname) {
-+ nu->EscapeString(nsDependentCString(fname),
-+ nsINetUtil::ESCAPE_URL_PATH, escName);
-+
-+ mDirBuf.Append(escName);
-+ mDirBuf.Append(' ');
-+ }
-+
-+ // The "content-length" field
-+ // XXX truncates size from 64-bit to 32-bit
-+ mDirBuf.AppendInt(PRInt32(g_file_info_get_size(info)));
-+ mDirBuf.Append(' ');
-+
-+ // The "last-modified" field
-+ //
-+ // NSPR promises: PRTime is compatible with time_t
-+ // we just need to convert from seconds to microseconds
-+ GTimeVal gtime;
-+ g_file_info_get_modification_time(info, &gtime);
-+
-+ PRExplodedTime tm;
-+ PRTime pt = ((PRTime) gtime.tv_sec) * 1000000;
-+ PR_ExplodeTime(pt, PR_GMTParameters, &tm);
-+ {
-+ char buf[64];
-+ PR_FormatTimeUSEnglish(buf, sizeof(buf),
-+ "%a,%%20%d%%20%b%%20%Y%%20%H:%M:%S%%20GMT ", &tm);
-+ mDirBuf.Append(buf);
-+ }
-+
-+ // The "file-type" field
-+ switch (g_file_info_get_file_type(info))
-+ {
-+ case G_FILE_TYPE_REGULAR:
-+ mDirBuf.Append("FILE ");
-+ break;
-+ case G_FILE_TYPE_DIRECTORY:
-+ mDirBuf.Append("DIRECTORY ");
-+ break;
-+ case G_FILE_TYPE_SYMBOLIC_LINK:
-+ mDirBuf.Append("SYMBOLIC-LINK ");
-+ break;
-+ default:
-+ break;
-+ }
-+ mDirBuf.Append('\n');
-+
-+ mDirBufCursor = 0;
-+ mDirListPtr = mDirListPtr->next;
-+ }
-+ }
-+ }
-+ return rv;
-+}
-+
-+/**
-+ * This class is used to implement SetContentTypeOfChannel.
-+ */
-+class nsGIOSetContentTypeEvent : public nsRunnable
-+{
-+ public:
-+ nsGIOSetContentTypeEvent(nsIChannel *channel, const char *contentType)
-+ : mChannel(channel), mContentType(contentType)
-+ {
-+ // stash channel reference in mChannel. no AddRef here! see note
-+ // in SetContentTypeOfchannel.
-+ }
-+
-+ NS_IMETHOD Run()
-+ {
-+ mChannel->SetContentType(mContentType);
-+ return NS_OK;
-+ }
-+
-+ private:
-+ nsIChannel *mChannel;
-+ nsCString mContentType;
-+};
-+
-+nsresult
-+nsGIOInputStream::SetContentTypeOfChannel(const char *contentType)
-+{
-+ // We need to proxy this call over to the main thread. We post an
-+ // asynchronous event in this case so that we don't delay reading data, and
-+ // we know that this is safe to do since the channel's reference will be
-+ // released asynchronously as well. We trust the ordering of the main
-+ // thread's event queue to protect us against memory corruption.
-+
-+ nsresult rv;
-+ nsCOMPtr<nsIRunnable> ev =
-+ new nsGIOSetContentTypeEvent(mChannel, contentType);
-+ if (!ev)
-+ {
-+ rv = NS_ERROR_OUT_OF_MEMORY;
-+ }
-+ else
-+ {
-+ rv = NS_DispatchToMainThread(ev);
-+ }
-+ return rv;
-+}
-+
-+NS_IMPL_THREADSAFE_ISUPPORTS1(nsGIOInputStream, nsIInputStream)
-+
-+/**
-+ * Free all used memory and close stream.
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Close()
-+{
-+ if (mStream)
-+ {
-+ g_object_unref(mStream);
-+ mStream = nsnull;
-+ }
-+
-+ if (mHandle)
-+ {
-+ g_object_unref(mHandle);
-+ mHandle = nsnull;
-+ }
-+
-+ if (mDirList)
-+ {
-+ // Destroy the list of GIOFileInfo objects...
-+ g_list_foreach(mDirList, (GFunc) g_object_unref, nsnull);
-+ g_list_free(mDirList);
-+ mDirList = nsnull;
-+ mDirListPtr = nsnull;
-+ }
-+
-+ if (mChannel)
-+ {
-+ nsresult rv = NS_OK;
-+
-+ nsCOMPtr<nsIThread> thread = do_GetMainThread();
-+ if (thread)
-+ rv = NS_ProxyRelease(thread, mChannel);
-+
-+ NS_ASSERTION(thread && NS_SUCCEEDED(rv), "leaking channel reference");
-+ mChannel = nsnull;
-+ }
-+
-+ mSpec.Truncate(); // free memory
-+
-+ // Prevent future reads from re-opening the handle.
-+ if (NS_SUCCEEDED(mStatus))
-+ mStatus = NS_BASE_STREAM_CLOSED;
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Return number of remaining bytes available on input
-+ * @param aResult remaining bytes
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Available(PRUint32 *aResult)
-+{
-+ if (NS_FAILED(mStatus))
-+ return mStatus;
-+
-+ /* When remaining bytes are bigger than max PRUint32 value an aResult must
-+ be set to PRUint32 maximum */
-+ if (mBytesRemaining > PR_UINT32_MAX)
-+ *aResult = PR_UINT32_MAX;
-+ else
-+ *aResult = mBytesRemaining;
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Trying to read from stream. When location is not available it tries to mount it.
-+ * @param aBuf buffer to put read data
-+ * @param aCount length of aBuf
-+ * @param aCountRead number of bytes actually read
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Read(char *aBuf,
-+ PRUint32 aCount,
-+ PRUint32 *aCountRead)
-+{
-+ *aCountRead = 0;
-+ // Check if file is already opened, otherwise open it
-+ if (!mStream && !mDirOpen && mStatus == NS_OK) {
-+ mStatus = DoOpen();
-+ if (NS_FAILED(mStatus)) {
-+ return mStatus;
-+ }
-+ }
-+
-+ mStatus = DoRead(aBuf, aCount, aCountRead);
-+ // Check if all data has been read
-+ if (mStatus == NS_BASE_STREAM_CLOSED)
-+ return NS_OK;
-+
-+ // Check whenever any error appears while reading
-+ return mStatus;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOInputStream::ReadSegments(nsWriteSegmentFun aWriter,
-+ void *aClosure,
-+ PRUint32 aCount,
-+ PRUint32 *aResult)
-+{
-+ // There is no way to implement this using GnomeVFS, but fortunately
-+ // that doesn't matter. Because we are a blocking input stream, Necko
-+ // isn't going to call our ReadSegments method.
-+ NS_NOTREACHED("nsGIOInputStream::ReadSegments");
-+ return NS_ERROR_NOT_IMPLEMENTED;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOInputStream::IsNonBlocking(PRBool *aResult)
-+{
-+ *aResult = PR_FALSE;
-+ return NS_OK;
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+/**
-+ * Called when finishing mount operation. Result of operation is set in
-+ * nsGIOInputStream. This function is called in main thread as an async request
-+ * typically from dbus.
-+ * @param source_object GFile object which requested the mount
-+ * @param res result object
-+ * @param user_data pointer to nsGIOInputStream
-+ */
-+static void
-+mount_enclosing_volume_finished (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data)
-+{
-+ GError *error = NULL;
-+
-+ nsGIOInputStream* istream = static_cast<nsGIOInputStream*>(user_data);
-+
-+ g_file_mount_enclosing_volume_finish(G_FILE (source_object), res, &error);
-+
-+ if (error) {
-+ g_warning("Mount failed: %s %d", error->message, error->code);
-+ istream->SetMountResult(MOUNT_OPERATION_FAILED, error->code);
-+ g_error_free(error);
-+ } else {
-+ istream->SetMountResult(MOUNT_OPERATION_SUCCESS, 0);
-+ }
-+}
-+
-+/**
-+ * This function is called when username or password are requested from user.
-+ * This function is called in main thread as async request from dbus.
-+ * @param mount_op mount operation
-+ * @param message message to show to user
-+ * @param default_user preffered user
-+ * @param default_domain domain name
-+ * @param flags what type of information is required
-+ * @param user_data nsIChannel
-+ */
-+static void
-+mount_operation_ask_password (GMountOperation *mount_op,
-+ const char *message,
-+ const char *default_user,
-+ const char *default_domain,
-+ GAskPasswordFlags flags,
-+ gpointer user_data)
-+{
-+ nsIChannel *channel = (nsIChannel *) user_data;
-+ if (!channel) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // We can't handle request for domain
-+ if (flags & G_ASK_PASSWORD_NEED_DOMAIN) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+
-+ nsCOMPtr<nsIAuthPrompt> prompt;
-+ NS_QueryNotificationCallbacks(channel, prompt);
-+
-+ // If no auth prompt, then give up. We could failover to using the
-+ // WindowWatcher service, but that might defeat a consumer's purposeful
-+ // attempt to disable authentication (for whatever reason).
-+ if (!prompt) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Parse out the host and port...
-+ nsCOMPtr<nsIURI> uri;
-+ channel->GetURI(getter_AddRefs(uri));
-+ if (!uri) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+
-+ nsCAutoString scheme, hostPort;
-+ uri->GetScheme(scheme);
-+ uri->GetHostPort(hostPort);
-+
-+ // It doesn't make sense for either of these strings to be empty. What kind
-+ // of funky URI is this?
-+ if (scheme.IsEmpty() || hostPort.IsEmpty()) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Construct the single signon key. Altering the value of this key will
-+ // cause people's remembered passwords to be forgotten. Think carefully
-+ // before changing the way this key is constructed.
-+ nsAutoString key, realm;
-+
-+ NS_ConvertUTF8toUTF16 dispHost(scheme);
-+ dispHost.Append(NS_LITERAL_STRING("://"));
-+ dispHost.Append(NS_ConvertUTF8toUTF16(hostPort));
-+
-+ key = dispHost;
-+ if (*default_domain != '\0')
-+ {
-+ // We assume the realm string is ASCII. That might be a bogus assumption,
-+ // but we have no idea what encoding GnomeVFS is using, so for now we'll
-+ // limit ourselves to ISO-Latin-1. XXX What is a better solution?
-+ realm.Append('"');
-+ realm.Append(NS_ConvertASCIItoUTF16(default_domain));
-+ realm.Append('"');
-+ key.Append(' ');
-+ key.Append(realm);
-+ }
-+ // Construct the message string...
-+ //
-+ // We use Necko's string bundle here. This code really should be encapsulated
-+ // behind some Necko API, after all this code is based closely on the code in
-+ // nsHttpChannel.cpp.
-+ nsCOMPtr<nsIStringBundleService> bundleSvc =
-+ do_GetService(NS_STRINGBUNDLE_CONTRACTID);
-+ if (!bundleSvc) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ nsCOMPtr<nsIStringBundle> bundle;
-+ bundleSvc->CreateBundle("chrome://global/locale/commonDialogs.properties",
-+ getter_AddRefs(bundle));
-+ if (!bundle) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ nsAutoString nsmessage;
-+
-+ if (flags & G_ASK_PASSWORD_NEED_PASSWORD) {
-+ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
-+ if (!realm.IsEmpty()) {
-+ const PRUnichar *strings[] = { realm.get(), dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterLoginForRealm").get(),
-+ strings, 2, getter_Copies(nsmessage));
-+ } else {
-+ const PRUnichar *strings[] = { dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterUserPasswordFor").get(),
-+ strings, 1, getter_Copies(nsmessage));
-+ }
-+ } else {
-+ NS_ConvertUTF8toUTF16 userName(default_user);
-+ const PRUnichar *strings[] = { userName.get(), dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterPasswordFor").get(),
-+ strings, 2, getter_Copies(nsmessage));
-+ }
-+ } else {
-+ g_warning("Unknown mount operation request (flags: %x)", flags);
-+ }
-+
-+ if (nsmessage.IsEmpty()) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Prompt the user...
-+ nsresult rv;
-+ PRBool retval = PR_FALSE;
-+ PRUnichar *user = nsnull, *pass = nsnull;
-+ if (default_user) {
-+ // user will be freed by PromptUsernameAndPassword
-+ user = ToNewUnicode(NS_ConvertUTF8toUTF16(default_user));
-+ }
-+ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
-+ rv = prompt->PromptUsernameAndPassword(nsnull, nsmessage.get(),
-+ key.get(),
-+ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
-+ &user, &pass, &retval);
-+ } else {
-+ rv = prompt->PromptPassword(nsnull, nsmessage.get(),
-+ key.get(),
-+ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
-+ &pass, &retval);
-+ }
-+ if (NS_FAILED(rv) || !retval) { // was || user == '\0' || pass == '\0'
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ /* GIO should accept UTF8 */
-+ g_mount_operation_set_username(mount_op, NS_ConvertUTF16toUTF8(user).get());
-+ g_mount_operation_set_password(mount_op, NS_ConvertUTF16toUTF8(pass).get());
-+ nsMemory::Free(user);
-+ nsMemory::Free(pass);
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_HANDLED);
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+class nsGIOProtocolHandler : public nsIProtocolHandler
-+ , public nsIObserver
-+{
-+ public:
-+ NS_DECL_ISUPPORTS
-+ NS_DECL_NSIPROTOCOLHANDLER
-+ NS_DECL_NSIOBSERVER
-+
-+ nsresult Init();
-+
-+ private:
-+ void InitSupportedProtocolsPref(nsIPrefBranch *prefs);
-+ PRBool IsSupportedProtocol(const nsCString &spec);
-+
-+ nsCString mSupportedProtocols;
-+};
-+
-+NS_IMPL_ISUPPORTS2(nsGIOProtocolHandler, nsIProtocolHandler, nsIObserver)
-+
-+nsresult
-+nsGIOProtocolHandler::Init()
-+{
-+#ifdef PR_LOGGING
-+ sGIOLog = PR_NewLogModule("gio");
-+#endif
-+
-+ nsCOMPtr<nsIPrefBranch2> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
-+ if (prefs)
-+ {
-+ InitSupportedProtocolsPref(prefs);
-+ prefs->AddObserver(MOZ_GIO_SUPPORTED_PROTOCOLS, this, PR_FALSE);
-+ }
-+
-+ return NS_OK;
-+}
-+
-+void
-+nsGIOProtocolHandler::InitSupportedProtocolsPref(nsIPrefBranch *prefs)
-+{
-+ // Get user preferences to determine which protocol is supported.
-+ // Gvfs/GIO has a set of supported protocols like obex, network, archive,
-+ // computer, dav, cdda, gphoto2, trash, etc. Some of these seems to be
-+ // irrelevant to process by browser. By default accept only smb and sftp
-+ // protocols so far.
-+ nsresult rv = prefs->GetCharPref(MOZ_GIO_SUPPORTED_PROTOCOLS,
-+ getter_Copies(mSupportedProtocols));
-+ if (NS_SUCCEEDED(rv)) {
-+ mSupportedProtocols.StripWhitespace();
-+ ToLowerCase(mSupportedProtocols);
-+ }
-+ else
-+ mSupportedProtocols.Assign("smb:,sftp:"); // use defaults
-+
-+ LOG(("gio: supported protocols \"%s\"\n", mSupportedProtocols.get()));
-+}
-+
-+PRBool
-+nsGIOProtocolHandler::IsSupportedProtocol(const nsCString &aSpec)
-+{
-+ const char *specString = aSpec.get();
-+ const char *colon = strchr(specString, ':');
-+ if (!colon)
-+ return PR_FALSE;
-+
-+ PRUint32 length = colon - specString + 1;
-+
-+ // <scheme> + ':'
-+ nsCString scheme(specString, length);
-+
-+ char *found = PL_strcasestr(mSupportedProtocols.get(), scheme.get());
-+ if (!found)
-+ return PR_FALSE;
-+
-+ if (found[length] != ',' && found[length] != '\0')
-+ return PR_FALSE;
-+
-+ return PR_TRUE;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetScheme(nsACString &aScheme)
-+{
-+ aScheme.Assign(MOZ_GIO_SCHEME);
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetDefaultPort(PRInt32 *aDefaultPort)
-+{
-+ *aDefaultPort = -1;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetProtocolFlags(PRUint32 *aProtocolFlags)
-+{
-+ // Is URI_STD true of all GnomeVFS URI types?
-+ *aProtocolFlags = URI_STD | URI_DANGEROUS_TO_LOAD;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::NewURI(const nsACString &aSpec,
-+ const char *aOriginCharset,
-+ nsIURI *aBaseURI,
-+ nsIURI **aResult)
-+{
-+ const nsCString flatSpec(aSpec);
-+ LOG(("gio: NewURI [spec=%s]\n", flatSpec.get()));
-+
-+ if (!aBaseURI)
-+ {
-+ // XXX Is it good to support all GIO protocols?
-+ if (!IsSupportedProtocol(flatSpec))
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+
-+ PRInt32 colon_location = flatSpec.FindChar(':');
-+ if (colon_location <= 0)
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+
-+ // Verify that GIO supports this URI scheme.
-+ PRBool uri_scheme_supported = PR_FALSE;
-+
-+ GVfs *gvfs = g_vfs_get_default();
-+
-+ if (!gvfs) {
-+ g_warning("Cannot get GVfs object.");
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+ }
-+
-+ const gchar* const * uri_schemes = g_vfs_get_supported_uri_schemes(gvfs);
-+
-+ while (*uri_schemes != NULL) {
-+ // While flatSpec ends with ':' the uri_scheme does not. Therefore do not
-+ // compare last character.
-+ if (StringHead(flatSpec, colon_location).Equals(*uri_schemes)) {
-+ uri_scheme_supported = PR_TRUE;
-+ break;
-+ }
-+ uri_schemes++;
-+ }
-+
-+ if (!uri_scheme_supported) {
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+ }
-+ }
-+
-+ nsresult rv;
-+ nsCOMPtr<nsIStandardURL> url =
-+ do_CreateInstance(NS_STANDARDURL_CONTRACTID, &rv);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ rv = url->Init(nsIStandardURL::URLTYPE_STANDARD, -1, flatSpec,
-+ aOriginCharset, aBaseURI);
-+ if (NS_SUCCEEDED(rv))
-+ rv = CallQueryInterface(url, aResult);
-+ return rv;
-+
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::NewChannel(nsIURI *aURI, nsIChannel **aResult)
-+{
-+ NS_ENSURE_ARG_POINTER(aURI);
-+ nsresult rv;
-+
-+ nsCAutoString spec;
-+ rv = aURI->GetSpec(spec);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ nsRefPtr<nsGIOInputStream> stream = new nsGIOInputStream(spec);
-+ if (!stream)
-+ {
-+ rv = NS_ERROR_OUT_OF_MEMORY;
-+ }
-+ else
-+ {
-+ // start out assuming an unknown content-type. we'll set the content-type
-+ // to something better once we open the URI.
-+ rv = NS_NewInputStreamChannel(aResult,
-+ aURI,
-+ stream,
-+ NS_LITERAL_CSTRING(UNKNOWN_CONTENT_TYPE));
-+ if (NS_SUCCEEDED(rv))
-+ stream->SetChannel(*aResult);
-+ }
-+ return rv;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::AllowPort(PRInt32 aPort,
-+ const char *aScheme,
-+ PRBool *aResult)
-+{
-+ // Don't override anything.
-+ *aResult = PR_FALSE;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::Observe(nsISupports *aSubject,
-+ const char *aTopic,
-+ const PRUnichar *aData)
-+{
-+ if (strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID) == 0) {
-+ nsCOMPtr<nsIPrefBranch> prefs = do_QueryInterface(aSubject);
-+ InitSupportedProtocolsPref(prefs);
-+ }
-+ return NS_OK;
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+#define NS_GIOPROTOCOLHANDLER_CID \
-+{ /* ee706783-3af8-4d19-9e84-e2ebfe213480 */ \
-+ 0xee706783, \
-+ 0x3af8, \
-+ 0x4d19, \
-+ {0x9e, 0x84, 0xe2, 0xeb, 0xfe, 0x21, 0x34, 0x80} \
-+}
-+
-+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGIOProtocolHandler, Init)
-+NS_DEFINE_NAMED_CID(NS_GIOPROTOCOLHANDLER_CID);
-+
-+static const mozilla::Module::CIDEntry kVFSCIDs[] = {
-+ { &kNS_GIOPROTOCOLHANDLER_CID, false, NULL, nsGIOProtocolHandlerConstructor },
-+ { NULL }
-+};
-+
-+static const mozilla::Module::ContractIDEntry kVFSContracts[] = {
-+ { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX MOZ_GIO_SCHEME, &kNS_GIOPROTOCOLHANDLER_CID },
-+ { NULL }
-+};
-+
-+static const mozilla::Module kVFSModule = {
-+ mozilla::Module::kVersion,
-+ kVFSCIDs,
-+ kVFSContracts
-+};
-+
-+NSMODULE_DEFN(nsGIOModule) = &kVFSModule;
-diff -r 49a1b2aa43c5 netwerk/base/src/nsIOService.cpp
---- a/netwerk/base/src/nsIOService.cpp Tue Dec 21 12:42:59 2010 +0100
-+++ b/netwerk/base/src/nsIOService.cpp Tue Jan 11 11:17:52 2011 +0100
-@@ -454,6 +454,27 @@
- }
-
- #ifdef MOZ_X11
-+ // check to see whether GVFS can handle this URI scheme. if it can
-+ // create a nsIURI for the "scheme:", then we assume it has support for
-+ // the requested protocol. otherwise, we failover to using the default
-+ // protocol handler.
-+
-+ rv = CallGetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX"moz-gio",
-+ result);
-+ if (NS_SUCCEEDED(rv)) {
-+ nsCAutoString spec(scheme);
-+ spec.Append(':');
-+
-+ nsIURI *uri;
-+ rv = (*result)->NewURI(spec, nsnull, nsnull, &uri);
-+ if (NS_SUCCEEDED(rv)) {
-+ NS_RELEASE(uri);
-+ return rv;
-+ }
-+
-+ NS_RELEASE(*result);
-+ }
-+
- // check to see whether GnomeVFS can handle this URI scheme. if it can
- // create a nsIURI for the "scheme:", then we assume it has support for
- // the requested protocol. otherwise, we failover to using the default
diff --git a/staging/xulrunner/xulrunner-omnijar.patch b/staging/xulrunner/xulrunner-omnijar.patch
deleted file mode 100644
index 66ec5206c..000000000
--- a/staging/xulrunner/xulrunner-omnijar.patch
+++ /dev/null
@@ -1,1737 +0,0 @@
-# HG changeset patch
-# Parent a7dea879b4b445a23186f438900562155bb39e99
-Bug 620931 part 1 - Use chrome manifest to register resource://gre-resources/
-
-diff --git a/layout/style/jar.mn b/layout/style/jar.mn
---- a/layout/style/jar.mn
-+++ b/layout/style/jar.mn
-@@ -1,8 +1,10 @@
- toolkit.jar:
- * res/ua.css (ua.css)
- res/html.css (html.css)
- res/quirk.css (quirk.css)
- res/viewsource.css (viewsource.css)
- * res/forms.css (forms.css)
- res/arrow.gif (arrow.gif)
- res/arrowd.gif (arrowd.gif)
-+
-+% resource gre-resources %res/
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -75,17 +75,16 @@ static nsResProtocolHandler *gResHandler
- //
- // this enables PR_LOG_ALWAYS level information and places all output in
- // the file log.txt
- //
- static PRLogModuleInfo *gResLog;
- #endif
-
- #define kGRE NS_LITERAL_CSTRING("gre")
--#define kGRE_RESOURCES NS_LITERAL_CSTRING("gre-resources")
-
- //----------------------------------------------------------------------------
- // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
- //----------------------------------------------------------------------------
-
- nsresult
- nsResURL::EnsureFile()
- {
-@@ -197,28 +196,16 @@ nsResProtocolHandler::Init()
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
- // make resource://gre/ point to the GRE directory
- //
- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
- NS_ENSURE_SUCCESS(rv, rv);
-
-- // make resource://gre-resources/ point to gre toolkit[.jar]/res
-- nsCOMPtr<nsIURI> greURI;
-- nsCOMPtr<nsIURI> greResURI;
-- GetSubstitution(kGRE, getter_AddRefs(greURI));
--#ifdef MOZ_CHROME_FILE_FORMAT_JAR
-- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "jar:chrome/toolkit.jar!/res/");
--#else
-- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "chrome/toolkit/res/");
--#endif
-- rv = mIOService->NewURI(strGRE_RES_URL, nsnull, greURI,
-- getter_AddRefs(greResURI));
-- SetSubstitution(kGRE_RESOURCES, greResURI);
- //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
- // but once I finish multiple chrome registration I'm not sure that it is needed
-
- // XXX dveditz: resource://pchrome/ defeats profile directory salting
- // if web content can load it. Tread carefully.
-
- return rv;
- }
-@@ -242,22 +229,16 @@ nsResProtocolHandler::Init(nsIFile *aOmn
- // these entries should be kept in sync with the normal Init function
-
- // resource:/// points to jar:omni.jar!/
- SetSubstitution(EmptyCString(), uri);
-
- // resource://gre/ points to jar:omni.jar!/
- SetSubstitution(kGRE, uri);
-
-- urlStr += "chrome/toolkit/res/";
-- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- // resource://gre-resources/ points to jar:omni.jar!/chrome/toolkit/res/
-- SetSubstitution(kGRE_RESOURCES, uri);
- return NS_OK;
- }
- #endif
-
- #ifdef MOZ_IPC
- static PLDHashOperator
- EnumerateSubstitution(const nsACString& aKey,
- nsIURI* aURI,
-# HG changeset patch
-# Parent 3038cccba1a071d6b418e15442d0f2d9f3dcb11d
-Bug 620931 part 2 - When building --with-libxul-sdk, use the right preferences directory
-
-diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
---- a/browser/locales/Makefile.in
-+++ b/browser/locales/Makefile.in
-@@ -183,17 +183,17 @@ install:: $(addsuffix .xml,$(SEARCH_PLUG
- $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/searchplugins
-
-
- libs-%:
- $(NSINSTALL) -D $(DIST)/install
- @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-- @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
-+ @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
- @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-
-
- repackage-win32-installer: WIN32_INSTALLER_OUT="$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe"
- repackage-win32-installer: $(WIN32_INSTALLER_IN) $(SUBMAKEFILES)
- @echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
- $(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY) export
- $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/setup.exe l10ngen/7zSD.sfx
-diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
---- a/toolkit/mozapps/installer/packager.mk
-+++ b/toolkit/mozapps/installer/packager.mk
-@@ -307,17 +307,17 @@ OMNIJAR_FILES = \
- res \
- defaults \
- greprefs.js \
- jsloader \
- $(NULL)
-
- NON_OMNIJAR_FILES += \
- chrome/icons/\* \
-- defaults/pref/channel-prefs.js \
-+ $(PREF_DIR)/channel-prefs.js \
- res/cursors/\* \
- res/MainMenu.nib/\* \
- $(NULL)
-
- PACK_OMNIJAR = \
- rm -f omni.jar components/binary.manifest && \
- grep -h '^binary-component' components/*.manifest > binary.manifest ; \
- sed -e 's/^binary-component/\#binary-component/' components/components.manifest > components.manifest && \
-# HG changeset patch
-# Parent cd8df8030f7ad7530692bd7c4391a8009df56a02
-Bug 620931 part 3 - Allow GRE and XUL application to use omni.jar independently
-
-We now store two independent locations for an omni.jar, allowing GRE/XRE and
-XUL application to each have their own omni.jar. And since xulrunner setups
-are very independent from the XUL applications, we implement support for both
-omni.jar and non omni.jar cases in the same runtime, with the side effect of
-allowing to switch from one to the other manually without rebuilding the
-binaries.
-
-We let the mozilla::Omnijar API handle both cases, so that callers don't need
-too much work to support them.
-
-We also make the preferences service load the same set of preferences in all
-the various cases (unified vs. separate, omni.jar vs. no omni.jar).
-
-The child process launcher for IPC is modified to pass the base directories
-needed for the mozilla::Omnijar API initialization in the child process.
-
-Finally, the startupcache file name canonicalization is modified to separate
-APP and GRE resources.
-
-diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
---- a/ipc/glue/GeckoChildProcessHost.cpp
-+++ b/ipc/glue/GeckoChildProcessHost.cpp
-@@ -440,26 +440,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
- // other end of the socketpair() from us
-
- std::vector<std::string> childArgv;
-
- childArgv.push_back(exePath.value());
-
- childArgv.insert(childArgv.end(), aExtraOpts.begin(), aExtraOpts.end());
-
--#ifdef MOZ_OMNIJAR
- // Make sure the child process can find the omnijar
- // See XRE_InitCommandLine in nsAppRunner.cpp
-- nsCAutoString omnijarPath;
-- if (mozilla::OmnijarPath()) {
-- mozilla::OmnijarPath()->GetNativePath(omnijarPath);
-- childArgv.push_back("-omnijar");
-- childArgv.push_back(omnijarPath.get());
-+ nsCAutoString path;
-+ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
-+ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
-+ childArgv.push_back("-grebase");
-+ childArgv.push_back(path.get());
- }
--#endif
-+ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
-+ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
-+ childArgv.push_back("-appbase");
-+ childArgv.push_back(path.get());
-+ }
-
- childArgv.push_back(pidstring);
-
- #if defined(MOZ_CRASHREPORTER)
- # if defined(OS_LINUX)
- int childCrashFd, childCrashRemapFd;
- if (!CrashReporter::CreateNotificationPipeForChild(
- &childCrashFd, &childCrashRemapFd))
-@@ -552,26 +555,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
- for (std::vector<std::string>::iterator it = aExtraOpts.begin();
- it != aExtraOpts.end();
- ++it) {
- cmdLine.AppendLooseValue(UTF8ToWide(*it));
- }
-
- cmdLine.AppendLooseValue(std::wstring(mGroupId.get()));
-
--#ifdef MOZ_OMNIJAR
- // Make sure the child process can find the omnijar
- // See XRE_InitCommandLine in nsAppRunner.cpp
-- nsAutoString omnijarPath;
-- if (mozilla::OmnijarPath()) {
-- mozilla::OmnijarPath()->GetPath(omnijarPath);
-- cmdLine.AppendLooseValue(UTF8ToWide("-omnijar"));
-- cmdLine.AppendLooseValue(omnijarPath.get());
-+ nsAutoString path;
-+ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
-+ if (file && NS_SUCCEEDED(file->GetPath(path))) {
-+ cmdLine.AppendLooseValue(UTF8ToWide("-grebase"));
-+ cmdLine.AppendLooseValue(path.get());
- }
--#endif
-+ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
-+ if (file && NS_SUCCEEDED(file->GetPath(path))) {
-+ cmdLine.AppendLooseValue(UTF8ToWide("-appbase"));
-+ cmdLine.AppendLooseValue(path.get());
-+ }
-
- cmdLine.AppendLooseValue(UTF8ToWide(pidstring));
-
- #if defined(MOZ_CRASHREPORTER)
- cmdLine.AppendLooseValue(
- UTF8ToWide(CrashReporter::GetChildNotificationPipe()));
- #endif
-
-diff --git a/js/src/xpconnect/loader/mozJSComponentLoader.cpp b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
---- a/js/src/xpconnect/loader/mozJSComponentLoader.cpp
-+++ b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
-@@ -81,16 +81,17 @@
- #include "nsIConsoleService.h"
- #include "nsIStorageStream.h"
- #include "nsIStringStream.h"
- #include "prmem.h"
- #if defined(XP_WIN)
- #include "nsILocalFileWin.h"
- #endif
- #include "xpcprivate.h"
-+#include "nsIResProtocolHandler.h"
-
- #ifdef MOZ_ENABLE_LIBXUL
- #include "mozilla/scache/StartupCache.h"
- #include "mozilla/scache/StartupCacheUtils.h"
- #endif
- #include "mozilla/Omnijar.h"
-
- #include "jsdbgapi.h"
-@@ -621,34 +622,21 @@ mozJSComponentLoader::LoadModule(nsILoca
-
- const mozilla::Module*
- mozJSComponentLoader::LoadModuleFromJAR(nsILocalFile *aJarFile,
- const nsACString &aComponentPath)
- {
- #if !defined(XPCONNECT_STANDALONE)
- nsresult rv;
-
-- nsCAutoString fullSpec;
--
--#ifdef MOZ_OMNIJAR
-- PRBool equal;
-- rv = aJarFile->Equals(mozilla::OmnijarPath(), &equal);
-- if (NS_SUCCEEDED(rv) && equal) {
-- fullSpec = "resource://gre/";
-- } else {
--#endif
-- nsCAutoString fileSpec;
-- NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
-- fullSpec = "jar:";
-- fullSpec += fileSpec;
-- fullSpec += "!/";
--#ifdef MOZ_OMNIJAR
-- }
--#endif
--
-+ nsCAutoString fullSpec, fileSpec;
-+ NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
-+ fullSpec = "jar:";
-+ fullSpec += fileSpec;
-+ fullSpec += "!/";
- fullSpec += aComponentPath;
-
- nsCOMPtr<nsIURI> uri;
- rv = NS_NewURI(getter_AddRefs(uri), fullSpec);
- if (NS_FAILED(rv))
- return NULL;
-
- nsAutoString hashstring;
-@@ -833,57 +821,138 @@ class JSScriptHolder
- JSScriptHolder(JSContext *cx, JSScript *script)
- : mCx(cx), mScript(script) {}
- ~JSScriptHolder() { ::JS_DestroyScript(mCx, mScript); }
- private:
- JSContext *mCx;
- JSScript *mScript;
- };
-
-+static const char baseName[2][5] = { "gre/", "app/" };
-+
-+static inline PRBool
-+canonicalizeBase(nsCAutoString &spec, nsACString &out, mozilla::Omnijar::Type aType)
-+{
-+ nsCAutoString base;
-+ nsresult rv = mozilla::Omnijar::GetURIString(aType, base);
-+
-+ if (NS_FAILED(rv) || !base.Length())
-+ return PR_FALSE;
-+
-+ if (base.Compare(spec.get(), PR_FALSE, base.Length()))
-+ return PR_FALSE;
-+
-+ out.Append("/resource/");
-+ out.Append(baseName[aType]);
-+ out.Append(Substring(spec, base.Length()));
-+ return PR_TRUE;
-+}
- /**
- * PathifyURI transforms mozilla .js uris into useful zip paths
- * to make it makes it easier to manipulate startup cache entries
- * using standard zip tools.
- * Transformations applied:
-- * * jsloader/<scheme> prefix is used to group mozJSComponentLoader cache entries in
-+ * * jsloader/ prefix is used to group mozJSComponentLoader cache entries in
- * a top-level zip directory.
-- * * In MOZ_OMNIJAR case resource:/// and resource://gre/ URIs refer to the same path
-- * so treat both of them as resource://gre/
-+ * * resource:// URIs are resolved to their corresponding file/jar URI to
-+ * canonicalize resources URIs other than gre and app.
-+ * * Paths under GRE or APP directory have their base path replaced with
-+ * resource/gre or resource/app to avoid depending on install location.
-+ * * jar:file:///path/to/file.jar!/sub/path urls are replaced with
-+ * /path/to/file.jar/sub/path
- * * .bin suffix is added to the end of the path to indicate that jsloader/ entries
- * are binary representations of JS source.
- * For example:
-- * resource://gre/modules/XPCOMUtils.jsm becomes
-- * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
-+ * resource://gre/modules/XPCOMUtils.jsm or
-+ * file://$GRE_DIR/modules/XPCOMUtils.jsm or
-+ * jar:file://$GRE_DIR/omni.jar!/modules/XPCOMUtils.jsm become
-+ * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
-+ * file://$PROFILE_DIR/extensions/{uuid}/components/component.js becomes
-+ * jsloader/$PROFILE_DIR/extensions/%7Buuid%7D/components/component.js.bin
-+ * jar:file://$PROFILE_DIR/extensions/some.xpi!/components/component.js becomes
-+ * jsloader/$PROFILE_DIR/extensions/some.xpi/components/component.js.bin
- */
- static nsresult
- PathifyURI(nsIURI *in, nsACString &out)
- {
-- out = "jsloader/";
-- nsCAutoString scheme;
-- nsresult rv = in->GetScheme(scheme);
-- NS_ENSURE_SUCCESS(rv, rv);
-- out.Append(scheme);
-- nsCAutoString host;
-- // OK for GetHost to fail since it's not implemented sometimes
-- in->GetHost(host);
--#ifdef MOZ_OMNIJAR
-- if (scheme.Equals("resource") && host.Length() == 0){
-- host = "gre";
-- }
--#endif
-- if (host.Length()) {
-- out.Append("/");
-- out.Append(host);
-- }
-- nsCAutoString path;
-- rv = in->GetPath(path);
-- NS_ENSURE_SUCCESS(rv, rv);
-- out.Append(path);
-- out.Append(".bin");
-- return NS_OK;
-+ PRBool equals;
-+ nsresult rv;
-+ nsCOMPtr<nsIURI> uri = in;
-+ nsCAutoString spec;
-+
-+ out = "jsloader";
-+
-+ // Resolve resource:// URIs. At the end of this if/else block, we
-+ // have both spec and uri variables identifying the same URI.
-+ if (NS_SUCCEEDED(in->SchemeIs("resource", &equals)) && equals) {
-+ nsCOMPtr<nsIIOService> ioService = do_GetIOService(&rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIProtocolHandler> ph;
-+ rv = ioService->GetProtocolHandler("resource", getter_AddRefs(ph));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIResProtocolHandler> irph(do_QueryInterface(ph, &rv));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = irph->ResolveURI(in, spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = ioService->NewURI(spec, nsnull, nsnull, getter_AddRefs(uri));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ } else {
-+ rv = in->GetSpec(spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ }
-+
-+ if (!canonicalizeBase(spec, out, mozilla::Omnijar::GRE) &&
-+ !canonicalizeBase(spec, out, mozilla::Omnijar::APP)) {
-+ if (NS_SUCCEEDED(uri->SchemeIs("file", &equals)) && equals) {
-+ nsCOMPtr<nsIFileURL> baseFileURL;
-+ baseFileURL = do_QueryInterface(uri, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCAutoString path;
-+ rv = baseFileURL->GetPath(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ out.Append(path);
-+ } else if (NS_SUCCEEDED(uri->SchemeIs("jar", &equals)) && equals) {
-+ nsCOMPtr<nsIJARURI> jarURI = do_QueryInterface(uri, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIURI> jarFileURI;
-+ rv = jarURI->GetJARFile(getter_AddRefs(jarFileURI));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIFileURL> jarFileURL;
-+ jarFileURL = do_QueryInterface(jarFileURI, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCAutoString path;
-+ rv = jarFileURL->GetPath(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ out.Append(path);
-+
-+ rv = jarURI->GetJAREntry(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ out.Append("/");
-+ out.Append(path);
-+ } else { // Very unlikely
-+ nsCAutoString spec;
-+ rv = uri->GetSpec(spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ out.Append("/");
-+ out.Append(spec);
-+ }
-+ }
-+
-+ out.Append(".bin");
-+ return NS_OK;
- }
-
- /* static */
- #ifdef MOZ_ENABLE_LIBXUL
- nsresult
- mozJSComponentLoader::ReadScript(StartupCache* cache, nsIURI *uri,
- JSContext *cx, JSScript **script)
- {
-diff --git a/modules/libjar/nsJAR.cpp b/modules/libjar/nsJAR.cpp
---- a/modules/libjar/nsJAR.cpp
-+++ b/modules/libjar/nsJAR.cpp
-@@ -171,26 +171,23 @@ nsJAR::Open(nsIFile* zipFile)
- if (mLock) return NS_ERROR_FAILURE; // Already open!
-
- mZipFile = zipFile;
- mOuterZipEntry.Truncate();
-
- mLock = PR_NewLock();
- NS_ENSURE_TRUE(mLock, NS_ERROR_OUT_OF_MEMORY);
-
--#ifdef MOZ_OMNIJAR
- // The omnijar is special, it is opened early on and closed late
- // this avoids reopening it
-- PRBool equals;
-- nsresult rv = zipFile->Equals(mozilla::OmnijarPath(), &equals);
-- if (NS_SUCCEEDED(rv) && equals) {
-- mZip = mozilla::OmnijarReader();
-+ nsZipArchive *zip = mozilla::Omnijar::GetReader(zipFile);
-+ if (zip) {
-+ mZip = zip;
- return NS_OK;
- }
--#endif
- return mZip->OpenArchive(zipFile);
- }
-
- NS_IMETHODIMP
- nsJAR::OpenInner(nsIZipReader *aZipReader, const char *aZipEntry)
- {
- NS_ENSURE_ARG_POINTER(aZipReader);
- NS_ENSURE_ARG_POINTER(aZipEntry);
-@@ -234,23 +231,22 @@ nsJAR::Close()
- mLock = nsnull;
- }
-
- mParsedManifest = PR_FALSE;
- mManifestData.Reset();
- mGlobalStatus = JAR_MANIFEST_NOT_PARSED;
- mTotalItemsInManifest = 0;
-
--#ifdef MOZ_OMNIJAR
-- if (mZip == mozilla::OmnijarReader()) {
-+ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
-+ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP))) {
- mZip.forget();
- mZip = new nsZipArchive();
- return NS_OK;
- }
--#endif
- return mZip->CloseArchive();
- }
-
- NS_IMETHODIMP
- nsJAR::Test(const char *aEntryName)
- {
- return mZip->Test(aEntryName);
- }
-@@ -391,22 +387,21 @@ nsJAR::GetInputStreamWithSpec(const nsAC
- NS_IMETHODIMP
- nsJAR::GetCertificatePrincipal(const char* aFilename, nsIPrincipal** aPrincipal)
- {
- //-- Parameter check
- if (!aPrincipal)
- return NS_ERROR_NULL_POINTER;
- *aPrincipal = nsnull;
-
--#ifdef MOZ_OMNIJAR
- // Don't check signatures in the omnijar - this is only
- // interesting for extensions/XPIs.
-- if (mZip == mozilla::OmnijarReader())
-+ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
-+ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)))
- return NS_OK;
--#endif
-
- //-- Parse the manifest
- nsresult rv = ParseManifest();
- if (NS_FAILED(rv)) return rv;
- if (mGlobalStatus == JAR_NO_MANIFEST)
- return NS_OK;
-
- PRInt16 requestedStatus;
-diff --git a/modules/libpref/src/nsPrefService.cpp b/modules/libpref/src/nsPrefService.cpp
---- a/modules/libpref/src/nsPrefService.cpp
-+++ b/modules/libpref/src/nsPrefService.cpp
-@@ -67,20 +67,18 @@
-
- #include "prefapi.h"
- #include "prefread.h"
- #include "prefapi_private_data.h"
- #include "PrefTuple.h"
-
- #include "nsITimelineService.h"
-
--#ifdef MOZ_OMNIJAR
- #include "mozilla/Omnijar.h"
- #include "nsZipArchive.h"
--#endif
-
- // Definitions
- #define INITIAL_PREF_FILES 10
- static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
-
- // Prototypes
- static nsresult openPrefFile(nsIFile* aFile);
- static nsresult pref_InitInitialObjects(void);
-@@ -793,124 +791,144 @@ static nsresult pref_LoadPrefsInDirList(
- pref_LoadPrefsInDir(dir, nsnull, 0);
- }
- }
- }
- }
- return NS_OK;
- }
-
--//----------------------------------------------------------------------------------------
--// Initialize default preference JavaScript buffers from
--// appropriate TEXT resources
--//----------------------------------------------------------------------------------------
--static nsresult pref_InitDefaults()
--{
-- nsCOMPtr<nsIFile> greprefsFile;
-- nsresult rv;
--
-- rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- rv = openPrefFile(greprefsFile);
-- if (NS_FAILED(rv)) {
-- NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
-- }
--
-- return NS_OK;
--}
--
--#ifdef MOZ_OMNIJAR
- static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
- {
- nsZipItemPtr<char> manifest(jarReader, name, true);
- NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-
- PrefParseState ps;
- PREF_InitParseState(&ps, PREF_ReaderCallback, NULL);
- nsresult rv = PREF_ParseBuf(&ps, manifest, manifest.Length());
- PREF_FinalizeParseState(&ps);
-
- return rv;
- }
-
--static nsresult pref_InitAppDefaultsFromOmnijar()
--{
-- nsresult rv;
--
-- nsZipArchive* jarReader = mozilla::OmnijarReader();
-- if (!jarReader)
-- return pref_InitDefaults();
--
-- rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsZipFind *findPtr;
-- rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsAutoPtr<nsZipFind> find(findPtr);
--
-- nsTArray<nsCString> prefEntries;
-- const char *entryName;
-- PRUint16 entryNameLen;
-- while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-- prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-- }
--
-- prefEntries.Sort();
-- for (PRUint32 i = prefEntries.Length(); i--; ) {
-- rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
-- if (NS_FAILED(rv))
-- NS_WARNING("Error parsing preferences.");
-- }
--
-- return NS_OK;
--}
--#endif
--
-+//----------------------------------------------------------------------------------------
-+// Initialize default preference JavaScript buffers from
-+// appropriate TEXT resources
-+//----------------------------------------------------------------------------------------
- static nsresult pref_InitInitialObjects()
- {
- nsresult rv;
-
-- // first we parse the GRE default prefs. This also works if we're not using a GRE,
--#ifdef MOZ_OMNIJAR
-- rv = pref_InitAppDefaultsFromOmnijar();
--#else
-- rv = pref_InitDefaults();
--#endif
-- NS_ENSURE_SUCCESS(rv, rv);
-+ // In omni.jar case, we load the following prefs:
-+ // - jar:$gre/omni.jar!/greprefs.js
-+ // - jar:$gre/omni.jar!/defaults/pref/*.js
-+ // In non omni.jar case, we load:
-+ // - $gre/greprefs.js
-+ //
-+ // When $app == $gre, we additionally load, in all cases:
-+ // - $gre/defaults/pref/*.js
-+ // This is kept for bug 591866 (channel-prefs.js should not be in omni.jar).
-+ // We load all files instead of channel-prefs.js only to have the same
-+ // behaviour as $app != $gre.
-+ //
-+ // When $app != $gre, we additionally load, in omni.jar case:
-+ // - jar:$app/omni.jar!/defaults/preferences/*.js
-+ // - $app/defaults/preferences/*.js
-+ // and in non omni.jar case:
-+ // - $app/defaults/preferences/*.js
-
-- nsCOMPtr<nsIFile> defaultPrefDir;
-- // now parse the "application" default preferences
-- rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
-- NS_ENSURE_SUCCESS(rv, rv);
-+ nsZipFind *findPtr;
-+ nsAutoPtr<nsZipFind> find;
-+ nsTArray<nsCString> prefEntries;
-+ const char *entryName;
-+ PRUint16 entryNameLen;
-
-- /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
-- static const char* specialFiles[] = {
-+ nsZipArchive* jarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
-+ if (jarReader) {
-+ // Load jar:$gre/omni.jar!/greprefs.js
-+ rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ // Load jar:$gre/omni.jar!/defaults/pref/*.js
-+ rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ find = findPtr;
-+ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-+ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-+ }
-+
-+ prefEntries.Sort();
-+ for (PRUint32 i = prefEntries.Length(); i--; ) {
-+ rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing preferences.");
-+ }
-+ } else {
-+ // Load $gre/greprefs.js
-+ nsCOMPtr<nsIFile> greprefsFile;
-+ rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = openPrefFile(greprefsFile);
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
-+ }
-+
-+ if (!mozilla::Omnijar::HasOmnijar(mozilla::Omnijar::APP)) {
-+ // Load $gre/defaults/pref/*.js
-+ nsCOMPtr<nsIFile> defaultPrefDir;
-+
-+ rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
-+ static const char* specialFiles[] = {
- #if defined(XP_MAC) || defined(XP_MACOSX)
- "macprefs.js"
- #elif defined(XP_WIN)
- "winpref.js"
- #elif defined(XP_UNIX)
- "unix.js"
--#if defined(_AIX)
-+#if defined(VMS)
-+ , "openvms.js"
-+#elif defined(_AIX)
- , "aix.js"
- #endif
- #elif defined(XP_OS2)
- "os2pref.js"
-+#elif defined(XP_BEOS)
-+ "beos.js"
- #endif
-- };
-+ };
-
-- rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
-- if (NS_FAILED(rv)) {
-- NS_WARNING("Error parsing application default preferences.");
-+ rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing application default preferences.");
-+ }
-+
-+ // Load jar:$app/omni.jar!/defaults/preferences/*.js
-+ nsZipArchive *appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
-+ if (appJarReader) {
-+ rv = appJarReader->FindInit("defaults/preferences/*.js$", &findPtr);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ find = findPtr;
-+ prefEntries.Clear();
-+ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-+ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-+ }
-+ prefEntries.Sort();
-+ for (PRUint32 i = prefEntries.Length(); i--; ) {
-+ rv = pref_ReadPrefFromJar(appJarReader, prefEntries[i].get());
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing preferences.");
-+ }
- }
-
- rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST);
- NS_ENSURE_SUCCESS(rv, rv);
-
- NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID,
- nsnull, NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID);
-
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -152,97 +152,62 @@ nsResProtocolHandler::nsResProtocolHandl
- }
-
- nsResProtocolHandler::~nsResProtocolHandler()
- {
- gResHandler = nsnull;
- }
-
- nsresult
--nsResProtocolHandler::AddSpecialDir(const char* aSpecialDir, const nsACString& aSubstitution)
--{
-- nsCOMPtr<nsIFile> file;
-- nsresult rv = NS_GetSpecialDirectory(aSpecialDir, getter_AddRefs(file));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsCOMPtr<nsIURI> uri;
-- rv = mIOService->NewFileURI(file, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- return SetSubstitution(aSubstitution, uri);
--}
--
--nsresult
- nsResProtocolHandler::Init()
- {
- if (!mSubstitutions.Init(32))
- return NS_ERROR_UNEXPECTED;
-
- nsresult rv;
-
- mIOService = do_GetIOService(&rv);
- NS_ENSURE_SUCCESS(rv, rv);
-
--#ifdef MOZ_OMNIJAR
-- nsCOMPtr<nsIFile> omniJar(mozilla::OmnijarPath());
-- if (omniJar)
-- return Init(omniJar);
--#endif
--
-- // these entries should be kept in sync with the omnijar Init function
-+ nsCAutoString appURI, greURI;
-+ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::APP, appURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::GRE, greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-
- //
-- // make resource:/// point to the application directory
-+ // make resource:/// point to the application directory or omnijar
- //
-- rv = AddSpecialDir(NS_OS_CURRENT_PROCESS_DIR, EmptyCString());
-+ nsCOMPtr<nsIURI> uri;
-+ rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = SetSubstitution(EmptyCString(), uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
- // make resource://gre/ point to the GRE directory
- //
-- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
-+ if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
-+ rv = NS_NewURI(getter_AddRefs(uri), greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ }
-+
-+ rv = SetSubstitution(kGRE, uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
- // but once I finish multiple chrome registration I'm not sure that it is needed
-
- // XXX dveditz: resource://pchrome/ defeats profile directory salting
- // if web content can load it. Tread carefully.
-
- return rv;
- }
-
--#ifdef MOZ_OMNIJAR
--nsresult
--nsResProtocolHandler::Init(nsIFile *aOmniJar)
--{
-- nsresult rv;
-- nsCOMPtr<nsIURI> uri;
-- nsCAutoString omniJarSpec;
-- NS_GetURLSpecFromActualFile(aOmniJar, omniJarSpec, mIOService);
--
-- nsCAutoString urlStr("jar:");
-- urlStr += omniJarSpec;
-- urlStr += "!/";
--
-- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- // these entries should be kept in sync with the normal Init function
--
-- // resource:/// points to jar:omni.jar!/
-- SetSubstitution(EmptyCString(), uri);
--
-- // resource://gre/ points to jar:omni.jar!/
-- SetSubstitution(kGRE, uri);
--
-- return NS_OK;
--}
--#endif
--
- #ifdef MOZ_IPC
- static PLDHashOperator
- EnumerateSubstitution(const nsACString& aKey,
- nsIURI* aURI,
- void* aArg)
- {
- nsTArray<ResourceMapping>* resources =
- static_cast<nsTArray<ResourceMapping>*>(aArg);
-diff --git a/startupcache/StartupCache.cpp b/startupcache/StartupCache.cpp
---- a/startupcache/StartupCache.cpp
-+++ b/startupcache/StartupCache.cpp
-@@ -237,27 +237,36 @@ StartupCache::GetBuffer(const char* id,
- nsZipItemPtr<char> zipItem(mArchive, id, true);
- if (zipItem) {
- *outbuf = zipItem.Forget();
- *length = zipItem.Length();
- return NS_OK;
- }
- }
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarReader()) {
-+ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)) {
- // no need to checksum omnijarred entries
-- nsZipItemPtr<char> zipItem(mozilla::OmnijarReader(), id);
-+ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::APP), id);
- if (zipItem) {
- *outbuf = zipItem.Forget();
- *length = zipItem.Length();
- return NS_OK;
- }
- }
--#endif
-+
-+ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) {
-+ // no need to checksum omnijarred entries
-+ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE), id);
-+ if (zipItem) {
-+ *outbuf = zipItem.Forget();
-+ *length = zipItem.Length();
-+ return NS_OK;
-+ }
-+ }
-+
- return NS_ERROR_NOT_AVAILABLE;
- }
-
- // Makes a copy of the buffer, client retains ownership of inbuf.
- nsresult
- StartupCache::PutBuffer(const char* id, const char* inbuf, PRUint32 len)
- {
- WaitOnWriteThread();
-diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
---- a/toolkit/xre/nsAppRunner.cpp
-+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3897,35 +3897,45 @@ XRE_InitCommandLine(int aArgc, char* aAr
- CommandLine::Init(aArgc, canonArgs);
-
- for (int i = 0; i < aArgc; ++i)
- free(canonArgs[i]);
- delete[] canonArgs;
- #endif
- #endif
-
--#ifdef MOZ_OMNIJAR
-- const char *omnijarPath = nsnull;
-- ArgResult ar = CheckArg("omnijar", PR_FALSE, &omnijarPath);
-+ const char *path = nsnull;
-+ ArgResult ar = CheckArg("grebase", PR_FALSE, &path);
- if (ar == ARG_BAD) {
-- PR_fprintf(PR_STDERR, "Error: argument -omnijar requires an omnijar path\n");
-+ PR_fprintf(PR_STDERR, "Error: argument -grebase requires a path argument\n");
- return NS_ERROR_FAILURE;
- }
-
-- if (!omnijarPath)
-+ if (!path)
- return rv;
-
-- nsCOMPtr<nsILocalFile> omnijar;
-- rv = NS_NewNativeLocalFile(nsDependentCString(omnijarPath), PR_TRUE,
-- getter_AddRefs(omnijar));
-- if (NS_SUCCEEDED(rv))
-- mozilla::SetOmnijar(omnijar);
--#endif
--
-- return rv;
-+ nsCOMPtr<nsILocalFile> greBase;
-+ rv = XRE_GetFileFromPath(path, getter_AddRefs(greBase));
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ ar = CheckArg("appbase", PR_FALSE, &path);
-+ if (ar == ARG_BAD) {
-+ PR_fprintf(PR_STDERR, "Error: argument -appbase requires a path argument\n");
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ nsCOMPtr<nsILocalFile> appBase;
-+ if (path) {
-+ rv = XRE_GetFileFromPath(path, getter_AddRefs(appBase));
-+ if (NS_FAILED(rv))
-+ return rv;
-+ }
-+
-+ return mozilla::Omnijar::SetBase(greBase, appBase);
- }
-
- nsresult
- XRE_DeinitCommandLine()
- {
- nsresult rv = NS_OK;
-
- #if defined(MOZ_IPC)
-diff --git a/toolkit/xre/nsEmbedFunctions.cpp b/toolkit/xre/nsEmbedFunctions.cpp
---- a/toolkit/xre/nsEmbedFunctions.cpp
-+++ b/toolkit/xre/nsEmbedFunctions.cpp
-@@ -512,19 +512,17 @@ XRE_InitChildProcess(int aArgc,
- }
-
- // Run the UI event loop on the main thread.
- uiMessageLoop.MessageLoop::Run();
-
- // Allow ProcessChild to clean up after itself before going out of
- // scope and being deleted
- process->CleanUp();
--#ifdef MOZ_OMNIJAR
-- mozilla::SetOmnijar(nsnull);
--#endif
-+ mozilla::Omnijar::SetBase(nsnull, nsnull);
- }
- }
-
- NS_LogTerm();
- return XRE_DeinitCommandLine();
- }
-
- MessageLoop*
-diff --git a/xpcom/build/Makefile.in b/xpcom/build/Makefile.in
---- a/xpcom/build/Makefile.in
-+++ b/xpcom/build/Makefile.in
-@@ -64,28 +64,25 @@ CSRCS = \
- $(NULL)
-
- CPPSRCS = \
- $(XPCOM_GLUE_SRC_LCPPSRCS) \
- $(XPCOM_GLUENS_SRC_LCPPSRCS) \
- nsXPComInit.cpp \
- nsXPCOMStrings.cpp \
- Services.cpp \
-+ Omnijar.cpp \
- $(NULL)
-
- ifndef MOZ_ENABLE_LIBXUL
- ifeq (,$(filter-out WINNT WINCE OS2,$(OS_ARCH)))
- CPPSRCS += dlldeps.cpp
- endif
- endif
-
--ifdef MOZ_OMNIJAR
--CPPSRCS += Omnijar.cpp
--endif
--
- SHARED_LIBRARY_LIBS = \
- $(DEPTH)/chrome/src/$(LIB_PREFIX)chrome_s.$(LIB_SUFFIX) \
- ../ds/$(LIB_PREFIX)xpcomds_s.$(LIB_SUFFIX) \
- ../io/$(LIB_PREFIX)xpcomio_s.$(LIB_SUFFIX) \
- ../components/$(LIB_PREFIX)xpcomcomponents_s.$(LIB_SUFFIX) \
- ../threads/$(LIB_PREFIX)xpcomthreads_s.$(LIB_SUFFIX) \
- ../proxy/src/$(LIB_PREFIX)xpcomproxy_s.$(LIB_SUFFIX) \
- ../base/$(LIB_PREFIX)xpcombase_s.$(LIB_SUFFIX) \
-diff --git a/xpcom/build/Omnijar.cpp b/xpcom/build/Omnijar.cpp
---- a/xpcom/build/Omnijar.cpp
-+++ b/xpcom/build/Omnijar.cpp
-@@ -16,16 +16,17 @@
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Michael Wu <mwu@mozilla.com>
-+ * Mike Hommey <mh@glandium.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
-@@ -33,69 +34,175 @@
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #include "Omnijar.h"
-
--#include "nsILocalFile.h"
--#include "nsXULAppAPI.h"
-+#include "nsIFile.h"
- #include "nsZipArchive.h"
-+#include "nsNetUtil.h"
-
--static nsILocalFile* sOmnijarPath = nsnull;
--static nsZipArchive* sOmnijarReader = nsnull;
-+namespace mozilla {
-
--static void
--SetupReader()
-+nsIFile *Omnijar::sPath[2] = { nsnull, nsnull };
-+PRBool Omnijar::sIsOmnijar[2] = { PR_FALSE, PR_FALSE };
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+nsZipArchive *Omnijar::sReader[2] = { nsnull, nsnull };
-+#endif
-+
-+static already_AddRefed<nsIFile>
-+ComputePath(nsIFile *aPath, PRBool &aIsOmnijar)
- {
-- if (!sOmnijarPath) {
-- return;
-+ PRBool isDir;
-+ aIsOmnijar = PR_FALSE;
-+ if (!aPath || NS_FAILED(aPath->IsDirectory(&isDir)) || !isDir)
-+ return nsnull;
-+
-+ nsCOMPtr<nsIFile> path;
-+#ifdef MOZ_ENABLE_LIBXUL
-+ // Search for omni.jar in the given directory
-+ if (!isDir || NS_FAILED(aPath->Clone(getter_AddRefs(path))))
-+ return nsnull;
-+
-+ if (NS_FAILED(path->AppendNative(NS_LITERAL_CSTRING("omni.jar"))))
-+ return nsnull;
-+
-+ if (NS_FAILED(path->Exists(&aIsOmnijar)))
-+ return nsnull;
-+#endif
-+
-+ if (!aIsOmnijar && NS_FAILED(aPath->Clone(getter_AddRefs(path))))
-+ return nsnull;
-+
-+ return path.forget();
-+}
-+
-+nsresult
-+Omnijar::SetBase(nsIFile *aGrePath, nsIFile *aAppPath)
-+{
-+ NS_ABORT_IF_FALSE(aGrePath || !aAppPath, "Omnijar::SetBase(NULL, something) call forbidden");
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+ if (sReader[GRE]) {
-+ sReader[GRE]->CloseArchive();
-+ delete sReader[GRE];
-+ }
-+ if (sReader[APP]) {
-+ sReader[APP]->CloseArchive();
-+ delete sReader[APP];
-+ }
-+ sReader[APP] = sReader[GRE] = nsnull;
-+#endif
-+
-+ nsresult rv;
-+ PRBool equals;
-+ if (aAppPath) {
-+ rv = aAppPath->Equals(aGrePath, &equals);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ } else {
-+ equals = PR_TRUE;
- }
-
-- nsZipArchive* zipReader = new nsZipArchive();
-- if (!zipReader) {
-- NS_IF_RELEASE(sOmnijarPath);
-- return;
-+ nsCOMPtr<nsIFile> grePath = ComputePath(aGrePath, sIsOmnijar[GRE]);
-+ nsCOMPtr<nsIFile> appPath = ComputePath(equals ? nsnull : aAppPath, sIsOmnijar[APP]);
-+
-+ NS_IF_RELEASE(sPath[GRE]);
-+ sPath[GRE] = grePath;
-+ NS_IF_ADDREF(sPath[GRE]);
-+
-+ NS_IF_RELEASE(sPath[APP]);
-+ sPath[APP] = appPath;
-+ NS_IF_ADDREF(sPath[APP]);
-+
-+ return NS_OK;
-+}
-+
-+already_AddRefed<nsIFile>
-+Omnijar::GetBase(Type aType)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ if (!sIsOmnijar[aType]) {
-+ NS_IF_ADDREF(sPath[aType]);
-+ return sPath[aType];
- }
-
-- if (NS_FAILED(zipReader->OpenArchive(sOmnijarPath))) {
-+ nsCOMPtr<nsIFile> file, path;
-+ if (NS_FAILED(sPath[aType]->Clone(getter_AddRefs(file))))
-+ return nsnull;
-+
-+ if (NS_FAILED(file->GetParent(getter_AddRefs(path))))
-+ return nsnull;
-+ return path.forget();
-+}
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+nsZipArchive *
-+Omnijar::GetReader(Type aType)
-+{
-+ if (!sIsOmnijar[aType])
-+ return nsnull;
-+
-+ if (sReader[aType])
-+ return sReader[aType];
-+
-+ nsZipArchive* zipReader = new nsZipArchive();
-+ if (!zipReader)
-+ return nsnull;
-+
-+ if (NS_FAILED(zipReader->OpenArchive(sPath[aType]))) {
- delete zipReader;
-- NS_IF_RELEASE(sOmnijarPath);
-- return;
-+ return nsnull;
- }
-
-- sOmnijarReader = zipReader;
-+ return (sReader[aType] = zipReader);
- }
-
--nsILocalFile*
--mozilla::OmnijarPath()
-+nsZipArchive *
-+Omnijar::GetReader(nsIFile *aPath)
- {
-- if (!sOmnijarReader)
-- SetupReader();
-+ PRBool equals;
-+ nsresult rv;
-
-- return sOmnijarPath;
-+ if (sIsOmnijar[GRE]) {
-+ rv = sPath[GRE]->Equals(aPath, &equals);
-+ if (NS_SUCCEEDED(rv) && equals)
-+ return GetReader(GRE);
-+ }
-+ if (sIsOmnijar[APP]) {
-+ rv = sPath[APP]->Equals(aPath, &equals);
-+ if (NS_SUCCEEDED(rv) && equals)
-+ return GetReader(APP);
-+ }
-+ return nsnull;
-+}
-+#endif
-+
-+nsresult
-+Omnijar::GetURIString(Type aType, nsCString &result)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ result = "";
-+
-+ if ((aType == APP) && (!sPath[APP]))
-+ return NS_OK;
-+
-+ nsCAutoString omniJarSpec;
-+ nsresult rv = NS_GetURLSpecFromActualFile(sPath[aType], omniJarSpec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ if (sIsOmnijar[aType]) {
-+ result = "jar:";
-+ result += omniJarSpec;
-+ result += "!";
-+ } else {
-+ result = omniJarSpec;
-+ }
-+ result += "/";
-+ return NS_OK;
- }
-
--nsZipArchive*
--mozilla::OmnijarReader()
--{
-- if (!sOmnijarReader)
-- SetupReader();
--
-- return sOmnijarReader;
--}
--
--void
--mozilla::SetOmnijar(nsILocalFile* aPath)
--{
-- NS_IF_RELEASE(sOmnijarPath);
-- if (sOmnijarReader) {
-- sOmnijarReader->CloseArchive();
-- delete sOmnijarReader;
-- sOmnijarReader = nsnull;
-- }
--
-- sOmnijarPath = aPath;
-- NS_IF_ADDREF(sOmnijarPath);
--}
--
-+} /* namespace mozilla */
-diff --git a/xpcom/build/Omnijar.h b/xpcom/build/Omnijar.h
---- a/xpcom/build/Omnijar.h
-+++ b/xpcom/build/Omnijar.h
-@@ -16,16 +16,17 @@
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Michael Wu <mwu@mozilla.com>
-+ * Mike Hommey <mh@glandium.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
-@@ -34,29 +35,137 @@
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #ifndef mozilla_Omnijar_h
- #define mozilla_Omnijar_h
-
--class nsILocalFile;
-+#include "nscore.h"
-+#include "nsTArray.h"
-+#include "nsCOMPtr.h"
-+#include "nsString.h"
-+
-+class nsIFile;
- class nsZipArchive;
--
--#ifdef MOZ_OMNIJAR
-+class nsIURI;
-
- namespace mozilla {
-
-+#ifdef MOZ_ENABLE_LIBXUL
-+#define OMNIJAR_EXPORT
-+#else
-+#define OMNIJAR_EXPORT NS_EXPORT
-+#endif
-+
-+class OMNIJAR_EXPORT Omnijar {
-+private:
- /**
-- * This returns the path to the omnijar.
-- * If the omnijar isn't available, this function will return null.
-- * Callers should fallback to flat packaging if null.
-+ * Store an nsIFile for either a base directory when there is no omni.jar,
-+ * or omni.jar itself. We can store two paths here, one for GRE
-+ * (corresponding to resource://gre/) and one for APP
-+ * (corresponding to resource:/// and resource://app/), but only
-+ * store one when both point to the same location (unified).
- */
--nsILocalFile *OmnijarPath();
--nsZipArchive *OmnijarReader();
--void SetOmnijar(nsILocalFile* aPath);
-+static nsIFile *sPath[2];
-+/**
-+ * Store whether the corresponding sPath is an omni.jar or a directory
-+ */
-+static PRBool sIsOmnijar[2];
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+/**
-+ * Cached nsZipArchives for the corresponding sPath
-+ */
-+static nsZipArchive *sReader[2];
-+#endif
-+
-+public:
-+enum Type {
-+ GRE = 0,
-+ APP = 1
-+};
-+
-+/**
-+ * Returns whether SetBase has been called at least once with
-+ * a valid nsIFile
-+ */
-+static PRBool
-+IsInitialized()
-+{
-+ // GRE path is always set after initialization.
-+ return sPath[0] != nsnull;
-+}
-+
-+/**
-+ * Sets the base directories for GRE and APP. APP base directory
-+ * may be nsnull, in case the APP and GRE directories are the same.
-+ */
-+static nsresult SetBase(nsIFile *aGrePath, nsIFile *aAppPath);
-+
-+/**
-+ * Returns an nsIFile pointing to the omni.jar file for GRE or APP.
-+ * Returns nsnull when there is no corresponding omni.jar.
-+ * Also returns nsnull for APP in the unified case.
-+ */
-+static already_AddRefed<nsIFile>
-+GetPath(Type aType)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ if (sIsOmnijar[aType]) {
-+ NS_IF_ADDREF(sPath[aType]);
-+ return sPath[aType];
-+ }
-+ return nsnull;
-+}
-+
-+/**
-+ * Returns whether GRE or APP use an omni.jar. Returns PR_False when
-+ * using an omni.jar in the unified case.
-+ */
-+static PRBool
-+HasOmnijar(Type aType)
-+{
-+ return sIsOmnijar[aType];
-+}
-+
-+/**
-+ * Returns the base directory for GRE or APP. In the unified case,
-+ * returns nsnull for APP.
-+ */
-+static already_AddRefed<nsIFile> GetBase(Type aType);
-+
-+/**
-+ * Returns a nsZipArchive pointer for the omni.jar file for GRE or
-+ * APP. Returns nsnull in the same cases GetPath() would.
-+ */
-+#ifdef MOZ_ENABLE_LIBXUL
-+static nsZipArchive *GetReader(Type aType);
-+#else
-+static nsZipArchive *GetReader(Type aType) { return nsnull; }
-+#endif
-+
-+/**
-+ * Returns a nsZipArchive pointer for the given path IAOI the given
-+ * path is the omni.jar for either GRE or APP.
-+ */
-+#ifdef MOZ_ENABLE_LIBXUL
-+static nsZipArchive *GetReader(nsIFile *aPath);
-+#else
-+static nsZipArchive *GetReader(nsIFile *aPath) { return nsnull; }
-+#endif
-+
-+/**
-+ * Returns the URI string corresponding to the omni.jar or directory
-+ * for GRE or APP. i.e. jar:/path/to/omni.jar!/ for omni.jar and
-+ * /path/to/base/dir/ otherwise. Returns an empty string for APP in
-+ * the unified case.
-+ * The returned URI is guaranteed to end with a slash.
-+ */
-+static nsresult GetURIString(Type aType, nsCString &result);
-+
-+}; /* class Omnijar */
-
- } /* namespace mozilla */
-
--#endif /* MOZ_OMNIJAR */
--
- #endif /* mozilla_Omnijar_h */
-diff --git a/xpcom/build/nsXPComInit.cpp b/xpcom/build/nsXPComInit.cpp
---- a/xpcom/build/nsXPComInit.cpp
-+++ b/xpcom/build/nsXPComInit.cpp
-@@ -462,35 +462,35 @@ NS_InitXPCOM2(nsIServiceManager* *result
- nsDirectoryService::gService->Set(NS_XPCOM_LIBRARY_FILE, xpcomLib);
- }
-
- if (appFileLocationProvider) {
- rv = nsDirectoryService::gService->RegisterProvider(appFileLocationProvider);
- if (NS_FAILED(rv)) return rv;
- }
-
--#ifdef MOZ_OMNIJAR
- NS_TIME_FUNCTION_MARK("Next: Omnijar init");
-
-- if (!mozilla::OmnijarPath()) {
-- nsCOMPtr<nsILocalFile> omnijar;
-+ if (!mozilla::Omnijar::IsInitialized()) {
-+ nsCOMPtr<nsILocalFile> greDir, appDir;
- nsCOMPtr<nsIFile> file;
-
-- rv = NS_ERROR_FAILURE;
- nsDirectoryService::gService->Get(NS_GRE_DIR,
- NS_GET_IID(nsIFile),
- getter_AddRefs(file));
-- if (file)
-- rv = file->Append(NS_LITERAL_STRING("omni.jar"));
-- if (NS_SUCCEEDED(rv))
-- omnijar = do_QueryInterface(file);
-- if (NS_SUCCEEDED(rv))
-- mozilla::SetOmnijar(omnijar);
-+ greDir = do_QueryInterface(file);
-+
-+ nsDirectoryService::gService->Get(NS_XPCOM_CURRENT_PROCESS_DIR,
-+ NS_GET_IID(nsIFile),
-+ getter_AddRefs(file));
-+ appDir = do_QueryInterface(file);
-+
-+ rv = mozilla::Omnijar::SetBase(greDir, appDir);
-+ NS_ENSURE_SUCCESS(rv, rv);
- }
--#endif
-
- #ifdef MOZ_IPC
- if ((sCommandLineWasInitialized = !CommandLine::IsInitialized())) {
- NS_TIME_FUNCTION_MARK("Next: IPC command line init");
-
- #ifdef OS_WIN
- CommandLine::Init(0, nsnull);
- #else
-@@ -769,18 +769,16 @@ ShutdownXPCOM(nsIServiceManager* servMgr
- sCommandLineWasInitialized = false;
- }
- if (sExitManager) {
- delete sExitManager;
- sExitManager = nsnull;
- }
- #endif
-
--#ifdef MOZ_OMNIJAR
-- mozilla::SetOmnijar(nsnull);
--#endif
-+ mozilla::Omnijar::SetBase(nsnull, nsnull);
-
- NS_LogTerm();
-
- return NS_OK;
- }
-
- } // namespace mozilla
-diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp
---- a/xpcom/components/nsComponentManager.cpp
-+++ b/xpcom/components/nsComponentManager.cpp
-@@ -175,18 +175,16 @@ NS_DEFINE_CID(kCategoryManagerCID, NS_CA
- #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) \
- NS_TIME_FUNCTION_MIN_FMT(5, "%s (line %d) (contractid: %s)", MOZ_FUNCTION_NAME, \
- __LINE__, (cid))
- #else
- #define COMPMGR_TIME_FUNCTION_CID(cid) do {} while (0)
- #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) do {} while (0)
- #endif
-
--#define kOMNIJAR_PREFIX NS_LITERAL_CSTRING("resource:///")
--
- nsresult
- nsGetServiceFromCategory::operator()(const nsIID& aIID, void** aInstancePtr) const
- {
- nsresult rv;
- nsXPIDLCString value;
- nsCOMPtr<nsICategoryManager> catman;
- nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager;
- if (!compMgr) {
-@@ -390,47 +388,44 @@ nsresult nsComponentManagerImpl::Init()
-
- nsCategoryManager::GetSingleton()->SuppressNotifications(true);
-
- RegisterModule(&kXPCOMModule, NULL);
-
- for (PRUint32 i = 0; i < sStaticModules->Length(); ++i)
- RegisterModule((*sStaticModules)[i], NULL);
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarPath()) {
-- nsCOMPtr<nsIZipReader> omnijarReader = new nsJAR();
-- rv = omnijarReader->Open(mozilla::OmnijarPath());
-- if (NS_SUCCEEDED(rv))
-- RegisterJarManifest(omnijarReader, "chrome.manifest", false);
-+ nsCOMPtr<nsIFile> appOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::APP);
-+ if (appOmnijar) {
-+ cl = sModuleLocations->InsertElementAt(1); // Insert after greDir
-+ cl->type = NS_COMPONENT_LOCATION;
-+ cl->location = do_QueryInterface(appOmnijar);
-+ cl->jar = true;
- }
--#endif
-+ nsCOMPtr<nsIFile> greOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::GRE);
-+ if (greOmnijar) {
-+ cl = sModuleLocations->InsertElementAt(0);
-+ cl->type = NS_COMPONENT_LOCATION;
-+ cl->location = do_QueryInterface(greOmnijar);
-+ cl->jar = true;
-+ }
-
- for (PRUint32 i = 0; i < sModuleLocations->Length(); ++i) {
- ComponentLocation& l = sModuleLocations->ElementAt(i);
- if (!l.jar) {
- RegisterManifestFile(l.type, l.location, false);
- continue;
- }
-
- nsCOMPtr<nsIZipReader> reader = do_CreateInstance(kZipReaderCID, &rv);
- rv = reader->Open(l.location);
- if (NS_SUCCEEDED(rv))
- RegisterJarManifest(reader, "chrome.manifest", false);
- }
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarPath()) {
-- cl = sModuleLocations->InsertElementAt(0);
-- cl->type = NS_COMPONENT_LOCATION;
-- cl->location = mozilla::OmnijarPath();
-- cl->jar = true;
-- }
--#endif
--
- nsCategoryManager::GetSingleton()->SuppressNotifications(false);
-
- mStatus = NORMAL;
-
- return NS_OK;
- }
-
- void
-# HG changeset patch
-# Parent ff1b810f78226d7f4010909d3cde05a57fdcf20c
-Bug 620931 part 4 - Fix resource://app/ to always point to the same as resource:///
-
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -74,16 +74,17 @@ static nsResProtocolHandler *gResHandler
- // set NSPR_LOG_FILE=log.txt
- //
- // this enables PR_LOG_ALWAYS level information and places all output in
- // the file log.txt
- //
- static PRLogModuleInfo *gResLog;
- #endif
-
-+#define kAPP NS_LITERAL_CSTRING("app")
- #define kGRE NS_LITERAL_CSTRING("gre")
-
- //----------------------------------------------------------------------------
- // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
- //----------------------------------------------------------------------------
-
- nsresult
- nsResURL::EnsureFile()
-@@ -179,16 +180,22 @@ nsResProtocolHandler::Init()
- nsCOMPtr<nsIURI> uri;
- rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
- NS_ENSURE_SUCCESS(rv, rv);
-
- rv = SetSubstitution(EmptyCString(), uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
-+ // make resource://app/ point to the application directory or omnijar
-+ //
-+ rv = SetSubstitution(kAPP, uri);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ //
- // make resource://gre/ point to the GRE directory
- //
- if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
- rv = NS_NewURI(getter_AddRefs(uri), greURI);
- NS_ENSURE_SUCCESS(rv, rv);
- }
-
- rv = SetSubstitution(kGRE, uri);
-diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
---- a/toolkit/xre/nsXREDirProvider.cpp
-+++ b/toolkit/xre/nsXREDirProvider.cpp
-@@ -300,19 +300,16 @@ nsXREDirProvider::GetFile(const char* aP
- }
- }
- else if (!strcmp(aProperty, XRE_EXECUTABLE_FILE) && gArgv[0]) {
- nsCOMPtr<nsILocalFile> lf;
- rv = XRE_GetBinaryPath(gArgv[0], getter_AddRefs(lf));
- if (NS_SUCCEEDED(rv))
- file = lf;
- }
-- else if (!strcmp(aProperty, "resource:app")) {
-- rv = GetAppDir()->Clone(getter_AddRefs(file));
-- }
-
- else if (!strcmp(aProperty, NS_APP_PROFILE_DIR_STARTUP) && mProfileDir) {
- return mProfileDir->Clone(aFile);
- }
- else if (!strcmp(aProperty, NS_APP_PROFILE_LOCAL_DIR_STARTUP)) {
- if (mProfileLocalDir)
- return mProfileLocalDir->Clone(aFile);
-
-# HG changeset patch
-# Parent 7d2228db71a299afca60babff632a967d2d6c456
-Bug 620931 part 5 - Enable omni.jar by default on xulrunner
-
-diff --git a/xulrunner/confvars.sh b/xulrunner/confvars.sh
---- a/xulrunner/confvars.sh
-+++ b/xulrunner/confvars.sh
-@@ -36,15 +36,16 @@
- #
- # ***** END LICENSE BLOCK *****
-
- MOZ_APP_NAME=xulrunner
- MOZ_APP_DISPLAYNAME=XULRunner
- MOZ_UPDATER=1
- MOZ_XULRUNNER=1
- MOZ_ENABLE_LIBXUL=1
-+MOZ_CHROME_FILE_FORMAT=omni
- MOZ_STATIC_BUILD_UNSUPPORTED=1
- MOZ_APP_VERSION=$MOZILLA_VERSION
- if test "$MOZ_STORAGE"; then
- MOZ_PLACES=1
- fi
- MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
- MOZ_URL_CLASSIFIER=1
diff --git a/staging/xulrunner/xulrunner-version.patch b/staging/xulrunner/xulrunner-version.patch
deleted file mode 100644
index 8e81b23ea..000000000
--- a/staging/xulrunner/xulrunner-version.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
---- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 01:58:19.663360705 -0800
-@@ -44,6 +44,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+MOZ_APP_VERSION="2.0"
-+
- NO_PKG_FILES = \
- xulrunner-config \
- regchrome* \
diff --git a/testing/avahi/PKGBUILD b/testing/avahi/PKGBUILD
new file mode 100644
index 000000000..63f079778
--- /dev/null
+++ b/testing/avahi/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 126809 2011-06-07 12:12:31Z bisson $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=avahi
+pkgver=0.6.30
+pkgrel=3
+pkgdesc='A multicast/unicast DNS-SD framework'
+arch=('i686' 'x86_64')
+url='http://www.avahi.org/'
+license=('LGPL')
+depends=('expat' 'libdaemon' 'glib2' 'dbus' 'libcap' 'gdbm')
+optdepends=('gtk3: avahi-discover-standalone, bshell, bssh, bvnc'
+ 'gtk2: gtk2 bindings'
+ 'qt3: qt3 bindings'
+ 'qt: qt bindings'
+ 'pygtk: avahi-bookmarks, avahi-discover'
+ 'twisted: avahi-bookmarks'
+ 'mono: mono bindings'
+ 'dbus-python: avahi-discover'
+ 'nss-mdns: NSS support for mDNS')
+makedepends=('qt' 'qt3' 'pygtk' 'mono' 'intltool' 'dbus-python'
+ 'gtk-sharp-2' 'gobject-introspection' 'gtk3')
+backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
+install=avahi.install
+conflicts=('howl' 'mdnsresponder')
+provides=('howl' 'mdnsresponder')
+replaces=('howl' 'mdnsresponder')
+options=('!libtool')
+source=("http://www.avahi.org/download/avahi-${pkgver}.tar.gz"
+ 'avahi-daemon-dbus.patch'
+ 'gnome-nettool.png')
+sha1sums=('5b77443537600a00770e4c77e3c443eeb5861d06'
+ '36735096a6eeb3a4012fe14f875259ee8558e220'
+ 'cf56387c88aed246b9f435efc182ef44de4d52f3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
+ patch -p1 -i "../avahi-daemon-dbus.patch"
+
+ # pygtk requires python2; make it explicit in case other python are installed: FS#21865
+ PYTHON=python2 \
+ PKG_CONFIG_PATH=/opt/qt/lib/pkgconfig \
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-monodoc \
+ --disable-doxygen-doc \
+ --disable-xmltoman \
+ --enable-compat-libdns_sd \
+ --enable-compat-howl \
+ --with-distro=archlinux \
+ --with-avahi-priv-access-group=network \
+ --with-autoipd-user=avahi \
+ --with-autoipd-group=avahi \
+ --with-systemdsystemunitdir=/lib/systemd/system # See FS#20999
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m 644 ../gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
+
+ cd "${pkgdir}"
+ sed -i '1c #!/usr/bin/python2' usr/bin/avahi-{bookmarks,discover}
+ # howl and mdnsresponder compatability
+ (cd usr/include; ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h; ln -s avahi-compat-howl howl)
+ (cd usr/lib/pkgconfig; ln -s avahi-compat-howl.pc howl.pc)
+}
diff --git a/testing/avahi/avahi-daemon-dbus.patch b/testing/avahi/avahi-daemon-dbus.patch
new file mode 100644
index 000000000..ef7272082
--- /dev/null
+++ b/testing/avahi/avahi-daemon-dbus.patch
@@ -0,0 +1,11 @@
+diff -aur old/initscript/archlinux/avahi-daemon.in new/initscript/archlinux/avahi-daemon.in
+--- old/initscript/archlinux/avahi-daemon.in 2010-06-29 05:30:35.000000000 +0200
++++ new/initscript/archlinux/avahi-daemon.in 2011-06-07 12:20:03.237701492 +0200
+@@ -33,6 +33,7 @@
+
+ case "$1" in
+ start)
++ ck_daemon dbus && /etc/rc.d/dbus start
+ stat_busy "Starting $DESC"
+ $DAEMON -D > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
diff --git a/testing/avahi/avahi.install b/testing/avahi/avahi.install
new file mode 100644
index 000000000..7c75c3dd4
--- /dev/null
+++ b/testing/avahi/avahi.install
@@ -0,0 +1,21 @@
+post_install() {
+ getent group avahi &>/dev/null || groupadd -r -g 84 avahi >/dev/null
+ getent passwd avahi &>/dev/null || useradd -r -u 84 -g avahi -d / -s /bin/false -c avahi avahi >/dev/null
+
+ cat <<EOF
+==> The following daemons may be added to DAEMONS in /etc/rc.conf:
+==> avahi-daemon: the mdns responder, you probably want this.
+==> dbus needs to be running when you start it.
+==> avahi-dnsconfd: daemon used for peer-to-peer automatic dns
+==> configuration on dhcp-less networks.
+
+==> To use some of the client applications you will have to install python.
+==> In addition, pygtk is required for the graphical ones and
+==> twisted for avahi-bookmarks.
+EOF
+}
+
+post_remove() {
+ getent passwd avahi &>/dev/null && userdel avahi >/dev/null
+ getent group avahi &>/dev/null && groupdel avahi >/dev/null
+}
diff --git a/testing/avahi/gnome-nettool.png b/testing/avahi/gnome-nettool.png
new file mode 100644
index 000000000..227d0678a
--- /dev/null
+++ b/testing/avahi/gnome-nettool.png
Binary files differ
diff --git a/testing/binutils/PKGBUILD b/testing/binutils/PKGBUILD
new file mode 100644
index 000000000..bcfd44008
--- /dev/null
+++ b/testing/binutils/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 126772 2011-06-07 07:37:01Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils
+pkgver=2.21
+pkgrel=9
+_date=20110605
+pkgdesc="A set of programs to assemble and manipulate binary and object files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('base')
+depends=('glibc>=2.14' 'zlib')
+makedepends=('dejagnu')
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
+md5sums=('a2e7784d5d66c1d692a0a1fa248ea66c')
+
+mksource() {
+ mkdir ${pkgname}-${_date}
+ cd ${pkgname}-${_date}
+ export _TAG=binutils-2_21-branch
+ export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
+ cvs -z9 co -r $_TAG binutils || return 1
+ mv src binutils
+ tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/*
+}
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib"
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared $CONFIGFLAG
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+}
+
+check() {
+ cd ${srcdir}/binutils-build
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/testing/binutils/binutils.install b/testing/binutils/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/testing/binutils/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/cairo-perl/PKGBUILD b/testing/cairo-perl/PKGBUILD
deleted file mode 100644
index b697e5e16..000000000
--- a/testing/cairo-perl/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id: PKGBUILD 124873 2011-05-24 21:13:32Z remy $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=cairo-perl
-_realname=Cairo
-pkgver=1.061
-pkgrel=4
-pkgdesc="Perl wrappers for cairo"
-arch=(i686 x86_64)
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-options=('!emptydirs')
-depends=('cairo>=1.8.10' 'perl>=5.14')
-makedepends=('perl-extutils-depends' 'perl-extutils-pkgconfig')
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('08cd5e847f61858651fc4de769066e88')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-check() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make test || true
-}
-
-package() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/claws-mail-extra-plugins/PKGBUILD b/testing/claws-mail-extra-plugins/PKGBUILD
deleted file mode 100644
index 9d233d726..000000000
--- a/testing/claws-mail-extra-plugins/PKGBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# $Id: PKGBUILD 125144 2011-05-25 19:01:27Z foutrelis $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Mildred <mildred593 at online dot fr>
-
-pkgname=claws-mail-extra-plugins
-pkgver=3.7.9
-pkgrel=4
-pkgdesc="Extra plugins for claws-mail"
-url="http://www.claws-mail.org/plugins.php?branch=EXT"
-license=('GPL3')
-arch=('i686' 'x86_64')
-depends=('claws-mail>=3.7.8')
-makedepends=('make' 'bc' 'perl>=5.10.1-5' 'libgtkhtml>=2.11.1-2' 'libnotify>=0.7'
- 'libxml2>=2.7.6' 'curl>=7.19.7' 'libytnef>=1.5-2' 'libwebkit>=1.3.13'
- 'pygtk>=2.16.0' 'libsoup-gnome' 'libcanberra')
-optdepends=('libgtkhtml: for gtkhtml2_viewer plugin'
- 'perl: for perl plugin'
- 'libnotify: for notification plugin'
- 'libcanberra: for notification plugin'
- 'dbus-core: for notification plugin'
- 'libxml2: for gtkhtml2_viewer and rssyl plugins'
- 'curl: for gtkhtml2_viewer, vcalendar, rssyl and spamreport plugins'
- 'libarchive: for archive plugin'
- 'libytnef: for tnef_parse plugin'
- 'libwebkit: for the fancy webkit html plugin'
- 'libsoup-gnome: for the fancy webkit html plugin'
- 'python2: for python plugin')
-conflicts=('claws-gtkhtml2_viewer' 'claws-mail-acpinotifier-plugin'
- 'sylpheed-claws-gtkhtml2-plugin' 'sylpheed-claws-rssyl-plugin'
- 'sylpheed-claws-extra-plugins' 'claws-tnef-plugin'
- 'claws-webkit-plugin-svn' 'claws-mayflower-plugin-svn')
-replaces=('sylpheed-claws-extra-plugins')
-options=('!libtool' '!strip')
-source=(http://downloads.sourceforge.net/project/sylpheed-claws/extra%20plugins/$pkgver/claws-mail-extra-plugins-$pkgver.tar.bz2
- claws-mail-notification-0.26-libnotify-0.7.patch)
-md5sums=('3d1ebc48f686ab10702380c776b5d5d0'
- 'a02be84594ebd28b18811ccc358509be')
-
-build() {
- cd "$srcdir/claws-mail-extra-plugins-$pkgver"
-
- # fix for python2
- export PYTHON="/usr/bin/python2"
-
- for dir in */; do
- [[ $dir != geolocation_plugin-* ]] && (
- cd $dir
-
- [[ $dir == notification_plugin-* ]] &&
- patch -Np2 -i "$srcdir/claws-mail-notification-0.26-libnotify-0.7.patch"
-
- ./configure --prefix=/usr --disable-static
- make
- )
- done
-}
-
-package() {
- cd "$srcdir/claws-mail-extra-plugins-$pkgver"
- for dir in */; do
- [[ $dir != geolocation_plugin-* ]] &&
- make -C $dir DESTDIR="$pkgdir" install
- done
-
- # fix fileconflict with libical, #11485
- rm -f "$pkgdir/usr/include/ical.h"
-}
diff --git a/testing/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch b/testing/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch
deleted file mode 100644
index efc06a472..000000000
--- a/testing/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Nur claws-mail-extra-plugins-3.7.6-orig/notification_plugin-0.25/src/notification_popup.c claws-mail-extra-plugins-3.7.6/notification_plugin-0.25/src/notification_popup.c
---- claws-mail-extra-plugins-3.7.6-orig/notification_plugin-0.25/src/notification_popup.c 2009-04-26 03:05:05.000000000 +0200
-+++ claws-mail-extra-plugins-3.7.6/notification_plugin-0.25/src/notification_popup.c 2010-11-12 13:39:02.363909583 +0100
-@@ -339,7 +339,7 @@
- break;
- }
-
-- ppopup->notification = notify_notification_new(summary, utf8_str, NULL, NULL);
-+ ppopup->notification = notify_notification_new(summary, utf8_str, NULL);
- g_free(utf8_str);
- if(ppopup->notification == NULL) {
- debug_print("Notification Plugin: Failed to create a new "
-diff -Nur claws-mail-extra-plugins-3.7.6-orig/notification_plugin-0.25/src/notification_trayicon.c claws-mail-extra-plugins-3.7.6/notification_plugin-0.25/src/notification_trayicon.c
---- claws-mail-extra-plugins-3.7.6-orig/notification_plugin-0.25/src/notification_trayicon.c 2010-03-25 09:56:34.000000000 +0100
-+++ claws-mail-extra-plugins-3.7.6/notification_plugin-0.25/src/notification_trayicon.c 2010-11-12 13:38:30.809340907 +0100
-@@ -589,8 +589,7 @@
- summary = notification_trayicon_popup_assemble_summary();
- utf8_str = notification_trayicon_popup_assemble_body(msginfo);
-
-- popup.notification = notify_notification_new(summary, utf8_str, NULL, NULL);
-- notify_notification_attach_to_status_icon(popup.notification, trayicon);
-+ popup.notification = notify_notification_new(summary, utf8_str, NULL);
-
- g_free(summary);
- g_free(utf8_str);
diff --git a/testing/coreutils/PKGBUILD b/testing/coreutils/PKGBUILD
deleted file mode 100644
index 8fdbe0149..000000000
--- a/testing/coreutils/PKGBUILD
+++ /dev/null
@@ -1,69 +0,0 @@
-# $Id: PKGBUILD 126199 2011-06-02 14:37:57Z bisson $
-# Maintainer: Allan McRae <allan@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-
-pkgname=coreutils
-pkgver=8.12
-pkgrel=2
-pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
-arch=('i686' 'x86_64')
-license=('GPL3')
-url="http://www.gnu.org/software/coreutils"
-groups=('base')
-depends=('glibc' 'shadow' 'pam' 'acl' 'gmp' 'libcap')
-replaces=('mktemp')
-backup=('etc/pam.d/su')
-install=${pkgname}.install
-options=('!emptydirs')
-source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz
- coreutils-uname.patch
- coreutils-pam.patch
- su.pam)
-md5sums=('0f7d43c2d2e24314b43a6c6267e25b90'
- 'c4fcca138b6abf6d443d48a6f0cd8833'
- 'aad79a2aa6d566c375d7bdd1b0767278'
- 'fa85e5cce5d723275b14365ba71a8aad')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
-
- # added su wheel group pam patch (from fedora git)
- patch -Np1 -i ${srcdir}/coreutils-pam.patch
-
- # linux specific uname improvement (from gentoo portage)
- patch -Np1 -i ${srcdir}/coreutils-uname.patch
-
- autoreconf -v
- ./configure --prefix=/usr \
- --enable-install-program=su,hostname \
- --enable-no-install-program=groups,kill,uptime \
- --enable-pam
- make
-}
-
-check() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make RUN_EXPENSIVE_TESTS=yes check
-}
-
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
-
- cd ${pkgdir}/usr/bin
- install -dm755 ${pkgdir}/{bin,usr/sbin}
-
- # binaries required by FHS
- _fhs="cat chgrp chmod chown cp date dd df echo false hostname \
- ln ls mkdir mknod mv pwd rm rmdir stty su sync true uname"
- mv ${_fhs} ${pkgdir}/bin
-
- # binaries required by various Arch scripts
- _bin="cut dir dircolors du install mkfifo readlink shred \
- sleep touch tr vdir"
- mv ${_bin} ${pkgdir}/bin
- ln -sf /bin/sleep ${pkgdir}/usr/bin/sleep
-
- mv chroot ${pkgdir}/usr/sbin
- install -Dm644 ${srcdir}/su.pam ${pkgdir}/etc/pam.d/su
-}
diff --git a/testing/coreutils/coreutils-pam.patch b/testing/coreutils/coreutils-pam.patch
deleted file mode 100644
index e61908f3f..000000000
--- a/testing/coreutils/coreutils-pam.patch
+++ /dev/null
@@ -1,428 +0,0 @@
-diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac
---- coreutils-8.4-orig/configure.ac 2010-01-11 18:20:42.000000000 +0100
-+++ coreutils-8.4/configure.ac 2010-02-12 10:17:46.000000000 +0100
-@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then
- AC_SUBST([GNULIB_WARN_CFLAGS])
- fi
-
-+dnl Give the chance to enable PAM
-+AC_ARG_ENABLE(pam, dnl
-+[ --enable-pam Enable use of the PAM libraries],
-+[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM])
-+LIB_PAM="-ldl -lpam -lpam_misc"
-+AC_SUBST(LIB_PAM)])
-+
- AC_FUNC_FORK
-
- optional_bin_progs=
-diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi
---- coreutils-8.4-orig/doc/coreutils.texi 2010-01-03 18:06:20.000000000 +0100
-+++ coreutils-8.4/doc/coreutils.texi 2010-02-12 10:17:46.000000000 +0100
-@@ -15081,8 +15081,11 @@ to certain shells, etc.).
- @findex syslog
- @command{su} can optionally be compiled to use @code{syslog} to report
- failed, and optionally successful, @command{su} attempts. (If the system
--supports @code{syslog}.) However, GNU @command{su} does not check if the
--user is a member of the @code{wheel} group; see below.
-+supports @code{syslog}.)
-+
-+This version of @command{su} has support for using PAM for
-+authentication. You can edit @file{/etc/pam.d/su} to customize its
-+behaviour.
-
- The program accepts the following options. Also see @ref{Common options}.
-
-@@ -15124,6 +15127,8 @@ environment variables except @env{TERM},
- @env{PATH} to a compiled-in default value. Change to @var{user}'s home
- directory. Prepend @samp{-} to the shell's name, intended to make it
- read its login startup file(s).
-+Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables
-+are preserved as well for PAM functionality.
-
- @item -m
- @itemx -p
-@@ -15163,33 +15168,6 @@ Exit status:
- the exit status of the subshell otherwise
- @end display
-
--@cindex wheel group, not supported
--@cindex group wheel, not supported
--@cindex fascism
--@subsection Why GNU @command{su} does not support the @samp{wheel} group
--
--(This section is by Richard Stallman.)
--
--@cindex Twenex
--@cindex MIT AI lab
--Sometimes a few of the users try to hold total power over all the
--rest. For example, in 1984, a few users at the MIT AI lab decided to
--seize power by changing the operator password on the Twenex system and
--keeping it secret from everyone else. (I was able to thwart this coup
--and give power back to the users by patching the kernel, but I
--wouldn't know how to do that in Unix.)
--
--However, occasionally the rulers do tell someone. Under the usual
--@command{su} mechanism, once someone learns the root password who
--sympathizes with the ordinary users, he or she can tell the rest. The
--``wheel group'' feature would make this impossible, and thus cement the
--power of the rulers.
--
--I'm on the side of the masses, not that of the rulers. If you are
--used to supporting the bosses and sysadmins in whatever they do, you
--might find this idea strange at first.
--
--
- @node timeout invocation
- @section @command{timeout}: Run a command with a time limit
-
-diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am
---- coreutils-8.4-orig/src/Makefile.am 2010-01-03 18:06:20.000000000 +0100
-+++ coreutils-8.4/src/Makefile.am 2010-02-12 10:17:46.000000000 +0100
-@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP)
- uptime_LDADD += $(GETLOADAVG_LIBS)
-
- # for crypt
--su_LDADD += $(LIB_CRYPT)
-+su_LDADD += $(LIB_CRYPT) @LIB_PAM@
-
- # for various ACL functions
- copy_LDADD += $(LIB_ACL)
-diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c
---- coreutils-8.4-orig/src/su.c 2010-02-12 10:15:15.000000000 +0100
-+++ coreutils-8.4/src/su.c 2010-02-12 10:24:29.000000000 +0100
-@@ -37,6 +37,16 @@
- restricts who can su to UID 0 accounts. RMS considers that to
- be fascist.
-
-+#ifdef USE_PAM
-+
-+ Actually, with PAM, su has nothing to do with whether or not a
-+ wheel group is enforced by su. RMS tries to restrict your access
-+ to a su which implements the wheel group, but PAM considers that
-+ to be fascist, and gives the user/sysadmin the opportunity to
-+ enforce a wheel group by proper editing of /etc/pam.conf
-+
-+#endif
-+
- Compile-time options:
- -DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog.
- -DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog.
-@@ -53,6 +63,15 @@
- #include <pwd.h>
- #include <grp.h>
-
-+#ifdef USE_PAM
-+# include <signal.h>
-+# include <sys/wait.h>
-+# include <sys/fsuid.h>
-+# include <unistd.h>
-+# include <security/pam_appl.h>
-+# include <security/pam_misc.h>
-+#endif /* USE_PAM */
-+
- #include "system.h"
- #include "getpass.h"
-
-@@ -120,10 +139,17 @@
- /* The user to become if none is specified. */
- #define DEFAULT_USER "root"
-
-+#ifndef USE_PAM
- char *crypt (char const *key, char const *salt);
-+#endif
-
--static void run_shell (char const *, char const *, char **, size_t)
-+static void run_shell (char const *, char const *, char **, size_t,
-+ const struct passwd *)
-+#ifdef USE_PAM
-+ ;
-+#else
- ATTRIBUTE_NORETURN;
-+#endif
-
- /* If true, pass the `-f' option to the subshell. */
- static bool fast_startup;
-@@ -209,7 +235,26 @@ log_su (struct passwd const *pw, bool su
- }
- #endif
-
-+#ifdef USE_PAM
-+static pam_handle_t *pamh = NULL;
-+static int retval;
-+static struct pam_conv conv = {
-+ misc_conv,
-+ NULL
-+};
-+
-+#define PAM_BAIL_P if (retval) { \
-+ pam_end(pamh, PAM_SUCCESS); \
-+ return 0; \
-+}
-+#define PAM_BAIL_P_VOID if (retval) { \
-+ pam_end(pamh, PAM_SUCCESS); \
-+return; \
-+}
-+#endif
-+
- /* Ask the user for a password.
-+ If PAM is in use, let PAM ask for the password if necessary.
- Return true if the user gives the correct password for entry PW,
- false if not. Return true without asking for a password if run by UID 0
- or if PW has an empty password. */
-@@ -217,6 +262,44 @@ log_su (struct passwd const *pw, bool su
- static bool
- correct_password (const struct passwd *pw)
- {
-+#ifdef USE_PAM
-+ struct passwd *caller;
-+ char *tty_name, *ttyn;
-+ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
-+ PAM_BAIL_P;
-+
-+ if (getuid() != 0 && !isatty(0)) {
-+ fprintf(stderr, "standard in must be a tty\n");
-+ exit(1);
-+ }
-+
-+ caller = getpwuid(getuid());
-+ if(caller != NULL && caller->pw_name != NULL) {
-+ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name);
-+ PAM_BAIL_P;
-+ }
-+
-+ ttyn = ttyname(0);
-+ if (ttyn) {
-+ if (strncmp(ttyn, "/dev/", 5) == 0)
-+ tty_name = ttyn+5;
-+ else
-+ tty_name = ttyn;
-+ retval = pam_set_item(pamh, PAM_TTY, tty_name);
-+ PAM_BAIL_P;
-+ }
-+ retval = pam_authenticate(pamh, 0);
-+ PAM_BAIL_P;
-+ retval = pam_acct_mgmt(pamh, 0);
-+ if (retval == PAM_NEW_AUTHTOK_REQD) {
-+ /* password has expired. Offer option to change it. */
-+ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
-+ PAM_BAIL_P;
-+ }
-+ PAM_BAIL_P;
-+ /* must be authenticated if this point was reached */
-+ return 1;
-+#else /* !USE_PAM */
- char *unencrypted, *encrypted, *correct;
- #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
- /* Shadow passwd stuff for SVR3 and maybe other systems. */
-@@ -241,6 +324,7 @@ correct_password (const struct passwd *p
- encrypted = crypt (unencrypted, correct);
- memset (unencrypted, 0, strlen (unencrypted));
- return STREQ (encrypted, correct);
-+#endif /* !USE_PAM */
- }
-
- /* Update `environ' for the new shell based on PW, with SHELL being
-@@ -254,12 +338,18 @@ modify_environment (const struct passwd
- /* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH.
- Unset all other environment variables. */
- char const *term = getenv ("TERM");
-+ char const *display = getenv ("DISPLAY");
-+ char const *xauthority = getenv ("XAUTHORITY");
- if (term)
- term = xstrdup (term);
- environ = xmalloc ((6 + !!term) * sizeof (char *));
- environ[0] = NULL;
- if (term)
- xsetenv ("TERM", term);
-+ if (display)
-+ xsetenv ("DISPLAY", display);
-+ if (xauthority)
-+ xsetenv ("XAUTHORITY", xauthority);
- xsetenv ("HOME", pw->pw_dir);
- xsetenv ("SHELL", shell);
- xsetenv ("USER", pw->pw_name);
-@@ -292,8 +382,13 @@ change_identity (const struct passwd *pw
- {
- #ifdef HAVE_INITGROUPS
- errno = 0;
-- if (initgroups (pw->pw_name, pw->pw_gid) == -1)
-+ if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
-+#ifdef USE_PAM
-+ pam_close_session(pamh, 0);
-+ pam_end(pamh, PAM_ABORT);
-+#endif
- error (EXIT_CANCELED, errno, _("cannot set groups"));
-+ }
- endgrent ();
- #endif
- if (setgid (pw->pw_gid))
-@@ -302,6 +397,31 @@ change_identity (const struct passwd *pw
- error (EXIT_CANCELED, errno, _("cannot set user id"));
- }
-
-+#ifdef USE_PAM
-+static int caught=0;
-+/* Signal handler for parent process later */
-+static void su_catch_sig(int sig)
-+{
-+ ++caught;
-+}
-+
-+int
-+pam_copyenv (pam_handle_t *pamh)
-+{
-+ char **env;
-+
-+ env = pam_getenvlist(pamh);
-+ if(env) {
-+ while(*env) {
-+ if (putenv (*env))
-+ xalloc_die ();
-+ env++;
-+ }
-+ }
-+ return(0);
-+}
-+#endif
-+
- /* Run SHELL, or DEFAULT_SHELL if SHELL is empty.
- If COMMAND is nonzero, pass it to the shell with the -c option.
- Pass ADDITIONAL_ARGS to the shell as more arguments; there
-@@ -309,17 +429,49 @@ change_identity (const struct passwd *pw
-
- static void
- run_shell (char const *shell, char const *command, char **additional_args,
-- size_t n_additional_args)
-+ size_t n_additional_args, const struct passwd *pw)
- {
- size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
- char const **args = xnmalloc (n_args, sizeof *args);
- size_t argno = 1;
-+#ifdef USE_PAM
-+ int child;
-+ sigset_t ourset;
-+ int status;
-+
-+ retval = pam_open_session(pamh,0);
-+ if (retval != PAM_SUCCESS) {
-+ fprintf (stderr, "could not open session\n");
-+ exit (1);
-+ }
-+
-+/* do this at the last possible moment, because environment variables may
-+ be passed even in the session phase
-+*/
-+ if(pam_copyenv(pamh) != PAM_SUCCESS)
-+ fprintf (stderr, "error copying PAM environment\n");
-+
-+ /* Credentials should be set in the parent */
-+ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) {
-+ pam_close_session(pamh, 0);
-+ fprintf(stderr, "could not set PAM credentials\n");
-+ exit(1);
-+ }
-+
-+ child = fork();
-+ if (child == 0) { /* child shell */
-+ change_identity (pw);
-+ pam_end(pamh, 0);
-+#endif
-
- if (simulate_login)
- {
- char *arg0;
- char *shell_basename;
-
-+ if(chdir(pw->pw_dir))
-+ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
-+
- shell_basename = last_component (shell);
- arg0 = xmalloc (strlen (shell_basename) + 2);
- arg0[0] = '-';
-@@ -344,6 +496,67 @@ run_shell (char const *shell, char const
- error (0, errno, "%s", shell);
- exit (exit_status);
- }
-+#ifdef USE_PAM
-+ } else if (child == -1) {
-+ fprintf(stderr, "can not fork user shell: %s", strerror(errno));
-+ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
-+ pam_close_session(pamh, 0);
-+ pam_end(pamh, PAM_ABORT);
-+ exit(1);
-+ }
-+ /* parent only */
-+ sigfillset(&ourset);
-+ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) {
-+ fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME);
-+ caught = 1;
-+ }
-+ if (!caught) {
-+ struct sigaction action;
-+ action.sa_handler = su_catch_sig;
-+ sigemptyset(&action.sa_mask);
-+ action.sa_flags = 0;
-+ sigemptyset(&ourset);
-+ if (sigaddset(&ourset, SIGTERM)
-+ || sigaddset(&ourset, SIGALRM)
-+ || sigaction(SIGTERM, &action, NULL)
-+ || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) {
-+ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
-+ caught = 1;
-+ }
-+ }
-+ if (!caught) {
-+ do {
-+ int pid;
-+
-+ pid = waitpid(-1, &status, WUNTRACED);
-+
-+ if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) {
-+ kill(getpid(), WSTOPSIG(status));
-+ /* once we get here, we must have resumed */
-+ kill(pid, SIGCONT);
-+ }
-+ } while (0 != WIFSTOPPED(status));
-+ }
-+
-+ if (caught) {
-+ fprintf(stderr, "\nSession terminated, killing shell...");
-+ kill (child, SIGTERM);
-+ }
-+ /* Not checking retval on this because we need to call close session */
-+ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
-+ retval = pam_close_session(pamh, 0);
-+ PAM_BAIL_P_VOID;
-+ retval = pam_end(pamh, PAM_SUCCESS);
-+ PAM_BAIL_P_VOID;
-+ if (caught) {
-+ sleep(2);
-+ kill(child, SIGKILL);
-+ fprintf(stderr, " ...killed.\n");
-+ exit(-1);
-+ }
-+ exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status)
-+ : WTERMSIG (status) + 128);
-+#endif /* USE_PAM */
- }
-
- /* Return true if SHELL is a restricted shell (one not returned by
-@@ -511,9 +724,9 @@ main (int argc, char **argv)
- shell = xstrdup (shell ? shell : pw->pw_shell);
- modify_environment (pw, shell);
-
-+#ifndef USE_PAM
- change_identity (pw);
-- if (simulate_login && chdir (pw->pw_dir) != 0)
-- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
-+#endif
-
- /* error() flushes stderr, but does not check for write failure.
- Normally, we would catch this via our atexit() hook of
-@@ -523,5 +736,5 @@ main (int argc, char **argv)
- if (ferror (stderr))
- exit (EXIT_CANCELED);
-
-- run_shell (shell, command, argv + optind, MAX (0, argc - optind));
-+ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
- }
diff --git a/testing/coreutils/coreutils-uname.patch b/testing/coreutils/coreutils-uname.patch
deleted file mode 100644
index b458abeba..000000000
--- a/testing/coreutils/coreutils-uname.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
-
-Prob not suitable for upstream seeing as how it's 100% linux-specific
-http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
-
-Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but
-heavily reworked to suck less.
-
-To add support for additional platforms, check out the show_cpuinfo()
-func in the linux/arch/<ARCH>/ source tree of the kernel.
-
---- coreutils/src/uname.c
-+++ coreutils/src/uname.c
-@@ -50,6 +50,11 @@
- # include <mach-o/arch.h>
- #endif
-
-+#if defined(__linux__)
-+# define USE_PROCINFO
-+# define UNAME_HARDWARE_PLATFORM
-+#endif
-+
- #include "system.h"
- #include "error.h"
- #include "quote.h"
-@@ -138,6 +143,117 @@
- exit (status);
- }
-
-+#if defined(USE_PROCINFO)
-+
-+# if defined(__s390__) || defined(__s390x__)
-+# define CPUINFO_FILE "/proc/sysinfo"
-+# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c"
-+# else
-+# define CPUINFO_FILE "/proc/cpuinfo"
-+# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c"
-+# endif
-+
-+# define PROCINFO_PROCESSOR 0
-+# define PROCINFO_HARDWARE_PLATFORM 1
-+
-+static void __eat_cpuinfo_space(char *buf)
-+{
-+ /* first eat trailing space */
-+ char *tmp = buf + strlen(buf) - 1;
-+ while (tmp > buf && isspace(*tmp))
-+ *tmp-- = '\0';
-+ /* then eat leading space */
-+ tmp = buf;
-+ while (*tmp && isspace(*tmp))
-+ tmp++;
-+ if (tmp != buf)
-+ memmove(buf, tmp, strlen(tmp)+1);
-+ /* finally collapse whitespace */
-+ tmp = buf;
-+ while (tmp[0] && tmp[1]) {
-+ if (isspace(tmp[0]) && isspace(tmp[1])) {
-+ memmove(tmp, tmp+1, strlen(tmp));
-+ continue;
-+ }
-+ ++tmp;
-+ }
-+}
-+
-+static int __linux_procinfo(int x, char *fstr, size_t s)
-+{
-+ FILE *fp;
-+
-+ char *procinfo_keys[] = {
-+ /* --processor --hardware-platform */
-+ #if defined(__alpha__)
-+ "cpu model", "system type"
-+ #elif defined(__arm__)
-+ "Processor", "Hardware"
-+ #elif defined(__avr32__)
-+ "processor", "cpu family"
-+ #elif defined(__bfin__)
-+ "CPU", "BOARD Name"
-+ #elif defined(__cris__)
-+ "cpu", "cpu model"
-+ #elif defined(__frv__)
-+ "CPU-Core", "System"
-+ #elif defined(__i386__) || defined(__x86_64__)
-+ "model name", "vendor_id"
-+ #elif defined(__ia64__)
-+ "family", "vendor"
-+ #elif defined(__hppa__)
-+ "cpu", "model"
-+ #elif defined(__m68k__)
-+ "CPU", "MMU"
-+ #elif defined(__mips__)
-+ "cpu model", "system type"
-+ #elif defined(__powerpc__) || defined(__powerpc64__)
-+ "cpu", "machine"
-+ #elif defined(__s390__) || defined(__s390x__)
-+ "Type", "Manufacturer"
-+ #elif defined(__sh__)
-+ "cpu type", "machine"
-+ #elif defined(sparc) || defined(__sparc__)
-+ "type", "cpu"
-+ #elif defined(__vax__)
-+ "cpu type", "cpu"
-+ #else
-+ "unknown", "unknown"
-+ #endif
-+ };
-+
-+ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
-+ char key[65], value[257], eol, *ret = NULL;
-+
-+ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
-+ __eat_cpuinfo_space(key);
-+ if (!strcmp(key, procinfo_keys[x])) {
-+ __eat_cpuinfo_space(value);
-+ ret = value;
-+ break;
-+ }
-+ if (eol != '\n') {
-+ /* we need two fscanf's here in case the previous
-+ * length limit caused us to read right up to the
-+ * newline ... doing "%*[^\n]\n" wont eat the newline
-+ */
-+ fscanf(fp, "%*[^\n]");
-+ fscanf(fp, "\n");
-+ }
-+ }
-+ fclose(fp);
-+
-+ if (ret) {
-+ strncpy(fstr, ret, s);
-+ return 0;
-+ }
-+ }
-+
-+ return -1;
-+}
-+
-+#endif
-+
- /* Print ELEMENT, preceded by a space if something has already been
- printed. */
-
-@@ -250,10 +344,14 @@ main (int argc, char **argv)
- if (toprint & PRINT_PROCESSOR)
- {
- char const *element = unknown;
--#if HAVE_SYSINFO && defined SI_ARCHITECTURE
-+#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
- {
- static char processor[257];
-+#if defined(USE_PROCINFO)
-+ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor))
-+#else
- if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
-+#endif
- element = processor;
- }
- #endif
-@@ -306,9 +404,13 @@ main (int argc, char **argv)
- if (element == unknown)
- {
- static char hardware_platform[257];
-+#if defined(USE_PROCINFO)
-+ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform))
-+#else
- size_t s = sizeof hardware_platform;
- static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
- if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
-+#endif
- element = hardware_platform;
- }
- #endif
diff --git a/testing/coreutils/coreutils.install b/testing/coreutils/coreutils.install
deleted file mode 100644
index 8caae6686..000000000
--- a/testing/coreutils/coreutils.install
+++ /dev/null
@@ -1,21 +0,0 @@
-infodir=usr/share/info
-filelist=(coreutils.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
diff --git a/testing/coreutils/su.pam b/testing/coreutils/su.pam
deleted file mode 100644
index cf15f40f1..000000000
--- a/testing/coreutils/su.pam
+++ /dev/null
@@ -1,9 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-# Uncomment the following line to implicitly trust users in the "wheel" group.
-#auth sufficient pam_wheel.so trust use_uid
-# Uncomment the following line to require a user to be in the "wheel" group.
-#auth required pam_wheel.so use_uid
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
diff --git a/testing/cryptsetup/PKGBUILD b/testing/cryptsetup/PKGBUILD
deleted file mode 100644
index 15d191ead..000000000
--- a/testing/cryptsetup/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 125738 2011-05-28 17:14:11Z thomas $
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
-pkgname=cryptsetup
-pkgver=1.3.1
-pkgrel=1
-pkgdesc="Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi"
-arch=(i686 x86_64)
-license=('GPL')
-url="http://code.google.com/p/cryptsetup/"
-groups=('base')
-depends=('device-mapper>=2.02.85-2' 'libgcrypt' 'popt')
-conflicts=('mkinitcpio<0.5.99')
-options=('!libtool' '!emptydirs')
-source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
- encrypt_hook
- encrypt_install)
-sha256sums=('7ceb18a0c91fa1546077b41b93463dd2ec9d7f83e6fd93757fb84cc608206a6a'
- '64601eae6fbf3e3afceccec5877557aa208a82497c33cc94ad0a686b4022b5dc'
- '07918fc349b3a7c4a73e8ad1cc3d97a2a79ebc7655090ab9ebb00b1e092c85aa')
-
-build() {
- cd $srcdir/$pkgname-${pkgver}
- ./configure --prefix=/usr --disable-static --sbindir=/sbin --libdir=/lib
- make
-}
-
-package() {
- cd $srcdir/$pkgname-${pkgver}
- make DESTDIR=$pkgdir install
- # install hook
- install -D -m644 $srcdir/encrypt_hook $pkgdir/lib/initcpio/hooks/encrypt
- install -D -m644 $srcdir/encrypt_install $pkgdir/lib/initcpio/install/encrypt
- # Fix pkgconfig location
- install -d -m755 $pkgdir/usr/lib
- mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib/
-}
diff --git a/testing/cryptsetup/encrypt_hook b/testing/cryptsetup/encrypt_hook
deleted file mode 100644
index e84bc6ed7..000000000
--- a/testing/cryptsetup/encrypt_hook
+++ /dev/null
@@ -1,131 +0,0 @@
-# vim: set ft=sh:
-# TODO this one needs some work to work with lots of different
-# encryption schemes
-run_hook ()
-{
- /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
- if [ -e "/sys/class/misc/device-mapper" ]; then
- if [ ! -e "/dev/mapper/control" ]; then
- /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
- fi
- [ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
-
- # Get keyfile if specified
- ckeyfile="/crypto_keyfile.bin"
- if [ "x${cryptkey}" != "x" ]; then
- ckdev="$(echo "${cryptkey}" | cut -d: -f1)"
- ckarg1="$(echo "${cryptkey}" | cut -d: -f2)"
- ckarg2="$(echo "${cryptkey}" | cut -d: -f3)"
- if poll_device "${ckdev}" ${rootdelay}; then
- case ${ckarg1} in
- *[!0-9]*)
- # Use a file on the device
- # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path
- mkdir /ckey
- mount -r -t ${ckarg1} ${ckdev} /ckey
- dd if=/ckey/${ckarg2} of=${ckeyfile} >/dev/null 2>&1
- umount /ckey
- ;;
- *)
- # Read raw data from the block device
- # ckarg1 is numeric: ckarg1=offset, ckarg2=length
- dd if=${ckdev} of=${ckeyfile} bs=1 skip=${ckarg1} count=${ckarg2} >/dev/null 2>&1
- ;;
- esac
- fi
- [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase."
- fi
-
- if [ -n "${cryptdevice}" ]; then
- DEPRECATED_CRYPT=0
- cryptdev="$(echo "${cryptdevice}" | cut -d: -f1)"
- cryptname="$(echo "${cryptdevice}" | cut -d: -f2)"
- else
- DEPRECATED_CRYPT=1
- cryptdev="${root}"
- cryptname="root"
- fi
-
- warn_deprecated() {
- echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
- echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
- }
-
- if poll_device "${cryptdev}" ${rootdelay}; then
- if /sbin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then
- [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
- dopassphrase=1
- # If keyfile exists, try to use that
- if [ -f ${ckeyfile} ]; then
- if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
- dopassphrase=0
- else
- echo "Invalid keyfile. Reverting to passphrase."
- fi
- fi
- # Ask for a passphrase
- if [ ${dopassphrase} -gt 0 ]; then
- echo ""
- echo "A password is required to access the ${cryptname} volume:"
-
- #loop until we get a real password
- while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do
- sleep 2;
- done
- fi
- if [ -e "/dev/mapper/${cryptname}" ]; then
- if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
- export root="/dev/mapper/root"
- fi
- else
- err "Password succeeded, but ${cryptname} creation failed, aborting..."
- exit 1
- fi
- elif [ -n "${crypto}" ]; then
- [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
- msg "Non-LUKS encrypted device found..."
- if [ $# -ne 5 ]; then
- err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip"
- err "Non-LUKS decryption not attempted..."
- return 1
- fi
- exe="/sbin/cryptsetup create ${cryptname} ${cryptdev}"
- tmp=$(echo "${crypto}" | cut -d: -f1)
- [ -n "${tmp}" ] && exe="${exe} --hash \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f2)
- [ -n "${tmp}" ] && exe="${exe} --cipher \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f3)
- [ -n "${tmp}" ] && exe="${exe} --key-size \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f4)
- [ -n "${tmp}" ] && exe="${exe} --offset \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f5)
- [ -n "${tmp}" ] && exe="${exe} --skip \"${tmp}\""
- if [ -f ${ckeyfile} ]; then
- exe="${exe} --key-file ${ckeyfile}"
- else
- exe="${exe} --verify-passphrase"
- echo ""
- echo "A password is required to access the ${cryptname} volume:"
- fi
- eval "${exe} ${CSQUIET}"
-
- if [ $? -ne 0 ]; then
- err "Non-LUKS device decryption failed. verify format: "
- err " crypto=hash:cipher:keysize:offset:skip"
- exit 1
- fi
- if [ -e "/dev/mapper/${cryptname}" ]; then
- if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
- export root="/dev/mapper/root"
- fi
- else
- err "Password succeeded, but ${cryptname} creation failed, aborting..."
- exit 1
- fi
- else
- err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."
- fi
- fi
- rm -f ${ckeyfile}
- fi
-}
diff --git a/testing/cryptsetup/encrypt_install b/testing/cryptsetup/encrypt_install
deleted file mode 100644
index 25a2ae45c..000000000
--- a/testing/cryptsetup/encrypt_install
+++ /dev/null
@@ -1,27 +0,0 @@
-# vim: set ft=sh:
-
-install ()
-{
- if [ -z "${CRYPTO_MODULES}" ]; then
- MODULES=" dm-crypt $(all_modules "/crypto/") "
- else
- MODULES=" dm-crypt ${CRYPTO_MODULES} "
- fi
- FILES=""
- SCRIPT="encrypt"
- add_dir "/dev/mapper"
- [ -f "/sbin/cryptsetup" ] && add_binary "/sbin/cryptsetup" "/sbin/cryptsetup"
- [ -f "/usr/sbin/cryptsetup" ] && add_binary "/usr/sbin/cryptsetup" "/sbin/cryptsetup"
- add_binary "/sbin/dmsetup"
- add_file "/lib/udev/rules.d/10-dm.rules"
- add_file "/lib/udev/rules.d/13-dm-disk.rules"
- add_file "/lib/udev/rules.d/95-dm-notify.rules"
- add_file "/lib/initcpio/udev/11-dm-initramfs.rules" "/lib/udev/rules.d/11-dm-initramfs.rules"
-}
-
-help ()
-{
-cat<<HELPEOF
- This hook allows for an encrypted root device.
-HELPEOF
-}
diff --git a/testing/dvdrip/PKGBUILD b/testing/dvdrip/PKGBUILD
deleted file mode 100644
index 119a2a1d9..000000000
--- a/testing/dvdrip/PKGBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# $Id: PKGBUILD 126069 2011-06-01 10:23:05Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Fredrik Hammar <Horney_C86@Hotmail.com>
-
-pkgname=dvdrip
-pkgver=0.98.11
-pkgrel=8
-pkgdesc="A Gtk frontend for transcode writen in Perl"
-arch=('i686' 'x86_64')
-license=('custom')
-url="http://www.exit1.org/dvdrip/"
-install=${pkgname}.install
-depends=('perl-gtk2-ex-formfactory' 'transcode' 'imagemagick'
- 'perl-libintl-perl' 'desktop-file-utils' 'perl-event-execflow')
-optdepends=('ogmtools: for ogm/odd video creation'
- 'lsdvd: fast reading of DVD table')
-source=(http://www.exit1.org/dvdrip/dist/${pkgname}-${pkgver}.tar.gz \
- ${pkgname}.desktop)
-options=('!emptydirs' '!makeflags')
-md5sums=('6dfa4199d451757a37eea233a07da4c0'
- 'e91cf411928fd0500d07a0022b4ef546')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make install DESTDIR="${pkgdir}"
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-
- install -Dm644 ${srcdir}/${pkgname}.desktop "${pkgdir}/usr/share/applications/${pkgname}.desktop"
- install -Dm 644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
diff --git a/testing/dvdrip/dvdrip.desktop b/testing/dvdrip/dvdrip.desktop
deleted file mode 100644
index dd19b4aae..000000000
--- a/testing/dvdrip/dvdrip.desktop
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-Name=dvd::rip
-Comment=DVD Ripper and Encoder - Backup and compression utility for DVDs
-Exec=/usr/bin/vendor_perl/dvdrip
-Icon=/usr/share/perl5/vendor_perl/Video/DVDRip/icon.xpm
-Terminal=false
-Type=Application
-Categories=Application;AudioVideo;Video;
diff --git a/testing/frozen-bubble/PKGBUILD b/testing/frozen-bubble/PKGBUILD
deleted file mode 100644
index eac81509b..000000000
--- a/testing/frozen-bubble/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 124828 2011-05-24 16:19:16Z heftig $
-# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: Brandon Niemczyk <maccorin@cfl.rr.com>
-
-pkgname=frozen-bubble
-_pkgver=2.2.1-beta1
-pkgver=${_pkgver/-/}
-pkgrel=2
-pkgdesc="A game in which you throw colorful bubbles and build groups to destroy the bubbles"
-arch=(i686 x86_64)
-url="http://www.frozen-bubble.org"
-license=(GPL2)
-depends=(perl-sdl perl-ipc-system-simple perl-compress-bzip2 perl-file-which)
-makedepends=(perl-file-slurp perl-locale-maketext-lexicon)
-options=('!emptydirs')
-source=(http://www.frozen-bubble.org/data/$pkgname-$_pkgver.tar.bz2 \
- frozen-bubble.desktop)
-md5sums=('825cc23ed806838b9d86de9982a5687a'
- '01b10b77ba6ad856f5c199121c582272')
-
-package() {
- cd "$srcdir/$pkgname-$_pkgver"
-
- # gcc bug?
- CFLAGS+=" -Doff64_t=__off64_t"
-
- # install module in vendor directories
- perl Build.PL installdirs=vendor destdir="$pkgdir"
-
- perl Build
- perl Build install
-
- install -D -m644 share/icons/frozen-bubble-icon-64x64.png "$pkgdir/usr/share/pixmaps/frozen-bubble.png"
- install -D -m644 "$srcdir/frozen-bubble.desktop" "$pkgdir/usr/share/applications/frozen-bubble.desktop"
-}
diff --git a/testing/frozen-bubble/frozen-bubble.desktop b/testing/frozen-bubble/frozen-bubble.desktop
deleted file mode 100644
index 76a7bcd88..000000000
--- a/testing/frozen-bubble/frozen-bubble.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-Name=Frozen Bubble
-Icon=frozen-bubble.png
-Exec=/usr/bin/vendor_perl/frozen-bubble
-Terminal=false
-Categories=Game;
diff --git a/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD
new file mode 100644
index 000000000..cedbfa948
--- /dev/null
+++ b/testing/gcc/PKGBUILD
@@ -0,0 +1,249 @@
+# $Id: PKGBUILD 126776 2011-06-07 08:00:51Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
+pkgver=4.6.0
+pkgrel=7
+_snapshot=4.6-20110603
+_libstdcppmanver=20110201 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils>=2.21-9' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
+ gcc_pure64.patch
+ gcc-hash-style-both.patch)
+md5sums=('c97d52b2b4e6c8c5cf665ae3eb9e8e49'
+ '1e9fd2eaf0ee47ea64e82c48998f1999'
+ '4030ee1c08dd1e843c0225b772360e76'
+ '4df25b623799b148a0703eaeec8fdf3f')
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ cd ${_basedir}
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ fi
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+
+ ${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://bugs.archlinux.org/ \
+ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
+ --enable-shared --enable-threads=posix \
+ --with-system-zlib --enable-__cxa_atexit \
+ --disable-libunwind-exceptions --enable-clocale=gnu \
+ --enable-gnu-unique-object --enable-linker-build-id \
+ --with-ppl --enable-cloog-backend=isl \
+ --enable-lto --enable-gold --enable-ld=default \
+ --enable-plugin --with-plugin-ld=ld.gold \
+ --disable-multilib --disable-libstdcxx-pch \
+ --enable-checking=release
+ make
+}
+
+check() {
+ cd gcc-build
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC"
+ groups=('base')
+ depends=('glibc>=2.13')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends"
+ depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.21-9' 'libmpc' 'cloog' 'ppl')
+ groups=('base-devel')
+ install=gcc.install
+
+ cd gcc-build
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm $pkgdir/usr/lib/*.so*
+ rm $pkgdir/usr/lib/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm $pkgdir/usr/lib/libgfortran.spec
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a}
+ rm -r $pkgdir/usr/lib/go
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm $pkgdir/usr/share/man/man3/ffi*
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran()
+{
+ pkgdesc="Fortran front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib/lib{gfortran,quadmath}.so*
+ rm ${pkgdir}/usr/share/info/libquadmath.info
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc()
+{
+ pkgdesc="Objective-C front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada()
+{
+ pkgdesc="Ada front-end for GCC (GNAT)"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-ada.install
+
+ cd gcc-build/gcc
+ make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-go()
+{
+ pkgdesc="Go front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-go.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgo
+ make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
+ install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
+}
diff --git a/testing/gcc/gcc-ada.install b/testing/gcc/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/testing/gcc/gcc-ada.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/gcc/gcc-fortran.install b/testing/gcc/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/testing/gcc/gcc-fortran.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/testing/gcc/gcc-go.install b/testing/gcc/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/testing/gcc/gcc-go.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gccgo.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/gcc/gcc-hash-style-both.patch b/testing/gcc/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/testing/gcc/gcc-hash-style-both.patch
@@ -0,0 +1,122 @@
+--- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
+@@ -41,7 +41,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
++++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -78,7 +78,7 @@
+ %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
++++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -104,7 +104,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -64,7 +64,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
++++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
+@@ -389,11 +389,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
+
+--- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
++++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
+@@ -830,7 +830,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
+
+--- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
++++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -113,7 +113,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -121,7 +121,7 @@
+ %{static:-static}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -193,7 +193,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
++++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -74,7 +74,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!static: \
diff --git a/testing/gcc/gcc-libs.install b/testing/gcc/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/testing/gcc/gcc-libs.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+filelist=(libgomp.info libquadmath.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/gcc/gcc.install b/testing/gcc/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/testing/gcc/gcc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/gcc/gcc_pure64.patch b/testing/gcc/gcc_pure64.patch
new file mode 100644
index 000000000..8c0baf8e2
--- /dev/null
+++ b/testing/gcc/gcc_pure64.patch
@@ -0,0 +1,26 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,8 +49,8 @@
+ When the -shared link option is used a final link is not being
+ done. */
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/testing/gconf-perl/PKGBUILD b/testing/gconf-perl/PKGBUILD
deleted file mode 100644
index e4f58af63..000000000
--- a/testing/gconf-perl/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id: PKGBUILD 124841 2011-05-24 18:04:05Z remy $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=gconf-perl
-_realname=Gnome2-GConf
-pkgver=1.044
-pkgrel=5
-pkgdesc="Gnome2-GConf perl bindings for gconf"
-arch=('i686' 'x86_64')
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
-depends=('glib-perl' 'gconf' 'perl>=5.14')
-options=(!emptydirs)
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('ea386003b18f067524833b0eeb271330')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-check() {
- cd "${srcdir}/${_realname}-${pkgver}"
- dbus-launch --exit-with-session make test
-}
-
-package() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/git/ChangeLog b/testing/git/ChangeLog
deleted file mode 100644
index 76298e68f..000000000
--- a/testing/git/ChangeLog
+++ /dev/null
@@ -1,53 +0,0 @@
-Simple version bumps are omitted from the following ChangeLog.
-
-2011-05-05 Dan McGee <dan@archlinux.org>
- Version 1.7.5.1-1
- * Byte compile emacs files (FS#20874)
- * Respect CFLAGS/LDFLAGS (FS#23963)
-
-2011-04-27 Dan McGee <dan@archlinux.org>
- Version 1.7.5-1
- * Add missing optdepends for git send-email (FS#20923)
-
-2011-01-05 Dan McGee <dan@archlinux.org>
- Version 1.7.3.5-1
- * More flexible git-daemon RC scripts (FS#20575)
-
-2010-10-01 Allan McRae <allan@archlinux.org>
- Version 1.7.3.1-2
- * Python 2/3 rebuild
-
-2010-06-29 Dan McGee <dan@archlinux.org>
- Version 1.7.1.1-1
- * Add emacs completion files (FS#17968)
- * Add git-daemon RC scripts (FS#19291)
-
-2009-06-05 Dan McGee <dan@archlinux.org>
- Version 1.6.3.2-1
- * Remove gitweb from /usr/share; it needs customization to be helpful
- * Add NO_CROSS_DIRECTORY_HARDLINKS option to build (FS#13683)
-
-2008-09-14 Dan McGee <dan@archlinux.org>
- Version 1.6.0.2-1
- * Moved optional depends from install file to optdepends array
-
-2008-06-15 Dan McGee <dan@archlinux.org>
- Version 1.5.6-1
- * Removed 'cpio' dependency, clone is now a builtin and no longer needs it
-
-2008-02-02 Dan McGee <dan@archlinux.org>
- Version 1.5.4-1
- * Upstream version 1.5.4
- * Enable pthreads support in pack-objects. To use, set the pack.threads
- git config option. Read manpages of pack-objects and config for more
- details.
- * Changelog added (with entries going back a bit).
-
-2008-01-28 Kevin Piche <kevin@archlinux.org>
- Version 1.5.3.7-2
- * Updated for new perl policy (vendor dirs)
- * Change license to GPL2
-
-2007-11-01 Eric Belanger <eric@archlinux.org>
- Version 1.5.3.5-2
- * Fix Perl module location
diff --git a/testing/git/PKGBUILD b/testing/git/PKGBUILD
deleted file mode 100644
index 713c5dd11..000000000
--- a/testing/git/PKGBUILD
+++ /dev/null
@@ -1,85 +0,0 @@
-# $Id: PKGBUILD 126224 2011-06-02 19:12:58Z dan $
-# Maintainer: Dan McGee <dan@archlinux.org>
-
-pkgname=git
-pkgver=1.7.5.4
-pkgrel=1
-pkgdesc="the fast distributed version control system"
-arch=(i686 x86_64)
-url="http://git-scm.com/"
-license=('GPL2')
-depends=('curl' 'expat>=2.0' 'perl-error' 'perl>=5.12.2')
-makedepends=('python2' 'emacs')
-optdepends=('tk: gitk and git gui'
- 'perl-libwww: git svn'
- 'perl-term-readkey: git svn'
- 'perl-mime-tools: git send-email'
- 'perl-net-smtp-ssl: git send-email TLS support'
- 'perl-authen-sasl: git send-email TLS support'
- 'python2: various helper scripts'
- 'subversion: git svn'
- 'cvsps: git cvsimport')
-replaces=('git-core')
-provides=('git-core')
-backup=('etc/conf.d/git-daemon.conf')
-source=("http://kernel.org/pub/software/scm/git/${pkgname}-${pkgver}.tar.bz2" \
- "http://kernel.org/pub/software/scm/git/git-manpages-${pkgver}.tar.bz2"
- git-daemon
- git-daemon.conf)
-changelog=ChangeLog
-
-build() {
- export PYTHON_PATH='/usr/bin/python2'
- cd "$srcdir/$pkgname-$pkgver"
- make prefix=/usr gitexecdir=/usr/lib/git-core \
- CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
-
- cd contrib/emacs
- make prefix=/usr
-}
-
-package() {
- export PYTHON_PATH='/usr/bin/python2'
- cd "$srcdir/$pkgname-$pkgver"
- make prefix=/usr gitexecdir=/usr/lib/git-core \
- CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
- NO_CROSS_DIRECTORY_HARDLINKS=1 \
- INSTALLDIRS=vendor DESTDIR="$pkgdir" install
-
- # bash completion
- mkdir -p $pkgdir/etc/bash_completion.d/
- install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/etc/bash_completion.d/git
- # more contrib stuff
- cp -a ./contrib $pkgdir/usr/share/git/
- # scripts are for python 2.x
- sed -i 's|#![ ]*/usr/bin/env python|#!/usr/bin/env python2|' \
- $(find "$pkgdir" -name '*.py') \
- "$pkgdir"/usr/share/git/{fast-import/git-p4,gitview/gitview}
-
- # emacs interface
- cd contrib/emacs
- make prefix=/usr DESTDIR="$pkgdir" install
-
- # how 'bout some manpages?
- for mansect in man1 man5 man7; do
- for manpage in "$srcdir"/$mansect/*; do
- install -D -m644 $manpage "$pkgdir"/usr/share/man/$mansect/$(basename $manpage)
- done
- done
-
- # remove perllocal.pod, .packlist, and empty directories.
- rm -rf "$pkgdir"/usr/lib/perl5
-
- # git daemon script
- install -D -m755 "$srcdir"/git-daemon "$pkgdir"/etc/rc.d/git-daemon
- install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf
-}
-
-md5sums=('4985b774db84d3bbcc2b8d90952552a3'
- '7a74ef1c64395a07301359a8707c828a'
- '8e2648910fd5dd4f1c41d3c7fa9e9156'
- '2e42bf97779a1c6411d89043334c9e78')
-sha256sums=('fed9a6c7d07b063cfba9e3eb40fbd0d8120785225289fcf2fb56bee18dffd5ee'
- '87d612195426fedfe4ee5274d9903e8f85aa16c410b4a3ba41610c23ed9211d7'
- '2e0a50bdaf8f387a499895e1c204bff78244eaa72b78187c8a84ef40c0b82598'
- 'e8bfe29d8393d2b87517c4dd56ea834b213aa00bf3d7fcde4ead3457cadbbc68')
diff --git a/testing/git/git-daemon b/testing/git/git-daemon
deleted file mode 100644
index 21ba73ed5..000000000
--- a/testing/git/git-daemon
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/bash
-
-daemon_bin="/usr/lib/git-core/git-daemon"
-daemon_name=$(basename $daemon_bin)
-PIDF="/var/run/$daemon_name.pid"
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/$daemon_name.conf
-
-get_pid() {
- pidof -o %PPID $daemon_name
-}
-
-case "$1" in
- start)
- stat_busy "Starting $daemon_name daemon"
-
- PID=$(get_pid)
- if [ -z "$PID" ]; then
- [ -f $PIDF ] && rm -f $PIDF
- # RUN
- $daemon_bin --pid-file=$PIDF $GIT_DAEMON_ARGS
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- echo $(get_pid) > $PIDF
- add_daemon $daemon_name
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- ;;
-
- stop)
- stat_busy "Stopping $daemon_name daemon"
- PID=$(get_pid)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- rm -f $PIDF &> /dev/null
- rm_daemon $daemon_name
- stat_done
- fi
- ;;
-
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
-
- status)
- stat_busy "Checking $daemon_name status";
- ck_status $daemon_name
- ;;
-
- *)
- echo "usage: $0 {start|stop|restart|status}"
-esac
-
-exit 0
diff --git a/testing/git/git-daemon.conf b/testing/git/git-daemon.conf
deleted file mode 100644
index 3f9a12060..000000000
--- a/testing/git/git-daemon.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# path to git repositories served
-GIT_REPO="/srv/git/"
-# see `man git-daemon` for all available options
-# $GIT_REPO will be present twice in most configs
-GIT_DAEMON_ARGS="--detach --syslog --verbose --base-path=$GIT_REPO $GIT_REPO"
diff --git a/testing/glade-perl/PKGBUILD b/testing/glade-perl/PKGBUILD
deleted file mode 100644
index 96d77bced..000000000
--- a/testing/glade-perl/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id: PKGBUILD 125153 2011-05-25 19:04:01Z foutrelis $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=glade-perl
-_realname=Gtk2-GladeXML
-pkgver=1.007
-pkgrel=4
-pkgdesc="Gtk2-GladeXML perl bindings for glade 2.x"
-arch=(i686 x86_64)
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
-depends=('libglade' 'gtk2-perl' 'perl')
-options=('!emptydirs')
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('e6ca234e2a9f0221263acd2a593c583b')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/glew/PKGBUILD b/testing/glew/PKGBUILD
deleted file mode 100644
index 6270e8c8f..000000000
--- a/testing/glew/PKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# $Id: PKGBUILD 125318 2011-05-25 20:28:27Z stephane $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
-# Contributor: SleepyDog
-
-pkgname=glew
-pkgver=1.6.0
-pkgrel=1
-pkgdesc="The OpenGL Extension Wrangler Library"
-arch=('i686' 'x86_64')
-url="http://glew.sourceforge.net"
-license=('BSD' 'MIT' 'GPL')
-depends=('libxmu' 'libxi' 'mesa')
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tgz)
-sha1sums=('ed555d15d0f01239b262c4cf803e97d60d8a18b6')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- sed -i 's|lib64|lib|' config/Makefile.linux
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make GLEW_DEST="${pkgdir}/usr" install.all
- install -D -m644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-
- rm "${pkgdir}"/usr/lib/{libGLEW,libGLEWmx}.a
- chmod 0755 "${pkgdir}"/usr/lib/libGLEW*.so.${pkgver}
-}
diff --git a/testing/glib-perl/PKGBUILD b/testing/glib-perl/PKGBUILD
deleted file mode 100644
index 89610fe1e..000000000
--- a/testing/glib-perl/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 124651 2011-05-23 19:33:30Z remy $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: Sarah Hay <sarah@archlinux.org>
-
-pkgname=glib-perl
-_realname=Glib
-pkgver=1.223
-pkgrel=3
-pkgdesc="Perl wrappers for glib 2.x, including GObject"
-arch=(i686 x86_64)
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-options=('!emptydirs')
-depends=('glib2>=2.24.1' 'perl>=5.14')
-makedepends=('perl-extutils-depends>=0.302' 'perl-extutils-pkgconfig>=1.12')
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('cfdeaa8c95448f86c30b505e4701abf1')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-check() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make test
-}
-
-package() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/glib2/PKGBUILD b/testing/glib2/PKGBUILD
new file mode 100644
index 000000000..93729d3a3
--- /dev/null
+++ b/testing/glib2/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 126555 2011-06-06 09:24:36Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=glib2
+pkgver=2.28.8
+pkgrel=1
+pkgdesc="Common C routines used by GTK+ and other libs"
+url="http://www.gtk.org/"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('pcre>=8.12')
+makedepends=('pkgconfig' 'python2')
+checkdepends=('pygobject' 'dbus-python')
+options=('!libtool' '!docs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.28/glib-${pkgver}.tar.xz
+ glib2.sh
+ glib2.csh)
+sha256sums=('4d7ca95dbde8e8f60ab428c765b0dbb8a44be9eb9316491803ce5ee7b4748353'
+ '9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
+ '8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
+
+build() {
+ cd "${srcdir}/glib-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-pcre=system \
+ --disable-fam
+ make
+}
+
+package() {
+ cd "${srcdir}/glib-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/etc/profile.d"
+ install -m755 "${srcdir}/glib2.sh" "${pkgdir}/etc/profile.d/"
+ install -m755 "${srcdir}/glib2.csh" "${pkgdir}/etc/profile.d/"
+
+ for _i in "${pkgdir}/etc/bash_completion.d/"*; do
+ chmod -x "${_i}"
+ done
+}
+
+check() {
+ cd "${srcdir}/glib-${pkgver}"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' gio/tests/gdbus-testserver.py
+ make -k check || true
+}
diff --git a/testing/glib2/glib2.csh b/testing/glib2/glib2.csh
new file mode 100644
index 000000000..7aa3a2ffa
--- /dev/null
+++ b/testing/glib2/glib2.csh
@@ -0,0 +1 @@
+setenv G_BROKEN_FILENAMES 1
diff --git a/testing/glib2/glib2.sh b/testing/glib2/glib2.sh
new file mode 100644
index 000000000..96a056e1e
--- /dev/null
+++ b/testing/glib2/glib2.sh
@@ -0,0 +1 @@
+export G_BROKEN_FILENAMES=1
diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD
new file mode 100644
index 000000000..51a4b2ae0
--- /dev/null
+++ b/testing/glibc/PKGBUILD
@@ -0,0 +1,172 @@
+# $Id: PKGBUILD 126794 2011-06-07 10:57:24Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each new glibc version
+
+pkgname=glibc
+pkgver=2.14
+pkgrel=1
+_glibcdate=20110605
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=2.6.39' 'tzdata')
+makedepends=('gcc>=4.4')
+backup=(etc/locale.gen
+ etc/nscd.conf)
+options=('!strip')
+install=glibc.install
+source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.1-static-shared-getpagesize.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.13-futex.patch
+ glibc-2.14-libdl-crash.patch
+ nscd
+ locale.gen.txt
+ locale-gen)
+md5sums=('a96742599fc8a99e52b9e344f39a1000'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ 'cea62cc6b903d222c5f26e05a3c0e0e6'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+
+mksource() {
+ git clone git://sourceware.org/git/glibc.git
+ pushd glibc
+ git checkout -b glibc-2.14-arch origin/master
+ # git checkout -b glibc-2.14-arch origin/release/2.14/master
+ popd
+ tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/*
+}
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+ patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+ # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+ patch -Np1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
+ # using Fedora "fix" as patch in that bug report causes breakages...
+ patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
+
+ # http://www.exploit-db.com/exploits/15274/
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ install -dm755 ${pkgdir}/etc
+ touch ${pkgdir}/etc/ld.so.conf
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ if [[ ${CARCH} = "i686" ]]; then
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --disable-multi-arch
+
+ make
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm ${pkgdir}/etc/ld.so.{cache,conf}
+
+ install -dm755 ${pkgdir}/etc/rc.d
+ install -dm755 ${pkgdir}/usr/sbin
+ install -dm755 ${pkgdir}/usr/lib/locale
+ install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+ install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
+ install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
+ install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+ sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
+
+ # create /etc/locale.gen
+ install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+ sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED
+ cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+ sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
+
+ if [[ ${CARCH} = "x86_64" ]]; then
+ # fix for the linker
+ sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd
+ # Comply with multilib binaries, they look for the linker in /lib64
+ mkdir ${pkgdir}/lib64
+ cd ${pkgdir}/lib64
+ ln -v -s ../lib/ld* .
+ fi
+
+ # manually strip files as stripping libpthread-*.so and libthread_db.so
+ # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+ # valgrind on x86_64
+
+ cd $pkgdir
+ strip $STRIP_BINARIES sbin/{ldconfig,sln} \
+ usr/bin/{gencat,getconf,getent,iconv,locale} \
+ usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \
+ usr/lib/getconf/* \
+ usr/sbin/{iconvconfig,nscd}
+ [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
+
+ strip $STRIP_STATIC usr/lib/*.a \
+ lib/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ lib/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib/{pt_chown,gconv/*.so}
+
+# add usr/lib/audit/sotruss-lib.so, usr/bin/sotruss
+
+}
diff --git a/testing/glibc/glibc-2.10-bz4781.patch b/testing/glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/testing/glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/testing/glibc/glibc-2.10-dont-build-timezone.patch b/testing/glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/testing/glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
@@ -0,0 +1,11 @@
+--- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+ #else
diff --git a/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
@@ -0,0 +1,26 @@
+From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH 1/1] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 22a1635..7674d49 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.2
diff --git a/testing/glibc/glibc-2.13-futex.patch b/testing/glibc/glibc-2.13-futex.patch
new file mode 100644
index 000000000..9b9c3ac45
--- /dev/null
+++ b/testing/glibc/glibc-2.13-futex.patch
@@ -0,0 +1,31 @@
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock:
+
+ 7: movq %rdx, %rax
+
+-#ifndef __ASSUME_PRIVATE_FUTEX
++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ addq $16, %rsp
+ cfi_adjust_cfa_offset(-16)
+ popq %r14
+@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
diff --git a/testing/glibc/glibc-2.14-libdl-crash.patch b/testing/glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..ee29f8c20
--- /dev/null
+++ b/testing/glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+ }
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/testing/glibc/glibc-__i686.patch b/testing/glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/testing/glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install
new file mode 100644
index 000000000..7f85ade96
--- /dev/null
+++ b/testing/glibc/glibc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
+
+post_upgrade() {
+ sbin/ldconfig -r .
+ [ -x sbin/init ] && sbin/init u
+ usr/sbin/locale-gen
+
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/glibc/locale-gen b/testing/glibc/locale-gen
new file mode 100755
index 000000000..5aff344c4
--- /dev/null
+++ b/testing/glibc/locale-gen
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+ unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+ if [ -n "$locale" -a -n "$charset" ] ; then
+ true
+ else
+ echo "error: Bad entry '$locale $charset'"
+ false
+ fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+ case $locale in \#*) continue;; "") continue;; esac; \
+ is_entry_ok || continue
+ echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+ echo -n ".$charset"; \
+ echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+ echo -n '...'; \
+ if [ -f $LOCALES/$locale ]; then input=$locale; else \
+ input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+ localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+ echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."
diff --git a/testing/glibc/locale.gen.txt b/testing/glibc/locale.gen.txt
new file mode 100644
index 000000000..ccdd81734
--- /dev/null
+++ b/testing/glibc/locale.gen.txt
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+# <locale> <charset>
+#
+# where <locale> is one of the locales given in /usr/share/i18n/locales
+# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+# Examples:
+# en_US ISO-8859-1
+# en_US.UTF-8 UTF-8
+# de_DE ISO-8859-1
+# de_DE@euro ISO-8859-15
+#
+# The locale-gen command will generate all the locales,
+# placing them in /usr/lib/locale.
+#
+# A list of supported locales is included in this file.
+# Uncomment the ones you need.
+#
diff --git a/testing/glibc/nscd b/testing/glibc/nscd
new file mode 100755
index 000000000..8b14f2a3f
--- /dev/null
+++ b/testing/glibc/nscd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/nscd`
+case "$1" in
+ start)
+ stat_busy "Starting nscd"
+ # create necessary directories if they don't already exist
+ mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null
+ # remove stale files
+ rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null
+ [ -z "$PID" ] && /usr/sbin/nscd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon nscd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping nscd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon nscd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/gnome-perl/PKGBUILD b/testing/gnome-perl/PKGBUILD
deleted file mode 100644
index 81f68ee25..000000000
--- a/testing/gnome-perl/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id: PKGBUILD 125159 2011-05-25 19:04:51Z foutrelis $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=gnome-perl
-_realname=Gnome2
-pkgver=1.042
-pkgrel=6
-pkgdesc="Perl bindings for libgnome"
-arch=('i686' 'x86_64')
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
-depends=('gnomecanvas-perl' 'gnome-vfs-perl' 'libgnomeui' 'perl')
-options=('!emptydirs')
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('eb7b624114e45e54e022a633ffc1cce6')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/gnome-vfs-perl/PKGBUILD b/testing/gnome-vfs-perl/PKGBUILD
deleted file mode 100644
index 3960f5285..000000000
--- a/testing/gnome-vfs-perl/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id: PKGBUILD 125162 2011-05-25 19:05:23Z foutrelis $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=gnome-vfs-perl
-_realname=Gnome2-VFS
-pkgver=1.081
-pkgrel=4
-pkgdesc="Gnome2-VFS perl bindings for gnome-vfs"
-arch=(i686 x86_64)
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
-depends=('gtk2-perl' 'gnome-vfs' 'perl')
-options=('!emptydirs')
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('3d220cbbe9f1ebc78d7047593f9cd633')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/gnomecanvas-perl/PKGBUILD b/testing/gnomecanvas-perl/PKGBUILD
deleted file mode 100644
index 2563caae4..000000000
--- a/testing/gnomecanvas-perl/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id: PKGBUILD 125156 2011-05-25 19:04:24Z foutrelis $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=gnomecanvas-perl
-_realname=Gnome2-Canvas
-pkgver=1.002
-pkgrel=8
-pkgdesc="Gnome2-Canvas perl bindings for libgnomecanvas"
-arch=('i686' 'x86_64')
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
-depends=('gtk2-perl' 'libgnomecanvas' 'perl')
-options=(!emptydirs)
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('93405a987ba4bbd03c2f91592b88f5cb')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make install DESTDIR="${pkgdir}"
-}
diff --git a/testing/gnumeric/PKGBUILD b/testing/gnumeric/PKGBUILD
deleted file mode 100644
index 2fd9e4799..000000000
--- a/testing/gnumeric/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 125165 2011-05-25 19:05:49Z foutrelis $
-# Maintainer: Eric Belanger <eric@archlinux.org>
-# Contributor: Kritoke <typeolinux@yahoo.com>
-
-pkgname=gnumeric
-pkgver=1.10.15
-pkgrel=2
-pkgdesc="A GNOME Spreadsheet Program"
-arch=('i686' 'x86_64')
-url="http://www.gnome.org/projects/gnumeric/"
-license=('GPL')
-depends=('goffice' 'gconf' 'desktop-file-utils' 'hicolor-icon-theme')
-makedepends=('intltool' 'python2' 'gnome-doc-utils' 'pygobject' 'psiconv')
-optdepends=('pygobject: for python plugin support'
- 'psiconv: for Psion 5 file support'
- 'yelp: for viewing the help manual')
-install=gnumeric.install
-options=('libtool')
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('4343a8e72bd19380d83ab5d4937388b2327e0dbb6187296e66dc7ca2d2b9025a')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
- --disable-schemas-install --enable-ssindex
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- install -d "${pkgdir}/usr/share/gconf/schemas"
- gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnumeric "${pkgdir}"/etc/gconf/schemas/*.schemas
- rm -rf "${pkgdir}/etc/gconf"
-}
diff --git a/testing/gnumeric/gnumeric.install b/testing/gnumeric/gnumeric.install
deleted file mode 100644
index 50ee0a7e2..000000000
--- a/testing/gnumeric/gnumeric.install
+++ /dev/null
@@ -1,26 +0,0 @@
-pkgname=gnumeric
-
-post_install() {
- usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
- usr/sbin/gconfpkg --install ${pkgname}
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
- update-desktop-database -q
-}
-
-pre_upgrade() {
- pre_remove $1
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- usr/sbin/gconfpkg --uninstall ${pkgname}
-}
-
-post_remove() {
- usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
- update-desktop-database -q
-}
diff --git a/testing/graphviz/LICENSE b/testing/graphviz/LICENSE
deleted file mode 100644
index 16cc69a52..000000000
--- a/testing/graphviz/LICENSE
+++ /dev/null
@@ -1,87 +0,0 @@
-Eclipse Public License - v 1.0
-
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
-a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
-
-b) in the case of each subsequent Contributor:
-
-i) changes to the Program, and
-
-ii) additions to the Program;
-
-where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
-
-"Contributor" means any person or entity that distributes the Program.
-
-"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
-
-"Program" means the Contributions distributed in accordance with this Agreement.
-
-"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
-
-2. GRANT OF RIGHTS
-
-a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
-
-b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
-
-c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
-
-d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
-
-3. REQUIREMENTS
-
-A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
-
-a) it complies with the terms and conditions of this Agreement; and
-
-b) its license agreement:
-
-i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
-
-ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
-
-iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
-
-iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
-
-When the Program is made available in source code form:
-
-a) it must be made available under this Agreement; and
-
-b) a copy of this Agreement must be included with each copy of the Program.
-
-Contributors may not remove or alter any copyright notices contained within the Program.
-
-Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
-
-This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
diff --git a/testing/graphviz/PKGBUILD b/testing/graphviz/PKGBUILD
deleted file mode 100644
index c31b3977d..000000000
--- a/testing/graphviz/PKGBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id: PKGBUILD 124548 2011-05-22 22:43:30Z bisson $
-# Maintainer: kevin <kevin@archlinux.org>
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: John Proctor <jproctor@prium.net>
-
-pkgname=graphviz
-pkgver=2.28.0
-pkgrel=2
-pkgdesc='Graph visualization software'
-url='http://www.graphviz.org/'
-license=('custom:EPL')
-arch=('i686' 'x86_64')
-depends=('gd' 'librsvg' 'libxaw' 'ghostscript' 'pango')
-makedepends=('swig' 'mono' 'guile' 'lua' 'ocaml' 'perl' 'php' 'python2' 'r' 'ruby' 'tk')
-optdepends=('mono: sharp bindings'
- 'guile: guile bindings'
- 'lua: lua bindings'
- 'ocaml: ocaml bindings'
- 'perl: perl bindings'
- 'php: php bindings'
- 'python2: python bindings'
- 'r: r bindings'
- 'ruby: ruby bindings'
- 'tcl: tcl bindings')
-source=("${url}/pub/${pkgname}/stable/SOURCES/${pkgname}-${pkgver}.tar.gz"
- 'LICENSE')
-sha1sums=('4725d88a13e071ee22e632de551d4a55ca08ee7d'
- 'e78277e502c29abb74b9587a5dc951ec392554ea')
-
-options=('!libtool')
-install=install
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- sed -i "/RUBY_INCLUDES=\"/s|\"$| `eval echo -I/usr/include/ruby-1.9.1/{$CARCH-linux,ruby/backward,}`\"|" configure
- sed -i '/LIBPOSTFIX="64"/d' configure
- export PYTHON=python2
-
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- # cf. http://www.graphviz.org/License.php
- install -Dm644 ../LICENSE "${pkgdir}"/usr/share/licenses/graphviz/LICENSE
-}
diff --git a/testing/graphviz/install b/testing/graphviz/install
deleted file mode 100644
index 00510e3f6..000000000
--- a/testing/graphviz/install
+++ /dev/null
@@ -1,17 +0,0 @@
-# arg 1: the new package version
-post_install() {
- # Create plugin config /usr/lib/graphviz/config6
- rm -f usr/lib/graphviz/config{,6}
- usr/bin/dot -c
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- post_install $1
-}
-
-# arg 1: the old package version
-pre_remove() {
- rm -f usr/lib/graphviz/config{,6}
-}
diff --git a/testing/gtk2-perl/PKGBUILD b/testing/gtk2-perl/PKGBUILD
deleted file mode 100644
index 215b21109..000000000
--- a/testing/gtk2-perl/PKGBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id: PKGBUILD 124902 2011-05-25 01:27:30Z foutrelis $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: Sarah Hay <sarah@archlinux.org>
-
-pkgname=gtk2-perl
-_realname=Gtk2
-pkgver=1.222
-pkgrel=3
-pkgdesc="Gtk2-Perl allows Perl developers to write GTK+ 2.x applications."
-arch=(i686 x86_64)
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
-depends=('gtk2' 'pango-perl')
-options=('!emptydirs')
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('8f8a170b33dc2cf4e69769e97c05185a')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make install DESTDIR="${pkgdir}"
-}
diff --git a/testing/gtk3/PKGBUILD b/testing/gtk3/PKGBUILD
new file mode 100644
index 000000000..bd05b7cdd
--- /dev/null
+++ b/testing/gtk3/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 126728 2011-06-06 21:19:26Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtk3
+pkgver=3.0.11
+pkgrel=1
+pkgdesc="The GTK+ Toolkit (v3)"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+install=gtk3.install
+depends=('atk' 'cairo' 'gtk-update-icon-cache' 'gnutls' 'krb5' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info')
+makedepends=('gobject-introspection')
+options=('!libtool' '!docs')
+backup=(etc/gtk-3.0/settings.ini)
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.0/gtk+-${pkgver}.tar.xz
+ settings.ini)
+sha256sums=('e2e38b316c4657df0cf376c3b6aad63158a9068c557ad41033a677f29967001b'
+ 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621')
+
+build() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-gtk2-dependency \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 "${srcdir}/settings.ini" "${pkgdir}/etc/gtk-3.0/settings.ini"
+}
diff --git a/testing/gtk3/gtk3.install b/testing/gtk3/gtk3.install
new file mode 100644
index 000000000..cd8965d1f
--- /dev/null
+++ b/testing/gtk3/gtk3.install
@@ -0,0 +1,15 @@
+post_install() {
+ usr/bin/gtk-query-immodules-3.0 --update-cache
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/gtk-3.0/3.0.0/immodules.cache
+}
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
diff --git a/testing/gtk3/settings.ini b/testing/gtk3/settings.ini
new file mode 100644
index 000000000..039000d38
--- /dev/null
+++ b/testing/gtk3/settings.ini
@@ -0,0 +1,2 @@
+[Settings]
+gtk-fallback-icon-theme = gnome
diff --git a/testing/hugin/PKGBUILD b/testing/hugin/PKGBUILD
deleted file mode 100644
index d09e302dd..000000000
--- a/testing/hugin/PKGBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# $Id: PKGBUILD 125347 2011-05-26 02:15:23Z eric $
-# Maintainer: Tobias Kieslich <tobias@archlinux.org>
-# Contributor: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Dominik Ryba <domryba@post.pl>
-
-pkgname=hugin
-pkgver=2010.4.0
-pkgrel=4
-pkgdesc="A frontend to the panorama-tools"
-arch=('i686' 'x86_64')
-url="http://hugin.sourceforge.net/"
-license=('LGPL')
-depends=('wxgtk' 'libpano13' 'boost-libs' 'enblend-enfuse' 'exiv2' 'openexr'
- 'autopano-sift-c' 'lapack' 'desktop-file-utils' 'make' 'perl-exiftool')
-makedepends=('zip' 'cmake' 'boost')
-install=${pkgname}.install
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2 hugin-gcc46.patch)
-md5sums=('bfd716655461987312b2f2f00c90dcc5'
- '4393c7b31da60f230c85e63a6a2e43a0')
-sha1sums=('47f25c0a8b97c27108e567bcd22203c87f268d07'
- '52798a155a037f853f41402f797e8a4cb6bb3e07')
-
-build() {
- cd "${srcdir}"
- (cd ${pkgname}-${pkgver}; patch -p1 -i ../hugin-gcc46.patch)
- mkdir build && cd build
-
- cmake "${srcdir}/${pkgname}-${pkgver}" \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_EXE_LINKER_FLAGS="-lpthread" \
- -DENABLE_LAPACK=yes
-
- make
-}
-
-package(){
- cd "${srcdir}/build"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/hugin/hugin-gcc46.patch b/testing/hugin/hugin-gcc46.patch
deleted file mode 100644
index 98a70ad50..000000000
--- a/testing/hugin/hugin-gcc46.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-
-diff -r 0377a1af6110 -r 1fc6ad6e7c7a src/foreign/vigra/vigra/multi_iterator.hxx
---- a/src/foreign/vigra/vigra/multi_iterator.hxx Mon Jun 25 16:36:21 2007 +0000
-+++ b/src/foreign/vigra/vigra/multi_iterator.hxx Tue Jan 25 21:14:13 2011 +0000
-@@ -41,6 +41,7 @@
- #define VIGRA_MULTI_ITERATOR_HXX
-
- #include <sys/types.h>
-+#include <stddef.h>
- #include "tinyvector.hxx"
- #include "iteratortags.hxx"
-
-
-
-
-
diff --git a/testing/hugin/hugin.install b/testing/hugin/hugin.install
deleted file mode 100644
index 362749233..000000000
--- a/testing/hugin/hugin.install
+++ /dev/null
@@ -1,15 +0,0 @@
-post_install() {
- gtk-update-icon-cache -q -t -f usr/share/icons/gnome
- update-desktop-database -q
- update-mime-database usr/share/mime > /dev/null
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- gtk-update-icon-cache -q -t -f usr/share/icons/gnome
- update-desktop-database -q
- update-mime-database usr/share/mime > /dev/null
-}
diff --git a/testing/imagemagick/PKGBUILD b/testing/imagemagick/PKGBUILD
deleted file mode 100644
index 29f188e18..000000000
--- a/testing/imagemagick/PKGBUILD
+++ /dev/null
@@ -1,81 +0,0 @@
-# $Id: PKGBUILD 126048 2011-06-01 05:22:12Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-
-pkgbase=imagemagick
-pkgname=('imagemagick' 'imagemagick-doc')
-pkgver=6.7.0.2
-pkgrel=1
-arch=('i686' 'x86_64')
-url="http://www.imagemagick.org/"
-license=('custom')
-depends=('libtool' 'lcms' 'libxt' 'gcc-libs' 'bzip2' 'xz' 'freetype2' 'fontconfig' \
- 'libxext' 'libjpeg-turbo')
-makedepends=('ghostscript' 'openexr' 'libwmf' 'librsvg' 'libxml2' 'jasper' 'libpng')
-source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \
- perlmagick.rpath.patch)
-md5sums=('23a53b96b8e75c3ffd8cbbbfc1041b2f'
- 'ff9974decbfe9846f8e347239d87e4eb')
-sha1sums=('ff8e666d58a27af1ce3ab2c5408d10c233a4d809'
- '23405f80904b1de94ebd7bd6fe2a332471b8c283')
-
-build() {
- cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
-
- sed '/AC_PATH_XTRA/d' -i configure.ac
- autoreconf
- patch -Np0 -i ../perlmagick.rpath.patch
-
- ./configure --prefix=/usr --sysconfdir=/etc --with-modules --disable-static \
- --enable-openmp --with-wmf --with-openexr --with-xml \
- --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \
- --with-perl --with-perl-options="INSTALLDIRS=vendor" \
- --without-gvc --without-djvu --without-autotrace --with-jp2 \
- --without-jbig --without-fpx --without-dps --without-fftw
- make
-}
-
-package_imagemagick() {
- pkgdesc="An image viewing/manipulation program"
- optdepends=('ghostscript: for Ghostscript support'
- 'openexr: for OpenEXR support'
- 'libwmf: for WMF support'
- 'librsvg: for SVG support'
- 'libxml2: for XML support'
- 'jasper: for JPEG-2000 support'
- 'libpng: for PNG support')
- backup=('etc/ImageMagick/coder.xml'
- 'etc/ImageMagick/colors.xml'
- 'etc/ImageMagick/delegates.xml'
- 'etc/ImageMagick/log.xml'
- 'etc/ImageMagick/magic.xml'
- 'etc/ImageMagick/mime.xml'
- 'etc/ImageMagick/policy.xml'
- 'etc/ImageMagick/sRGB.icm'
- 'etc/ImageMagick/thresholds.xml'
- 'etc/ImageMagick/type.xml'
- 'etc/ImageMagick/type-dejavu.xml'
- 'etc/ImageMagick/type-ghostscript.xml'
- 'etc/ImageMagick/type-windows.xml')
- options=('!makeflags' '!docs' 'libtool')
-
- cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
- make DESTDIR="${pkgdir}" install
- chmod 755 "${pkgdir}/usr/lib/perl5/vendor_perl/auto/Image/Magick/Magick.so"
- install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick/LICENSE"
- install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick/NOTICE"
-
-#Cleaning
- find "${pkgdir}" -name '*.bs' -delete
- rm -f "${pkgdir}"/usr/lib/*.la
-}
-
-package_imagemagick-doc() {
- pkgdesc="The ImageMagick documentation (utilities manuals and libraries API)"
- depends=()
- options=('!makeflags')
-
- cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
- make DESTDIR="${pkgdir}" install-data-html
- install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick-doc/LICENSE"
- install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick-doc/NOTICE"
-}
diff --git a/testing/imagemagick/perlmagick.rpath.patch b/testing/imagemagick/perlmagick.rpath.patch
deleted file mode 100644
index 958c0f2ee..000000000
--- a/testing/imagemagick/perlmagick.rpath.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- Makefile.in.orig 2009-05-26 16:22:11.000000000 -0300
-+++ Makefile.in 2009-05-26 16:23:27.000000000 -0300
-@@ -10067,6 +10067,7 @@
-
- @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@$(PERLMAKEFILE): perl-sources $(PERLMAKEMAKER)
- @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @PERL@ Makefile.PL $(PERL_MAKE_OPTIONS)
-+@WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @SED@ -i 's|LD_RUN_PATH|DIE_LD_RUN_PATH_DIE|g' Makefile
-
- @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@install-exec-perl: $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(PERLMAKEFILE)
- @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && $(MAKE) CC='@CC@' install
diff --git a/testing/iproute2/PKGBUILD b/testing/iproute2/PKGBUILD
deleted file mode 100644
index f9479bd84..000000000
--- a/testing/iproute2/PKGBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id: PKGBUILD 126335 2011-06-04 22:38:16Z tomegun $
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Contributor: Judd Vinet <jvinet@zeroflux.org>
-
-pkgname=iproute2
-pkgver=2.6.38
-pkgrel=3
-pkgdesc="IP Routing Utilities"
-arch=('i686' 'x86_64')
-license=('GPL2')
-url="http://www.linux-foundation.org/en/Net:Iproute2"
-depends=('perl')
-makedepends=('linux-atm')
-optdepends=('linux-atm: ATM support')
-provides=('iproute')
-conflicts=('iproute')
-replaces=('iproute')
-options=('!makeflags')
-backup=('etc/iproute2/ematch_map' 'etc/iproute2/rt_dsfield' 'etc/iproute2/rt_protos' \
- 'etc/iproute2/rt_realms' 'etc/iproute2/rt_scopes' 'etc/iproute2/rt_tables')
-source=(http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${pkgver}.tar.bz2
- 'iproute2-fhs.patch')
-sha1sums=('e9f6d457a06866a2a20a6cba6b3a039b2ec3e14a'
- '2416b11252364d7a6c742eabb4a6924a75637a46')
-
-build() {
- cd $srcdir/iproute2-${pkgver}
-
- # set correct fhs structure
- patch -Np1 -i ${srcdir}/iproute2-fhs.patch
-
- ./configure
-
- make
-}
-
-package() {
- cd $srcdir/iproute2-${pkgver}
-
- make DESTDIR=$pkgdir install
-
- # allow loopback to be started before /usr is mounted, this may not be supported in the future
- mkdir -p ${pkgdir}/sbin
- mv ${pkgdir}/usr/sbin/ip ${pkgdir}/sbin/ip
- ln -s /sbin/ip ${pkgdir}/usr/sbin/ip
-
- # libnetlink isn't installed, install it FS#19385
- install -Dm644 include/libnetlink.h ${pkgdir}/usr/include/libnetlink.h
- install -Dm644 lib/libnetlink.a ${pkgdir}/usr/lib/libnetlink.a
-}
diff --git a/testing/irssi/PKGBUILD b/testing/irssi/PKGBUILD
deleted file mode 100644
index bba878633..000000000
--- a/testing/irssi/PKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# $Id: PKGBUILD 125226 2011-05-25 19:11:10Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Dan McGee <dan@archlinux.org>
-
-pkgname=irssi
-pkgver=0.8.15
-pkgrel=5
-pkgdesc="Modular text mode IRC client with Perl scripting"
-arch=('i686' 'x86_64')
-url="http://irssi.org/"
-license=('GPL')
-depends=('glib2' 'openssl' 'perl')
-optdepends=('perl-libwww: for the scriptassist script')
-backup=(etc/irssi.conf)
-source=(http://irssi.org/files/${pkgname}-${pkgver}.tar.bz2)
-options=('!libtool')
-md5sums=('1dcb3f511b88df94b0c996f36668c7da')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- ./configure --prefix=/usr \
- --enable-ipv6 \
- --with-proxy \
- --sysconfdir=/etc \
- --with-perl-lib=vendor
- make
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/koffice/PKGBUILD b/testing/koffice/PKGBUILD
deleted file mode 100644
index 1884dd92c..000000000
--- a/testing/koffice/PKGBUILD
+++ /dev/null
@@ -1,301 +0,0 @@
-# $Id: PKGBUILD 125678 2011-05-28 00:58:39Z andrea $
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
-
-pkgbase=koffice
-pkgname=(
- 'koffice-filters'
- 'koffice-interfaces'
- 'koffice-libs'
- 'koffice-plugins'
- 'koffice-pics'
- 'koffice-servicetypes'
- 'koffice-templates'
- 'koffice-tools'
- 'koffice-karbon'
- 'koffice-karbon-doc'
-# 'koffice-kchart'
-# 'koffice-kchart-doc'
- 'koffice-kexi'
- 'koffice-kexi-doc'
- 'koffice-kformula'
- 'koffice-kformula-doc'
- 'koffice-kounavail'
- 'koffice-kplato'
-# 'koffice-kplato-doc'
- 'koffice-kpresenter'
- 'koffice-kpresenter-doc'
- 'koffice-krita'
-# 'koffice-krita-doc' # no krita-doc anymore upstream
- 'koffice-kspread'
- 'koffice-kspread-doc'
- 'koffice-kword'
-# 'koffice-kword-doc' # see http://userbase.kde.org/KWord/Manual for documentation (not supplied by upstream anymore in the sources)
- 'koffice-handbook'
- 'koffice-thesaurus-doc'
-# 'koffice-kdgantt' # still an empty package
-)
-pkgver=2.3.3
-pkgrel=4
-arch=('i686' 'x86_64')
-url='http://koffice.kde.org'
-license=('GPL' 'LGPL' 'FDL')
-makedepends=('pkg-config' 'cmake' 'automoc4' 'boost' 'eigen' 'gsl' 'lcms'
- 'glew' 'qimageblitz' 'kdepimlibs' 'pstoedit' 'poppler-qt' 'libwpd'
- 'libwpg' 'opengtl' 'kdegraphics-libs')
-groups=('koffice')
-source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2"
- 'kde4-koffice-libwpg02.patch' 'gcc46.patch')
-sha256sums=('31ba0d98c0d29c7b8ab97efdeb6c618b82177b2b0ec85da088178254da43c099'
- '69106deb4081d71b5bd8f2e4f5af67ca689e4ce9f2bb49c11dbce5fb3409d612'
- 'e095c0b2bbedf41da6535a68b2275464dafd3f194566028d0135322f596e4739')
-
-build() {
- cd "${srcdir}/${pkgbase}-${pkgver}"
-
- patch -p1 -i "${srcdir}/kde4-koffice-libwpg02.patch"
- patch -p1 -i "${srcdir}"/gcc46.patch
-
- cd "${srcdir}"
- mkdir build
- cd build
- cmake ../${pkgbase}-${pkgver} \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_SKIP_RPATH=ON \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
-}
-
-##### 1st package common files, depends, optdepends of the koffice applications #####
-
-package_koffice-filters(){
- pkgdesc="Filters for the KDE office suite"
- optdepends=('libgsf: Microsoft Word document importer' 'libwpd: WordPerfect document importer'
- 'libwpg: Corel WordPerfect Graphics image importer' 'pstoedit: Karbon EPS import filter'
- 'kdegraphics-libs: support for raw images')
- install=filters.install
- cd "${srcdir}/build/filters"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-interfaces(){
- pkgdesc="Interfaces for the KDE office suite"
- depends=('kdelibs' 'koffice-libs')
- cd "${srcdir}/build/interfaces"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-libs(){
- pkgdesc="Libs for the KDE office suite"
- depends=('kdepimlibs' 'qca' 'lcms' 'koffice-servicetypes')
- cd "${srcdir}/build/libs"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-plugins(){
- pkgdesc="Plugins for the KDE office suite"
- depends=('koffice-libs')
- replaces=('koffice-kchart')
- conflicts=('koffice-kchart')
- cd "${srcdir}/build/plugins"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-pics(){
- pkgdesc="Icons for the KDE office suite"
- install=koffice.install
- cd "${srcdir}/build/pics"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-servicetypes(){
- pkgdesc="Servicetypes for the KDE office suite"
- cd "${srcdir}/build/servicetypes"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-templates(){
- pkgdesc="Templates for the KDE office suite"
- cd "${srcdir}/build/templates"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-tools(){
- pkgdesc="Tools for the KDE office suite"
- depends=('koffice-libs')
- cd "${srcdir}/build/tools"
- make DESTDIR="${pkgdir}" install
-}
-
-#### package common files done #####
-
-#### package apps and their docs #####
-
-package_koffice-karbon(){
- pkgdesc="Vector drawing application for KDE"
- depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates')
- optdepends=('koffice-filters: import/export filters')
- install=koffice.install
- cd "${srcdir}/build/karbon"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-karbon-doc(){
- pkgdesc="Documentation for karbon"
- cd "${srcdir}/build/doc/karbon"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kexi(){
- pkgdesc="Integrated data management application for the KDE office suite"
- depends=('kdelibs' 'koffice-libs' 'koffice-kspread' 'sqlite3')
- cd "${srcdir}/build/kexi"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kexi-doc(){
- pkgdesc="Documentation for kexi"
- cd "${srcdir}/build/doc/kexi"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kformula(){
- pkgdesc="Formula editor for the KDE office suite"
- depends=('kdelibs' 'koffice-libs')
- cd "${srcdir}/build/kformula"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kformula-doc() {
- pkgdesc="Documentation for koffice-kformula"
- cd "${srcdir}/build/doc/kformula"
- make DESTDIR="${pkgdir}" install
-}
-
-
-package_koffice-kounavail(){
- pkgdesc="Kounavail for the KDE office suite"
- depends=('kdelibs' 'koffice-libs')
- cd "${srcdir}/build/kounavail"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kplato(){
- pkgdesc="Project management application for KDE"
- depends=('hicolor-icon-theme' 'koffice-libs' 'kdepimlibs' 'koffice-templates' \
- 'koffice-plugins' 'koffice-kword')
- install=koffice.install
- cd "${srcdir}/build/kplato"
- make DESTDIR="${pkgdir}" install
-}
-
-#package_koffice-kplato-doc(){
-# pkgdesc="Documentation for kplato"
-# cd ${srcdir}/build/doc/kplato
-# make DESTDIR="${pkgdir}" install
-#}
-
-package_koffice-kpresenter(){
- pkgdesc="Presentation tool for KDE"
- depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates')
- optdepends=('koffice-filters: import/export filters')
- install=koffice.install
- cd "${srcdir}/build/kpresenter"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kpresenter-doc(){
- pkgdesc="Documentation for kpresenter"
- cd "${srcdir}/build/doc/kpresenter"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-krita(){
- pkgdesc="Graphics editor for KDE"
- depends=('hicolor-icon-theme' 'glew' 'qimageblitz' 'koffice-libs' \
- 'koffice-templates' 'koffice-plugins' 'poppler-qt' 'shared-mime-info' \
- 'openexr' 'opengtl')
- optdepends=('koffice-filters: import/export filters')
- install=krita.install
- cd "${srcdir}/build/krita"
- make DESTDIR="${pkgdir}" install
-}
-
-#package_koffice-krita-doc(){
-# pkgdesc="Documentation for krita"
-# cd ${srcdir}/build/doc/krita
-# make DESTDIR="${pkgdir}" install
-#}
-
-
-package_koffice-kspread(){
- pkgdesc="Spreadsheet application for KDE"
- depends=('hicolor-icon-theme' 'gsl' 'koffice-libs' 'koffice-templates' 'koffice-plugins')
- optdepends=('koffice-filters: import/export filters')
- install=koffice.install
- cd "${srcdir}/build/kspread"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kspread-doc(){
- pkgdesc="Documentation for kspread"
- cd "${srcdir}/build/doc/kspread"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-kword(){
- pkgdesc="Wordprocessor for KDE"
- depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates' 'koffice-pics' \
- 'koffice-kounavail' 'koffice-plugins')
- optdepends=('koffice-filters: import/export filters')
- install=koffice.install
- cd "${srcdir}/build/kword"
- make DESTDIR="${pkgdir}" install
-
- # some sed lines to have python2 in extension scripts
- sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/oouno.py"
- sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/importdoxyxml.py"
- sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/onlinehelp.py"
-}
-
-#package_koffice-kword-doc(){
-# pkgdesc="Documentation for kword"
-# cd ${srcdir}/build/doc/kword
-# make DESTDIR="${pkgdir}" install
-#}
-
-##### package apps done #####
-
-#package_koffice-kchart(){
-# pkgdesc="Charting tool for KDE"
-# depends=('hicolor-icon-theme' 'koffice-interfaces' 'koffice-templates')
-# optdepends=('koffice-filters: import/export filters')
-# install=koffice.install
-# cd "${srcdir}/build/kchart"
-# make DESTDIR="${pkgdir}" install
-#}
-
-#package_koffice-kchart-doc(){
-# pkgdesc="Documentation for kchart"
-# cd "${srcdir}/build/doc/kchart"
-# make DESTDIR="${pkgdir}" install
-#}
-
-#package_koffice-kdgantt(){
-# pkgdesc="Gantt for KDE"
-# cd "${srcdir}/build/kdgantt"
-# make DESTDIR="${pkgdir}" install
-#}
-
-package_koffice-handbook() {
- pkgdesc="Documentation for koffice"
- cd "${srcdir}/build/doc/koffice"
- make DESTDIR="${pkgdir}" install
-}
-
-package_koffice-thesaurus-doc(){
- pkgdesc="Documentation for koffice-thesaurus"
- cd "${srcdir}/build/doc/thesaurus"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/koffice/gcc46.patch b/testing/koffice/gcc46.patch
deleted file mode 100644
index dcf8a4f85..000000000
--- a/testing/koffice/gcc46.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc.gcc46 koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc
---- koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc.gcc46 2011-02-17 06:13:40.000000000 -0600
-+++ koffice-2.3.2/krita/plugins/formats/exr/exr_converter.cc 2011-02-19 21:15:56.597142885 -0600
-@@ -80,6 +80,9 @@ ImageType imfTypeToKisType(Imf::PixelTyp
- return IT_FLOAT16;
- case Imf::FLOAT:
- return IT_FLOAT32;
-+ default:
-+ // shouldn't reach here
-+ return IT_UNSUPPORTED;
- }
- }
-
-@@ -93,6 +96,9 @@ const KoColorSpace* kisTypeToColorSpace(
- case IT_UNKNOWN:
- case IT_UNSUPPORTED:
- return 0;
-+ default:
-+ // shouldn't reach here
-+ return 0;
- }
- }
-
diff --git a/testing/koffice/kde4-koffice-libwpg02.patch b/testing/koffice/kde4-koffice-libwpg02.patch
deleted file mode 100644
index e2a55a216..000000000
--- a/testing/koffice/kde4-koffice-libwpg02.patch
+++ /dev/null
@@ -1,1323 +0,0 @@
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/CMakeLists.txt koffice-2.3.1-libwpg02/filters/karbon/wpg/import/CMakeLists.txt
---- koffice-2.3.1/filters/karbon/wpg/import/CMakeLists.txt 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/CMakeLists.txt 2011-01-18 07:40:25.000000000 +0100
-@@ -1,16 +1,11 @@
-
--
- include_directories(${CMAKE_BINARY_DIR}/filters/ ${WPD_INCLUDE_DIR} ${LIBWPG_INCLUDE_DIR}/)
-
--set(wpgimport_PART_SRCS
--WPGImport.cpp
--OdgExporter.cxx
--FileOutputHandler.cxx
--GraphicsElement.cxx)
-+set(wpgimport_PART_SRCS WPGImport.cpp)
-
- kde4_add_plugin(wpgimport ${wpgimport_PART_SRCS})
-
--target_link_libraries(wpgimport komain ${LIBWPG_LIBRARIES} ${LIBWPG_STREAM_LIBRARIES})
-+target_link_libraries(wpgimport komain ${LIBWPG_LIBRARIES} ${LIBWPG_STREAM_LIBRARIES} ${WPD_LIBRARIES})
-
- install(TARGETS wpgimport DESTINATION ${PLUGIN_INSTALL_DIR})
- install(FILES karbon_wpg_import.desktop DESTINATION ${SERVICES_INSTALL_DIR})
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.cxx
---- koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.cxx 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.cxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,95 +0,0 @@
--/* libwpg
-- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Library General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02111-1301 USA
-- *
-- * For further information visit http://libwpg.sourceforge.net
-- */
--
--/* "This product is not manufactured, approved, or supported by
-- * Corel Corporation or Corel Corporation Limited."
-- */
--
--#include "FileOutputHandler.hxx"
--
--FileOutputHandler::FileOutputHandler(std::ostringstream &contentStream) :
-- mbIsTagOpened(false),
-- mContentStream(contentStream)
--{
--}
--
--void FileOutputHandler::startDocument()
--{
--}
--
--void FileOutputHandler::startElement(const char *psName, const std::vector<std::pair<std::string, std::string> > &xPropList)
--{
-- if (mbIsTagOpened)
-- {
-- mContentStream << ">";
-- mbIsTagOpened = false;
-- }
-- mContentStream << "<" << psName;
--
-- for (std::vector<std::pair<std::string, std::string> >::const_iterator i = xPropList.begin(); i != xPropList.end(); i++)
-- {
-- mContentStream << " " << (*i).first.c_str() << "=\"" << (*i).second.c_str() << "\"";
-- }
-- mbIsTagOpened = true;
-- msOpenedTagName = psName;
--}
--
--void FileOutputHandler::endElement(const char *psName)
--{
-- if (mbIsTagOpened)
-- {
-- if( msOpenedTagName == psName )
-- {
-- mContentStream << "/>";
-- mbIsTagOpened = false;
-- }
-- else // should not happen, but handle it
-- {
-- mContentStream << ">";
-- mContentStream << "</" << psName << ">";
-- mbIsTagOpened = false;
-- }
-- }
-- else
-- {
-- mContentStream << "</" << psName << ">";
-- mbIsTagOpened = false;
-- }
--}
--
--void FileOutputHandler::characters(const std::string &sCharacters)
--{
-- if (mbIsTagOpened)
-- {
-- mContentStream << ">";
-- mbIsTagOpened = false;
-- }
-- mContentStream << sCharacters.c_str();
--}
--
--void FileOutputHandler::endDocument()
--{
-- if (mbIsTagOpened)
-- {
-- mContentStream << ">";
-- mbIsTagOpened = false;
-- }
--}
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.hxx
---- koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.hxx 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.hxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,49 +0,0 @@
--/* libwpg
-- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Library General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02111-1301 USA
-- *
-- * For further information visit http://libwpg.sourceforge.net
-- */
--
--/* "This product is not manufactured, approved, or supported by
-- * Corel Corporation or Corel Corporation Limited."
-- */
--
--#ifndef FILEOUTPUTHANDLER_H
--#define FILEOUTPUTHANDLER_H
--
--#include <iostream>
--#include <sstream>
--#include <string>
--#include "GraphicsHandler.hxx"
--
--class FileOutputHandler : public GraphicsHandler
--{
-- public:
-- explicit FileOutputHandler(std::ostringstream &contentStream);
-- virtual void startDocument();
-- virtual void endDocument();
-- virtual void startElement(const char *psName, const std::vector<std::pair<std::string, std::string> > &xPropList);
-- virtual void endElement(const char *psName);
-- virtual void characters(const std::string &sCharacters);
--
-- private:
-- bool mbIsTagOpened;
-- std::string msOpenedTagName;
-- std::ostringstream &mContentStream;
--};
--#endif
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.cxx
---- koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.cxx 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.cxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,66 +0,0 @@
--/* GraphicsElement: The items we are collecting to be put into the Writer
-- * document: paragraph and spans of text, as well as section breaks.
-- *
-- * Copyright (C) 2002-2003 William Lachance (william.lachance@sympatico.ca)
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02111-1301 USA
-- *
-- * For further information visit http://libwpg.sourceforge.net
-- *
-- */
--
--/* "This product is not manufactured, approved, or supported by
-- * Corel Corporation or Corel Corporation Limited."
-- */
--
--#include "GraphicsElement.hxx"
--#include "GraphicsHandler.hxx"
--#include <string.h>
--
--#define ASCII_SPACE 0x0020
--
--void TagGraphicsElement::print() const
--{
--}
--
--void OpenTagGraphicsElement::write(GraphicsHandler *pHandler) const
--{
-- pHandler->startElement(getTagName().c_str(), maAttrList);
--}
--
--void OpenTagGraphicsElement::print() const
--{
-- TagGraphicsElement::print();
--}
--
--void OpenTagGraphicsElement::addAttribute(const std::string &szAttributeName, const std::string &sAttributeValue)
--{
-- std::pair<std::string, std::string> tmpAttribute;
-- tmpAttribute.first = szAttributeName;
-- tmpAttribute.second = sAttributeValue;
-- maAttrList.push_back(tmpAttribute);
--}
--
--void CloseTagGraphicsElement::write(GraphicsHandler *pHandler) const
--{
--
-- pHandler->endElement(getTagName().c_str());
--}
--
--void CharDataGraphicsElement::write(GraphicsHandler *pHandler) const
--{
-- pHandler->characters(msData);
--}
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.hxx
---- koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.hxx 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.hxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,84 +0,0 @@
--/* GraphicsElement: The items we are collecting to be put into the Writer
-- * document: paragraph and spans of text, as well as section breaks.
-- *
-- * Copyright (C) 2002-2003 William Lachance (william.lachance@sympatico.ca)
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02111-1301 USA
-- *
-- * For further information visit http://libwpd.sourceforge.net
-- *
-- */
--
--/* "This product is not manufactured, approved, or supported by
-- * Corel Corporation or Corel Corporation Limited."
-- */
--
--#ifndef _GRAPHICSELEMENT_H
--#define _GRAPHICSELEMENT_H
--#include <string>
--#include <map>
--#include <vector>
--
--#include "GraphicsHandler.hxx"
--
--class GraphicsElement
--{
--public:
-- virtual ~GraphicsElement() {}
-- virtual void write(GraphicsHandler *pHandler) const = 0;
-- virtual void print() const {}
--};
--
--class TagGraphicsElement : public GraphicsElement
--{
--public:
-- explicit TagGraphicsElement(const char *szTagName) : msTagName(szTagName) {}
-- const std::string &getTagName() const { return msTagName; }
-- virtual void print() const;
--private:
-- const std::string msTagName;
--};
--
--class OpenTagGraphicsElement : public TagGraphicsElement
--{
--public:
-- explicit OpenTagGraphicsElement(const char *szTagName) : TagGraphicsElement(szTagName) {}
-- ~OpenTagGraphicsElement() {}
-- void addAttribute(const std::string &szAttributeName, const std::string &sAttributeValue);
-- virtual void write(GraphicsHandler *pHandler) const;
-- virtual void print () const;
--private:
-- std::vector<std::pair<std::string, std::string> > maAttrList;
--};
--
--class CloseTagGraphicsElement : public TagGraphicsElement
--{
--public:
-- explicit CloseTagGraphicsElement(const char *szTagName) : TagGraphicsElement(szTagName) {}
-- virtual void write(GraphicsHandler *pHandler) const;
--};
--
--class CharDataGraphicsElement : public GraphicsElement
--{
--public:
-- CharDataGraphicsElement(const char *sData) : GraphicsElement(), msData(sData) {}
-- virtual void write(GraphicsHandler *pHandler) const;
--private:
-- std::string msData;
--};
--
--
--#endif
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsHandler.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsHandler.hxx
---- koffice-2.3.1/filters/karbon/wpg/import/GraphicsHandler.hxx 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsHandler.hxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,43 +0,0 @@
--/*
-- * Copyright (C) 2004 William Lachance (wlach@interlog.com)
-- * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com)
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02111-1301 USA
-- *
-- * Contributor(s): Martin Gallwey (gallwey@sun.com)
-- *
-- */
--
--/* "This product is not manufactured, approved, or supported by
-- * Corel Corporation or Corel Corporation Limited."
-- */
--#ifndef _GRAPHICSHANDLER_H
--#define _GRAPHICSHANDLER_H
--#include <string>
--#include <map>
--#include <vector>
--
--class GraphicsHandler
--{
--public:
-- virtual ~GraphicsHandler() {}
-- virtual void startDocument() = 0;
-- virtual void endDocument() = 0;
-- virtual void startElement(const char *psName, const std::vector< std::pair <std::string, std::string> > &xPropList) = 0;
-- virtual void endElement(const char *psName) = 0;
-- virtual void characters(const std::string &sCharacters) = 0;
--};
--#endif
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.cxx
---- koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.cxx 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.cxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,662 +0,0 @@
--/* libwpg
-- * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
-- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Library General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02111-1301 USA
-- *
-- * For further information visit http://libwpg.sourceforge.net
-- */
--
--/* "This product is not manufactured, approved, or supported by
-- * Corel Corporation or Corel Corporation Limited."
-- */
--
--#include "OdgExporter.hxx"
--#include "GraphicsElement.hxx"
--#include "GraphicsHandler.hxx"
--#include <locale.h>
--
--static std::string doubleToString(const double value)
--{
-- std::ostringstream tempStream;
-- tempStream << value;
-- std::string decimalPoint(localeconv()->decimal_point);
-- if ((decimalPoint.size() == 0) || (decimalPoint == "."))
-- return tempStream.str();
-- std::string stringValue(tempStream.str());
-- if (!stringValue.empty())
-- {
-- std::string::size_type pos;
-- while ((pos = stringValue.find(decimalPoint)) != std::string::npos)
-- stringValue.replace(pos,decimalPoint.size(),".");
-- }
-- return stringValue;
--}
--
--
--OdgExporter::OdgExporter(GraphicsHandler *pHandler, const bool isFlatXML):
-- mpHandler(pHandler),
-- m_fillRule(AlternatingFill),
-- m_gradientIndex(1),
-- m_dashIndex(1),
-- m_styleIndex(1),
-- m_width(0.0f),
-- m_height(0.0f),
-- m_isFlatXML(isFlatXML)
--{
--}
--
--OdgExporter::~OdgExporter()
--{
-- for (std::vector <GraphicsElement *>::iterator iterStroke = mStrokeDashElements.begin();
-- iterStroke != mStrokeDashElements.end(); iterStroke++)
-- delete (*iterStroke);
--
-- for (std::vector <GraphicsElement *>::iterator iterGradient = mGradientElements.begin();
-- iterGradient != mGradientElements.end(); iterGradient++)
-- delete (*iterGradient);
--
-- for (std::vector <GraphicsElement *>::iterator iterAutomaticStyles = mAutomaticStylesElements.begin();
-- iterAutomaticStyles != mAutomaticStylesElements.end(); iterAutomaticStyles++)
-- delete (*iterAutomaticStyles);
--
-- for (std::vector<GraphicsElement *>::iterator bodyIter = mBodyElements.begin();
-- bodyIter != mBodyElements.end(); bodyIter++)
-- delete (*bodyIter);
--}
--
--void OdgExporter::startGraphics(double width, double height)
--{
-- m_gradientIndex = 1;
-- m_dashIndex = 1;
-- m_styleIndex = 1;
-- m_width = width;
-- m_height = height;
--
--
-- mpHandler->startDocument();
-- OpenTagGraphicsElement tmpOfficeDocumentContent("office:document");
-- tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0");
-- tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
-- tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0");
-- tmpOfficeDocumentContent.addAttribute("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0");
-- tmpOfficeDocumentContent.addAttribute("xmlns:dc", "http://purl.org/dc/elements/1.1/");
-- tmpOfficeDocumentContent.addAttribute("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0");
-- tmpOfficeDocumentContent.addAttribute("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0");
-- tmpOfficeDocumentContent.addAttribute("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0");
-- tmpOfficeDocumentContent.addAttribute("xmlns:ooo", "http://openoffice.org/2004/office");
-- tmpOfficeDocumentContent.addAttribute("office:version", "1.0");
-- if (m_isFlatXML)
-- tmpOfficeDocumentContent.addAttribute("office:mimetype", "application/x-vnd.oasis.openoffice.drawing");
-- tmpOfficeDocumentContent.write(mpHandler);
--
-- OpenTagGraphicsElement("office:settings").write(mpHandler);
--
-- OpenTagGraphicsElement configItemSetOpenElement("config:config-item-set");
-- configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings");
-- configItemSetOpenElement.write(mpHandler);
--
-- OpenTagGraphicsElement configItemOpenElement1("config:config-item");
-- configItemOpenElement1.addAttribute("config:name", "VisibleAreaTop");
-- configItemOpenElement1.addAttribute("config:type", "int");
-- configItemOpenElement1.write(mpHandler);
-- mpHandler->characters("0");
-- mpHandler->endElement("config:config-item");
--
-- OpenTagGraphicsElement configItemOpenElement2("config:config-item");
-- configItemOpenElement2.addAttribute("config:name", "VisibleAreaLeft");
-- configItemOpenElement2.addAttribute("config:type", "int");
-- configItemOpenElement2.write(mpHandler);
-- mpHandler->characters("0");
-- mpHandler->endElement("config:config-item");
--
-- OpenTagGraphicsElement configItemOpenElement3("config:config-item");
-- configItemOpenElement3.addAttribute("config:name", "VisibleAreaWidth");
-- configItemOpenElement3.addAttribute("config:type", "int");
-- configItemOpenElement3.write(mpHandler);
-- m_value.str("");
-- m_value << (unsigned)(2540 * width);
-- mpHandler->characters(m_value.str());
-- mpHandler->endElement("config:config-item");
--
-- OpenTagGraphicsElement configItemOpenElement4("config:config-item");
-- configItemOpenElement4.addAttribute("config:name", "VisibleAreaHeight");
-- configItemOpenElement4.addAttribute("config:type", "int");
-- configItemOpenElement4.write(mpHandler);
-- m_value.str("");
-- m_value << (unsigned)(2540 * height);
-- mpHandler->characters(m_value.str());
-- mpHandler->endElement("config:config-item");
--
-- mpHandler->endElement("config:config-item-set");
--
-- mpHandler->endElement("office:settings");
--
--}
--
--void OdgExporter::endGraphics()
--{
-- OpenTagGraphicsElement("office:styles").write(mpHandler);
--
-- for (std::vector <GraphicsElement *>::const_iterator iterStroke = mStrokeDashElements.begin();
-- iterStroke != mStrokeDashElements.end(); iterStroke++)
-- (*iterStroke)->write(mpHandler);
--
-- for (std::vector <GraphicsElement *>::const_iterator iterGradient = mGradientElements.begin();
-- iterGradient != mGradientElements.end(); iterGradient++)
-- (*iterGradient)->write(mpHandler);
--
-- mpHandler->endElement("office:styles");
--
-- OpenTagGraphicsElement("office:automatic-styles").write(mpHandler);
--
-- for (std::vector <GraphicsElement *>::const_iterator iterAutomaticStyles = mAutomaticStylesElements.begin();
-- iterAutomaticStyles != mAutomaticStylesElements.end(); iterAutomaticStyles++)
-- (*iterAutomaticStyles)->write(mpHandler);
--
-- OpenTagGraphicsElement tmpStylePageLayoutOpenElement("style:page-layout");
-- tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0");
-- tmpStylePageLayoutOpenElement.write(mpHandler);
--
-- OpenTagGraphicsElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties");
-- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in");
-- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in");
-- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in");
-- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in");
-- m_value.str("");
-- m_value << doubleToString(m_width) << "in";
-- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(m_height) << "in";
-- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", m_value.str());
-- m_value.str("");
-- tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait");
-- tmpStylePageLayoutPropertiesOpenElement.write(mpHandler);
--
-- mpHandler->endElement("style:page-layout-properties");
--
-- mpHandler->endElement("style:page-layout");
--
-- OpenTagGraphicsElement tmpStyleStyleOpenElement("style:style");
-- tmpStyleStyleOpenElement.addAttribute("style:name", "dp1");
-- tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page");
-- tmpStyleStyleOpenElement.write(mpHandler);
--
-- OpenTagGraphicsElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties");
-- // tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border");
-- tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none");
-- tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler);
--
-- mpHandler->endElement("style:drawing-page-properties");
--
-- mpHandler->endElement("style:style");
--
-- mpHandler->endElement("office:automatic-styles");
--
-- OpenTagGraphicsElement("office:master-styles").write(mpHandler);
--
-- OpenTagGraphicsElement tmpStyleMasterPageOpenElement("style:master-page");
-- tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default");
-- tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0");
-- tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1");
-- tmpStyleMasterPageOpenElement.write(mpHandler);
--
-- mpHandler->endElement("style:master-page");
--
-- mpHandler->endElement("office:master-styles");
--
-- OpenTagGraphicsElement("office:body").write(mpHandler);
--
-- OpenTagGraphicsElement("office:drawing").write(mpHandler);
--
-- OpenTagGraphicsElement tmpDrawPageOpenElement("draw:page");
-- tmpDrawPageOpenElement.addAttribute("draw:name", "page1");
-- tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1");
-- tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default");
-- tmpDrawPageOpenElement.write(mpHandler);
--
-- for (std::vector<GraphicsElement *>::const_iterator bodyIter = mBodyElements.begin();
-- bodyIter != mBodyElements.end(); bodyIter++)
-- {
-- (*bodyIter)->write(mpHandler);
-- }
--
-- mpHandler->endElement("draw:page");
-- mpHandler->endElement("office:drawing");
-- mpHandler->endElement("office:body");
-- mpHandler->endElement("office:document");
--
-- mpHandler->endDocument();
--}
--
--void OdgExporter::setPen(const libwpg::WPGPen& pen)
--{
-- m_pen = pen;
--}
--
--void OdgExporter::setBrush(const libwpg::WPGBrush& brush)
--{
-- m_brush = brush;
--}
--
--void OdgExporter::setFillRule(FillRule rule)
--{
-- m_fillRule = rule;
--}
--
--void OdgExporter::startLayer(unsigned int)
--{
--}
--
--void OdgExporter::endLayer(unsigned int)
--{
--}
--
--void OdgExporter::drawRectangle(const libwpg::WPGRect& rect, double rx, double )
--{
-- writeStyle();
-- OpenTagGraphicsElement *pDrawRectElement = new OpenTagGraphicsElement("draw:rect");
-- m_value.str("");
-- m_value << "gr" << m_styleIndex-1;
-- pDrawRectElement->addAttribute("draw:style-name", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(rect.x1) << "in";
-- pDrawRectElement->addAttribute("svg:x", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(rect.y1) << "in";
-- pDrawRectElement->addAttribute("svg:y", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(rect.x2-rect.x1) << "in";
-- pDrawRectElement->addAttribute("svg:width", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(rect.y2-rect.y1) << "in";
-- pDrawRectElement->addAttribute("svg:height", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(rx) << "in";
-- // FIXME: what to do when rx != ry ?
-- pDrawRectElement->addAttribute("draw:corner-radius", m_value.str());
-- m_value.str("");
-- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawRectElement));
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:rect")));
--}
--
--void OdgExporter::drawEllipse(const libwpg::WPGPoint& center, double rx, double ry)
--{
-- writeStyle();
-- OpenTagGraphicsElement *pDrawEllipseElement = new OpenTagGraphicsElement("draw:ellipse");
-- m_value.str("");
-- m_value << "gr" << m_styleIndex-1;
-- pDrawEllipseElement->addAttribute("draw:style-name", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(center.x - rx) << "in";
-- pDrawEllipseElement->addAttribute("svg:x", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(center.y - ry) << "in";
-- pDrawEllipseElement->addAttribute("svg:y", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(2 * rx) << "in";
-- pDrawEllipseElement->addAttribute("svg:width", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(2 * ry) << "in";
-- pDrawEllipseElement->addAttribute("svg:height", m_value.str());
-- m_value.str("");
-- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawEllipseElement));
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:ellipse")));
--}
--
--void OdgExporter::drawPolygon(const libwpg::WPGPointArray& vertices)
--{
-- if(vertices.count() < 2)
-- return;
--
-- if(vertices.count() == 2)
-- {
-- const libwpg::WPGPoint& p1 = vertices[0];
-- const libwpg::WPGPoint& p2 = vertices[1];
--
-- writeStyle();
-- OpenTagGraphicsElement *pDrawLineElement = new OpenTagGraphicsElement("draw:line");
-- m_value.str("");
-- m_value << "gr" << m_styleIndex-1;
-- pDrawLineElement->addAttribute("draw:style-name", m_value.str());
-- m_value.str("");
-- pDrawLineElement->addAttribute("draw:text-style-name", "P1");
-- pDrawLineElement->addAttribute("draw:layer", "layout");
-- m_value << doubleToString(p1.x) << "in";
-- pDrawLineElement->addAttribute("svg:x1", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(p1.y) << "in";
-- pDrawLineElement->addAttribute("svg:y1", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(p2.x) << "in";
-- pDrawLineElement->addAttribute("svg:x2", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(p2.y) << "in";
-- pDrawLineElement->addAttribute("svg:y2", m_value.str());
-- m_value.str("");
-- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawLineElement));
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:line")));
-- }
-- else
-- {
-- // draw as path
-- libwpg::WPGPath path;
-- path.moveTo(vertices[0]);
-- for(unsigned long ii = 1; ii < vertices.count(); ii++)
-- path.lineTo(vertices[ii]);
-- path.closed = true;
-- drawPath(path);
-- }
--}
--
--void OdgExporter::drawPath(const libwpg::WPGPath& path)
--{
-- if(path.count() == 0)
-- return;
--
-- // try to find the bounding box
-- // this is simple convex hull technique, the bounding box might not be
-- // accurate but that should be enough for this purpose
-- libwpg::WPGPoint p = path.element(0).point;
-- libwpg::WPGPoint q = path.element(0).point;
-- for(unsigned k = 0; k < path.count(); k++)
-- {
-- libwpg::WPGPathElement element = path.element(k);
-- p.x = (p.x > element.point.x) ? element.point.x : p.x;
-- p.y = (p.y > element.point.y) ? element.point.y : p.y;
-- q.x = (q.x < element.point.x) ? element.point.x : q.x;
-- q.y = (q.y < element.point.y) ? element.point.y : q.y;
-- if(element.type == libwpg::WPGPathElement::CurveToElement)
-- {
-- p.x = (p.x > element.extra1.x) ? element.extra1.x : p.x;
-- p.y = (p.y > element.extra1.y) ? element.extra1.y : p.y;
-- q.x = (q.x < element.extra1.x) ? element.extra1.x : q.x;
-- q.y = (q.y < element.extra1.y) ? element.extra1.y : q.y;
-- p.x = (p.x > element.extra2.x) ? element.extra2.x : p.x;
-- p.y = (p.y > element.extra2.y) ? element.extra2.y : p.y;
-- q.x = (q.x < element.extra2.x) ? element.extra2.x : q.x;
-- q.y = (q.y < element.extra2.y) ? element.extra2.y : q.y;
-- }
-- }
-- double vw = q.x - p.x;
-- double vh = q.y - p.y;
--
-- writeStyle();
--
-- OpenTagGraphicsElement *pDrawPathElement = new OpenTagGraphicsElement("draw:path");
-- m_value.str("");
-- m_value << "gr" << m_styleIndex-1;
-- pDrawPathElement->addAttribute("draw:style-name", m_value.str());
-- m_value.str("");
-- pDrawPathElement->addAttribute("draw:text-style-name", "P1");
-- pDrawPathElement->addAttribute("draw:layer", "layout");
-- m_value << doubleToString(p.x) << "in";
-- pDrawPathElement->addAttribute("svg:x", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(p.y) << "in";
-- pDrawPathElement->addAttribute("svg:y", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(vw) << "in";
-- pDrawPathElement->addAttribute("svg:width", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(vh) << "in";
-- pDrawPathElement->addAttribute("svg:height", m_value.str());
-- m_value.str("");
-- m_value << "0 0 " << (int)(vw*2540) << " " << (int)(vh*2540);
-- pDrawPathElement->addAttribute("svg:viewBox", m_value.str());
-- m_value.str("");
--
-- for(unsigned i = 0; i < path.count(); i++)
-- {
-- libwpg::WPGPathElement element = path.element(i);
-- libwpg::WPGPoint point = element.point;
-- switch(element.type)
-- {
-- // 2540 is 2.54*1000, 2.54 in = 1 in
-- case libwpg::WPGPathElement::MoveToElement:
-- m_value << "M" << (int)((point.x-p.x)*2540) << " ";
-- m_value << (int)((point.y-p.y)*2540);
-- break;
--
-- case libwpg::WPGPathElement::LineToElement:
-- m_value << "L" << (int)((point.x-p.x)*2540) << " ";
-- m_value << (int)((point.y-p.y)*2540);
-- break;
--
-- case libwpg::WPGPathElement::CurveToElement:
-- m_value << "C" << (int)((element.extra1.x-p.x)*2540) << " ";
-- m_value << (int)((element.extra1.y-p.y)*2540) << " ";
-- m_value << (int)((element.extra2.x-p.x)*2540) << " ";
-- m_value << (int)((element.extra2.y-p.y)*2540) << " ";
-- m_value << (int)((point.x-p.x)*2540) << " ";
-- m_value << (int)((point.y-p.y)*2540);
-- break;
--
-- default:
-- break;
-- }
-- }
-- if(path.closed)
-- m_value << " Z";
-- pDrawPathElement->addAttribute("svg:d", m_value.str());
-- m_value.str("");
-- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawPathElement));
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:path")));
--}
--
--
--void OdgExporter::drawBitmap(const libwpg::WPGBitmap& bitmap)
--{
-- OpenTagGraphicsElement *pDrawFrameElement = new OpenTagGraphicsElement("draw:frame");
-- m_value.str("");
-- m_value << doubleToString(bitmap.rect.x1) << "in";
-- pDrawFrameElement->addAttribute("svg:x", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(bitmap.rect.y1) << "in";
-- pDrawFrameElement->addAttribute("svg:y", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(bitmap.rect.height()) << "in";
-- pDrawFrameElement->addAttribute("svg:height", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(bitmap.rect.width()) << "in";
-- pDrawFrameElement->addAttribute("svg:width", m_value.str());
-- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawFrameElement));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("draw:image")));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("office:binary-data")));
--
-- libwpg::WPGString base64Binary;
-- bitmap.generateBase64DIB(base64Binary);
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CharDataGraphicsElement(base64Binary.cstr())));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("office:binary-data")));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:image")));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:frame")));
--}
--
--void OdgExporter::drawImageObject(const libwpg::WPGBinaryData& binaryData)
--{
-- if (binaryData.mimeType.length() <= 0)
-- return;
-- OpenTagGraphicsElement *pDrawFrameElement = new OpenTagGraphicsElement("draw:frame");
-- m_value.str("");
-- m_value << doubleToString(binaryData.rect.x1) << "in";
-- pDrawFrameElement->addAttribute("svg:x", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(binaryData.rect.y1) << "in";
-- pDrawFrameElement->addAttribute("svg:y", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(binaryData.rect.height()) << "in";
-- pDrawFrameElement->addAttribute("svg:height", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(binaryData.rect.width()) << "in";
-- pDrawFrameElement->addAttribute("svg:width", m_value.str());
-- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawFrameElement));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("draw:image")));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("office:binary-data")));
--
-- libwpg::WPGString base64Binary = binaryData.getBase64Data();
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CharDataGraphicsElement(base64Binary.cstr())));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("office:binary-data")));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:image")));
--
-- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:frame")));
--}
--
--
--static std::string colorToHex(const libwpg::WPGColor& color)
--{
-- char hexdigits[] = "0123456789abcdef";
-- char buffer[] = "123456";
-- buffer[0] = hexdigits[(color.red >> 4) & 15];
-- buffer[1] = hexdigits[color.red & 15];
-- buffer[2] = hexdigits[(color.green >> 4) & 15];
-- buffer[3] = hexdigits[color.green & 15];
-- buffer[4] = hexdigits[(color.blue >> 4) & 15];
-- buffer[5] = hexdigits[color.blue & 15];
-- return std::string(buffer);
--}
--
--void OdgExporter::writeStyle()
--{
-- m_value.str("");
-- m_name.str("");
--
-- if(!m_pen.solid && (m_pen.dashArray.count() >=2 ) )
-- {
-- // ODG only supports dashes with the same length of spaces inbetween
-- // here we take the first space and assume everything else the same
-- // note that dash length is written in percentage
-- double distance = m_pen.dashArray.at(1);
-- OpenTagGraphicsElement *tmpDrawStrokeDashElement = new OpenTagGraphicsElement("draw:stroke-dash");
-- tmpDrawStrokeDashElement->addAttribute("draw:style", "rect");
-- m_value << "Dash_" << m_dashIndex++;
-- tmpDrawStrokeDashElement->addAttribute("draw:name", m_value.str());
-- m_value.str("");
-- m_value << doubleToString(distance*100) << "%";
-- tmpDrawStrokeDashElement->addAttribute("draw:distance", m_value.str());
-- m_value.str("");
-- for(unsigned i = 0; i < m_pen.dashArray.count()/2; i++)
-- {
-- m_name << "draw:dots" << i+1;
-- tmpDrawStrokeDashElement->addAttribute(m_name.str(), "1");
-- m_name.str("");
-- m_name << "draw:dots" << i+1 << "-length";
-- m_value << doubleToString(100*m_pen.dashArray.at(i*2)) << "%";
-- tmpDrawStrokeDashElement->addAttribute(m_name.str(), m_value.str());
-- m_name.str("");
-- m_value.str("");
-- }
-- mStrokeDashElements.push_back(static_cast<GraphicsElement *>(tmpDrawStrokeDashElement));
-- mStrokeDashElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:stroke-dash")));
-- }
--
-- if(m_brush.style == libwpg::WPGBrush::Gradient)
-- {
-- OpenTagGraphicsElement *tmpDrawGradientElement = new OpenTagGraphicsElement("draw:gradient");
-- tmpDrawGradientElement->addAttribute("draw:style", "linear");
-- m_value << "Gradient_" << m_gradientIndex++;
-- tmpDrawGradientElement->addAttribute("draw:name", m_value.str());
-- m_value.str("");
--
-- // ODG angle unit is 0.1 degree
-- double angle = -m_brush.gradient.angle();
-- while(angle < 0)
-- angle += 360;
-- while(angle > 360)
-- angle -= 360;
--
-- m_value << (unsigned)(angle*10);
-- tmpDrawGradientElement->addAttribute("draw:angle", m_value.str());
-- m_value.str("");
--
-- libwpg::WPGColor startColor = m_brush.gradient.stopColor(0);
-- libwpg::WPGColor stopColor = m_brush.gradient.stopColor(1);
-- m_value << "#" << colorToHex(startColor);
-- tmpDrawGradientElement->addAttribute("draw:start-color", m_value.str());
-- m_value.str("");
-- m_value << "#" << colorToHex(stopColor);
-- tmpDrawGradientElement->addAttribute("draw:end-color", m_value.str());
-- m_value.str("");
-- tmpDrawGradientElement->addAttribute("draw:start-intensity", "100%");
-- tmpDrawGradientElement->addAttribute("draw:end-intensity", "100%");
-- tmpDrawGradientElement->addAttribute("draw:border", "0%");
-- mGradientElements.push_back(static_cast<GraphicsElement *>(tmpDrawGradientElement));
-- mGradientElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:gradient")));
-- }
--
-- OpenTagGraphicsElement *tmpStyleStyleElement = new OpenTagGraphicsElement("style:style");
-- m_value << "gr" << m_styleIndex;
-- tmpStyleStyleElement->addAttribute("style:name", m_value.str());
-- m_value.str("");
-- tmpStyleStyleElement->addAttribute("style:family", "graphic");
-- tmpStyleStyleElement->addAttribute("style:parent-style-name", "standard");
-- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(tmpStyleStyleElement));
--
-- OpenTagGraphicsElement *tmpStyleGraphicPropertiesElement = new OpenTagGraphicsElement("style:graphic-properties");
--
-- if(m_pen.width > 0.0)
-- {
-- m_value << doubleToString(m_pen.width) << "in";
-- tmpStyleGraphicPropertiesElement->addAttribute("svg:stroke-width", m_value.str());
-- m_value.str("");
-- m_value << "#" << colorToHex(m_pen.foreColor);
-- tmpStyleGraphicPropertiesElement->addAttribute("svg:stroke-color", m_value.str());
-- m_value.str("");
--
-- if(!m_pen.solid)
-- {
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke", "dash");
-- m_value << "Dash_" << m_dashIndex-1;
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke-dash", m_value.str());
-- m_value.str("");
-- }
-- }
-- else
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke", "none");
--
-- if(m_brush.style == libwpg::WPGBrush::NoBrush)
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "none");
--
-- if(m_brush.style == libwpg::WPGBrush::Solid)
-- {
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "solid");
-- m_value << "#" << colorToHex(m_brush.foreColor);
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill-color", m_value.str());
-- m_value.str("");
-- }
--
-- if(m_brush.style == libwpg::WPGBrush::Gradient)
-- {
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "gradient");
-- m_value << "Gradient_" << m_gradientIndex-1;
-- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill-gradient-name", m_value.str());
-- m_value.str("");
-- }
--
-- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(tmpStyleGraphicPropertiesElement));
-- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("style:graphic-properties")));
--
-- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("style:style")));
-- m_styleIndex++;
--}
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.hxx
---- koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.hxx 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.hxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,116 +0,0 @@
--/* libwpg
-- * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Library General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02111-1301 USA
-- *
-- * For further information visit http://libwpg.sourceforge.net
-- */
--
--/* "This product is not manufactured, approved, or supported by
-- * Corel Corporation or Corel Corporation Limited."
-- */
--
--#ifndef __ODGEXPORTER_H__
--#define __ODGEXPORTER_H__
--
--#include <iostream>
--#include <sstream>
--#include <string>
--
--#include <libwpg/libwpg.h>
--#include "GraphicsElement.hxx"
--
--class OdgExporter : public libwpg::WPGPaintInterface {
--public:
-- explicit OdgExporter(GraphicsHandler *pHandler,
-- const bool isFlatXML = false);
-- ~OdgExporter();
--
--#if LIBWPG_VERSION_MINOR<2
-- void startGraphics(double imageWidth, double imageHeight);
-- void endGraphics();
-- void startLayer(unsigned int id);
-- void endLayer(unsigned int id);
--
-- void setPen(const libwpg::WPGPen& pen);
-- void setBrush(const libwpg::WPGBrush& brush);
-- void setFillRule(FillRule rule);
--
-- void drawRectangle(const libwpg::WPGRect& rect, double rx, double ry);
-- void drawEllipse(const libwpg::WPGPoint& center, double rx, double ry);
-- void drawPolygon(const libwpg::WPGPointArray& vertices);
-- void drawPath(const libwpg::WPGPath& path);
-- void drawBitmap(const libwpg::WPGBitmap& bitmap);
-- void drawImageObject(const libwpg::WPGBinaryData& binaryData);
--
--private:
-- std::vector <GraphicsElement *> mBodyElements;
-- std::vector <GraphicsElement *> mAutomaticStylesElements;
-- std::vector <GraphicsElement *> mStrokeDashElements;
-- std::vector <GraphicsElement *> mGradientElements;
-- GraphicsHandler *mpHandler;
--
-- libwpg::WPGPen m_pen;
-- libwpg::WPGBrush m_brush;
-- FillRule m_fillRule;
-- int m_gradientIndex;
-- int m_dashIndex;
-- int m_styleIndex;
-- void writeStyle();
-- std::ostringstream m_value, m_name;
-- double m_width, m_height;
-- const bool m_isFlatXML;
--#else
-- virtual void startGraphics(const ::WPXPropertyList &propList);
-- virtual void endGraphics();
-- virtual void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient);
-- virtual void startLayer(const ::WPXPropertyList &propList);
-- virtual void endLayer();
-- virtual void drawRectangle(const ::WPXPropertyList& propList);
-- virtual void drawEllipse(const ::WPXPropertyList& propList);
-- virtual void drawPolygon(const ::WPXPropertyListVector &vertices);
-- virtual void drawPath(const ::WPXPropertyListVector &path);
-- virtual void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData);
-- virtual void startEmbeddedGraphics(const ::WPXPropertyList &propList);
-- virtual void endEmbeddedGraphics();
-- virtual void drawPolyline(const ::WPXPropertyListVector &vertices);
-- virtual void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path);
-- virtual void endTextObject();
-- virtual void startTextLine(const ::WPXPropertyList &propList);
-- virtual void endTextLine();
-- virtual void startTextSpan(const ::WPXPropertyList &propList);
-- virtual void endTextSpan();
-- virtual void insertText(const ::WPXString &str);
--
--
--private:
-- std::vector <GraphicsElement *> mBodyElements;
-- std::vector <GraphicsElement *> mAutomaticStylesElements;
-- std::vector <GraphicsElement *> mStrokeDashElements;
-- std::vector <GraphicsElement *> mGradientElements;
-- GraphicsHandler *mpHandler;
--
-- int m_gradientIndex;
-- int m_dashIndex;
-- int m_styleIndex;
-- void writeStyle();
-- std::ostringstream m_value, m_name;
-- double m_width, m_height;
-- const bool m_isFlatXML;
--#endif
--};
--
--#endif // __ODGEXPORTER_H__
-diff -Nur koffice-2.3.1/filters/karbon/wpg/import/WPGImport.cpp koffice-2.3.1-libwpg02/filters/karbon/wpg/import/WPGImport.cpp
---- koffice-2.3.1/filters/karbon/wpg/import/WPGImport.cpp 2011-01-15 21:05:35.000000000 +0100
-+++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/WPGImport.cpp 2011-01-02 17:46:15.000000000 +0100
-@@ -20,28 +20,26 @@
- #include <WPGImport.h>
- #include <WPGImport.moc>
-
--#include <QBuffer>
--#include <QByteArray>
--#include <QString>
--
--#include <kdebug.h>
- #include <KoFilterChain.h>
- #include <KoGlobal.h>
- #include <KoUnit.h>
-+#include <KoXmlWriter.h>
-+
- #include <kpluginfactory.h>
-+#include <KDebug>
-
--#include <KoXmlWriter.h>
-+
-+#include <QtCore/QString>
-+#include <QtCore/QFile>
-
- #include <libwpg/libwpg.h>
- #if LIBWPG_VERSION_MINOR<2
- #include <libwpg/WPGStreamImplementation.h>
- #else
- #include <libwpd-stream/libwpd-stream.h>
-+#include <libwpd/libwpd.h>
- #endif
-
--#include "FileOutputHandler.hxx"
--#include "OdgExporter.hxx"
--
- #include <iostream>
-
- K_PLUGIN_FACTORY(WPGImportFactory, registerPlugin<WPGImport>();)
-@@ -56,35 +54,13 @@
- {
- }
-
--static QByteArray createManifest()
--{
-- KoXmlWriter* manifestWriter;
-- QByteArray manifestData;
-- QBuffer manifestBuffer(&manifestData);
--
-- manifestBuffer.open(QIODevice::WriteOnly);
-- manifestWriter = new KoXmlWriter(&manifestBuffer);
--
-- manifestWriter->startDocument("manifest:manifest");
-- manifestWriter->startElement("manifest:manifest");
-- manifestWriter->addAttribute("xmlns:manifest", "urn:oasis:names:tc:openoffice:xmlns:manifest:1.0");
-- manifestWriter->addManifestEntry("/", "application/vnd.oasis.opendocument.graphics");
-- //manifestWriter->addManifestEntry( "styles.xml", "text/xml" );
-- manifestWriter->addManifestEntry("content.xml", "text/xml");
-- manifestWriter->endElement();
-- manifestWriter->endDocument();
-- delete manifestWriter;
--
-- return manifestData;
--}
--
-
- KoFilter::ConversionStatus WPGImport::convert(const QByteArray& from, const QByteArray& to)
- {
- if (from != "application/x-wpg")
- return KoFilter::NotImplemented;
-
-- if (to != "application/vnd.oasis.opendocument.graphics")
-+ if (to != "image/svg+xml")
- return KoFilter::NotImplemented;
-
- #if LIBWPG_VERSION_MINOR<2
-@@ -96,6 +72,7 @@
- input = olestream;
- }
- }
-+ libwpg::WPGString output;
- #else
- WPXInputStream* input = new WPXFileStream(m_chain->inputFile().toLocal8Bit());
- if (input->isOLEStream()) {
-@@ -105,59 +82,31 @@
- input = olestream;
- }
- }
-+ ::WPXString output;
- #endif
-
- if (!libwpg::WPGraphics::isSupported(input)) {
-- std::cerr << "ERROR: Unsupported file format (unsupported version) or file is encrypted!" << std::endl;
-+ kWarning() << "ERROR: Unsupported file format (unsupported version) or file is encrypted!";
- delete input;
- return KoFilter::NotImplemented;
- }
-
-- // do the conversion
-- std::ostringstream tmpStringStream;
-- FileOutputHandler tmpHandler(tmpStringStream);
-- OdgExporter exporter(&tmpHandler);
-- libwpg::WPGraphics::parse(input, &exporter);
-- delete input;
--
--
-- // create output store
-- KoStore* storeout;
-- storeout = KoStore::createStore(m_chain->outputFile(), KoStore::Write,
-- "application/vnd.oasis.opendocument.graphics", KoStore::Zip);
--
-- if (!storeout) {
-- kWarning() << "Couldn't open the requested file.";
-- return KoFilter::FileNotFound;
-- }
--
--#if 0
-- if (!storeout->open("styles.xml")) {
-- kWarning() << "Couldn't open the file 'styles.xml'.";
-- return KoFilter::CreationError;
-+ if (!libwpg::WPGraphics::generateSVG(input, output)) {
-+ kWarning() << "ERROR: SVG Generation failed!";
-+ delete input;
-+ return KoFilter::ParsingError;
- }
-- //storeout->write( createStyles() );
-- storeout->close();
--#endif
-
-- if (!storeout->open("content.xml")) {
-- kWarning() << "Couldn't open the file 'content.xml'.";
-- return KoFilter::CreationError;
-- }
-- storeout->write(tmpStringStream.str().c_str());
-- storeout->close();
-+ delete input;
-
-- // store document manifest
-- storeout->enterDirectory("META-INF");
-- if (!storeout->open("manifest.xml")) {
-- kWarning() << "Couldn't open the file 'META-INF/manifest.xml'.";
-- return KoFilter::CreationError;
-+ QFile outputFile(m_chain->outputFile());
-+ if(!outputFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
-+ kWarning() << "ERROR: Could not open output file" << m_chain->outputFile();
-+ return KoFilter::InternalError;
- }
-- storeout->write(createManifest());
-- storeout->close();
-
-- // we are done!
-- delete storeout;
-+ outputFile.write(output.cstr());
-+ outputFile.close();
-
- return KoFilter::OK;
- }
-
diff --git a/testing/libproxy/PKGBUILD b/testing/libproxy/PKGBUILD
deleted file mode 100644
index 7fde7ae6d..000000000
--- a/testing/libproxy/PKGBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id: PKGBUILD 24494 2009-01-17 20:42:01Z jgc $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=libproxy
-pkgver=0.4.6
-pkgrel=7
-pkgdesc="A library that provides automatic proxy configuration management"
-arch=(i686 x86_64)
-license=('LGPL')
-depends=('gcc-libs')
-optdepends=('gconf: GNOME configuration module'
- 'kdelibs: KDE configuration module'
- 'networkmanager: NetworkManager configuration module'
- 'perl: Perl bindings'
- 'python2: Python bindings')
-makedepends=('gconf' 'cmake' 'networkmanager' 'automoc4' 'python2' 'kdelibs' 'perl')
-url="http://libproxy.googlecode.com"
-source=(http://libproxy.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
-options=('!libtool')
-md5sums=('199c6b120baf1f7258a55f38d5ec74f5')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- mkdir build
- cd build
- cmake -DCMAKE_INSTALL_PREFIX=/usr \
- -DLIBEXEC_INSTALL_DIR=/usr/lib/libproxy \
- -DCMAKE_SKIP_RPATH=ON \
- -DPERL_VENDORINSTALL=yes \
- -DCMAKE_BUILD_TYPE=None \
- -DWITH_WEBKIT=OFF \
- -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
- -DCMAKE_C_FLAGS="${CFLAGS}" \
- ..
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}/build"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/libreoffice/PKGBUILD b/testing/libreoffice/PKGBUILD
deleted file mode 100644
index 4c3853010..000000000
--- a/testing/libreoffice/PKGBUILD
+++ /dev/null
@@ -1,701 +0,0 @@
-# $Id: PKGBUILD 125824 2011-05-30 09:43:02Z andyrtr $
-# Maintainer: AndyRTR <andyrtr@archlinux.org>
-
-pkgbase="libreoffice"
-pkgname=('libreoffice' 'libreoffice-sdk'
- #'libreoffice-extension-barcode' #
- 'libreoffice-extension-diagram'
- 'libreoffice-extension-google-docs'
- 'libreoffice-extension-hunart'
- #'libreoffice-extension-lightproof' # no source integration
- #'libreoffice-extension-mysql-connector' # missing libmysqlcppconn-dev configure: error: mysql_driver.h not found. install MySQL C++ Connectivity
- 'libreoffice-extension-nlpsolver'
- 'libreoffice-extension-ct2n'
- 'libreoffice-extension-numbertext'
- 'libreoffice-extension-oooblogger'
- 'libreoffice-extension-pdfimport'
- 'libreoffice-extension-presenter-screen'
- 'libreoffice-extension-presentation-minimizer'
- 'libreoffice-extension-report-builder'
- 'libreoffice-extension-scripting-beanshell'
- 'libreoffice-extension-scripting-javascript'
- 'libreoffice-extension-scripting-python'
- 'libreoffice-extension-typo'
- 'libreoffice-extension-validator'
- 'libreoffice-extension-watch-window'
- 'libreoffice-extension-wiki-publisher')
-_LOver=3.4.0.2
-pkgver=3.4.0
-pkgrel=1
-arch=('i686' 'x86_64')
-#_LO_tree="3.4"
-_OFFICEUPD="340"
-license=('LGPL3')
-url="http://www.libreoffice.org/"
-makedepends=( # makedepends
- 'sane' 'perl-archive-zip' 'zip' 'unzip' 'xulrunner' 'unixodbc' 'hsqldb-java' #'boost' - we use internal one for now that has some gcc4.6 fixes.
- 'apache-ant' 'gperf' 'poppler' 'kdelibs' 'gconf' 'cppunit' #'libmysqlclient'
- 'beanshell' 'vigra' 'libldap' 'lucene' 'libmythes' 'junit' 'libwpg' 'imagemagick'
- 'mesa' 'gstreamer0.10-base' 'java-runtime'
- #'saxon' - currently broken
- # the depends from libreoffice main pkg
- "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
- 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt'
- 'redland' 'libgraphite' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat'
- 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' # keep gtk2 for install script
- 'ttf-dejavu') # to satisfy regression tests
- # translate-toolkit - todo move them to extra to allow --with-system-foo builds
-# http://download.documentfoundation.org/mirrors/all.html
-# http://wiki.documentfoundation.org/Mirrors
-#_mirror="http://download.documentfoundation.org/libreoffice/src"
-_mirror="http://dev-builds.libreoffice.org/pre-releases/src/"
-_additional_source_url="http://hg.services.openoffice.org/binaries"
-source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2 #,translations
- ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
- ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
- ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
- ${_additional_source_url}/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
- ${_additional_source_url}/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
- ${_additional_source_url}/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
- ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
- ${_additional_source_url}/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
- ${_additional_source_url}/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
- ${_additional_source_url}/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
- ${_additional_source_url}/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
- ${_additional_source_url}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
- ${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- ${_additional_source_url}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
- ${_additional_source_url}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
- ${_additional_source_url}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
- ${_additional_source_url}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
- ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
- ${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
- ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
- ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
- ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
- http://download.go-oo.org/src/7a0dcb3fe1e8c7229ab4fb868b7325e6-mdds_0.5.2.tar.bz2
- http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
- http://download.go-oo.org/extern/b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2
- http://download.go-oo.org/src/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
- http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
- http://download.go-oo.org/src/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
- http://ooo.itc.hu/oxygenoffice/download/libreoffice/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
- buildfix_i116795.diff
- buildfix_boost.diff
- buildfix_ct2n.diff
- vbahelper.visibility.patch
- buildfix_bison25.diff)
-noextract=(185d60944ea767075d27247c3162b3bc-unowinreg.dll
- b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2
- 7a0dcb3fe1e8c7229ab4fb868b7325e6-mdds_0.5.2.tar.bz2
- ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
- 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
- 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
- fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
- 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
- 2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
- a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
- 3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
- 2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
- 2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
- af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
- eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
- 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
- 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
- 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
- f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
- 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
- d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
- 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
- ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
- db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
- ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
- 7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt
- 41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt
- 451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
- bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt
- 23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt
- b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt
- b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt
- 9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt
- dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
- b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
- 90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
- f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2)
-md5sums=('7427ddd5ae63b6ee7aa868201dfbccaa'
- 'a78a8e08731213da02c65060cedc5589'
- '596da255e2728faccc8f2361171270ec'
- '8ed9803a34d13da1764e7523d550d6b0'
- '9be46d7c4bf3a60ee8dd0a5ef3638f82'
- 'b60db802866ab71c485de42e6382d1bb'
- '09e374cf3bd8f07a043883393012d69b'
- 'af9f25aa04dc4ef7b797f7bcc743877c'
- 'ad29de786d76d67759f9d2dd574b29be'
- 'ff13a8ac0ea324122b75773fd80a9245'
- '6eb8f53e01da7a945ee4cd42b7297732'
- '90df27d4cbf490668ce4f03ff7dba521'
- 'c0ea197183564c49306a1c79ca571e51'
- '91e69ed3c0be542fa7f69ca3da2d7808'
- 'a81c787b2e5469c2acc9f335b2c9e52f'
- 'ee1c78af6553657614b1a43adf4750ac'
- 'c970d6212618fc9b34526907eb030ce6'
- '6d25488c81af09d87015bf487243042f'
- '9a39234a49516b7035309e28dd4f0784'
- '1f24ab1d39f4a51faf22244c94a6203f'
- '35c94d2df8893241173de1d16b6034c0'
- '798b2ffdc8bcfe7bca2cf92b62caf685'
- 'fdb27bfe2dbe2e7b57ae194d9bf36bab'
- 'ada24d37d8d638b3d8a9985e80bc2978'
- '2a177023f9ea8ec8bd00837605c5df1b'
- 'a7983f859eafb2677d7ff386a023bc40'
- '3c219630e4302863a9a83d0efde889db'
- '2ae988b339daec234019a7066f96733e'
- '2c9b0f83ed5890af02c0df1c1776f39b'
- 'af3c3acf618de6108d65fcdc92b492e1'
- 'eeb2c7ddf0d302fba4bfc6e97eac9624'
- '39bb3fcea1514f1369fcfc87542390fd'
- '3404ab6b1792ae5f16bbd603bd1e1d03'
- '97b2d4dba862397f446b217e2b623e71'
- 'f94d9870737518e3b597f9265f4e9803'
- '8ce2fcd72becf06c41f7201d15373ed9'
- 'd8bd5eed178db6e2b18eeed243f85aa8'
- '3bdf40c0d199af31923e900d082ca2dd'
- 'ace6ab49184e329db254e454a010f56d'
- 'db60e4fde8dd6d6807523deb71ee34dc'
- 'ba2930200c9f019c2d93a8c88c651a0f'
- '18f577b374d60b3c760a3a3350407632'
- '7a0dcb3fe1e8c7229ab4fb868b7325e6'
- '185d60944ea767075d27247c3162b3bc'
- 'b4cae0700aa1c2aef7eb7f345365e6f1'
- '451ccf439a36a568653b024534669971'
- '90401bca927835b6fbae4a707ed187c8'
- 'f02578f5218f217a9f20e9c30e119c6a'
- '7e7efc5d4a03126bb9ae3ae9aa2c4e87'
- '41c9b65ad60af4b3255bbecdfef11736'
- '451ccf439a36a568653b024534669971'
- 'bbdd5639ada63e3130761daaecae1a10'
- '23bd75552206dfcd8fd4e29137dcac84'
- 'b8cbca7b3363e6ca2d02bc0ba2b63904'
- 'b632bdd25649cc4067bcb410bae23d2b'
- '9d60b6cfa3ef1926848710bbcd11115b'
- 'dbaafd21de055e582d92d7d32fe9da13'
- 'b7b2d0e04e142f26dd96119c80757d1f'
- '0520d63c946e272ed3bdfc863fbdc42e'
- 'bc228237108cab7745897a9f466b6d39'
- 'eee273f501ff45dc5f1365e78c6d57c0'
- '43b145db28e6c0d73578ae6fd35e510d'
- '4fa96e04b41a6e86774e74a972024b3e')
-
-build() {
-
- unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH; unset EXTRAOPTS
- [ -z "${JAVA_HOME}" ] && . /etc/profile.d/openjdk6.sh
- [ -z "${MOZ_PLUGIN_PATH}" ] && . /etc/profile.d/mozilla-common.sh
- [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh
-
- # move all LibO sources into one build directory
- mkdir ${srcdir}/build && cd ${srcdir}/build
- for i in libreoffice-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}; do #,translations
- mv ${srcdir}/$i/* .
- done
-
- # move external sources into place
- mkdir ${srcdir}/ext_sources && cd ${srcdir}/ext_sources
- for source in "${noextract[@]}"; do
- ln -s ${srcdir}/$source .
- done
-
- cd ${srcdir}/build
-
- # buildfixes & bugfixes
- patch -Np1 -i ${srcdir}/buildfix_i116795.diff
- patch -Np1 -i ${srcdir}/buildfix_boost.diff
- patch -Np1 -i ${srcdir}/buildfix_ct2n.diff
- patch -Np0 -i ${srcdir}/vbahelper.visibility.patch
- patch -Np0 -i ${srcdir}/buildfix_bison25.diff
-
- # unset C(XX)FLAGS
- # http://www.openoffice.org/issues/show_bug.cgi?id=103205
-# unset CFLAGS
-# unset CXXFLAGS
-
- #use the CFLAGS but remove the LibO overridden ones
- for i in $CFLAGS; do
- case "$i" in
- -O?|-pipe|-Wall|-g|-fexceptions) continue;;
- esac
- ARCH_FLAGS="$ARCH_FLAGS $i"
- done
-
- # python2 fix
- export PYTHON=python2
-
- # http://wiki.documentfoundation.org/Development/How_to_build/Configure_options
-
-# if [ "$CARCH" = "x86_64" ]; then
-# EXTRAOPTS="--without-stlport"
-# else
-# EXTRAOPTS="--with-stlport" # --without-system-boost"
-# # # avoid problems with ixion for now
-# sed -i '/fields-table-formula.diff/d' patches/dev300/apply || return 1
-# fi
-
-# autoconf -v -f
-
- # non-SMP test build
-# export MAKEFLAGS="-j1"
- ./configure --with-build-version="${_LOver} ArchLinux build-${pkgrel}" --with-vendor="ArchLinux" \
- --with-unix-wrapper="libreoffice" \
- --with-max-jobs=${MAKEFLAGS/-j/} --with-num-cpus=${MAKEFLAGS/-j/} \
- --with-external-tar="${srcdir}/ext_sources" \
- --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
- --with-install-dirname="${pkgbase}" --libdir=/usr/lib --mandir=/usr/share/man \
- --with-lang="" \
- --disable-verbose \
- --enable-cairo\
- --enable-crashdump \
- --enable-dbus \
- --enable-evolution2\
- --disable-graphite\
- --enable-gio\
- --disable-gnome-vfs\
- --disable-kde\
- --enable-kde4\
- --enable-ldap \
- --enable-lockdown\
- --enable-opengl \
- --enable-odk\
- --enable-opengl\
- --enable-ext-barcode \
- --enable-ext-diagram \
- --enable-ext-google-docs \
- --enable-ext-hunart \
- --disable-ext-lightproof \
- --disable-ext-mysql-connector \
- --with-system-mysql \
- --enable-ext-nlpsolver \
- --enable-ext-ct2n \
- --enable-ext-numbertext \
- --enable-ext-oooblogger \
- --enable-ext-pdfimport \
- --enable-ext-presenter-console \
- --enable-ext-presenter-minimizer \
- --enable-ext-report-builder \
- --enable-ext-scripting-beanshell \
- --enable-ext-scripting-javascript \
- --enable-ext-scripting-python \
- --enable-ext-typo \
- --enable-ext-validator \
- --enable-ext-watch-window \
- --enable-ext-wiki-publisher \
- --without-fonts\
- --without-afms\
- --without-ppds\
- --without-system-libwps\
- --without-system-mdds\
- --without-myspell-dicts \
- --with-system-dicts \
- --with-external-dict-dir=/usr/share/hunspell \
- --with-external-hyph-dir=/usr/share/hyphen \
- --with-external-thes-dir=/usr/share/mythes \
- --with-system-cppunit\
- --with-system-libwpg \
- --with-system-libwps \
- --with-system-redland\
- --without-system-saxon\
- --with-system-libtextcat \
- --with-external-libtextcat-data \
- --with-openldap\
- --with-ant-home="/usr/share/java/apache-ant"\
- --without-system-boost\
- --with-system-cairo\
- --with-system-libs\
- --with-system-mozilla\
- --with-system-mythes\
- --with-system-xrender-headers\
- --with-system-headers\
- --with-alloc=system\
- --with-system-lucene\
- --with-lucene-core-jar=/usr/share/java/lucene-core.jar\
- --with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\
- $EXTRAOPTS || return 1
-
-#--with-system-graphite --enable-graohite ?
-#--with-servlet-api-jar=JARFILE
-# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136
-# --with-system-saxon\
-# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\
-
- touch src.downloaded
- #./download
- unset MAKEFLAGS
- ./bootstrap
- make
-}
-
-#check() {
-# cd ${srcdir}/build
-# make check
-#}
-
-package_libreoffice() {
-
- pkgdesc="a productivity suite that is compatible with other major office suites"
- install=${pkgbase}.install
- depends=("curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
- 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt'
- 'redland' 'libgraphite' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat'
- 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2') # keep gtk2 for install script
- #'java-runtime'
- #'saxon'
- optdepends=('java-runtime: adds java support'
- 'libcups: adds printing support'
- 'gconf: adds additional gnome support'
- 'nss: adds support for signed files/macros'
- 'pstoedit: translates PostScript and PDF graphics into other vector formats'
- 'poppler: for shipped pdfimport extension'
- 'kdelibs: for kde integration'
- 'libmythes: for use in thesaurus'
- 'hsqldb-java: default database format for OpenOffice.org'
- 'beanshell: interactive java -- good for prototyping /macros'
- 'vigra: C++ computer vision library, usable in Basebmp'
- 'libmspack: library for Microsoft compression formats for use in FontOOo'
- 'libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images'
- 'libldap: to get profiles via ldap'
- 'lucene: full-text search engine library for Java needed in the help section'
- 'sane: for scanner access'
- 'unixodbc: adds ODBC database support'
- 'mesa: for the OGLTrans extension'
- 'gstreamer0.10-base: + some gstr-plugins to support multimedia content, e.g. in impress')
- backup=(etc/libreoffice/sofficerc
- etc/libreoffice/bootstraprc
- etc/libreoffice/psprint.conf)
- provides=('go-openoffice')
- conflicts=('go-openoffice')
- replaces=('go-openoffice' 'openoffice-base' )
-
- cd ${srcdir}/build
- make DESTDIR=${pkgdir} install
-
- # fix missing desktop integration
- install -dm755 ${pkgdir}/usr/bin
- pushd ${pkgdir}/usr/bin
- ln -vs /usr/lib/libreoffice/program/soffice ./libreoffice
- ln -vs /usr/lib/libreoffice/program/soffice ./soffice
- ln -vs /usr/lib/libreoffice/program/sbase ./lobase
- ln -vs /usr/lib/libreoffice/program/scalc ./localc
- ln -vs /usr/lib/libreoffice/program/sdraw ./lodraw
- ln -vs /usr/lib/libreoffice/program/simpress ./loimpress
- ln -vs /usr/lib/libreoffice/program/smath ./lomath
- ln -vs /usr/lib/libreoffice/program/swriter ./lowriter
- ln -vs /usr/lib/libreoffice/program/unopkg ./unopkg
- popd
-
- # move sysui desktop files into place we want to use - javafilter and qstarter, but not unneeded printeradmin
- install -dm755 ${pkgdir}/usr/share/{applications,icons,mime/packages,pixmaps}
- rm ${pkgdir}/usr/lib/libreoffice/share/xdg/printeradmin.desktop
- for i in base calc draw impress javafilter math qstart startcenter writer; do
- cp ${pkgdir}/usr/lib/libreoffice/share/xdg/$i.desktop ${pkgdir}/usr/share/applications/libreoffice-$i.desktop
- done
- # remove version in menu entry and make it visible
- sed -i -e "s/3.4//g" ${pkgdir}/usr/share/applications/*.desktop
- sed -i -e "s/Icon=libreoffice34-/Icon=/g" ${pkgdir}/usr/share/applications/*.desktop
- sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
- echo "Icon=startcenter" >> ${pkgdir}/usr/share/applications/libreoffice-qstart.desktop
- # remove unneeded .desktop files
- rm -rf ${pkgdir}/usr/lib/libreoffice/share/xdg
-
- # add missing icon files
- cp -R ${srcdir}/build/sysui/desktop/icons/{hi,lo}color ${pkgdir}/usr/share/icons/
- pushd ${pkgdir}/usr/share/pixmaps
- for i in base calc draw impress main math printeradmin startcenter writer; do
- ln -vs /usr/share/icons/hicolor/48x48/apps/$i.png .
- done
- popd
- sed -i -e 's/Icon=libreoffice-/Icon=/' ${pkgdir}/usr/share/applications/*.desktop
-
- # add missing mimetype file
- install -m644 ${srcdir}/build/sysui/unxlng*/misc/libreoffice/openoffice.org.xml ${pkgdir}/usr/share/mime/packages/libreoffice.xml
-
- # put configuration files into place
- install -dm755 ${pkgdir}/etc/libreoffice
- install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} ${pkgdir}/etc/libreoffice/
- install -m644 ${pkgdir}/usr/lib/libreoffice/basis3.4/share/psprint/psprint.conf ${pkgdir}/etc/libreoffice/
- # install dummy links to make them found by LibO
- cd ${pkgdir}/usr/lib/libreoffice/program/
- ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} .
- cd ${pkgdir}/usr/lib/libreoffice/basis3.4/share/psprint/
- ln -vsf /etc/libreoffice/psprint.conf .
-
- #fix http://bugs.archlinux.org/task/17656
- find ${pkgdir} -perm 444 -exec ls -lh {} \;
- find ${pkgdir} -perm 444 -exec chmod 644 {} \;
- find ${pkgdir} -perm 555 -exec ls -lh {} \;
- find ${pkgdir} -perm 555 -exec chmod 755 {} \;
-
- # split out extensions
- mv ${pkgdir}/usr/lib/libreoffice/share/extensions ${srcdir}/extensions-install
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- install -m644 ${srcdir}/extensions-install/package.txt ${pkgdir}/usr/lib/libreoffice/share/extensions/
-
- # move SDK to separated package
- mkdir -p ${srcdir}/sdk-install/usr/lib/libreoffice/basis3.4/sdk
- mv ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk ${srcdir}/sdk-install/usr/lib/libreoffice/basis3.4/
-
- # cleanup gid_Module files
- mkdir ${srcdir}/splitlist
- mv -f ${pkgdir}/gid_Module* ${srcdir}/splitlist/
-}
-
-package_libreoffice-sdk() {
-
- pkgdesc="Software development kit for LibreOffice"
- depends=('libreoffice' 'gcc-libs' 'sh')
-
- cd ${srcdir}/sdk-install
- cp -r * ${pkgdir}
-
- cd ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk
- mv setsdkenv_unix setsdkenv_unix.sh && chmod 755 setsdkenv_unix.sh
- rm -f ${pkgdir}/usr/lib/libreoffice/basis3.4/sdk/setsdkenv_unix.{csh,sh}.in
- #fix permissions
- find examples -type f -exec chmod -x {} \;
-}
-
-package_libreoffice-extension-barcode() {
-
- pkgdesc="This extension generates UPC-A, EAN-13, ISBN and JAN barcodes in Draw "
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
- chmod o-w -R ${pkgdir}/usr/lib/libreoffice/share/extensions/Barcode
-}
-
-package_libreoffice-extension-diagram() {
-
- pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram
-}
-
-package_libreoffice-extension-google-docs() {
-
- pkgdesc="Google Documents extension for LibreOffice"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/google-docs
-}
-
-package_libreoffice-extension-hunart() {
-
- pkgdesc="Hungarian cross-reference toolbar extension"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart
-}
-
-#package_libreoffice-extension-lightproof() {
-
-# pkgdesc="Lightproof extension for LibreOffice"
- #arch=('any')
-# depends=('libreoffice')
-# groups=('libreoffice-extensions')
-
-# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
-# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Lightproof.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/lightproof
-#}
-
-#package_libreoffice-extension-mysql-connector() {
-
-# pkgdesc="MySQL Connector extension for LibreOffice"
- #arch=('any')
-# depends=('libreoffice')
-# groups=('libreoffice-extensions')
-
-# install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
-# unzip -q ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Mysql-connector.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/mysql-connector
-#}
-
-package_libreoffice-extension-nlpsolver() {
-
- pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver
-}
-
-package_libreoffice-extension-ct2n() {
-
- pkgdesc="This extension enables you to convert text-cells in Calc with numbers and dates, to real numbers and dates."
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n
-}
-
-package_libreoffice-extension-numbertext() {
-
- pkgdesc="NUMBERTEXT/MONEYTEXT extensions"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext
-}
-
-package_libreoffice-extension-oooblogger() {
-
- pkgdesc="An extensions for blogging"
- #arch=('any')
- depends=('libreoffice' 'coreutils')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger
-}
-
-package_libreoffice-extension-pdfimport() {
-
- pkgdesc="This extension allows you to import and modify PDF documents"
- depends=('libreoffice' 'poppler')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/pdfimport/pdfimport.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/pdfimport
-}
-
-package_libreoffice-extension-presenter-screen() {
-
- pkgdesc="This extension provides more control over your slide show presentation, such as the ability to see the upcoming slide, the slide notes, and a presentation timer whereas the audience see only the current slide"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presenter-screen.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presenter-screen
-}
-
-package_libreoffice-extension-presentation-minimizer() {
-
- pkgdesc="This extension reduce the file size of the current presentation"
- depends=('libreoffice' 'gcc-libs')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presentation-minimizer
-}
-
-package_libreoffice-extension-report-builder() {
-
- pkgdesc="This extension creates smart-looking database reports"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder
-}
-
-package_libreoffice-extension-scripting-beanshell() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in BeanShell"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-beanshell.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-beanshell
-}
-
-package_libreoffice-extension-scripting-javascript() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in JavaScript"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-javascript.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-javascript
-}
-
-package_libreoffice-extension-scripting-python() {
-
- pkgdesc="LibreOffice extension - Enables support for scripts in Python"
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/script-provider-for-python.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/script-provider-for-python
-}
-
-package_libreoffice-extension-typo() {
-
- pkgdesc="Typography toolbar extension"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
- chmod o+r -R ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
-}
-
-package_libreoffice-extension-validator() {
-
- pkgdesc="Validator extension for LibreOffice"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/validator
-}
-
-package_libreoffice-extension-wiki-publisher() {
-
- pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language"
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/build/solver/${_OFFICEUPD}/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher
-}
-
-package_libreoffice-extension-watch-window() {
-
- pkgdesc="A OOo Calc extension to add a Watch Window, which keeps the value of the monitored cell on the screen."
- #arch=('any')
- depends=('libreoffice')
- groups=('libreoffice-extensions')
-
- install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
- unzip -q ${srcdir}/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window
-}
diff --git a/testing/libreoffice/buildfix_64bit_system_libjpeg.diff b/testing/libreoffice/buildfix_64bit_system_libjpeg.diff
deleted file mode 100644
index 1f4eb110f..000000000
--- a/testing/libreoffice/buildfix_64bit_system_libjpeg.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- solenv/inc/libs.mk 2009-07-02 09:44:33.084467312 +0000
-+++ solenv/inc/libs.mk.new 2009-07-02 10:44:03.420819776 +0000
-@@ -211,7 +211,7 @@
- .IF "$(OS)" == "FREEBSD"
- JPEG3RDLIB=/usr/local/lib/libjpeg.so
- .ELIF "$(CPUNAME)" == "X86_64" || "$(CPUNAME)" == "S390X" || "$(CPUNAME)" == "POWERPC64"
--JPEG3RDLIB=/usr/lib64/libjpeg.so
-+JPEG3RDLIB=/usr/lib/libjpeg.so
- .ELSE
- JPEG3RDLIB=/usr/lib/libjpeg.so
- .ENDIF
diff --git a/testing/libreoffice/buildfix_bison25.diff b/testing/libreoffice/buildfix_bison25.diff
deleted file mode 100644
index 869b6c81e..000000000
--- a/testing/libreoffice/buildfix_bison25.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- connectivity/source/parse/sqlbison.y 2011-05-20 13:21:02.000000000 -0600
-+++ connectivity/source/parse/sqlbison.y 2011-05-20 13:22:11.000000000 -0600
-@@ -4338,7 +4338,7 @@
- }
-
- // -------------------------------------------------------------------------
--void OSQLParser::error(sal_Char *fmt)
-+void OSQLParser::error(const sal_Char *fmt)
- {
- if(!m_sErrorMessage.getLength())
- {
---- connectivity/inc/connectivity/sqlparse.hxx 2011-05-20 13:23:58.000000000 -0600
-+++ connectivity/inc/connectivity/sqlparse.hxx 2011-05-20 13:23:46.000000000 -0600
-@@ -233,7 +233,7 @@
- // returns the type for a parameter in a given function name
- static sal_Int32 getFunctionParameterType(sal_uInt32 _nTokenId,sal_uInt32 _nPos);
-
-- void error(sal_Char *fmt);
-+ void error(const sal_Char *fmt);
- int SQLlex();
- #ifdef YYBISON
- void setParseTree(OSQLParseNode * pNewParseTree);
-
diff --git a/testing/libreoffice/buildfix_boost.diff b/testing/libreoffice/buildfix_boost.diff
deleted file mode 100644
index d8608d0d4..000000000
--- a/testing/libreoffice/buildfix_boost.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-From bae4fdbd105142cd3f317445eddc826da529a732 Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Tue, 05 Apr 2011 14:07:02 +0000
-Subject: silence some more of that annoying gcc#47679
-
----
-diff --git a/boost/boost.gcc47679.patch b/boost/boost.gcc47679.patch
-index 1c804aa..9b33a5f 100644
---- a/boost/boost.gcc47679.patch
-+++ b/boost/boost.gcc47679.patch
-@@ -36,3 +36,26 @@
- template <int MaxDigits>
- inline bool allow_more_digits(std::size_t i)
- {
-+--- misc/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
-++++ misc/build/boost_1_44_0/boost/optional/optional.hpp 2011-04-05 13:19:01.223587256 +0100
-+@@ -31,6 +31,8 @@
-+
-+ #include "boost/optional/optional_fwd.hpp"
-+
-++#include <string.h>
-++
-+ #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
-+ // VC6.0 has the following bug:
-+ // When a templated assignment operator exist, an implicit conversion
-+@@ -114,6 +116,11 @@
-+
-+ public:
-+
-++ aligned_storage()
-++ {
-++ memset(&dummy_, 0, sizeof(dummy_));
-++ }
-++
-+ void const* address() const { return &dummy_.data[0]; }
-+ void * address() { return &dummy_.data[0]; }
-+ } ;
---
-cgit v0.8.3-6-g21f6
-
diff --git a/testing/libreoffice/buildfix_ct2n.diff b/testing/libreoffice/buildfix_ct2n.diff
deleted file mode 100644
index 979587f79..000000000
--- a/testing/libreoffice/buildfix_ct2n.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-From 90de903b28cb1884042be0eae3f8a55458c5bc29 Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Tue, 12 Apr 2011 19:35:51 +0000
-Subject: duplicate NULLs
-
----
-diff --git a/ct2n/prj/build.lst b/ct2n/prj/build.lst
-index 91f44b7..714d926 100644
---- a/ct2n/prj/build.lst
-+++ b/ct2n/prj/build.lst
-@@ -1,3 +1,3 @@
--ct2n ct2n : solenv NULL NULL
-+ct2n ct2n : solenv NULL
- ct2n ct2n usr1 - all ct2n_mkout NULL
- ct2n ct2n nmake - all ct2n_ct2n NULL
---
-cgit v0.8.3-6-g21f6
diff --git a/testing/libreoffice/buildfix_i116795.diff b/testing/libreoffice/buildfix_i116795.diff
deleted file mode 100644
index 8601bc164..000000000
--- a/testing/libreoffice/buildfix_i116795.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -r 4ab9e11cb892 connectivity/qa/makefile.mk
---- a/connectivity/qa/makefile.mk Thu Mar 03 15:22:23 2011 +0100
-+++ b/connectivity/qa/makefile.mk Fri Mar 04 09:51:48 2011 +0100
-@@ -35,9 +35,16 @@
-
- #----- compile .java files -----------------------------------------
-
--JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar hsqldb.jar
- JAVAFILES := $(shell @$(FIND) complex -name "*.java")
-
-+JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-+
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+EXTRAJARFILES = $(HSQLDB_JAR)
-+.ELSE
-+JARFILES += hsqldb.jar
-+.ENDIF
-+
- #----- make a jar from compiled files ------------------------------
-
- JARCLASSDIRS = $(PACKAGE)
-
diff --git a/testing/libreoffice/libreoffice.install b/testing/libreoffice/libreoffice.install
deleted file mode 100644
index 27f3173ae..000000000
--- a/testing/libreoffice/libreoffice.install
+++ /dev/null
@@ -1,25 +0,0 @@
-post_install() {
-
-gtk-update-icon-cache -f -q /usr/share/icons/hicolor
-update-desktop-database -q
-update-mime-database usr/share/mime > /dev/null 2>&1
-
-echo " * see http://wiki.archlinux.org/index.php/Openoffice"
-echo " * you may want to pacman -Ss libreoffice-extensions"
-echo " to see what extensions are prepared to install"
-echo " * it's recommended to install {hunspell,mythes,hyphen}-xx pkg for spell checking"
-echo " * make sure you have installed some ttf font (ttf-dejavu recommended)"
-}
-
-post_upgrade() {
-# post_install $1
-gtk-update-icon-cache -f -q /usr/share/icons/hicolor
-update-desktop-database -q
-update-mime-database usr/share/mime > /dev/null 2>&1
-}
-
-post_remove() {
-update-desktop-database -q
-gtk-update-icon-cache -f -q /usr/share/icons/hicolor
-update-mime-database usr/share/mime > /dev/null 2>&1
-}
diff --git a/testing/libreoffice/vbahelper.visibility.patch b/testing/libreoffice/vbahelper.visibility.patch
deleted file mode 100644
index 5739100d0..000000000
--- a/testing/libreoffice/vbahelper.visibility.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:27:51.507604173 +0000
-+++ vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:28:26.230045727 +0000
-@@ -238,7 +238,7 @@
-
- // including a HelperInterface implementation
- template< typename Ifc1 >
--class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
-+class VBAHELPER_DLLPUBLIC ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 >
- {
- typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase;
- protected:
---- sc/Library_vbaobj.mk
-+++ sc/Library_vbaobj.mk
-@@ -118,7 +118,6 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
- sc/source/ui/vba/vbaquerytable \
- sc/source/ui/vba/vbarange \
- sc/source/ui/vba/vbasheetobject \
-- sc/source/ui/vba/vbasheetobjects \
- sc/source/ui/vba/vbastyle \
- sc/source/ui/vba/vbastyles \
- sc/source/ui/vba/vbatextboxshape \
-@@ -133,6 +132,11 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\
- sc/source/ui/vba/vbawsfunction \
- ))
-
-+$(eval $(call gb_Library_add_cxxobjects,vbaobj,\
-+ sc/source/ui/vba/vbasheetobjects \
-+ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-+))
-+
- ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS)))
- $(eval $(call gb_Library_set_ldflags,vbaobj,\
- $$(LDFLAGS) \
diff --git a/testing/libva/PKGBUILD b/testing/libva/PKGBUILD
deleted file mode 100644
index 3996e0059..000000000
--- a/testing/libva/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id: PKGBUILD 125889 2011-05-31 13:21:31Z ibiru $
-# Maintainer : Ionut Biru <ibiru@archlinux.org>
-pkgname=libva
-pkgver=1.0.13
-pkgrel=1
-pkgdesc="Video Acceleration (VA) API for Linux"
-arch=('i686' 'x86_64')
-url="http://freedesktop.org/wiki/Software/vaapi"
-license=('MIT')
-depends=('libgl' 'libdrm>=2.4.23' 'libxfixes')
-makedepends=('mesa')
-optdepends=('vdpau-video: VDPAU backend for VA API')
-options=('!libtool')
-source=(http://cgit.freedesktop.org/libva/snapshot/${pkgname}-${pkgver}.tar.bz2
- libva-dont-install-tests.patch)
-md5sums=('221207c386129e02fc05827147af7aa6'
- 'd13d1868f2db99bedec1057bbfbd9c61')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- patch -Np1 -i "${srcdir}/libva-dont-install-tests.patch"
- ./autogen.sh
- ./configure --prefix=/usr \
- --enable-i965-driver \
- --enable-glx
- make
-}
-
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR="${pkgdir}" install
- install -m644 -D COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/testing/libva/libva-dont-install-tests.patch b/testing/libva/libva-dont-install-tests.patch
deleted file mode 100644
index 97f33e32d..000000000
--- a/testing/libva/libva-dont-install-tests.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -Nur libva-1.0.13.orig/test/basic/Makefile.am libva-1.0.13/test/basic/Makefile.am
---- libva-1.0.13.orig/test/basic/Makefile.am 2011-05-31 13:10:55.021797329 +0000
-+++ libva-1.0.13/test/basic/Makefile.am 2011-05-31 13:11:52.252331062 +0000
-@@ -20,7 +20,7 @@
- # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--bin_PROGRAMS = test_01 test_02 test_03 test_04 test_05 test_06 \
-+check_PROGRAMS = test_01 test_02 test_03 test_04 test_05 test_06 \
- test_07 test_08 test_09 test_10 test_11
-
- AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-diff -Nur libva-1.0.13.orig/test/decode/Makefile.am libva-1.0.13/test/decode/Makefile.am
---- libva-1.0.13.orig/test/decode/Makefile.am 2011-05-31 13:10:55.021797329 +0000
-+++ libva-1.0.13/test/decode/Makefile.am 2011-05-31 13:12:12.175851534 +0000
-@@ -20,7 +20,7 @@
- # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--bin_PROGRAMS = mpeg2vldemo
-+check_PROGRAMS = mpeg2vldemo
-
- AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-
-diff -Nur libva-1.0.13.orig/test/encode/Makefile.am libva-1.0.13/test/encode/Makefile.am
---- libva-1.0.13.orig/test/encode/Makefile.am 2011-05-31 13:10:55.021797329 +0000
-+++ libva-1.0.13/test/encode/Makefile.am 2011-05-31 13:12:35.499399421 +0000
-@@ -20,7 +20,7 @@
- # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--bin_PROGRAMS = h264encode avcenc
-+check_PROGRAMS = h264encode avcenc
-
- AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-
-diff -Nur libva-1.0.13.orig/test/putsurface/Makefile.am libva-1.0.13/test/putsurface/Makefile.am
---- libva-1.0.13.orig/test/putsurface/Makefile.am 2011-05-31 13:10:55.021797329 +0000
-+++ libva-1.0.13/test/putsurface/Makefile.am 2011-05-31 13:12:48.836190403 +0000
-@@ -20,7 +20,7 @@
- # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--bin_PROGRAMS = putsurface
-+check_PROGRAMS = putsurface
-
- AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/src/x11
-
diff --git a/testing/links/PKGBUILD b/testing/links/PKGBUILD
new file mode 100644
index 000000000..95a4a05cd
--- /dev/null
+++ b/testing/links/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 126520 2011-06-06 04:11:26Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=links
+pkgver=2.3pre2
+pkgrel=1
+pkgdesc="A text WWW browser, similar to Lynx"
+arch=('i686' 'x86_64')
+url="http://links.twibright.com/"
+license=('GPL')
+depends=('bzip2' 'zlib' 'openssl' 'gpm')
+makedepends=('libtiff' 'libpng' 'libxt')
+optdepends=('libx11: for using xlinks' 'libtiff: for using xlinks' 'libpng: for using xlinks')
+provides=('links-g')
+conflicts=('links-g')
+replaces=('links-g')
+source=(http://links.twibright.com/download/${pkgname}-${pkgver}.tar.bz2 links.desktop)
+md5sums=('4a6970d54f4a9c64b8cf5d83a5815c45'
+ '7c47b15aaef51f1de129ff3a2afb7eac')
+sha1sums=('5bc210f746559725565bec1d4748b5c56b263ee5'
+ 'f600e27c2a71184444f7dd07a10230aa44463a02')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ (cd intl; ./gen-intl; ./synclang)
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
+ --enable-graphics --with-x --with-fb
+ make
+ mv links xlinks
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
+ --disable-graphics --without-x --without-fb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 xlinks "${pkgdir}/usr/bin/xlinks"
+ ln -s links.1.gz "${pkgdir}/usr/share/man/man1/xlinks.1.gz"
+
+ install -D -m644 "${srcdir}/links.desktop" "${pkgdir}/usr/share/applications/links.desktop"
+ install -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm "${pkgdir}/usr/share/pixmaps/"
+
+ install -d "${pkgdir}/usr/share/doc/links/calibration"
+ install -m644 doc/links_cal/* "${pkgdir}/usr/share/doc/links/calibration/"
+}
diff --git a/testing/links/links.desktop b/testing/links/links.desktop
new file mode 100644
index 000000000..9d6338a5b
--- /dev/null
+++ b/testing/links/links.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=Links
+Exec=xlinks -g
+Icon=links_32x32.xpm
+Type=Application
+Terminal=false
+Categories=Network;WebBrowser;
diff --git a/testing/linux-api-headers/PKGBUILD b/testing/linux-api-headers/PKGBUILD
new file mode 100644
index 000000000..0a3f8da6e
--- /dev/null
+++ b/testing/linux-api-headers/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 126765 2011-06-07 07:31:07Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=linux-api-headers
+pkgver=2.6.39.1
+_basever=2.6.39
+pkgrel=1
+pkgdesc="Kernel headers sanitized for use in userspace"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL2')
+provides=("kernel-headers=${pkgver}")
+conflicts=('kernel-headers')
+replaces=('kernel-headers')
+source=(http://www.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2
+ http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2)
+md5sums=('1aab7a741abe08d42e8eccf20de61e05'
+ '215f7ebaafe1175dbc5d1e439c9a96d5')
+
+build() {
+ cd ${srcdir}/linux-${_basever}
+ [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${pkgver}
+
+ make mrproper
+ make headers_check
+}
+
+package() {
+ cd ${srcdir}/linux-${_basever}
+ make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
+
+ # use headers from libdrm
+ rm -rf ${pkgdir}/usr/include/drm
+
+ # clean-up unnecessary files generated during install
+ find ${pkgdir} -name .install -or -name ..install.cmd | xargs rm -f
+}
diff --git a/testing/lvm2/11-dm-initramfs.rules b/testing/lvm2/11-dm-initramfs.rules
deleted file mode 100644
index d2c167324..000000000
--- a/testing/lvm2/11-dm-initramfs.rules
+++ /dev/null
@@ -1,3 +0,0 @@
-# needed with new udev/mkinitcpio and as implemented in dracut:
-# <http://git.kernel.org/?p=boot/dracut/dracut.git;a=commitdiff;h=12b9736228f2b34c15a9cb63be79cf7b6e865b54>
-SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS="db_persist"
diff --git a/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff b/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff
deleted file mode 100644
index e75499e8e..000000000
--- a/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Do not issue an error message when unable to remove .cache on read-only fs.
-===================================================================
-RCS file: /cvs/lvm2/LVM2/lib/filters/filter-persistent.c,v
-retrieving revision 1.49
-retrieving revision 1.50
-diff -u -r1.49 -r1.50
---- LVM2/lib/filters/filter-persistent.c 2011/04/22 12:05:33 1.49
-+++ LVM2/lib/filters/filter-persistent.c 2011/05/12 12:42:48 1.50
-@@ -108,7 +108,7 @@
- log_very_verbose("Obtaining device list from "
- "udev. Removing obolete %s.",
- pf->file);
-- if (unlink(pf->file) < 0)
-+ if (unlink(pf->file) < 0 && errno != EROFS)
- log_sys_error("unlink", pf->file);
- }
- return 1;
diff --git a/testing/lvm2/PKGBUILD b/testing/lvm2/PKGBUILD
deleted file mode 100644
index 39e3b4561..000000000
--- a/testing/lvm2/PKGBUILD
+++ /dev/null
@@ -1,72 +0,0 @@
-# $Id: PKGBUILD 125735 2011-05-28 17:12:36Z thomas $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
-
-pkgbase=lvm2
-pkgname=('lvm2' 'device-mapper')
-pkgver=2.02.85
-_pkgverlvm=${pkgver}
-pkgrel=2
-arch=('i686' 'x86_64')
-url="http://sourceware.org/lvm2/"
-license=('GPL2' 'LGPL2.1')
-groups=('base')
-conflicts=('mkinitcpio<0.5.99')
-source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${_pkgverlvm}.tgz
- lvm2_install
- lvm2_hook
- Be-quiet-on-removing-cache-on-read-only-fs.diff
- 11-dm-initramfs.rules)
-md5sums=('91785ca438e5ce679dd3a386b183d552'
- '9fbe01c6e3fca4634b4a38ecdc2f562f'
- 'cf05f2c7281e24269ea9dcc6b4e106ba'
- '6db89da27928d2415a8e26cd0a842712'
- '69e40679cd8b3658bfc619e48baae125')
-sha1sums=('43ba2a3be84b2e897ae6b47b0b0be7e212216be7'
- '3f11db76189bcbc32d6b16a1b05ca3499e3e7b47'
- '1cd20e8fbad6fd7d5c0f54e831fbf58ae564b440'
- '6d7dd04be291d7537235704c816a701fd5beacc0'
- 'f6a554eea9557c3c236df2943bb6e7e723945c41')
-
-build() {
- cd "${srcdir}/LVM2.${_pkgverlvm}"
- sed -i 's|/usr/bin/tr|/bin/tr|' scripts/lvmdump.sh
- patch -p1 -i ../Be-quiet-on-removing-cache-on-read-only-fs.diff
- unset LDFLAGS
- ./configure --prefix= --sysconfdir=/etc --localstatedir=/var --datarootdir=/usr/share \
- --includedir=/usr/include --with-usrlibdir=/usr/lib \
- --enable-pkgconfig --enable-readline --enable-dmeventd --enable-cmdlib --enable-applib \
- --with-udevdir=/lib/udev/rules.d/ --enable-udev_sync --enable-udev_rules
- make
-}
-
-package_device-mapper() {
- pkgdesc="Device mapper userspace library and tools"
- url="http://sourceware.org/dm/"
- depends=('glibc' 'udev')
-
- cd "${srcdir}/LVM2.${_pkgverlvm}"
- make DESTDIR="${pkgdir}" install_device-mapper
- # extra udev rule for device-mapper in initramfs
- install -D -m644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/lib/initcpio/udev/11-dm-initramfs.rules"
-}
-
-package_lvm2() {
- pkgdesc="Logical Volume Manager 2 utilities"
- depends=('bash' "device-mapper>=${pkgver}" 'udev' 'readline')
- conflicts=('lvm' 'mkinitcpio<0.5.99')
- backup=('etc/lvm/lvm.conf')
- options=('!makeflags')
-
- cd "${srcdir}/LVM2.${_pkgverlvm}"
- make DESTDIR="${pkgdir}" install_lvm2
- # install applib
- cd liblvm
- make DESTDIR="${pkgdir}" install
- cd ..
- # /etc directories
- install -d "${pkgdir}"/etc/lvm/{archive,backup}
- # mkinitcpio hook
- install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/lib/initcpio/hooks/lvm2"
- install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/lib/initcpio/install/lvm2"
-}
diff --git a/testing/lvm2/lvm2_hook b/testing/lvm2/lvm2_hook
deleted file mode 100644
index 86d2ea582..000000000
--- a/testing/lvm2/lvm2_hook
+++ /dev/null
@@ -1,24 +0,0 @@
-# vim:set ft=sh:
-run_hook ()
-{
- /sbin/modprobe -q dm-mod >/dev/null 2>&1
- if [ -e "/sys/class/misc/device-mapper" ]; then
- if [ ! -e "/dev/mapper/control" ]; then
- /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
- fi
-
- # If the lvmwait= parameter has been specified on the command line
- # wait for the device(s) before trying to activate the volume group(s)
- if [ -n "${lvmwait}" ]; then
- for pvdev in $(echo ${lvmwait} | sed 's|,| |g'); do
- poll_device ${pvdev} ${rootdelay}
- done
- fi
-
- [ "${quiet}" = "y" ] && LVMQUIET=">/dev/null"
-
- msg "Activating logical volumes..."
- [ -d /etc/lvm ] && /sbin/lvm vgscan --sysinit
- eval /sbin/lvm vgchange --sysinit -a y $LVMQUIET
- fi
-}
diff --git a/testing/lvm2/lvm2_install b/testing/lvm2/lvm2_install
deleted file mode 100644
index 0df69f81b..000000000
--- a/testing/lvm2/lvm2_install
+++ /dev/null
@@ -1,30 +0,0 @@
-# vim: set ft=sh:
-
-install ()
-{
- MODULES=" dm-mod dm-snapshot dm-mirror"
- BINARIES=""
- FILES=""
- SCRIPT="lvm2"
-
- add_dir "/dev/mapper"
- add_binary "/sbin/lvm"
- add_binary "/sbin/dmsetup"
- add_file "/lib/udev/rules.d/10-dm.rules"
- add_file "/lib/udev/rules.d/13-dm-disk.rules"
- add_file "/lib/udev/rules.d/95-dm-notify.rules"
- add_file "/lib/udev/rules.d/11-dm-lvm.rules"
- add_file "/lib/initcpio/udev/11-dm-initramfs.rules" "/lib/udev/rules.d/11-dm-initramfs.rules"
-}
-
-help ()
-{
-cat<<HELPEOF
- This hook loads the necessary modules for an LVM2 root device.
-
- The optional lvmwait= parameter followed by a comma-separated
- list of device names can be given on the command line.
- It will cause the hook to wait until all given devices exist
- before trying to scan and activate any volume groups.
-HELPEOF
-}
diff --git a/testing/man-db/PKGBUILD b/testing/man-db/PKGBUILD
deleted file mode 100644
index 25675079f..000000000
--- a/testing/man-db/PKGBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# $Id: PKGBUILD 126294 2011-06-04 09:41:54Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
-
-pkgname=man-db
-pkgver=2.6.0.2
-pkgrel=2
-pkgdesc="A utility for reading man pages"
-arch=('i686' 'x86_64')
-url="http://www.nongnu.org/man-db/"
-license=('GPL' 'LGPL')
-groups=('base')
-depends=( 'bash' 'gdbm' 'zlib' 'groff' 'libpipeline')
-optdepends=('less' 'gzip')
-backup=('etc/man_db.conf'
- 'etc/cron.daily/man-db')
-conflicts=('man')
-provides=('man')
-replaces=('man')
-install=${pkgname}.install
-source=(http://savannah.nongnu.org/download/man-db/$pkgname-$pkgver.tar.gz
- 1361_1360.diff
- #http://launchpad.net/man-db/main/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz
- convert-mans man-db.cron.daily)
-options=('!libtool')
-md5sums=('2b41c96efec032d2b74ccbf2e401f93e'
- '08b76b1f924c5493a280b79fc0aebde4'
- '2b7662a7d5b33fe91f9f3e034361a2f6'
- 'd30c39ae47560304471b5461719e0f03')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- # https://bugs.archlinux.org/task/18722
- patch -Np0 -i $srcdir/1361_1360.diff
- ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
- --with-db=gdbm --disable-setuid --enable-mandirs=GNU \
- --with-sections="1 n l 8 3 0 2 5 4 9 6 7"
- make
-}
-
-check() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make check
-}
-
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
-
- # part of groff pkg
- rm -f ${pkgdir}/usr/bin/zsoelim
-
- # script from LFS to convert manpages, see
- # http://www.linuxfromscratch.org/lfs/view/6.4/chapter06/man-db.html
- install -D -m755 ${srcdir}/convert-mans ${pkgdir}/usr/bin/convert-mans
-
- #install whatis cron script
- install -D -m744 ${srcdir}/man-db.cron.daily ${pkgdir}/etc/cron.daily/man-db
-}
-
diff --git a/testing/man-db/convert-mans b/testing/man-db/convert-mans
deleted file mode 100644
index 58a0224b0..000000000
--- a/testing/man-db/convert-mans
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh -e
-FROM="$1"
-TO="$2"
-shift ; shift
-while [ $# -gt 0 ]
-do
- FILE="$1"
- shift
- iconv -f "$FROM" -t "$TO" "$FILE" >.tmp.iconv
- mv .tmp.iconv "$FILE"
-done
diff --git a/testing/man-db/man-db.cron.daily b/testing/man-db/man-db.cron.daily
deleted file mode 100755
index 53e66e1e9..000000000
--- a/testing/man-db/man-db.cron.daily
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
-NICE=19
-
-# 0 for none, 1 for real time, 2 for best-effort, 3 for idle
-IONICE_CLASS=2
-
-# 0-7 (for IONICE_CLASS 1 and 2 only), 0=highest, 7=lowest
-IONICE_PRIORITY=7
-
-UPDATEMANDB="/usr/bin/mandb --quiet"
-
-# Update the "whatis" database
-#/usr/sbin/makewhatis -u -w
-
-# taken from Debian
-# man-db cron daily
-set -e
-
-if ! [ -d /var/cache/man ]; then
- # Recover from deletion, per FHS.
- mkdir -p /var/cache/man
- chmod 755 /var/cache/man
-fi
-
-# regenerate man database
-
-if [ -x /usr/bin/nice ]; then
- UPDATEMANDB="/usr/bin/nice -n ${NICE:-19} ${UPDATEMANDB}"
-fi
-
-if [ -x /usr/bin/ionice ]; then
- UPDATEMANDB="/usr/bin/ionice -c ${IONICE_CLASS:-2} -n ${IONICE_PRIORITY:-7} ${UPDATEMANDB}"
-fi
-
-${UPDATEMANDB}
-
-exit 0
diff --git a/testing/man-db/man-db.install b/testing/man-db/man-db.install
deleted file mode 100644
index f6f0f27a6..000000000
--- a/testing/man-db/man-db.install
+++ /dev/null
@@ -1,22 +0,0 @@
-post_install() {
- echo "it's recommended to create an initial"
- echo "database running as root:"
- echo "\"/usr/bin/mandb --quiet\""
-}
-
-post_upgrade() {
- if [ "`vercmp $2 2.5.3-2`" -lt 0 ]; then
- echo "systemuser \"man\" is no more required"
- echo "run \"userdel man\". please also"
- echo "chown root:root /var/cache/man"
- fi
- # force database rebuild to get rid off badly imported pages
- if [ "`vercmp $2 2.6.0.2`" -lt 0 ]; then
- echo "(re)building database..."
- mandb -c --quiet
- fi
-}
-
-post_remove() {
- rm -rf /var/cache/man
-}
diff --git a/testing/moc/PKGBUILD b/testing/moc/PKGBUILD
deleted file mode 100644
index d94540c70..000000000
--- a/testing/moc/PKGBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# $Id: PKGBUILD 125870 2011-05-30 20:58:06Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-
-pkgname=moc
-pkgver=20110528
-pkgrel=1
-pkgdesc="An ncurses console audio player with support for the mp3, ogg, and wave formats"
-arch=('i686' 'x86_64')
-url="http://moc.daper.net/"
-license=('GPL')
-depends=('libmad' 'libid3tag' 'jack' 'curl' 'libsamplerate' 'libtool')
-makedepends=('speex' 'ffmpeg' 'taglib' 'libmpcdec' 'wavpack' 'libmodplug')
-optdepends=('speex: for using the speex plugin'
- 'ffmpeg: for using the ffmpeg plugin'
- 'taglib: for using the musepack plugin'
- 'libmpcdec: for using the musepack plugin'
- 'wavpack: for using the wavpack plugin'
- 'libmodplug: for using the modplug plugin')
-options=('!libtool')
-source=(ftp://ftp.archlinux.org/other/moc/${pkgname}-${pkgver}.tar.xz \
- gcc-undefined-symbols.diff)
-md5sums=('e9394640fecb725ad8146575a3091134'
- 'efacb8559e9145e15b0c25f8fa2a9d79')
-sha1sums=('d09c27602a60e3e9fde476e13d7c1a8b21489505'
- 'a811a4ac7e049914aab528d3f06a6be6634c2720')
-
-build() {
- cd "${srcdir}/${pkgname}"
- patch -p0 -i ../gcc-undefined-symbols.diff
- sed -i 's|ffmpeg/avformat.h|libavformat/avformat.h|' decoder_plugins/ffmpeg/ffmpeg.c
- sed -i 's|avcodec_decode_audio|avcodec_decode_audio2|' decoder_plugins/ffmpeg/ffmpeg.c
-# Disabling aac to use the external ffmpeg to play them (FS#13164)
- ./autogen.sh
- ./configure --prefix=/usr --without-rcc --without-aac \
- --with-oss --with-alsa --with-jack --with-mp3 \
- --with-musepack --with-vorbis --with-flac --with-wavpack \
- --with-sndfile --with-modplug --with-ffmpeg --with-speex \
- --with-samplerate --with-curl
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/moc/gcc-undefined-symbols.diff b/testing/moc/gcc-undefined-symbols.diff
deleted file mode 100644
index 09e9b8bda..000000000
--- a/testing/moc/gcc-undefined-symbols.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- decoder.c~ 2011-05-08 09:28:28.077137883 +0200
-+++ decoder.c 2011-05-10 21:40:48.887941968 +0200
-@@ -259,6 +259,9 @@
- for (i = 0; i < plugins_num; i++)
- if (plugins[i].decoder->destroy)
- plugins[i].decoder->destroy ();
-+ for (i = 0; i < plugins_num; i++)
-+ if (plugins[i].handle)
-+ lt_dlclose(plugins[i].handle);
-
- if (lt_dlexit())
- logit ("lt_exit() failed: %s", lt_dlerror());
diff --git a/testing/mod_perl/PKGBUILD b/testing/mod_perl/PKGBUILD
deleted file mode 100644
index 33f4e7901..000000000
--- a/testing/mod_perl/PKGBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id: PKGBUILD 125232 2011-05-25 19:12:54Z foutrelis $
-# Maintainer: Firmicus <francois.archlinux.org>
-# Contributor: Tom K <tomk@runbox.com>
-
-pkgname=mod_perl
-pkgver=2.0.5
-pkgrel=2
-pkgdesc="Apache module that embeds the Perl interpreter within the server"
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl=5.12.3' 'apache' 'db' 'apr-util')
-license=('APACHE')
-arch=('i686' 'x86_64')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/${pkgname}-${pkgver}.tar.gz)
-md5sums=('03d01d135a122bd8cebd0cd5b185d674')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor MP_APXS=/usr/sbin/apxs
- make
-}
-
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make install DESTDIR=${pkgdir}
-}
diff --git a/testing/module-init-tools/PKGBUILD b/testing/module-init-tools/PKGBUILD
deleted file mode 100644
index 4ecfab9c9..000000000
--- a/testing/module-init-tools/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id: PKGBUILD 126053 2011-06-01 05:32:56Z andyrtr $
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-
-pkgname=module-init-tools
-pkgver=3.13
-pkgrel=1
-pkgdesc="utilities needed by Linux systems for managing loadable kernel modules"
-arch=('i686' 'x86_64')
-url="http://kerneltools.org"
-license=('GPL')
-depends=('glibc')
-backup=('etc/modprobe.d/modprobe.conf')
-source=(http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-$pkgver.tar.bz2
- modprobe.conf)
-md5sums=('dc575e7df00d9f745bf23b32f927b7a6'
- '316f1bda4c21af02b30252eb014a0a55')
-
-build() {
- cd $srcdir/$pkgname-$pkgver
-
- # do not regenerate man pages
- touch *.{5,8}
-
- ./configure --prefix=/usr --exec-prefix=/ --enable-zlib
- make
-}
-
-package() {
- cd $srcdir/$pkgname-$pkgver
-
- make DESTDIR=$pkgdir install
-
- # Install our custom (read: empty) modprobe.conf
- install -Dm644 $srcdir/modprobe.conf $pkgdir/etc/modprobe.d/modprobe.conf
-
- # fix man page (FS#17559)
- sed -i "s#mod#man5/mod#" $pkgdir/usr/share/man/man5/modprobe.d.5
-}
diff --git a/testing/module-init-tools/modprobe.conf b/testing/module-init-tools/modprobe.conf
deleted file mode 100644
index 83865a3af..000000000
--- a/testing/module-init-tools/modprobe.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-#
-# /etc/modprobe.d/modprobe.conf (for v2.6 kernels)
-#
diff --git a/testing/net-snmp/PKGBUILD b/testing/net-snmp/PKGBUILD
deleted file mode 100644
index 42faa88a3..000000000
--- a/testing/net-snmp/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: PKGBUILD 125239 2011-05-25 19:13:43Z foutrelis $
-# Maintainer: Eric Belanger <eric@archlinux.org>
-# Contributor: Dale Blount <dale@archlinux.org>
-
-pkgname=net-snmp
-pkgver=5.6.1
-pkgrel=2
-pkgdesc="A suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6"
-arch=('i686' 'x86_64')
-url="http://www.net-snmp.org/"
-license=('custom')
-depends=('openssl' 'tcp_wrappers' 'libnl')
-makedepends=('setuptools')
-optdepends=('perl-term-readkey: for snmpcheck application'
- 'perl-tk: for snmpcheck and tkmib applications'
- 'python2: for the python modules')
-provides=('ucd-snmp')
-options=('!libtool' '!makeflags' '!emptydirs')
-source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
- 'snmpd.rc')
-md5sums=('b4e30ead5783b0bb1d280172c6095ea4'
- '9f0d13676ba1fae1eb7eb178edd85b43')
-sha1sums=('45bbf1295253d5379a5d1efd918593160387fd00' '2c679b564a2c319d9ce2714a9776aa0e6d89c60a')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- sed -i -e "s:\(install --basedir=\$\$dir\):\1 --root='${pkgdir}':" Makefile.in
- ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
- --enable-ucd-snmp-compatibility --enable-ipv6 --with-libwrap --with-python-modules \
- --with-default-snmp-version="3" --with-sys-contact="root@localhost" \
- --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" \
- --with-mib-modules="host misc/ipfwacc ucd-snmp/diskio tunnel ucd-snmp/dlmod" \
- --with-persistent-directory="/var/net-snmp" \
- PYTHONPROG=/usr/bin/python2
- make NETSNMP_DONT_CHECK_VERSION=1 LDFLAGS+="-Wl,-rpath -Wl,/usr/lib/perl5/core_perl/CORE"
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" INSTALL_PREFIX="${pkgdir}" INSTALLDIRS=vendor install
- install -D -m755 "${srcdir}/snmpd.rc" "${pkgdir}/etc/rc.d/snmpd"
- install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
-}
diff --git a/testing/net-snmp/libnl-2.patch b/testing/net-snmp/libnl-2.patch
deleted file mode 100644
index 7c140fe83..000000000
--- a/testing/net-snmp/libnl-2.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-diff -Nur net-snmp-5.5.orig//agent/mibgroup/mibII/tcpTable.c net-snmp-5.5//agent/mibgroup/mibII/tcpTable.c
---- net-snmp-5.5.orig//agent/mibgroup/mibII/tcpTable.c 2009-06-13 04:02:02.000000000 +0200
-+++ net-snmp-5.5//agent/mibgroup/mibII/tcpTable.c 2011-01-15 10:31:03.579735957 +0100
-@@ -555,8 +555,10 @@
- static int
- tcpTable_load_netlink()
- {
-+ int err;
-+
- /* TODO: perhaps use permanent nl handle? */
-- struct nl_handle *nl = nl_handle_alloc();
-+ struct nl_sock *nl = nl_socket_alloc();
-
- if (nl == NULL) {
- DEBUGMSGTL(("mibII/tcpTable", "Failed to allocate netlink handle\n"));
-@@ -564,10 +566,10 @@
- return -1;
- }
-
-- if (nl_connect(nl, NETLINK_INET_DIAG) < 0) {
-- DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: %s\n", nl_geterror()));
-- snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", nl_geterror());
-- nl_handle_destroy(nl);
-+ if ((err = nl_connect(nl, NETLINK_INET_DIAG)) < 0) {
-+ DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: %s\n", nl_geterror(err)));
-+ snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", nl_geterror(err));
-+ nl_socket_free(nl);
- return -1;
- }
-
-@@ -579,10 +581,10 @@
- struct nl_msg *nm = nlmsg_alloc_simple(TCPDIAG_GETSOCK, NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST);
- nlmsg_append(nm, &req, sizeof(struct inet_diag_req), 0);
-
-- if (nl_send_auto_complete(nl, nm) < 0) {
-- DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", nl_geterror()));
-- snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", nl_geterror());
-- nl_handle_destroy(nl);
-+ if ((err = nl_send_auto_complete(nl, nm)) < 0) {
-+ DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", nl_geterror(err)));
-+ snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", nl_geterror(err));
-+ nl_socket_free(nl);
- return -1;
- }
- nlmsg_free(nm);
-@@ -593,9 +595,9 @@
-
- while (running) {
- if ((len = nl_recv(nl, &peer, &buf, NULL)) <= 0) {
-- DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", nl_geterror()));
-- snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", nl_geterror());
-- nl_handle_destroy(nl);
-+ DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", nl_geterror(len)));
-+ snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", nl_geterror(len));
-+ nl_socket_free(nl);
- return -1;
- }
-
-@@ -644,7 +646,7 @@
- free(buf);
- }
-
-- nl_handle_destroy(nl);
-+ nl_socket_free(nl);
-
- if (tcp_head) {
- DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table using netlink\n"));
diff --git a/testing/net-tools/PKGBUILD b/testing/net-tools/PKGBUILD
deleted file mode 100644
index d9b2380bc..000000000
--- a/testing/net-tools/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: PKGBUILD 126212 2011-06-02 16:50:35Z bisson $
-# Maintainer: judd <jvinet@zeroflux.org>
-pkgname=net-tools
-pkgver=1.60
-pkgrel=16
-pkgdesc="Configuration tools for Linux networking"
-arch=(i686 x86_64)
-license=('GPL')
-url="http://www.tazenda.demon.co.uk/phil/net-tools"
-depends=('glibc')
-source=(http://www.tazenda.demon.co.uk/phil/$pkgname/$pkgname-$pkgver.tar.bz2
- net-tools.patch gcc340.patch net-tools-1.60-2.6-compilefix.patch
- net-tools-1.60-miiioctl.patch
- net-tools-1.60-nameif.patch
- net-tools-1.60-nameif_strncpy.patch)
-options=(!makeflags)
-md5sums=('888774accab40217dde927e21979c165'
- '7ef8d0c6818faa0fdeea94970a20e3fb'
- 'b52d899cba9956bb0055150506f41ac1'
- '51de6eabe2d6d6dc860f72c41cee636b'
- 'c16109863bc63f3dad4ef35305a340bb'
- '29a32617382fab1735acba4d920f1fcd'
- 'e66466b9304dac85eb42b32f1ec3b284')
-
-build() {
- cd $srcdir/$pkgname-$pkgver
- patch -Np1 -i ../net-tools.patch
- patch -Np1 -i ../net-tools-1.60-2.6-compilefix.patch
- patch -Np1 -i ../net-tools-1.60-miiioctl.patch
- patch -Np1 -i ../gcc340.patch
- patch -Np1 -i ${srcdir}/net-tools-1.60-nameif.patch
- patch -Np1 -i ${srcdir}/net-tools-1.60-nameif_strncpy.patch
- yes "" | make
-}
-
-package() {
- cd $srcdir/$pkgname-$pkgver
- make BASEDIR=$pkgdir update
-
- # the following is provided by yp-tools and coreutils
- rm "${pkgdir}"/bin/{{,dns,nis,yp}domainname,hostname}
- rm "${pkgdir}"/usr/share/man/man1/{{,dns,nis,yp}domainname,hostname}.1
-}
diff --git a/testing/net-tools/gcc340.patch b/testing/net-tools/gcc340.patch
deleted file mode 100644
index 8089bf217..000000000
--- a/testing/net-tools/gcc340.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -Naur net-tools-1.60-orig/hostname.c net-tools-1.60/hostname.c
---- net-tools-1.60-orig/hostname.c 2001-04-08 10:04:23.000000000 -0700
-+++ net-tools-1.60/hostname.c 2004-05-07 17:22:14.000000000 -0700
-@@ -78,6 +78,7 @@
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
- default:
-+ ;
- }
- exit(1);
- }
-@@ -98,6 +99,7 @@
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
- default:
-+ ;
- }
- exit(1);
- };
-@@ -117,6 +119,7 @@
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
- default:
-+ ;
- }
- exit(1);
- };
-@@ -174,6 +177,7 @@
- printf("%s\n", hp->h_name);
- break;
- default:
-+ ;
- }
- }
-
-diff -Naur net-tools-1.60-orig/lib/inet_sr.c net-tools-1.60/lib/inet_sr.c
---- net-tools-1.60-orig/lib/inet_sr.c 2000-02-20 13:46:45.000000000 -0800
-+++ net-tools-1.60/lib/inet_sr.c 2004-05-07 17:20:14.000000000 -0700
-@@ -105,6 +105,7 @@
- case 2:
- isnet = 0; break;
- default:
-+ ;
- }
-
- /* Fill in the other fields. */
diff --git a/testing/net-tools/net-tools-1.60-2.6-compilefix.patch b/testing/net-tools/net-tools-1.60-2.6-compilefix.patch
deleted file mode 100644
index 92ce90128..000000000
--- a/testing/net-tools/net-tools-1.60-2.6-compilefix.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -ruN net-tools-1.60.orig/lib/x25_sr.c net-tools-1.60/lib/x25_sr.c
---- net-tools-1.60.orig/lib/x25_sr.c 2000-05-20 15:38:10.000000000 +0200
-+++ net-tools-1.60/lib/x25_sr.c 2003-10-18 20:33:31.927574928 +0200
-@@ -22,6 +22,7 @@
- #include <sys/socket.h>
- #include <sys/ioctl.h>
- #include <linux/x25.h>
-+#include <linux/version.h>
- #include <ctype.h>
- #include <errno.h>
- #include <netdb.h>
-@@ -77,7 +78,11 @@
- rt.sigdigits=sigdigits;
-
- /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
- memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
-+#else
-+ memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address));
-+#endif
-
- while (*args) {
- if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
diff --git a/testing/net-tools/net-tools-1.60-miiioctl.patch b/testing/net-tools/net-tools-1.60-miiioctl.patch
deleted file mode 100644
index 4859273ed..000000000
--- a/testing/net-tools/net-tools-1.60-miiioctl.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- net-tools-1.60/include/mii.h.bar Tue Jul 31 11:49:39 2001
-+++ net-tools-1.60/include/mii.h Tue Jul 31 11:49:33 2001
-@@ -11,11 +11,9 @@
-
- /* network interface ioctl's for MII commands */
- #ifndef SIOCGMIIPHY
--#define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */
--#define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */
--#define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */
--#define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */
--#define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */
-+#define SIOCGMIIPHY 0x8947 /* Read from current PHY */
-+#define SIOCGMIIREG 0x8948 /* Read any PHY register */
-+#define SIOCSMIIREG 0x8949 /* Write any PHY register */
- #endif
-
- #include <linux/types.h>
diff --git a/testing/net-tools/net-tools-1.60-nameif.patch b/testing/net-tools/net-tools-1.60-nameif.patch
deleted file mode 100644
index 54def00c2..000000000
--- a/testing/net-tools/net-tools-1.60-nameif.patch
+++ /dev/null
@@ -1,58 +0,0 @@
---- net-tools-1.60/nameif.c.nameif 2000-10-18 19:26:29.000000000 +0200
-+++ net-tools-1.60/nameif.c 2003-03-19 11:02:01.000000000 +0100
-@@ -117,7 +117,8 @@
- }
-
- struct change {
-- struct change *next,**pprev;
-+ struct change *next;
-+ int found;
- char ifname[IFNAMSIZ+1];
- unsigned char mac[6];
- };
-@@ -139,10 +140,7 @@
- ch->ifname, pos);
- if (parsemac(p,ch->mac) < 0)
- complain(_("cannot parse MAC `%s' at %s"), p, pos);
-- if (clist)
-- clist->pprev = &ch->next;
- ch->next = clist;
-- ch->pprev = &clist;
- clist = ch;
- return 0;
- }
-@@ -200,7 +198,7 @@
-
- void usage(void)
- {
-- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}"));
-+ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n"));
- exit(1);
- }
-
-@@ -277,21 +275,21 @@
- ch = lookupmac(mac);
- if (!ch)
- continue;
--
-- *ch->pprev = ch->next;
-+
-+ ch->found = 1;
- if (strcmp(p, ch->ifname)) {
- if (setname(p, ch->ifname) < 0)
- complain(_("cannot change name of %s to %s: %s"),
- p, ch->ifname, strerror(errno));
- }
-- free(ch);
- }
- fclose(ifh);
-
- while (clist) {
- struct change *ch = clist;
- clist = clist->next;
-- warning(_("interface '%s' not found"), ch->ifname);
-+ if (!ch->found)
-+ warning(_("interface '%s' not found"), ch->ifname);
- free(ch);
- }
-
diff --git a/testing/net-tools/net-tools-1.60-nameif_strncpy.patch b/testing/net-tools/net-tools-1.60-nameif_strncpy.patch
deleted file mode 100644
index 7568e21a2..000000000
--- a/testing/net-tools/net-tools-1.60-nameif_strncpy.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- net-tools-1.60/nameif.c.ncpy 2006-10-03 14:24:21.000000000 +0200
-+++ net-tools-1.60/nameif.c 2006-10-03 14:22:43.000000000 +0200
-@@ -100,8 +100,8 @@
- struct ifreq ifr;
- opensock();
- memset(&ifr,0,sizeof(struct ifreq));
-- strcpy(ifr.ifr_name, oldname);
-- strcpy(ifr.ifr_newname, newname);
-+ strncpy(ifr.ifr_name, oldname, IF_NAMESIZE);
-+ strncpy(ifr.ifr_newname, newname, IF_NAMESIZE);
- return ioctl(ctl_sk, SIOCSIFNAME, &ifr);
- }
-
diff --git a/testing/net-tools/net-tools.patch b/testing/net-tools/net-tools.patch
deleted file mode 100644
index 87e062eb2..000000000
--- a/testing/net-tools/net-tools.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-diff -Naur net-tools-1.60-orig/config.in net-tools-1.60/config.in
---- net-tools-1.60-orig/config.in 2000-05-21 07:32:12.000000000 -0700
-+++ net-tools-1.60/config.in 2004-05-31 12:36:00.000000000 -0700
-@@ -49,7 +49,7 @@
- *
- bool 'UNIX protocol family' HAVE_AFUNIX y
- bool 'INET (TCP/IP) protocol family' HAVE_AFINET y
--bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n
-+bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y
- bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y
- bool 'Appletalk DDP protocol family' HAVE_AFATALK y
- bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y
-@@ -86,6 +86,6 @@
- *
- * Other Features.
- *
--bool 'IP Masquerading support' HAVE_FW_MASQUERADE n
--bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n
--bool 'Build mii-tool' HAVE_MII n
-+bool 'IP Masquerading support' HAVE_FW_MASQUERADE y
-+bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y
-+bool 'Build mii-tool' HAVE_MII y
-diff -Naur net-tools-1.60-orig/mii-tool.c net-tools-1.60/mii-tool.c
---- net-tools-1.60-orig/mii-tool.c 2000-05-21 07:31:17.000000000 -0700
-+++ net-tools-1.60/mii-tool.c 2004-05-31 12:35:21.000000000 -0700
-@@ -379,16 +379,16 @@
- /*--------------------------------------------------------------------*/
-
- const char *usage =
--"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
-- -V, --version display version information
-- -v, --verbose more verbose output
-- -R, --reset reset MII to poweron state
-- -r, --restart restart autonegotiation
-- -w, --watch monitor for link status changes
-- -l, --log with -w, write events to syslog
-- -A, --advertise=media,... advertise only specified media
-- -F, --force=media force specified media technology
--media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
-+"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n\
-+ -V, --version display version information\n\
-+ -v, --verbose more verbose output\n\
-+ -R, --reset reset MII to poweron state\n\
-+ -r, --restart restart autonegotiation\n\
-+ -w, --watch monitor for link status changes\n\
-+ -l, --log with -w, write events to syslog\n\
-+ -A, --advertise=media,... advertise only specified media\n\
-+ -F, --force=media force specified media technology\n\
-+media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,\n\
- (to advertise both HD and FD) 100baseTx, 10baseT\n";
-
- int main(int argc, char **argv)
diff --git a/testing/nouveau-drm-lts/COPYING b/testing/nouveau-drm-lts/COPYING
new file mode 100644
index 000000000..6e74c337c
--- /dev/null
+++ b/testing/nouveau-drm-lts/COPYING
@@ -0,0 +1,48 @@
+ Copyright 2005 Adam Jackson.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation on the rights to use, copy, modify, merge,
+ publish, distribute, sub license, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+------------------------------------------------------------------------
+
+ Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS
+ SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
diff --git a/testing/nouveau-drm-lts/Makefile b/testing/nouveau-drm-lts/Makefile
new file mode 100644
index 000000000..123bc5339
--- /dev/null
+++ b/testing/nouveau-drm-lts/Makefile
@@ -0,0 +1,102 @@
+# This Makefile is loosely based on the drm.git/linux-core/Makefile and
+# the preliminary work by Christopher James Halse Rogers.
+# Edited by Pekka Paalanen <pq@iki.fi>
+
+# By default, the build is done against the running linux kernel source.
+# To build against a different kernel source tree, set LINUXDIR:
+#
+# make LINUXDIR=/path/to/kernel/source
+
+# By default, it is assumed the Nouveau kernel tree is found in $PWD/../.
+# To use a different path to the Nouveau kernel tree, set NOUVEAUROOTDIR:
+#
+# make NOUVEAUROOTDIR=/path/to/nouveau/linux-2.6
+
+
+ifndef LINUXDIR
+RUNNING_REL := $(shell uname -r)
+
+LINUXDIR := $(shell if [ -e /lib/modules/$(RUNNING_REL)/source ]; then \
+ echo /lib/modules/$(RUNNING_REL)/source; \
+ else echo /lib/modules/$(RUNNING_REL)/build; fi)
+endif
+
+NOUVEAUGITREMOTE ?= origin
+NOUVEAUROOTDIR ?= $(CURDIR)/..
+override NOUVEAUROOTDIR := $(abspath $(NOUVEAUROOTDIR))
+
+TESTFILE := include/drm/nouveau_drm.h
+ifeq ($(wildcard $(NOUVEAUROOTDIR)/$(TESTFILE)),)
+$(error $(NOUVEAUROOTDIR) does not look like the right kernel tree, \
+ please set NOUVEAUROOTDIR)
+endif
+
+GIT_REVISION := $(shell GIT_DIR=$(NOUVEAUROOTDIR)/.git \
+ git describe --always --abbrev=17 2> /dev/null)
+
+DRMINC := -I$(NOUVEAUROOTDIR)/include/drm
+DRMDIR := $(NOUVEAUROOTDIR)/drivers/gpu/drm
+DRMCFG := \
+ CONFIG_DRM=m \
+ CONFIG_DRM_KMS_HELPER=m \
+ CONFIG_DRM_TTM=m \
+ CONFIG_DRM_NOUVEAU=m \
+ CONFIG_DRM_NOUVEAU_KMS=n \
+ CONFIG_DRM_NOUVEAU_BACKLIGHT=y \
+ CONFIG_DRM_NOUVEAU_DEBUG=y \
+ CONFIG_DRM_I2C_CH7006=m \
+ CONFIG_DRM_TDFX=n \
+ CONFIG_DRM_R128=n \
+ CONFIG_DRM_RADEON=n \
+ CONFIG_DRM_MGA=n \
+ CONFIG_DRM_I810=n \
+ CONFIG_DRM_I830=n \
+ CONFIG_DRM_I915=n \
+ CONFIG_DRM_SIS=n \
+ CONFIG_DRM_SAVAGE=n \
+ CONFIG_DRM_VIA=n
+
+EXTRA_CFLAGS :=
+MYEXTRA_CFLAGS :=
+MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_BACKLIGHT
+MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_DEBUG
+
+ifneq ($(GIT_REVISION),)
+MYEXTRA_CFLAGS += '-DGIT_REVISION=\"$(GIT_REVISION)\"'
+endif
+
+MYPARMS := -C $(LINUXDIR) KCPPFLAGS="$(DRMINC)" SUBDIRS="$(DRMDIR)" $(DRMCFG)
+
+MYEXTRA_CFLAGS += $(EXTRA_CFLAGS)
+ifneq ($(MYEXTRA_CFLAGS),)
+MYPARMS += EXTRA_CFLAGS="$(MYEXTRA_CFLAGS)"
+endif
+
+.PHONY: all modules install clean archive FORCE
+
+all: modules
+FORCE:
+
+modules:
+ $(MAKE) $(MYPARMS) modules
+
+install:
+ $(MAKE) $(MYPARMS) modules_install
+
+clean:
+ $(MAKE) $(MYPARMS) clean
+
+archive: newttm-devel-compat.tar.gz newttm-devel.tar.gz master.tar.gz
+
+newttm-devel-compat.tar.gz: EXTRAS=nouveau README-nouveau
+
+%.tar: FORCE
+ GIT_DIR=$(NOUVEAUROOTDIR)/.git \
+ git archive --format=tar --prefix=$*/ $(NOUVEAUGITREMOTE)/$* \
+ drivers/gpu/drm include/drm $(EXTRAS) > $@
+
+%.tar.gz: %.tar
+ gzip -9 -c $< > $@
+
+# The commit id of the archive can be read with
+# $ zcat foo.tar.gz | git get-tar-commit-id
diff --git a/testing/nouveau-drm-lts/PKGBUILD b/testing/nouveau-drm-lts/PKGBUILD
new file mode 100644
index 000000000..1284563f4
--- /dev/null
+++ b/testing/nouveau-drm-lts/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 126820 2011-06-07 13:57:50Z tpowa $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=nouveau-drm-lts
+_snapdate=20100313
+pkgver=0.0.16_${_snapdate} # see master/drivers/gpu/drm/nouveau/nouveau_drv.h for version
+_kernver='2.6.32-lts'
+pkgrel=6
+pkgdesc="nvidia opensource X driver"
+arch=('i686' 'x86_64')
+url="http://nouveau.freedesktop.org/"
+depends=("kernel26-lts>=2.6.32" "kernel26-lts<2.6.33")
+makedepends=("kernel26-lts-headers>=2.6.32" "kernel26-lts-headers<2.6.33")
+# http://nouveau.freedesktop.org/wiki/InstallDRM#head-771a47a133fba6a5a70253656e76c61e9bff93bd
+optdepends=('nouveau-firmware: needed for very new card (NV50 family and above) to work properly where the OSS replacement does not work well')
+#makedepends=('git' 'autoconf' 'pkgconfig')
+install=nouveau-drm.install
+license=('GPL')
+options=('!strip')
+source=(ftp://ftp.archlinux.org/other/${pkgname/-lts//}/master-${_snapdate}.tar.gz
+ # http://people.freedesktop.org/~pq/nouveau-drm/master.tar.gz
+ # get the Makefile from http://cgit.freedesktop.org/nouveau/linux-2.6/plain/nouveau/Makefile?h=master-compat
+ Makefile)
+md5sums=('ad7ad0fb73d56bcff3d2b54a70c3d511'
+ 'e7d5df80186d5c736e82b0a7d46216bc')
+
+build() {
+ cd ${srcdir}/master
+ mkdir nouveau
+ cp $srcdir/Makefile ${srcdir}/master/nouveau/
+ cd nouveau
+ make LINUXDIR=/lib/modules/${_kernver}/build DRM_MODULES="nouveau"
+}
+
+package() {
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/drm.ko ${pkgdir}/lib/modules/${_kernver}/updates/drm.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/drm_kms_helper.ko ${pkgdir}/lib/modules/${_kernver}/updates/drm_kms_helper.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/nouveau/nouveau.ko ${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nouveau.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/ttm/ttm.ko ${pkgdir}/lib/modules/${_kernver}/updates/ttm.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/i2c/ch7006.ko ${pkgdir}/lib/modules/${_kernver}/updates/ch7006.ko
+
+ # install script
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" ${startdir}/nouveau-drm.install
+ # gzip -9 modules
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
diff --git a/testing/nouveau-drm-lts/dont_check_for_pthread.patch b/testing/nouveau-drm-lts/dont_check_for_pthread.patch
new file mode 100644
index 000000000..050f55767
--- /dev/null
+++ b/testing/nouveau-drm-lts/dont_check_for_pthread.patch
@@ -0,0 +1,49 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev],
+diff -ru libdrm-2.4.0/libdrm/intel/Makefile.am libdrm-2.4.0-nostubs/libdrm/intel/Makefile.am
+--- libdrm-2.4.0/libdrm/intel/Makefile.am 2008-10-14 01:39:32.000000000 +0200
++++ libdrm-2.4.0-nostubs/libdrm/intel/Makefile.am 2008-10-21 10:49:00.000000000 +0200
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir)/libdrm \
+ -I$(top_srcdir)/libdrm/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/shared-core
+
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_intel_la_LIBADD = ../libdrm.la
+
+ libdrm_intel_la_SOURCES = \
+ intel_bufmgr.c \
+--- libdrm-2.4.5/libdrm/nouveau/Makefile.am.orig 2009-02-28 19:06:24.000000000 +0000
++++ libdrm-2.4.5/libdrm/nouveau/Makefile.am 2009-02-28 19:06:33.000000000 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir)/libdrm \
+ -I$(top_srcdir)/libdrm/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/shared-core
+
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+
+ libdrm_nouveau_la_SOURCES = \
+ nouveau_device.c \
diff --git a/testing/nouveau-drm-lts/nouveau-drm.install b/testing/nouveau-drm-lts/nouveau-drm.install
new file mode 100644
index 000000000..beadaa563
--- /dev/null
+++ b/testing/nouveau-drm-lts/nouveau-drm.install
@@ -0,0 +1,16 @@
+post_install() {
+ KERNEL_VERSION='2.6.32-lts'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ echo "if you are running kms in early mode please rebuild your initrd"
+}
+
+post_upgrade() {
+ post_install $1
+ rmmod nouveau || echo 'In order to use the new nouveau module, exit Xserver and unload it manually.'
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.32-lts'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
diff --git a/testing/nx-common/NXproto.h.64bit.diff b/testing/nx-common/NXproto.h.64bit.diff
new file mode 100644
index 000000000..ac326ebcd
--- /dev/null
+++ b/testing/nx-common/NXproto.h.64bit.diff
@@ -0,0 +1,66 @@
+--- nxcomp.old/NXproto.h 2006-06-19 19:55:56.000000000 +0200
++++ nxcomp/NXproto.h 2007-02-12 18:17:41.000000000 +0100
+@@ -26,6 +26,30 @@
+ #include <X11/Xmd.h>
+ #include <X11/Xproto.h>
+
++/*
++ Copied from Xproto.h
++ */
++
++/* For the purpose of the structure definitions in this file,
++we must redefine the following types in terms of Xmd.h's types, which may
++include bit fields. All of these are #undef'd at the end of this file,
++restoring the definitions in X.h. */
++
++#define Window CARD32
++#define Drawable CARD32
++#define Font CARD32
++#define Pixmap CARD32
++#define Cursor CARD32
++#define Colormap CARD32
++#define GContext CARD32
++#define Atom CARD32
++#define VisualID CARD32
++#define Time CARD32
++#define KeyCode CARD8
++#define KeySym CARD32
++
++/* End copied from Xproto.h */
++
+ #define sz_xNXGetControlParametersReq 4
+ #define sz_xNXGetCleanupParametersReq 4
+ #define sz_xNXGetImageParametersReq 4
+@@ -343,9 +367,9 @@
+ CARD8 dstDepth;
+ CARD32 srcLength B32;
+ CARD32 dstLength B32;
+- INT16 srcX B16, srcY B16;
++ CARD16 srcX B16, srcY B16;
+ CARD16 srcWidth B16, srcHeight B16;
+- INT16 dstX B16, dstY B16;
++ CARD16 dstX B16, dstY B16;
+ CARD16 dstWidth B16, dstHeight B16;
+ } xNXPutPackedImageReq;
+
+@@ -463,4 +487,20 @@
+ }
+ #endif
+
++/* Copied from Xproto.h */
++
++/* restore these definitions back to the typedefs in X.h */
++#undef Window
++#undef Drawable
++#undef Font
++#undef Pixmap
++#undef Cursor
++#undef Colormap
++#undef GContext
++#undef Atom
++#undef VisualID
++#undef Time
++#undef KeyCode
++#undef KeySym
++
+ #endif /* NXproto_H */
diff --git a/testing/nx-common/PKGBUILD b/testing/nx-common/PKGBUILD
new file mode 100644
index 000000000..85fc78ce6
--- /dev/null
+++ b/testing/nx-common/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 126698 2011-06-06 18:56:52Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+
+pkgname=nx-common
+pkgver=3.5.0
+pkgrel=1
+pkgdesc="NoMachine NX common package for client and server"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://nomachine.com/"
+depends=('libjpeg-turbo>=1.1.1' 'libpng>=1.4.5' 'openssl>=1.0.0' 'gcc-libs' 'bash')
+makedepends=('xorg-server-devel')
+source=( #Compression libs and proxy sources
+ http://64.34.161.181/download/$pkgver/sources/nxcomp-$pkgver-1.tar.gz
+ http://64.34.161.181/download/$pkgver/sources/nxcompsh-$pkgver-1.tar.gz
+ http://64.34.161.181/download/$pkgver/sources/nxssh-$pkgver-1.tar.gz
+ nxcompsh-gcc43.patch)
+options=(!libtool)
+md5sums=('30a182146479004ec63b8a1b9adccfcf'
+ '84ade443b79ea079380b754aba9d392e'
+ '9f13262bc0bf5187fcc7e22924955bc7'
+ 'b6c279654dac421fc3dd1a27d66ff53c')
+
+build() {
+ # nxcomp
+ cd ${srcdir}/nxcomp
+ ./configure --prefix=/opt/NX
+ make
+ # nxcompsh
+ cd ${srcdir}/nxcompsh
+ patch -Np1 -i ${srcdir}/nxcompsh-gcc43.patch
+ ./configure --prefix=/opt/NX
+ make
+ # nxssh
+ cd ${srcdir}/nxssh
+ ./configure --prefix=/opt/NX
+ make
+}
+
+package() {
+ mkdir -p ${pkgdir}/opt/NX/bin
+ mkdir -p ${pkgdir}/opt/NX/lib
+
+ # nxcomp
+ cd ${srcdir}/nxcomp
+ cp -a libXcomp.so* ${pkgdir}/opt/NX/lib
+ # nxcompsh
+ cd ${srcdir}/nxcompsh
+ cp -a libXcompsh.so* ${pkgdir}/opt/NX/lib
+ # nxssh
+ cd ${srcdir}/nxssh
+ install -D -m755 nxssh ${pkgdir}/opt/NX/bin/nxssh
+}
diff --git a/testing/nx-common/nxcompsh-gcc43.patch b/testing/nx-common/nxcompsh-gcc43.patch
new file mode 100644
index 000000000..681a0dab5
--- /dev/null
+++ b/testing/nx-common/nxcompsh-gcc43.patch
@@ -0,0 +1,19 @@
+--- nxcompsh/Misc.h~ 2007-06-04 13:39:49.000000000 +0200
++++ nxcompsh/Misc.h 2008-04-12 12:46:24.000000000 +0200
+@@ -18,10 +18,12 @@
+ #ifndef Misc_H
+ #define Misc_H
+
+-#include <iostream.h>
++#include <iostream>
+
+-#include <errno.h>
+-#include <string.h>
++#include <cerrno>
++#include <cstring>
++
++using namespace std;
+
+ //
+ // Error handling macros.
+
diff --git a/testing/nxserver/NXproto.h.64bit.diff b/testing/nxserver/NXproto.h.64bit.diff
new file mode 100644
index 000000000..ac326ebcd
--- /dev/null
+++ b/testing/nxserver/NXproto.h.64bit.diff
@@ -0,0 +1,66 @@
+--- nxcomp.old/NXproto.h 2006-06-19 19:55:56.000000000 +0200
++++ nxcomp/NXproto.h 2007-02-12 18:17:41.000000000 +0100
+@@ -26,6 +26,30 @@
+ #include <X11/Xmd.h>
+ #include <X11/Xproto.h>
+
++/*
++ Copied from Xproto.h
++ */
++
++/* For the purpose of the structure definitions in this file,
++we must redefine the following types in terms of Xmd.h's types, which may
++include bit fields. All of these are #undef'd at the end of this file,
++restoring the definitions in X.h. */
++
++#define Window CARD32
++#define Drawable CARD32
++#define Font CARD32
++#define Pixmap CARD32
++#define Cursor CARD32
++#define Colormap CARD32
++#define GContext CARD32
++#define Atom CARD32
++#define VisualID CARD32
++#define Time CARD32
++#define KeyCode CARD8
++#define KeySym CARD32
++
++/* End copied from Xproto.h */
++
+ #define sz_xNXGetControlParametersReq 4
+ #define sz_xNXGetCleanupParametersReq 4
+ #define sz_xNXGetImageParametersReq 4
+@@ -343,9 +367,9 @@
+ CARD8 dstDepth;
+ CARD32 srcLength B32;
+ CARD32 dstLength B32;
+- INT16 srcX B16, srcY B16;
++ CARD16 srcX B16, srcY B16;
+ CARD16 srcWidth B16, srcHeight B16;
+- INT16 dstX B16, dstY B16;
++ CARD16 dstX B16, dstY B16;
+ CARD16 dstWidth B16, dstHeight B16;
+ } xNXPutPackedImageReq;
+
+@@ -463,4 +487,20 @@
+ }
+ #endif
+
++/* Copied from Xproto.h */
++
++/* restore these definitions back to the typedefs in X.h */
++#undef Window
++#undef Drawable
++#undef Font
++#undef Pixmap
++#undef Cursor
++#undef Colormap
++#undef GContext
++#undef Atom
++#undef VisualID
++#undef Time
++#undef KeyCode
++#undef KeySym
++
+ #endif /* NXproto_H */
diff --git a/testing/nxserver/PKGBUILD b/testing/nxserver/PKGBUILD
new file mode 100644
index 000000000..99b5bc2aa
--- /dev/null
+++ b/testing/nxserver/PKGBUILD
@@ -0,0 +1,92 @@
+# $Id: PKGBUILD 126704 2011-06-06 19:21:37Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+
+pkgname=nxserver
+pkgver=3.5.0
+pkgrel=1
+pkgdesc="NoMachine NX is the next-generation X compression and roundtrip suppression scheme."
+arch=(i686 x86_64)
+url="http://nomachine.com/"
+license=('GPL')
+depends=("nx-common" 'libxaw' 'libxrender' 'libxp' 'gcc-libs' 'libjpeg>=8' #>=$pkgver
+ 'libxpm' 'libpng>=1.4.0' 'libxdamage' 'libxrandr' 'libxcomposite' 'libxtst' 'freetype2'
+ 'xorg-sessreg')
+makedepends=('imake')
+source=(
+#X11 support programs and libraries
+http://64.34.161.181/download/$pkgver/sources/nx-X11-$pkgver-1.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxwin-$pkgver-1.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxauth-$pkgver-1.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcomp-$pkgver-1.tar.gz # needed to provide NX.h and -LXcomp - part of nx-common
+#X11 Agent sources
+http://64.34.161.181/download/$pkgver/sources/nxagent-$pkgver-2.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcompsh-$pkgver-1.tar.gz # needed to get X11 built - part of nx-common
+#Compression libs and proxy sources
+http://64.34.161.181/download/$pkgver/sources/nxproxy-$pkgver-1.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcompext-$pkgver-1.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcompshad-$pkgver-2.tar.gz
+# gcc 43 fix
+nxcompsh-gcc43.patch)
+options=(!libtool)
+md5sums=('54ac7dd8806928b991b0819cf76b37dd'
+ '271cef5b5345b8de77b0f6a0ce1a3b0d'
+ 'cf38ec1e5a5f6453946cd387c14f2684'
+ '30a182146479004ec63b8a1b9adccfcf'
+ '7b0f60d5a3c54f22da7d81aac055836e'
+ '84ade443b79ea079380b754aba9d392e'
+ '488bb4d9b8e9f82dc272b4e6e9c57d30'
+ 'abde2ccc33e31fc695031c2cfb60f3dd'
+ '90a762dd9eb19c8c97876ad837923857'
+ 'b6c279654dac421fc3dd1a27d66ff53c')
+
+build() {
+ cd ${srcdir}
+
+ # nxcomp
+ cd ${srcdir}/nxcomp
+ ./configure --prefix=/opt/NX
+ make
+ # nxcompshad
+ cd ${srcdir}/nxcompshad
+ ./configure --prefix=/opt/NX
+ make
+ # nxcompsh
+ cd ${srcdir}/nxcompsh
+ patch -Np1 -i ${srcdir}/nxcompsh-gcc43.patch
+ ./configure --prefix=/opt/NX
+ make
+ # nxproxy
+ cd ${srcdir}/nxproxy
+ ./configure --prefix=/opt/NX
+ make
+ # nx-X11
+ cd ${srcdir}/nx-X11
+ make World
+ # nxcompext
+ cd ${srcdir}/nxcompext
+ ./configure --prefix=/opt/NX
+ make
+}
+
+package() {
+ mkdir -p ${pkgdir}/opt/NX/bin
+ mkdir -p ${pkgdir}/opt/NX/lib
+
+ # nxcompshad
+ cd ${srcdir}/nxcompshad
+ cp -a libXcompshad.so* ${pkgdir}/opt/NX/lib
+ # nxproxy
+ cd ${srcdir}/nxproxy
+ make prefix=${pkgdir}/opt/NX install
+ # nx-X11
+ cd ${srcdir}/nx-X11
+ cp -a lib/X11/libX11.so* ${pkgdir}/opt/NX/lib
+ cp -a lib/Xext/libXext.so* ${pkgdir}/opt/NX/lib
+ cp -a lib/Xrender/libXrender.so* ${pkgdir}/opt/NX/lib
+ install -D -m755 programs/Xserver/nxagent ${pkgdir}/opt/NX/bin/nxagent
+ install -D -m755 programs/nxauth/nxauth ${pkgdir}/opt/NX/bin/nxauth
+ # nxcompext
+ cd ${srcdir}/nxcompext
+ cp -a libXcompext.so* ${pkgdir}/opt/NX/lib
+} \ No newline at end of file
diff --git a/testing/nxserver/nxcompsh-gcc43.patch b/testing/nxserver/nxcompsh-gcc43.patch
new file mode 100644
index 000000000..681a0dab5
--- /dev/null
+++ b/testing/nxserver/nxcompsh-gcc43.patch
@@ -0,0 +1,19 @@
+--- nxcompsh/Misc.h~ 2007-06-04 13:39:49.000000000 +0200
++++ nxcompsh/Misc.h 2008-04-12 12:46:24.000000000 +0200
+@@ -18,10 +18,12 @@
+ #ifndef Misc_H
+ #define Misc_H
+
+-#include <iostream.h>
++#include <iostream>
+
+-#include <errno.h>
+-#include <string.h>
++#include <cerrno>
++#include <cstring>
++
++using namespace std;
+
+ //
+ // Error handling macros.
+
diff --git a/testing/pango-perl/PKGBUILD b/testing/pango-perl/PKGBUILD
deleted file mode 100644
index ad489dec4..000000000
--- a/testing/pango-perl/PKGBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id: PKGBUILD 124899 2011-05-25 01:24:25Z foutrelis $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=pango-perl
-_realname=Pango
-pkgver=1.221
-pkgrel=4
-pkgdesc="Perl bindings for Pango"
-arch=(i686 x86_64)
-license=('LGPL')
-url="http://gtk2-perl.sourceforge.net/"
-makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
-depends=('pango' 'glib-perl' 'cairo-perl')
-options=('!emptydirs')
-source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
-md5sums=('8d257209aa11bd6c3a2beb235c2f103f')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make install DESTDIR="${pkgdir}"
-}
diff --git a/testing/perl-alien-sdl/PKGBUILD b/testing/perl-alien-sdl/PKGBUILD
deleted file mode 100644
index 25bd18eeb..000000000
--- a/testing/perl-alien-sdl/PKGBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: PKGBUILD 124820 2011-05-24 15:44:07Z heftig $
-# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
-
-# This package must not by "any" arch.
-# Requires rebuild with every change to sdl-config
-
-pkgname=perl-alien-sdl
-_realname=Alien-SDL
-pkgver=1.426
-pkgrel=1
-pkgdesc="Building, finding and using SDL binaries"
-arch=(i686 x86_64)
-license=(PerlArtistic GPL)
-url="http://search.cpan.org/dist/Alien-SDL/"
-depends=(sdl=1.2.14 perl-file-sharedir perl-capture-tiny)
-makedepends=(perl-file-which perl-text-patch)
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/F/FR/FROGGS/$_realname-$pkgver.tar.gz)
-md5sums=('ab5e1167934418f4a7b3285a9d05c89b')
-
-package() {
- cd "$srcdir/$_realname-$pkgver"
-
- # install module in vendor directories
- perl Build.PL installdirs=vendor destdir="$pkgdir" --with-sdl-config
-
- perl Build
- perl Build install
-}
diff --git a/testing/perl-bit-vector/PKGBUILD b/testing/perl-bit-vector/PKGBUILD
deleted file mode 100644
index ebdc0719d..000000000
--- a/testing/perl-bit-vector/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 125243 2011-05-25 19:15:01Z foutrelis $
-# Maintainer: Kevin Piche <kevin@archlinux.org>
-# Contributor: K. Piche <kpiche@rogers.com>
-
-pkgname=perl-bit-vector
-_cpanname=Bit-Vector
-pkgver=7.1
-pkgrel=3
-pkgdesc='Efficient bit vector, set of integers and "big int" math library'
-arch=(i686 x86_64)
-license=('GPL' 'LGPL' 'PerlArtistic')
-url="http://search.cpan.org/dist/${_cpanname}/"
-depends=('perl-carp-clan' 'perl>=5.10.0')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/S/ST/STBEY/${_cpanname}-${pkgver}.tar.gz)
-md5sums=('164c8574b728f6171b2a6f564fcd2e50')
-
-build() {
- cd ${srcdir}/${_cpanname}-$pkgver
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_cpanname}-$pkgver
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
diff --git a/testing/perl-compress-bzip2/PKGBUILD b/testing/perl-compress-bzip2/PKGBUILD
deleted file mode 100644
index ad5f788ac..000000000
--- a/testing/perl-compress-bzip2/PKGBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id: PKGBUILD 124543 2011-05-22 21:27:46Z angvp $
-# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
-pkgname=perl-compress-bzip2
-_realname=Compress-Bzip2
-pkgver=2.09
-pkgrel=2
-pkgdesc="Interface to Bzip2 compression library"
-arch=(i686 x86_64)
-license=(GPL2)
-depends=(perl bzip2)
-url='http://search.cpan.org/dist/$_realname'
-options=('!emptydirs')
-source=("http://search.cpan.org/CPAN/authors/id/A/AR/ARJAY/$_realname-$pkgver.tar.gz")
-md5sums=('1699fde3e86f2a036f135ae606d456bf')
-
-build() {
- cd "$srcdir/$_realname-$pkgver"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-package() {
- cd "$srcdir/$_realname-$pkgver"
- make DESTDIR="$pkgdir" install
-}
diff --git a/testing/perl-crypt-ssleay/PKGBUILD b/testing/perl-crypt-ssleay/PKGBUILD
deleted file mode 100644
index 37f315f89..000000000
--- a/testing/perl-crypt-ssleay/PKGBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: PKGBUILD 125246 2011-05-25 19:15:29Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: François Charette <firmicus ατ gmx δοτ net>
-
-pkgname=perl-crypt-ssleay
-pkgver=0.58
-pkgrel=3
-pkgdesc="OpenSSL glue that provides LWP https support"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/dist/Crypt-SSLeay"
-license=('GPL' 'PerlArtistic')
-depends=('openssl')
-options=('!emptydirs')
-source=(http://www.cpan.org/CPAN/authors/id/N/NA/NANIS/Crypt-SSLeay-$pkgver.tar.gz)
-md5sums=('fbf3d12e58462cee00ea63239c0b13c7')
-
-build() {
- cd "${srcdir}/Crypt-SSLeay-${pkgver}"
-
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd "${srcdir}/Crypt-SSLeay-${pkgver}"
- make install DESTDIR="${pkgdir}"
-
- find ${pkgdir} -name '.packlist' -delete
- find ${pkgdir} -name '*.pod' -delete
-}
diff --git a/testing/perl-dbd-mysql/PKGBUILD b/testing/perl-dbd-mysql/PKGBUILD
deleted file mode 100644
index 42d22d211..000000000
--- a/testing/perl-dbd-mysql/PKGBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# $Id: PKGBUILD 125309 2011-05-25 19:54:00Z remy $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Eric Johnson <eric@coding-zone.com>
-
-pkgname=perl-dbd-mysql
-_realname=DBD-mysql
-pkgver=4.019
-pkgrel=1
-pkgdesc="Perl/CPAN DBD::mysql module for interacting with MySQL via DBD"
-arch=(i686 x86_64)
-license=('GPL' 'PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('libmysqlclient' 'perl-dbi' 'perl>=5.14.0')
-makedepends=('mysql')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/${_realname}-${pkgver}.tar.gz)
-md5sums=('566d98ab8ffac9626a31f6f6d455558e')
-
-build() {
- cd ${srcdir}/${_realname}-${pkgver}
-
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor --testsocket=/tmp/socket.mysql
- make
-}
-
-check() {
- cd ${srcdir}/${_realname}-${pkgver}
- mkdir -p /tmp/mysql_test
- mysql_install_db \
- --basedir=/usr \
- --datadir=/tmp/mysql_test
- mysqld -P 17999 \
- --socket=/tmp/socket.mysql \
- --datadir=/tmp/mysql_test &
- sleep 10
- DAEMON_PORT=$!
- make test || true
- kill -9 $DAEMON_PORT
-}
-
-package() {
- cd ${srcdir}/${_realname}-${pkgver}
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
diff --git a/testing/perl-dbd-sqlite/PKGBUILD b/testing/perl-dbd-sqlite/PKGBUILD
deleted file mode 100644
index 298cc2008..000000000
--- a/testing/perl-dbd-sqlite/PKGBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id: PKGBUILD 125249 2011-05-25 19:15:53Z foutrelis $
-# Contributor: Tom Killian <tomk@runbox.com>
-# Contributor: francois at archlinux dot org
-
-pkgname=perl-dbd-sqlite
-_cpanname=DBD-SQLite
-pkgver=1.31
-pkgrel=2
-pkgdesc="Self-contained RDBMS in a DBI driver"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/dist/${_cpanname}"
-license=('GPL' 'PerlArtistic')
-depends=('perl-dbi>=1.61' 'sqlite3')
-options=('!emptydirs')
-source=(http://www.cpan.org/authors/id/A/AD/ADAMK/${_cpanname}-${pkgver}.tar.gz)
-md5sums=('67b3575104efd606c8093bc416e3338d')
-
-build() {
- cd "${srcdir}/${_cpanname}-${pkgver}"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd "${srcdir}/${_cpanname}-${pkgver}"
- make install DESTDIR="${pkgdir}"
-}
diff --git a/testing/perl-dbi/PKGBUILD b/testing/perl-dbi/PKGBUILD
deleted file mode 100644
index 42f7a5770..000000000
--- a/testing/perl-dbi/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id: PKGBUILD 124915 2011-05-25 07:47:08Z foutrelis $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Matt Thompson <mattt@defunct.ca>
-
-pkgname=perl-dbi
-_realname=DBI
-pkgver=1.616
-pkgrel=2
-pkgdesc="Database independent interface for Perl"
-arch=(i686 x86_64)
-license=('GPL' 'PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl>=5.12.1')
-options=(!emptydirs)
-source=(http://www.cpan.org/authors/id/T/TI/TIMB/${_realname}-${pkgver}.tar.gz)
-md5sums=('799313e54a693beb635b47918458f7c4')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
-
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make install DESTDIR="${pkgdir}"
-}
-
-# vim: ts=2 sw=2 et ft=sh
diff --git a/testing/perl-digest-nilsimsa/PKGBUILD b/testing/perl-digest-nilsimsa/PKGBUILD
deleted file mode 100644
index 40e9ae353..000000000
--- a/testing/perl-digest-nilsimsa/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id: PKGBUILD 125252 2011-05-25 19:16:38Z foutrelis $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Manolis Tzanidakis
-
-pkgname=perl-digest-nilsimsa
-_realname=Digest-Nilsimsa
-pkgver=0.06
-pkgrel=7
-pkgdesc="Perl version of Nilsimsa code."
-arch=('i686' 'x86_64')
-license=('LGPL')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl>=5.10.0')
-options=(!emptydirs)
-source=(http://www.cpan.org/authors/id/V/VI/VIPUL/${_realname}-${pkgver}.tar.gz)
-replaces=('digest-nilsimsa')
-provides=('digest-nilsimsa')
-md5sums=('08e940bd7f5d1167ef3fd1aa7ce234d7')
-
-build() {
- cd ${srcdir}/${_realname}-${pkgver}
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_realname}-${pkgver}
- make install DESTDIR=${pkgdir}
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
-# vim: ts=2 sw=2 et ft=sh
diff --git a/testing/perl-digest-sha1/PKGBUILD b/testing/perl-digest-sha1/PKGBUILD
deleted file mode 100644
index eaae5e528..000000000
--- a/testing/perl-digest-sha1/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 125255 2011-05-25 19:17:02Z foutrelis $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Manolis Tzanidakis
-
-pkgname=perl-digest-sha1
-_realname=Digest-SHA1
-pkgver=2.13
-pkgrel=2
-pkgdesc="Perl interface to the SHA-1 Algorithm"
-arch=(i686 x86_64)
-license=('PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl>=5.10.0')
-options=(!emptydirs)
-source=(http://www.cpan.org/authors/id/G/GA/GAAS/${_realname}-${pkgver}.tar.gz)
-replaces=('digest-sha1')
-provides=('digest-sha1')
-md5sums=('bd22388f268434f2b24f64e28bf1aa35')
-
-build() {
- cd ${srcdir}/${_realname}-${pkgver}
-
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_realname}-${pkgver}
-
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
-# vim: ts=2 sw=2 et ft=sh
diff --git a/testing/perl-event/PKGBUILD b/testing/perl-event/PKGBUILD
deleted file mode 100644
index 3e20ec4c2..000000000
--- a/testing/perl-event/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 125258 2011-05-25 19:17:24Z foutrelis $
-# Maintainer: tobias <tobias@archlinux.org>
-# Contributor: Tobias Kieslich <tobias@justdreams.de>
-# Contributor: François Charette <francois.archlinux.org>
-
-pkgname=perl-event
-_srcname=Event
-pkgver=1.17
-pkgrel=1
-pkgdesc="Framework for GUI events"
-arch=('i686' 'x86_64')
-license=('PerlArtistic' 'GPL')
-url="http://search.cpan.org/dist/${_srcname}/"
-depends=('perl')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/J/JP/JPRIT/${_srcname}-${pkgver}.tar.gz)
-md5sums=('c58cdf7c56cd5f10a58b234d2c81295f')
-
-build() {
- cd "${srcdir}/${_srcname}-${pkgver}"
-
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd "${srcdir}/${_srcname}-${pkgver}"
-
- make install DESTDIR="${pkgdir}"
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
diff --git a/testing/perl-fcgi/PKGBUILD b/testing/perl-fcgi/PKGBUILD
deleted file mode 100644
index d44eddf2a..000000000
--- a/testing/perl-fcgi/PKGBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: PKGBUILD 125303 2011-05-25 19:27:52Z remy $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: François Charette <firmicus ατ gmx δοτ net>
-
-pkgname=perl-fcgi
-pkgver=0.72
-pkgrel=1
-pkgdesc="Fast CGI"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/dist/FCGI"
-license=('GPL' 'PerlArtistic')
-depends=('perl>=5.14')
-options=('!emptydirs')
-source=(http://www.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-${pkgver}.tar.gz)
-md5sums=('7b793e177caa93d972c6fb7ebe7c7ae1')
-
-build() {
- cd "${srcdir}/FCGI-${pkgver}"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-check() {
- cd "${srcdir}/FCGI-${pkgver}"
- make test
-}
-
-package() {
- cd "${srcdir}/FCGI-${pkgver}"
- make install DESTDIR="${pkgdir}"
-}
diff --git a/testing/perl-html-parser/PKGBUILD b/testing/perl-html-parser/PKGBUILD
deleted file mode 100644
index 7e3b0a701..000000000
--- a/testing/perl-html-parser/PKGBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: PKGBUILD 125261 2011-05-25 19:17:47Z foutrelis $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Manolis Tzanidakis
-# Contributor: Firmicus <francois.archlinux.org>
-
-pkgname=perl-html-parser
-_realname=HTML-Parser
-pkgver=3.68
-pkgrel=2
-pkgdesc="Perl HTML parser class"
-arch=('i686' 'x86_64')
-license=('PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl-html-tagset' 'perl>=5.12.1')
-options=(!emptydirs)
-source=(http://www.cpan.org/authors/id/G/GA/GAAS/${_realname}-${pkgver}.tar.gz)
-md5sums=('5550b2da7aa94341f1e8a17a4ac20c68')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make install DESTDIR="${pkgdir}"
-}
-# vim: ts=2 sw=2 et ft=sh
diff --git a/testing/perl-libintl-perl/PKGBUILD b/testing/perl-libintl-perl/PKGBUILD
deleted file mode 100644
index af266d871..000000000
--- a/testing/perl-libintl-perl/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 125264 2011-05-25 19:18:10Z foutrelis $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Tobias Kieslich <tobias@justdreams.de>
-
-pkgname=perl-libintl-perl
-_realname=libintl-perl
-pkgver=1.20
-pkgrel=3
-pkgdesc="Perl Module: Localization support"
-arch=('i686' 'x86_64')
-license=('LGPL')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('gettext' 'perl>=5.10.0')
-options=(!emptydirs)
-source=(http://www.cpan.org/authors/id/G/GU/GUIDO/${_realname}-$pkgver.tar.gz)
-md5sums=('cb36f58a7d2e15974f25b35381548b1b')
-
-build() {
- cd ${srcdir}/${_realname}-$pkgver
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_realname}-$pkgver
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
diff --git a/testing/perl-locale-gettext/PKGBUILD b/testing/perl-locale-gettext/PKGBUILD
deleted file mode 100644
index 6f916e28e..000000000
--- a/testing/perl-locale-gettext/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 125267 2011-05-25 19:18:48Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Mark Rosenstand <mark@borkware.net>
-# Contributor: Paul Mattal <paul@archlinux.org>
-
-pkgname=perl-locale-gettext
-_realname=gettext
-pkgver=1.05
-pkgrel=7
-pkgdesc="Permits access from Perl to the gettext() family of functions"
-arch=('i686' 'x86_64')
-license=('GPL' 'PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('gettext' 'perl>=5.10.0')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/P/PV/PVANDRY/${_realname}-${pkgver}.tar.gz
- compatibility-with-POSIX-module.patch)
-md5sums=('f3d3f474a1458f37174c410dfef61a46'
- '854302f34d01a2f8ae739187788973dd')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
-
- patch -Np1 -i ${srcdir}/compatibility-with-POSIX-module.patch
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make install DESTDIR="${pkgdir}"
-
- # remove perllocal.pod and .packlist
- find "${pkgdir}" -name perllocal.pod -delete
- find "${pkgdir}" -name .packlist -delete
-}
diff --git a/testing/perl-locale-gettext/compatibility-with-POSIX-module.patch b/testing/perl-locale-gettext/compatibility-with-POSIX-module.patch
deleted file mode 100644
index ad675516b..000000000
--- a/testing/perl-locale-gettext/compatibility-with-POSIX-module.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/gettext.pm 2005-05-31 20:11:16.000000000 -0700
-+++ b/gettext.pm 2009-10-07 12:39:42.000000000 -0700
-@@ -32,6 +32,7 @@
- =cut
-
- use Carp;
-+use POSIX qw(:locale_h);
-
- require Exporter;
- require DynaLoader;
diff --git a/testing/perl-net-dns/PKGBUILD b/testing/perl-net-dns/PKGBUILD
deleted file mode 100644
index 1a4f7c0cc..000000000
--- a/testing/perl-net-dns/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 125273 2011-05-25 19:19:34Z foutrelis $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Manolis Tzanidakis
-
-pkgname=perl-net-dns
-_realname=Net-DNS
-pkgver=0.66
-pkgrel=4
-pkgdesc="Perl Module: Interface to the DNS resolver."
-arch=(i686 x86_64)
-license=('PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl-digest-hmac' 'perl-net-ip' 'perl>=5.10.0')
-source=(http://www.cpan.org/authors/id/O/OL/OLAF/${_realname}-$pkgver.tar.gz)
-options=(!emptydirs)
-
-build() {
- cd $srcdir/${_realname}-${pkgver}
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-package() {
- cd $srcdir/${_realname}-${pkgver}
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
-# vim: ts=2 sw=2 et ft=sh
-md5sums=('1635d876324e3c2f6e277d5778bfe94c')
diff --git a/testing/perl-net-ssleay/PKGBUILD b/testing/perl-net-ssleay/PKGBUILD
deleted file mode 100644
index 6620fbd6f..000000000
--- a/testing/perl-net-ssleay/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 125276 2011-05-25 19:20:00Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Manolis Tzanidakis
-
-pkgname=perl-net-ssleay
-_cpanname=Net-SSLeay
-pkgver=1.36
-pkgrel=5
-pkgdesc="Perl extension for using OpenSSL"
-arch=('i686' 'x86_64')
-license=('custom:BSD')
-url="http://search.cpan.org/dist/${_cpanname}/"
-depends=('perl' 'openssl')
-options=(!emptydirs)
-replaces=('net-ssleay')
-provides=('net-ssleay')
-source=(http://www.cpan.org/authors/id/F/FL/FLORA/${_cpanname}-${pkgver}.tar.gz)
-md5sums=('54061638720dd6a325395331c77f21d8')
-
-build() {
- cd ${srcdir}/${_cpanname}-${pkgver}
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL -- INSTALLDIRS=vendor
- make
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-
- install -D -m644 README ${pkgdir}/usr/share/licenses/${pkgname}/README
-}
-# vim: ts=2 sw=2 et ft=sh
diff --git a/testing/perl-net-upnp/PKGBUILD b/testing/perl-net-upnp/PKGBUILD
deleted file mode 100644
index e54c70917..000000000
--- a/testing/perl-net-upnp/PKGBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id: PKGBUILD 125279 2011-05-25 19:20:27Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Drew Gilbert <gilbert dot drew at gmail dot com>
-
-pkgname=perl-net-upnp
-pkgver=1.4.2
-pkgrel=3
-pkgdesc="Perl Module UPnP"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/~skonno/Net-UPnP-1.4.2/"
-license=('BSD' 'PerlArtistic')
-options=('!emptydirs')
-source=("http://search.cpan.org/CPAN/authors/id/S/SK/SKONNO/Net-UPnP-${pkgver}.tar.gz")
-depends=('perl')
-md5sums=('bc009fd76b565df40a70aca49af82a7d')
-
-build() {
- cd "${srcdir}/Net-UPnP-${pkgver}"
-
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make install DESTDIR="${pkgdir}"
-
- find ${pkgdir} -name '.packlist' -delete
- find ${pkgdir} -name '*.pod' -delete
-}
diff --git a/testing/perl-netaddr-ip/PKGBUILD b/testing/perl-netaddr-ip/PKGBUILD
deleted file mode 100644
index fa6549515..000000000
--- a/testing/perl-netaddr-ip/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# $Id: PKGBUILD 125270 2011-05-25 19:19:11Z foutrelis $
-# Maintainer: Dale Blount <dale@archlinux.org>
-# Contributor: Dale Blount <dale@archlinux.org>
-# Contributor: Francois Charette <francois.archlinux.org>
-
-pkgname=perl-netaddr-ip
-_realname=NetAddr-IP
-pkgver=4.037
-pkgrel=2
-pkgdesc="Perl module to manage IP addresses and subnets"
-arch=(i686 x86_64)
-license=('PerlArtistic' 'GPL')
-depends=('perl>=5.10.0')
-options=(!emptydirs)
-url="http://search.cpan.org/dist/${_realname}/"
-source=(http://search.cpan.org/CPAN/authors/id/M/MI/MIKER/${_realname}-${pkgver}.tar.gz)
-md5sums=('d966eac6b5941af3f7c1fad839569cb4')
-
-build() {
- cd ${srcdir}/${_realname}-${pkgver}
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_realname}-${pkgver}
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
diff --git a/testing/perl-sdl/PKGBUILD b/testing/perl-sdl/PKGBUILD
deleted file mode 100644
index 27ef6a6c2..000000000
--- a/testing/perl-sdl/PKGBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id: PKGBUILD 124823 2011-05-24 15:53:48Z heftig $
-# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
-
-pkgname=perl-sdl
-pkgver=2.531
-pkgrel=2
-pkgdesc="Simple DirectMedia Layer for Perl"
-arch=(i686 x86_64)
-license=(LGPL)
-url="http://sdl.perl.org"
-depends=(perl-alien-sdl perl-tie-simple
- sdl_{net,ttf,image,mixer,gfx,pango} mesa smpeg)
-#makedepends=(perl-yaml)
-options=('!emptydirs')
-replaces=(sdl_perl)
-conflicts=(sdl_perl)
-provides=("sdl_perl=$pkgver")
-source=(http://search.cpan.org/CPAN/authors/id/G/GA/GARU/SDL-$pkgver.tar.gz)
-md5sums=('ed39c87ae685d3a933705a2ea82a9e18')
-
-package() {
- cd "$srcdir/SDL-$pkgver"
-
- # install module in vendor directories
- perl Build.PL installdirs=vendor destdir="$pkgdir"
-
- perl Build
- perl Build install
-}
diff --git a/testing/perl-template-toolkit/PKGBUILD b/testing/perl-template-toolkit/PKGBUILD
deleted file mode 100644
index d955edfdd..000000000
--- a/testing/perl-template-toolkit/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Firmicus <francois.archlinux.org>
-# Contributor: Tom Killian <tomk@runbox.com>
-# Contributor: FJ <joostef@gmail.com>
-
-pkgname=perl-template-toolkit
-_realname=Template-Toolkit
-pkgver=2.22
-pkgrel=4
-pkgdesc="Perl template processing system"
-arch=(i686 x86_64)
-license=('PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl-appconfig' 'perl>=5.10.0')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/A/AB/ABW/${_realname}-$pkgver.tar.gz)
-md5sums=('d98277f6420e5da6b93d99a8db2b3934')
-
-build() {
- cd ${srcdir}/${_realname}-$pkgver
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-package() {
- cd ${srcdir}/${_realname}-$pkgver
- make install DESTDIR=${startdir}/pkg
-
- # remove perllocal.pod and .packlist
- find ${startdir}/pkg -name perllocal.pod -delete
- find ${startdir}/pkg -name .packlist -delete
-}
diff --git a/testing/perl-term-readkey/PKGBUILD b/testing/perl-term-readkey/PKGBUILD
deleted file mode 100644
index 25f9e397d..000000000
--- a/testing/perl-term-readkey/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 125285 2011-05-25 19:22:27Z foutrelis $
-# Maintainer: kevin <kevin@archlinux.org>
-# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
-# Contributor: Francois Charette <francois.archlinux.org>
-
-pkgname=perl-term-readkey
-_realname=TermReadKey
-pkgver=2.30.01
-pkgrel=4
-pkgdesc="Provides simple control over terminal driver modes"
-arch=('i686' 'x86_64')
-license=('custom')
-depends=('perl>=5.10.0' 'glibc')
-url="http://search.cpan.org/~stsi/${_realname}/"
-source=(http://search.cpan.org/CPAN/authors/id/S/ST/STSI/${_realname}-$pkgver.tar.gz)
-options=('!emptydirs')
-md5sums=('6c099eddb76ec9b92179f1ed929be71a')
-
-build()
-{
- cd ${srcdir}/TermReadKey-$pkgver
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/TermReadKey-$pkgver
- make DESTDIR=${pkgdir} install
- install -d ${pkgdir}/usr/share/licenses/$pkgname/
- head -7 README > ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
diff --git a/testing/perl-text-iconv/PKGBUILD b/testing/perl-text-iconv/PKGBUILD
deleted file mode 100644
index acd6932e2..000000000
--- a/testing/perl-text-iconv/PKGBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id: PKGBUILD 125288 2011-05-25 19:22:57Z foutrelis $
-# Maintainer:
-# Contributor: Francois Charette <firmicus@gmx.net>
-
-pkgname=perl-text-iconv
-_realname=Text-Iconv
-pkgver=1.7
-pkgrel=6
-pkgdesc="Interface to iconv codeset conversion"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/dist/${_realname}/"
-license=('GPL' 'PerlArtistic')
-depends=('perl>=5.10.0')
-options=('!emptydirs')
-source=(http://www.cpan.org/authors/id/M/MP/MPIOTR/${_realname}-${pkgver}.tar.gz)
-md5sums=('81b26e069eaebb084e91ea3c009b67ae')
-
-build() {
- cd ${srcdir}/${_realname}-${pkgver}
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_realname}-${pkgver}
- make DESTDIR=${pkgdir} install
-}
diff --git a/testing/perl-time-hires/PKGBUILD b/testing/perl-time-hires/PKGBUILD
deleted file mode 100644
index db9ddcb7f..000000000
--- a/testing/perl-time-hires/PKGBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id: PKGBUILD 125291 2011-05-25 19:23:52Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: mezcal <fila at pruda dot com>
-
-pkgname=perl-time-hires
-pkgver=1.9721
-pkgrel=4
-pkgdesc="Perl module: high resolution time, sleep, and alarm"
-arch=('i686' 'x86_64')
-license=('PerlArtistic')
-url="http://search.cpan.org/dist/Time-HiRes/"
-depends=('perl')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-${pkgver}.tar.gz)
-md5sums=('bf09911a36b9481537c8e0d28fbb3aaf')
-
-build() {
- cd "${srcdir}/Time-HiRes-${pkgver}"
-
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
- make install DESTDIR="${pkgdir}"
-}
diff --git a/testing/perl-tk/PKGBUILD b/testing/perl-tk/PKGBUILD
deleted file mode 100644
index 2a80a320e..000000000
--- a/testing/perl-tk/PKGBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# $Id: PKGBUILD 124660 2011-05-23 20:07:22Z remy $
-# Maintainer: François Charette <francois ατ archlinux δοτ org>
-# Contributor: Jason Chu <jchu@xentac.net>
-# Contributor: Juergen Hoetzel <juergen@archlinux.org>
-
-pkgname=perl-tk
-_cpanname=Tk
-pkgver=804.029
-pkgrel=3
-pkgdesc="A graphical user interface toolkit for Perl"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/dist/${_cpanname}"
-license=('PerlArtistic' 'GPL' 'custom')
-depends=('libx11' 'libpng' 'libjpeg' 'tk' 'perl')
-options=('!emptydirs')
-replaces=('perltk')
-provides=('perltk')
-source=(http://www.cpan.org/authors/id/S/SR/SREZIC/${_cpanname}-${pkgver}.tar.gz)
-md5sums=('f4aebe6fcdb309a8480514f2ccf8117c')
-
-build() {
- cd $srcdir/${_cpanname}-$pkgver
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- /bin/chmod -R u+w *
- # The Xlib header is wrong...
- sed -i 's/XKeycodeToKeysym\(.*\)unsigned int/XKeycodeToKeysym\1KeyCode/' pTk/Xlib.h
- make
-}
-
-#check() {
-# cd $srcdir/${_cpanname}-$pkgver
-# make test
-#}
-
-package() {
- cd $srcdir/${_cpanname}-$pkgver
- make install DESTDIR=$pkgdir
-
- # license
- install -D -m644 pTk/license.terms \
- ${startdir}/pkg/usr/share/licenses/${pkgname}/tk.license
- install -D -m644 pTk/Tix.license \
- ${startdir}/pkg/usr/share/licenses/${pkgname}/tix.license
-}
diff --git a/testing/perl-unicode-string/PKGBUILD b/testing/perl-unicode-string/PKGBUILD
deleted file mode 100644
index c8bcd6c7a..000000000
--- a/testing/perl-unicode-string/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 125294 2011-05-25 19:24:14Z foutrelis $
-# Maintainer: James Rayner <iphitus@gmail.com>
-# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
-
-pkgname=perl-unicode-string
-_realname=Unicode-String
-pkgver=2.09
-pkgrel=6
-pkgdesc="String of Unicode characters for perl (UCS2/UTF16)"
-arch=('i686' 'x86_64')
-license=('PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl>=5.10.0')
-options=(!emptydirs)
-source=(http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/${_realname}-${pkgver}.tar.gz)
-md5sums=('553e68e603723bf7c631f8701ab0d678')
-
-build() {
- cd ${srcdir}/${_realname}-${pkgver}
- # in stall module in vendor directories.
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_realname}-${pkgver}
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-}
diff --git a/testing/perl-xml-parser/PKGBUILD b/testing/perl-xml-parser/PKGBUILD
deleted file mode 100644
index 46ffa0923..000000000
--- a/testing/perl-xml-parser/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 124562 2011-05-22 23:45:41Z andrea $
-# Maintainer:
-# Contributor: firmicus <francois@archlinux.org>
-# Contributor: dorphell <dorphell@archlinux.org>
-# Contributor: herb <hrose@archlinux.org>
-
-pkgname=perl-xml-parser
-_realname=XML-Parser
-pkgver=2.40
-pkgrel=3
-pkgdesc="Expat-based XML parser module for perl"
-arch=('i686' 'x86_64')
-license=('GPL' 'PerlArtistic')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl' 'expat')
-replaces=('perlxml')
-provides=("perlxml=${pkgver}")
-options=('!emptydirs')
-source=("http://search.cpan.org/CPAN/authors/id/C/CH/CHORNY/${_realname}-${pkgver}.tar.gz")
-md5sums=('c66e9adba003d0667cc40115ccd837a5')
-
-build() {
- cd "${srcdir}/${_realname}-${pkgver}"
-
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd "${srcdir}/${_realname}-${pkgver}"
- make install DESTDIR="${pkgdir}"
-
- # remove perllocal.pod and .packlist.
- find "${pkgdir}" -name perllocal.pod -delete
- find "${pkgdir}" -name .packlist -delete
-}
diff --git a/testing/perl-yaml-syck/PKGBUILD b/testing/perl-yaml-syck/PKGBUILD
deleted file mode 100644
index c2ab5a4f8..000000000
--- a/testing/perl-yaml-syck/PKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# $Id: PKGBUILD 125297 2011-05-25 19:24:39Z foutrelis $
-# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
-# Maintainer: kevin <kevin@archlinux.org>
-
-pkgname=perl-yaml-syck
-_realname=YAML-Syck
-pkgver=1.17
-pkgrel=2
-pkgdesc="Fast, lightweight YAML loader and dumper"
-arch=('i686' 'x86_64')
-license=('custom')
-url="http://search.cpan.org/dist/${_realname}/"
-depends=('perl>=5.10.0')
-options=('!emptydirs')
-source=(http://www.cpan.org/authors/id/A/AV/AVAR/${_realname}-$pkgver.tar.gz)
-md5sums=('f788529ad4b2c2fd037ccdfd5e7a88ab')
-
-build() {
- cd ${srcdir}/${_realname}-$pkgver
-
- # install module in vendor directories.
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${_realname}-$pkgver
- make install DESTDIR=${pkgdir}
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-
- # license.
- install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
-}
diff --git a/testing/perl/ChangeLog b/testing/perl/ChangeLog
deleted file mode 100644
index f6c2500df..000000000
--- a/testing/perl/ChangeLog
+++ /dev/null
@@ -1,57 +0,0 @@
-2011-05-16 Angel Velasquez <angvp@archlinux.org>
- * perl 5.14.0
- * Removed patch for h2ph warning from 5.12.3
- * Removed provides array, you can use corelist -v 5.14.0 to know the
- modules included with the perl core, through Module::CoreList (thx j3nnn1
- for the tip)
-
-2010-11-07 kevin <kevin@archlinux.org>
-
- * perl 5.12.2-1
- - Using /usr/bin/*_perl for script directories
-
-2010-11-06 kevin <kevin@archlinux.org>
-
- - Removed otherlibdirs directive from Configure
- - Removed /usr/*/perl5/site_perl/5.10.1 from INC
- - Finally removed legacy dirs /usr/lib/perl5/current and
- /usr/lib/perl5/site_perl/current from @INC
-
-2010-05-23 kevin <kevin@archlinux.org>
-
- * perl 5.12.1-2
- - Francois updated the provides array.
-
-2010-05-23 kevin <kevin@archlinux.org>
-
- * perl 5.12.1-1
-
-2010-05-16 kevin <kevin@archlinux.org>
-
- * perl 5.12.0-2
-
-2010-05-12 kevin <kevin@archlinux.org>
-
- - FS#19411. Removed the for loop in perlbin.sh which didn't work on zsh.
- This makes the loop variables unnecessary so the script no longer
- pollutes the user's environment.
- - FS#19427. Added /usr/*/perl5/site_perl/5.10.1 to otherlibdirs to support
- user built modules.
-
-2010-05-09 kevin <kevin@archlinux.org>
-
- * perl 5.12.0-1
- - Modified perlbin.sh to only add existing dirs to PATH. Fixes FS#17402,
- path points to non-existant directories
-
-2010-05-07 kevin <kevin@archlinux.org>
-
- - Added this changelog.
- - Added -Dinc_version_list=none to fix FS#19136, double entry in @INC.
- This removes the duplicates and versioned directory entries.
- - Change scriptdirs to /usr/lib/perl5/{core,vendor,site}_perl/bin to fix
- Fix FS#13808, binaries don't follow FHS.
- - Stopped using versioned directories in sitelib and sitearch.
-
-
-# vim: set ft=changelog ts=4 sw=4 et:
diff --git a/testing/perl/PKGBUILD b/testing/perl/PKGBUILD
deleted file mode 100644
index aabf4dbc0..000000000
--- a/testing/perl/PKGBUILD
+++ /dev/null
@@ -1,91 +0,0 @@
-# $Id: PKGBUILD 124529 2011-05-22 19:14:50Z angvp $
-# Maintainer: Angel Velasquez <angvp@archlinux.org>
-# Contributor: kevin <kevin.archlinux.org>
-# Contributor: judd <jvinet.zeroflux.org>
-# Contributor: francois <francois.archlinux.org>
-pkgname=perl
-pkgver=5.14.0
-pkgrel=1
-pkgdesc="A highly capable, feature-rich programming language"
-arch=(i686 x86_64)
-license=('GPL' 'PerlArtistic')
-url="http://www.perl.org"
-groups=('base')
-depends=('gdbm' 'db>=4.8' 'coreutils' 'glibc' 'sh')
-changelog=ChangeLog
-source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2 perlbin.sh)
-install=perl.install
-options=('!makeflags' '!purge')
-md5sums=('e7457deea78330c5f8eebb2fd2a45479'
- 'f86eb0dba1638ca6d1c8fff1b06c2a71')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
-
- if [ "${CARCH}" = "x86_64" ]; then
- # for x86_64
- arch_opts="-Dcccdlflags='-fPIC'"
- else
- # for i686
- arch_opts=""
- fi
- ./Configure -des -Dusethreads -Duseshrplib -Doptimize="${CFLAGS}" \
- -Dprefix=/usr -Dinstallprefix=${pkgdir}/usr -Dvendorprefix=/usr \
- -Dprivlib=/usr/share/perl5/core_perl \
- -Darchlib=/usr/lib/perl5/core_perl \
- -Dsitelib=/usr/share/perl5/site_perl \
- -Dsitearch=/usr/lib/perl5/site_perl \
- -Dvendorlib=/usr/share/perl5/vendor_perl \
- -Dvendorarch=/usr/lib/perl5/vendor_perl \
- -Dscriptdir=/usr/bin/core_perl \
- -Dsitescript=/usr/bin/site_perl \
- -Dvendorscript=/usr/bin/vendor_perl \
- -Dinc_version_list=none \
- -Dman1ext=1perl -Dman3ext=3perl ${arch_opts}
- make
-}
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make install
-
- ### Perl Settings ###
- # Change man page extensions for site and vendor module builds.
- # Use archlinux email address instead of my own.
- sed -e '/^man1ext=/ s/1perl/1p/' -e '/^man3ext=/ s/3perl/3pm/' \
- -e "/^cf_email=/ s/'.*'/'kevin@archlinux.org'/" \
- -e "/^perladmin=/ s/'.*'/'kevin@archlinux.org'/" \
- -i ${pkgdir}/usr/lib/perl5/core_perl/Config_heavy.pl
-
- ### CPAN Settings ###
- # Set CPAN default config to use the site directories.
- sed -e '/(makepl_arg =>/ s/""/"INSTALLDIRS=site"/' \
- -e '/(mbuildpl_arg =>/ s/""/"installdirs=site"/' \
- -i ${pkgdir}/usr/share/perl5/core_perl/CPAN/FirstTime.pm
-
- ### CPANPLUS Settings ###
- # Set CPANPLUS default config to use the site directories.
- sed -e "/{'makemakerflags'}/ s/'';/'INSTALLDIRS=site';/" \
- -e "/{'buildflags'}/ s/'';/'installdirs=site';/" \
- -i ${pkgdir}/usr/share/perl5/core_perl/CPANPLUS/Config.pm
-
- # Profile script so set paths to perl scripts.
- install -D -m755 ${srcdir}/perlbin.sh \
- ${pkgdir}/etc/profile.d/perlbin.sh
-
- (cd ${pkgdir}/usr/bin; mv perl${pkgver} perl)
- (cd ${pkgdir}/usr/bin/core_perl; ln -sf c2ph pstruct; ln -sf s2p psed)
- grep -Rl "${pkgdir}" ${pkgdir}/usr | \
- xargs sed -i "s^${pkgdir}^^g"
-
- # Remove all pod files *except* those under /usr/share/perl5/core_perl/pod/
- # (FS#16488)
- rm -f $pkgdir/usr/share/perl5/core_perl/*.pod
- for d in $pkgdir/usr/share/perl5/core_perl/*; do
- if [ -d $d -a $(basename $d) != "pod" ]; then
- find $d -name *.pod -delete
- fi
- done
- find $pkgdir/usr/lib -name *.pod -delete
- find $pkgdir -name .packlist -delete
-}
-
diff --git a/testing/perl/fix-h2ph-and-tests.patch b/testing/perl/fix-h2ph-and-tests.patch
deleted file mode 100644
index a2d176ec6..000000000
--- a/testing/perl/fix-h2ph-and-tests.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 8d66b3f930dc6d88b524d103e304308ae73a46e7 Mon Sep 17 00:00:00 2001
-From: Robin Barker <rmbarker@cpan.org>
-Date: Thu, 22 Apr 2010 11:51:20 +0100
-Subject: [PATCH 1/1] Fix h2ph and test
-
----
- lib/h2ph.t | 12 ++++++++++--
- utils/h2ph.PL | 28 +++++++++++++++++++++++-----
- 2 files changed, 33 insertions(+), 7 deletions(-)
-
-diff --git a/lib/h2ph.t b/lib/h2ph.t
-index 27dd7b9..8d62d46 100644
---- a/lib/h2ph.t
-+++ b/lib/h2ph.t
-@@ -18,7 +18,7 @@ if (!(-e $extracted_program)) {
- exit 0;
- }
-
--plan(4);
-+plan(5);
-
- # quickly compare two text files
- sub txt_compare {
-@@ -41,8 +41,16 @@ $result = runperl( progfile => 'lib/h2ph.pht',
- stderr => 1 );
- like( $result, qr/syntax OK$/, "output compiles");
-
-+$result = runperl( progfile => '_h2ph_pre.ph',
-+ switches => ['-c'],
-+ stderr => 1 );
-+like( $result, qr/syntax OK$/, "preamble compiles");
-+
- $result = runperl( switches => ["-w"],
-- prog => '$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);');
-+ stderr => 1,
-+ prog => <<'PROG' );
-+$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);
-+PROG
- is( $result, '', "output free of warnings" );
-
- # cleanup
-diff --git a/utils/h2ph.PL b/utils/h2ph.PL
-index 8f56db4..1255807 100644
---- a/utils/h2ph.PL
-+++ b/utils/h2ph.PL
-@@ -401,7 +401,10 @@ if ($opt_e && (scalar(keys %bad_file) > 0)) {
- exit $Exit;
-
- sub expr {
-- $new = '"(assembly code)"' and return if /\b__asm__\b/; # freak out.
-+ if (/\b__asm__\b/) { # freak out
-+ $new = '"(assembly code)"';
-+ return
-+ }
- my $joined_args;
- if(keys(%curargs)) {
- $joined_args = join('|', keys(%curargs));
-@@ -770,7 +773,7 @@ sub inc_dirs
- sub build_preamble_if_necessary
- {
- # Increment $VERSION every time this function is modified:
-- my $VERSION = 2;
-+ my $VERSION = 3;
- my $preamble = "$Dest_dir/_h2ph_pre.ph";
-
- # Can we skip building the preamble file?
-@@ -798,7 +801,16 @@ sub build_preamble_if_necessary
- # parenthesized value: d=(v)
- $define{$_} = $1;
- }
-- if ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
-+ if (/^(\w+)\((\w)\)$/) {
-+ my($macro, $arg) = ($1, $2);
-+ my $def = $define{$_};
-+ $def =~ s/$arg/\$\{$arg\}/g;
-+ print PREAMBLE <<DEFINE;
-+unless (defined &$macro) { sub $macro(\$) { my (\$$arg) = \@_; \"$def\" } }
-+
-+DEFINE
-+ } elsif
-+ ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
- # float:
- print PREAMBLE
- "unless (defined &$_) { sub $_() { $1 } }\n\n";
-@@ -807,8 +819,14 @@ sub build_preamble_if_necessary
- print PREAMBLE
- "unless (defined &$_) { sub $_() { $1 } }\n\n";
- } elsif ($define{$_} =~ /^\w+$/) {
-- print PREAMBLE
-- "unless (defined &$_) { sub $_() { &$define{$_} } }\n\n";
-+ my $def = $define{$_};
-+ if ($isatype{$def}) {
-+ print PREAMBLE
-+ "unless (defined &$_) { sub $_() { \"$def\" } }\n\n";
-+ } else {
-+ print PREAMBLE
-+ "unless (defined &$_) { sub $_() { &$def } }\n\n";
-+ }
- } else {
- print PREAMBLE
- "unless (defined &$_) { sub $_() { \"",
---
-1.6.5.2.74.g610f9.dirty
-
diff --git a/testing/perl/perl.install b/testing/perl/perl.install
deleted file mode 100644
index 3f7d58f23..000000000
--- a/testing/perl/perl.install
+++ /dev/null
@@ -1,18 +0,0 @@
-# arg 1: the new package version
-post_install() {
- for ver in 5.8.{0,1,2,3,4,5,6,7,8}; do
- [ -h usr/lib/perl5/$ver ] && rm usr/lib/perl5/$ver
- [ -h usr/lib/perl5/site_perl/$ver ] && rm usr/lib/perl5/site_perl/$ver
- [ -h usr/bin/perl$ver ] && rm usr/bin/perl$ver
- done
- return 0
-}
-
-post_upgrade() {
- echo '- The directories /usr/lib/perl5/current, /usr/lib/perl5/site_perl/current,'
- echo ' /usr/lib/perl5/site_perl/5.10.1, and /usr/share/perl5/site_perl/5.10.1'
- echo ' have been removed from @INC.'
-
- echo '- The script/binary directories are now /usr/bin/*_perl instead of'
- echo ' /usr/lib/perl5/*_perl/bin which will be eventually removed.'
-}
diff --git a/testing/perl/perlbin.sh b/testing/perl/perlbin.sh
deleted file mode 100755
index 09811a8b4..000000000
--- a/testing/perl/perlbin.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-# Set path to perl scriptdirs if they exist
-# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
-# Added /usr/bin/*_perl dirs for scripts
-# Remove /usr/lib/perl5/*_perl/bin in next release
-
-[ -d /usr/bin/site_perl ] &&
- PATH=$PATH:/usr/bin/site_perl
-[ -d /usr/lib/perl5/site_perl/bin ] &&
- PATH=$PATH:/usr/lib/perl5/site_perl/bin
-
-[ -d /usr/bin/vendor_perl ] &&
- PATH=$PATH:/usr/bin/vendor_perl
-[ -d /usr/lib/perl5/vendor_perl/bin ] &&
- PATH=$PATH:/usr/lib/perl5/vendor_perl/bin
-
-[ -d /usr/bin/core_perl ] &&
- PATH=$PATH:/usr/bin/core_perl
-
-export PATH
-
-# If you have modules in non-standard directories you can add them here.
-#export PERLLIB=dir1:dir2
-
diff --git a/testing/pidgin/PKGBUILD b/testing/pidgin/PKGBUILD
deleted file mode 100644
index 3ed646b74..000000000
--- a/testing/pidgin/PKGBUILD
+++ /dev/null
@@ -1,114 +0,0 @@
-# $Id: PKGBUILD 124935 2011-05-25 09:46:33Z foutrelis $
-# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
-# Contributor: Ionut Biru <ibiru@archlinux.org>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Alexander Fehr <pizzapunk gmail com>
-# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
-
-pkgname=('pidgin' 'libpurple' 'finch')
-pkgver=2.7.11
-pkgrel=6
-arch=('i686' 'x86_64')
-url="http://pidgin.im/"
-license=('GPL')
-makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
- 'python2' 'hicolor-icon-theme' 'silc-toolkit' 'gstreamer0.10'
- 'farsight2' 'avahi' 'tk' 'ca-certificates' 'intltool'
- 'networkmanager')
-options=('!libtool')
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
- nm09-pidgin.patch
- nm09-more.patch)
-md5sums=('07c2a2535b4d7436b5ec7685fe063fec'
- '744a21b4dbaf949dba7cd3b75b12b4fe'
- 'a673659d86c7a65aa710f7c8c7feda82')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- # Update for NetworkManager 0.9 connection states
- # (http://developer.pidgin.im/ticket/13505)
- # (http://developer.pidgin.im/ticket/13859)
- patch -Np1 -i "$srcdir/nm09-pidgin.patch"
- patch -Np1 -i "$srcdir/nm09-more.patch"
-
- # Use Python 2
- sed -i 's/env python$/\02/' */plugins/*.py \
- libpurple/purple-{remote,notifications-example,url-handler}
-
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --disable-schemas-install \
- --disable-meanwhile \
- --disable-gnutls \
- --enable-cyrus-sasl \
- --disable-doxygen \
- --enable-nm \
- --with-python=/usr/bin/python2 \
- --with-system-ssl-certs=/etc/ssl/certs
- make
-}
-
-package_pidgin(){
- pkgdesc="Multi-protocol instant messaging client"
- depends=("libpurple=$pkgver-$pkgrel" 'startup-notification' 'gtkspell'
- 'libxss' 'libsm' 'gstreamer0.10' 'hicolor-icon-theme')
- optdepends=('aspell: for spelling correction'
- 'ca-certificates: SSL CA certificates'
- 'gstreamer0.10-good-plugins: video and voice support'
- 'tk: Tcl/Tk scripting support')
- install=pidgin.install
-
- cd "$srcdir/pidgin-$pkgver"
-
- # For linking
- make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
-
- make -C pidgin DESTDIR="$pkgdir" install
- make -C doc DESTDIR="$pkgdir" install
-
- # Remove files that are packaged in libpurle
- make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
-
- install -Dm644 pidgin.desktop "$pkgdir"/usr/share/applications/pidgin.desktop
-
- rm "$pkgdir/usr/share/man/man1/finch.1"
-}
-
-package_libpurple(){
- pkgdesc="IM library extracted from Pidgin"
- depends=('farsight2' 'libsasl' 'dbus-glib' 'silc-toolkit' 'nss'
- 'cyrus-sasl-plugins')
- optdepends=('avahi: Bonjour protocol support'
- 'dbus-python: for purple-remote and purple-url-handler')
-
- cd "$srcdir/pidgin-$pkgver"
-
- for _dir in libpurple share/sounds share/ca-certs m4macros po; do
- make -C "$_dir" DESTDIR="$pkgdir" install
- done
-}
-
-package_finch(){
- pkgdesc="A ncurses-based messaging client"
- depends=("libpurple=$pkgver-$pkgrel" 'python2' 'gstreamer0.10')
- optdepends=('avahi: Bonjour protocol support'
- 'ca-certificates: SSL CA certificates'
- 'tk: Tcl/Tk scripting support')
-
- cd "$srcdir/pidgin-$pkgver"
-
- # For linking
- make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
-
- make -C finch DESTDIR="$pkgdir" install
- make -C doc DESTDIR="$pkgdir" install
-
- # Remove files that are packaged in libpurle
- make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
-
- rm "$pkgdir"/usr/share/man/man1/pidgin.1
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/testing/pidgin/nm09-more.patch b/testing/pidgin/nm09-more.patch
deleted file mode 100644
index 8c708df9a..000000000
--- a/testing/pidgin/nm09-more.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up pidgin-2.7.11/libpurple/network.c.nm09more pidgin-2.7.11/libpurple/network.c
---- pidgin-2.7.11/libpurple/network.c.nm09more 2011-04-26 12:01:27.700085246 -0500
-+++ pidgin-2.7.11/libpurple/network.c 2011-05-24 13:13:28.185165657 -0500
-@@ -833,8 +833,20 @@ purple_network_is_available(void)
- purple_debug_warning("network", "NetworkManager not active. Assuming connection exists.\n");
- }
-
-- if (nm_state == NM_STATE_UNKNOWN || nm_state == NM_STATE_CONNECTED)
-- return TRUE;
-+ switch (nm_state)
-+ {
-+ case NM_STATE_UNKNOWN:
-+#if NM_CHECK_VERSION(0,8,992)
-+ case NM_STATE_CONNECTED_LOCAL:
-+ case NM_STATE_CONNECTED_SITE:
-+ case NM_STATE_CONNECTED_GLOBAL:
-+#else
-+ case NM_STATE_CONNECTED:
-+#endif
-+ return TRUE;
-+ default:
-+ break;
-+ }
-
- return FALSE;
-
-@@ -1170,9 +1182,14 @@ purple_network_init(void)
- NM_DBUS_SERVICE,
- NM_DBUS_PATH,
- NM_DBUS_INTERFACE);
-+ /* NM 0.6 signal */
- dbus_g_proxy_add_signal(nm_proxy, "StateChange", G_TYPE_UINT, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(nm_proxy, "StateChange",
- G_CALLBACK(nm_state_change_cb), NULL, NULL);
-+ /* NM 0.7 and later signal */
-+ dbus_g_proxy_add_signal(nm_proxy, "StateChanged", G_TYPE_UINT, G_TYPE_INVALID);
-+ dbus_g_proxy_connect_signal(nm_proxy, "StateChanged",
-+ G_CALLBACK(nm_state_change_cb), NULL, NULL);
-
- dbus_proxy = dbus_g_proxy_new_for_name(nm_conn,
- DBUS_SERVICE_DBUS,
-@@ -1207,6 +1224,7 @@ purple_network_uninit(void)
- #ifdef HAVE_NETWORKMANAGER
- if (nm_proxy) {
- dbus_g_proxy_disconnect_signal(nm_proxy, "StateChange", G_CALLBACK(nm_state_change_cb), NULL);
-+ dbus_g_proxy_disconnect_signal(nm_proxy, "StateChanged", G_CALLBACK(nm_state_change_cb), NULL);
- g_object_unref(G_OBJECT(nm_proxy));
- }
- if (dbus_proxy) {
diff --git a/testing/pidgin/nm09-pidgin.patch b/testing/pidgin/nm09-pidgin.patch
deleted file mode 100644
index 1c2471d1f..000000000
--- a/testing/pidgin/nm09-pidgin.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -up pidgin-2.7.10/libpurple/network.c.foo pidgin-2.7.10/libpurple/network.c
---- pidgin-2.7.10/libpurple/network.c.foo 2011-03-10 02:21:43.920933267 -0600
-+++ pidgin-2.7.10/libpurple/network.c 2011-03-10 02:23:11.466838793 -0600
-@@ -71,6 +71,10 @@
- #include <dbus/dbus-glib.h>
- #include <NetworkManager.h>
-
-+#if !defined(NM_CHECK_VERSION)
-+#define NM_CHECK_VERSION(x,y,z) 0
-+#endif
-+
- static DBusGConnection *nm_conn = NULL;
- static DBusGProxy *nm_proxy = NULL;
- static DBusGProxy *dbus_proxy = NULL;
-@@ -863,7 +867,13 @@ nm_update_state(NMState state)
-
- switch(state)
- {
-+#if NM_CHECK_VERSION(0,8,992)
-+ case NM_STATE_CONNECTED_LOCAL:
-+ case NM_STATE_CONNECTED_SITE:
-+ case NM_STATE_CONNECTED_GLOBAL:
-+#else
- case NM_STATE_CONNECTED:
-+#endif
- /* Call res_init in case DNS servers have changed */
- res_init();
- /* update STUN IP in case we it changed (theoretically we could
-@@ -880,6 +890,9 @@ nm_update_state(NMState state)
- case NM_STATE_ASLEEP:
- case NM_STATE_CONNECTING:
- case NM_STATE_DISCONNECTED:
-+#if NM_CHECK_VERSION(0,8,992)
-+ case NM_STATE_DISCONNECTING:
-+#endif
- if (prev != NM_STATE_CONNECTED && prev != NM_STATE_UNKNOWN)
- break;
- if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
diff --git a/testing/pidgin/pidgin.install b/testing/pidgin/pidgin.install
deleted file mode 100644
index 1a05f573e..000000000
--- a/testing/pidgin/pidgin.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
diff --git a/testing/postgresql/PKGBUILD b/testing/postgresql/PKGBUILD
deleted file mode 100644
index d5a887585..000000000
--- a/testing/postgresql/PKGBUILD
+++ /dev/null
@@ -1,141 +0,0 @@
-# $Id: PKGBUILD 125329 2011-05-25 22:33:15Z dan $
-# Maintainer: Dan McGee <dan@archlinux.org>
-
-pkgbase=postgresql
-pkgname=('postgresql-libs' 'postgresql-docs' 'postgresql')
-pkgver=9.0.4
-pkgrel=4
-arch=('i686' 'x86_64')
-url="http://www.postgresql.org"
-license=('custom:PostgreSQL')
-makedepends=('libxml2' 'python2' 'perl')
-source=(ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2 \
- postgresql postgresql.confd build.patch postgresql.pam postgresql.logrotate
- perl-5.14-fix.patch)
-install=postgresql.install
-
-build() {
- cd "${srcdir}/${pkgbase}-${pkgver}"
-
- # patch to remove regress/test make target (won't build with it present)
- patch -Np1 -i ../build.patch
- # fix for perl 5.14
- patch -Np1 -i ../perl-5.14-fix.patch
-
- # configure
- ./configure --prefix=/usr --mandir=/usr/share/man --with-libxml \
- --with-openssl --with-perl \
- --with-python PYTHON=/usr/bin/python2 --with-pam \
- --with-system-tzdata=/usr/share/zoneinfo --enable-nls \
- --datadir=/usr/share/postgresql --enable-thread-safety
-
- sed -i -e '/interfaces/d' src/Makefile
-
- # build
- make world
-
- # build libs
- for dir in src/interfaces src/bin/pg_config; do
- pushd ${dir}
- make
- popd
- done
-}
-
-package_postgresql-libs() {
- pkgdesc="Libraries for use with PostgreSQL"
- depends=('openssl>=1.0.0')
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
-
- # install license
- install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-libs/LICENSE"
-
- # install libs
- for dir in src/interfaces src/bin/pg_config; do
- pushd ${dir}
- make DESTDIR="${pkgdir}" install
- popd
- done
-
- install -D -m644 doc/src/sgml/man1/pg_config.1 "${pkgdir}/usr/share/man/man1/pg_config.1"
-
- cd src/include
-
- mkdir -p "${pkgdir}"/usr/include/{libpq,postgresql/internal/libpq}
-
- # these headers are needed by the public headers of the interfaces
- install -m644 pg_config.h "${pkgdir}/usr/include/"
- install -m644 pg_config_os.h "${pkgdir}/usr/include/"
- install -m644 postgres_ext.h "${pkgdir}/usr/include/"
- install -m644 libpq/libpq-fs.h "${pkgdir}/usr/include/libpq/"
- install -m644 pg_config_manual.h "${pkgdir}/usr/include/"
-
- # these headers are needed by the not-so-public headers of the interfaces
- install -m644 c.h "${pkgdir}/usr/include/postgresql/internal/"
- install -m644 port.h "${pkgdir}/usr/include/postgresql/internal/"
- install -m644 postgres_fe.h "${pkgdir}/usr/include/postgresql/internal/"
- install -m644 libpq/pqcomm.h "${pkgdir}/usr/include/postgresql/internal/libpq/"
-}
-
-package_postgresql-docs() {
- pkgdesc="HTML documentation for PostgreSQL"
- options=(docs)
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
-
- # install license
- install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-docs/LICENSE"
-
- make -C doc/src/sgml DESTDIR="${pkgdir}" install-html
- chown -R root:root "${pkgdir}/usr/share/doc/postgresql/html/"
-}
-
-package_postgresql() {
- pkgdesc="A sophisticated object-relational DBMS"
- backup=('etc/conf.d/postgresql' 'etc/pam.d/postgresql' 'etc/logrotate.d/postgresql')
- depends=("postgresql-libs>=${pkgver}" 'libxml2' 'readline>=6.0')
- optdepends=('python2: for PL/Python support'
- 'perl: for PL/Perl support')
- provides=('postgresql-client')
- conflicts=('postgresql-client')
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
-
- # install
- make DESTDIR="${pkgdir}" install
- make -C contrib DESTDIR="${pkgdir}" install
- make -C doc/src/sgml DESTDIR="${pkgdir}" install-man
- # we don't want this, it is in the -libs package
- make -C src/bin/pg_config DESTDIR="${pkgdir}" uninstall
- rm "${pkgdir}/usr/share/man/man1/pg_config.1"
-
- # install license
- install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE"
-
- # clean up unneeded installed items
- rm -rf "${pkgdir}/usr/include/postgresql/internal"
- rm -rf "${pkgdir}/usr/include/libpq"
- find "${pkgdir}/usr/include" -maxdepth 1 -type f -execdir rm {} +
-
- # install launch script
- install -D -m755 "${srcdir}/postgresql" "${pkgdir}/etc/rc.d/postgresql"
-
- # install conf file
- install -D -m644 ${srcdir}/postgresql.confd \
- "${pkgdir}/etc/conf.d/postgresql"
-
- install -D -m644 ${srcdir}/postgresql.pam \
- "${pkgdir}/etc/pam.d/postgresql"
-
- install -D -m644 ${srcdir}/postgresql.logrotate \
- "${pkgdir}/etc/logrotate.d/postgresql"
-}
-
-md5sums=('80390514d568a7af5ab61db1cda27e29'
- 'eacf91f987d230f2dc2d040618ea1817'
- 'd63a05943cf0a2726aa2070f3033c569'
- '4d74f4227dc5e12bf95b3490758d86c9'
- '96f82c38f3f540b53f3e5144900acf17'
- 'd28e443f9f65a5712c52018b84e27137'
- '6606e4279d91fc617b5c4dae0d76c603')
diff --git a/testing/postgresql/build.patch b/testing/postgresql/build.patch
deleted file mode 100644
index c8f665d12..000000000
--- a/testing/postgresql/build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur postgresql-8.2.3-orig/src/Makefile postgresql-8.2.3/src/Makefile
---- postgresql-8.2.3-orig/src/Makefile 2006-06-22 16:50:35.000000000 -0700
-+++ postgresql-8.2.3/src/Makefile 2007-03-05 10:46:24.000000000 -0800
-@@ -23,7 +23,6 @@
- $(MAKE) -C bin $@
- $(MAKE) -C pl $@
- $(MAKE) -C makefiles $@
-- $(MAKE) -C test/regress $@
-
- install: install-local
-
diff --git a/testing/postgresql/perl-5.14-fix.patch b/testing/postgresql/perl-5.14-fix.patch
deleted file mode 100644
index 82ef7d688..000000000
--- a/testing/postgresql/perl-5.14-fix.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/src/pl/plperl/plperl.c
-+++ b/src/pl/plperl/plperl.c
-@@ -926,7 +926,7 @@ plperl_trusted_init(void)
- if (!isGV_with_GP(sv) || !GvCV(sv))
- continue;
- SvREFCNT_dec(GvCV(sv)); /* free the CV */
-- GvCV(sv) = NULL; /* prevent call via GV */
-+ GvCV_set(sv, NULL); /* prevent call via GV */
- }
- hv_clear(stash);
-
---- a/src/pl/plperl/plperl.h
-+++ b/src/pl/plperl/plperl.h
-@@ -49,6 +49,11 @@
- (U32)HeKUTF8(he))
- #endif
-
-+/* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */
-+#ifndef GvCV_set
-+#define GvCV_set(gv, cv) (GvCV(gv) = cv)
-+#endif
-+
- /* declare routines from plperl.c for access by .xs files */
- HV *plperl_spi_exec(char *, int);
- void plperl_return_next(SV *);
diff --git a/testing/postgresql/postgresql b/testing/postgresql/postgresql
deleted file mode 100755
index 0fbe94036..000000000
--- a/testing/postgresql/postgresql
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/postgresql
-
-# Default PGROOT if it wasn't defined in the conf.d file
-PGROOT=${PGROOT:-/var/lib/postgres}
-PG_CTL="/usr/bin/pg_ctl -D $PGROOT/data -l /var/log/postgresql.log -s -w"
-
-postgres_init() {
- # initialization
- if [ ! -d $PGROOT/data ]; then
- mkdir -p $PGROOT/data && chown -R postgres:postgres $PGROOT
- su - postgres -c "/usr/bin/initdb $INITOPTS -D $PGROOT/data"
- fi
- if [ ! -e /var/log/postgresql.log ]; then
- touch /var/log/postgresql.log
- chown postgres /var/log/postgresql.log
- fi
-}
-
-case "$1" in
- start)
- postgres_init
- stat_busy "Starting PostgreSQL"
- su - postgres -c \
- "$PG_CTL start"
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- add_daemon postgresql
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping PostgreSQL"
- su - postgres -c \
- "$PG_CTL stop -m fast"
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon postgresql
- stat_done
- fi
- ;;
- reload)
- stat_busy "Reloading PostgreSQL"
- su - postgres -c \
- "$PG_CTL reload"
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- stat_done
- fi
- ;;
- restart)
- postgres_init
- stat_busy "Restarting PostgreSQL"
- su - postgres -c \
- "$PG_CTL restart -m fast"
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- add_daemon postgresql
- stat_done
- fi
- ;;
- status)
- stat_busy "Checking PostgreSQL status";
- ck_status postgresql
- ;;
- *)
- echo "usage: $0 {start|stop|reload|restart|status}"
-esac
-exit 0
diff --git a/testing/postgresql/postgresql.confd b/testing/postgresql/postgresql.confd
deleted file mode 100644
index 5f8fa034c..000000000
--- a/testing/postgresql/postgresql.confd
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Parameters to be passed to postgresql
-#
-PGROOT="/var/lib/postgres"
-INITOPTS="--locale $LANG"
diff --git a/testing/postgresql/postgresql.install b/testing/postgresql/postgresql.install
deleted file mode 100644
index d65bb6a7f..000000000
--- a/testing/postgresql/postgresql.install
+++ /dev/null
@@ -1,22 +0,0 @@
-post_install() {
- if [ ! -d '/var/lib/postgres' ]; then
- mkdir -p '/var/lib/postgres'
- fi
- getent group postgres >/dev/null || groupadd -g 88 postgres
- getent passwd postgres >/dev/null || useradd -c 'PostgreSQL user' -u 88 -g postgres -d '/var/lib/postgres' -s /bin/bash postgres
- passwd -l postgres >/dev/null
-}
-
-post_upgrade() {
- post_install $1
- # FS#23858, fix postgres user shell issue
- postgres_shell=$(getent passwd postgres | cut -d: -f7)
- if [ "$postgres_shell" = "/sbin/nologin" ]; then
- chsh -s /bin/bash postgres
- fi
-}
-
-post_remove() {
- getent passwd postgres >/dev/null && userdel postgres
- getent group postgres >/dev/null && groupdel postgres
-}
diff --git a/testing/postgresql/postgresql.logrotate b/testing/postgresql/postgresql.logrotate
deleted file mode 100644
index 9c36918be..000000000
--- a/testing/postgresql/postgresql.logrotate
+++ /dev/null
@@ -1,4 +0,0 @@
-/var/log/postgresql.log {
- copytruncate
- missingok
-}
diff --git a/testing/postgresql/postgresql.pam b/testing/postgresql/postgresql.pam
deleted file mode 100644
index 53724d1f8..000000000
--- a/testing/postgresql/postgresql.pam
+++ /dev/null
@@ -1,3 +0,0 @@
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
diff --git a/testing/razor/PKGBUILD b/testing/razor/PKGBUILD
deleted file mode 100644
index 87905b577..000000000
--- a/testing/razor/PKGBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id: PKGBUILD 124559 2011-05-22 23:44:08Z andrea $
-# Maintainer:
-# Contributor: Dale Blount <dale@archlinux.org>
-# Contributor: Manolis Tzanidakis
-
-pkgname=razor
-pkgver=2.84
-pkgrel=5
-pkgdesc="A distributed, collaborative, spam detection and filtering network"
-arch=('i686' 'x86_64')
-url="http://razor.sourceforge.net"
-license=('PerlArtistic')
-depends=('perl-net-dns' 'perl-digest-sha1' 'perl-uri' 'perl-digest-nilsimsa' 'perl>=5.14.0')
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-agents-${pkgver}.tar.bz2)
-md5sums=('8b9a11a6ce020383c32c45d1530d77c2')
-options=(!emptydirs)
-
-build() {
- cd "${srcdir}"/${pkgname}-agents-${pkgver}
-
- # skip install_razor_agents (we'll do the linking later)
- # /bin/sed -i "s|install :: all pure_install doc_install install_razor_agents|install :: all pure_install doc_install|g" Makefile
-
- perl Makefile.PL INSTALLDIRS=vendor
- make
- make test
-}
-
-package() {
- cd ${srcdir}/${pkgname}-agents-${pkgver}
- make DESTDIR=${pkgdir} install
-
- # remove perllocal.pod and .packlist
- find ${pkgdir} -name perllocal.pod -delete
- find ${pkgdir} -name .packlist -delete
-
- # cd ${pkgdir}/usr/bin
- # for i in razor-check razor-report razor-revoke razor-admin; do
- # /bin/ln -sf razor-client $i;
- # done
-}
diff --git a/testing/re-alpine/PKGBUILD b/testing/re-alpine/PKGBUILD
deleted file mode 100644
index 9293744c9..000000000
--- a/testing/re-alpine/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 125747 2011-05-29 05:24:41Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Contributor: Smith Dhumbumroong <zodmaner@gmail.com>
-
-pkgname=re-alpine
-pkgver=2.02
-pkgrel=3
-pkgdesc="The continuation of the Alpine email client from University of Washington"
-arch=('i686' 'x86_64')
-url="http://sourceforge.net/projects/re-alpine/"
-license=('APACHE')
-depends=('libldap' 'krb5')
-optdepends=('aspell: spell-checking support'
- 'hunspell: spell-checking support')
-provides=('pine' 'alpine')
-conflicts=('pine' 'alpine')
-replaces=('pine' 'alpine')
-options=('!makeflags')
-source=(http://downloads.sourceforge.net/project/re-alpine/${pkgname}-${pkgver}.tar.bz2
- maildir.patch)
-md5sums=('5e75826b15f05674856be8618bdefdfb'
- '8d7a0e8d940e84e978f50266405c7361')
-sha1sums=('9c2f13dbc7ca75e7a09f81df607db84694b10fa6'
- 'c09a8e42f9dba3e63a3755a9c418af95da721d8d')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- patch -p1 < ../maildir.patch
- LIBS+=-lpam ./configure --prefix=/usr --without-passfile --without-tcl \
- --disable-shared --with-system-pinerc=/etc/alpine.d/pine.conf \
- --with-system-fixed-pinerc=/etc/alpine.d/pine.conf.fixed
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/re-alpine/maildir.patch b/testing/re-alpine/maildir.patch
deleted file mode 100644
index cff18cb3f..000000000
--- a/testing/re-alpine/maildir.patch
+++ /dev/null
@@ -1,3712 +0,0 @@
-diff -rc alpine-2.00/alpine/alpine.c alpine-2.00.maildir/alpine/alpine.c
-*** alpine-2.00/alpine/alpine.c 2008-06-03 17:31:05.000000000 -0500
---- alpine-2.00.maildir/alpine/alpine.c 2011-01-15 19:11:06.000000000 -0600
-***************
-*** 553,558 ****
---- 553,563 ----
- if(F_ON(F_MAILDROPS_PRESERVE_STATE, ps_global))
- mail_parameters(NULL, SET_SNARFPRESERVE, (void *) TRUE);
-
-+ #ifndef _WINDOWS
-+ mail_parameters(NULL,SET_COURIERSTYLE,
-+ (void *)(F_ON(F_COURIER_FOLDER_LIST, ps_global) ? 1 : 0));
-+ #endif
-+
- rvl = 0L;
- if(pine_state->VAR_NNTPRANGE){
- if(!SVAR_NNTPRANGE(pine_state, rvl, tmp_20k_buf, SIZEOF_20KBUF))
-diff -rc alpine-2.00/alpine/confscroll.c alpine-2.00.maildir/alpine/confscroll.c
-*** alpine-2.00/alpine/confscroll.c 2008-08-21 17:14:45.000000000 -0500
---- alpine-2.00.maildir/alpine/confscroll.c 2011-01-15 19:11:06.000000000 -0600
-***************
-*** 5489,5494 ****
---- 5489,5500 ----
- (void *)var->current_val.p);
- }
- #endif
-+ #ifndef _WINDOWS
-+ else if(var == &ps->vars[V_MAILDIR_LOCATION]){
-+ if(var->current_val.p && var->current_val.p[0])
-+ mail_parameters(NULL, SET_MDINBOXPATH, (void *)var->current_val.p);
-+ }
-+ #endif
- else if(revert && standard_radio_var(ps, var)){
-
- cur_rule_value(var, TRUE, FALSE);
-diff -rc alpine-2.00/imap/src/c-client/mail.c alpine-2.00.maildir/imap/src/c-client/mail.c
-*** alpine-2.00/imap/src/c-client/mail.c 2008-06-04 13:39:54.000000000 -0500
---- alpine-2.00.maildir/imap/src/c-client/mail.c 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 991,997 ****
- MAILSTREAM *ts;
- char *s,*t,tmp[MAILTMPLEN];
- size_t i;
-! DRIVER *d;
- /* never allow names with newlines */
- if (s = strpbrk (mailbox,"\015\012")) {
- MM_LOG ("Can't create mailbox with such a name",ERROR);
---- 991,997 ----
- MAILSTREAM *ts;
- char *s,*t,tmp[MAILTMPLEN];
- size_t i;
-! DRIVER *d, *md;
- /* never allow names with newlines */
- if (s = strpbrk (mailbox,"\015\012")) {
- MM_LOG ("Can't create mailbox with such a name",ERROR);
-***************
-*** 1015,1020 ****
---- 1015,1022 ----
- return NIL;
- }
-
-+ /* Hack, we should do this better, but it works */
-+ for (md = maildrivers; md && strcmp (md->name, "md"); md = md->next);
- /* see if special driver hack */
- if ((mailbox[0] == '#') && ((mailbox[1] == 'd') || (mailbox[1] == 'D')) &&
- ((mailbox[2] == 'r') || (mailbox[2] == 'R')) &&
-***************
-*** 1045,1050 ****
---- 1047,1059 ----
- (((*mailbox == '{') || (*mailbox == '#')) &&
- (stream = mail_open (NIL,mailbox,OP_PROTOTYPE | OP_SILENT))))
- d = stream->dtb;
-+ else if(mailbox[0] == '#'
-+ && (mailbox[1] == 'm' || mailbox[1] == 'M')
-+ && (mailbox[2] == 'd' || mailbox[2] == 'D'
-+ || mailbox[2] == 'c' || mailbox[2] == 'C')
-+ && mailbox[3] == '/'
-+ && mailbox[4] != '\0')
-+ return (*md->create)(stream, mailbox);
- else if ((*mailbox != '{') && (ts = default_proto (NIL))) d = ts->dtb;
- else { /* failed utterly */
- sprintf (tmp,"Can't create mailbox %.80s: indeterminate format",mailbox);
-diff -rc alpine-2.00/imap/src/c-client/mail.h alpine-2.00.maildir/imap/src/c-client/mail.h
-*** alpine-2.00/imap/src/c-client/mail.h 2008-08-08 12:34:22.000000000 -0500
---- alpine-2.00.maildir/imap/src/c-client/mail.h 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 353,358 ****
---- 353,362 ----
- #define SET_SCANCONTENTS (long) 573
- #define GET_MHALLOWINBOX (long) 574
- #define SET_MHALLOWINBOX (long) 575
-+ #define GET_COURIERSTYLE (long) 576
-+ #define SET_COURIERSTYLE (long) 577
-+ #define SET_MDINBOXPATH (long) 578
-+ #define GET_MDINBOXPATH (long) 579
-
- /* Driver flags */
-
-diff -rc alpine-2.00/imap/src/osdep/unix/dummy.c alpine-2.00.maildir/imap/src/osdep/unix/dummy.c
-*** alpine-2.00/imap/src/osdep/unix/dummy.c 2008-06-04 13:18:34.000000000 -0500
---- alpine-2.00.maildir/imap/src/osdep/unix/dummy.c 2011-01-15 20:01:59.000000000 -0600
-***************
-*** 106,118 ****
- * Accepts: mailbox name
- * Returns: our driver if name is valid, NIL otherwise
- */
-!
- DRIVER *dummy_valid (char *name)
- {
-! char *s,tmp[MAILTMPLEN];
- struct stat sbuf;
- /* must be valid local mailbox */
-! if (name && *name && (*name != '{') && (s = mailboxfile (tmp,name))) {
- /* indeterminate clearbox INBOX */
- if (!*s) return &dummydriver;
- else if (!stat (s,&sbuf)) switch (sbuf.st_mode & S_IFMT) {
---- 106,124 ----
- * Accepts: mailbox name
- * Returns: our driver if name is valid, NIL otherwise
- */
-! char * maildir_remove_root(char *);
- DRIVER *dummy_valid (char *name)
- {
-! char *s,tmp[MAILTMPLEN], *rname;
- struct stat sbuf;
-+
-+ if(strlen(name) > MAILTMPLEN)
-+ name[MAILTMPLEN] = '\0';
-+
-+ strcpy(tmp, name);
-+ rname = maildir_remove_root(tmp);
- /* must be valid local mailbox */
-! if (rname && *rname && (*rname != '{') && (s = mailboxfile (tmp,rname))) {
- /* indeterminate clearbox INBOX */
- if (!*s) return &dummydriver;
- else if (!stat (s,&sbuf)) switch (sbuf.st_mode & S_IFMT) {
-***************
-*** 121,128 ****
- return &dummydriver;
- }
- /* blackbox INBOX does not exist yet */
-! else if (!compare_cstring (name,"INBOX")) return &dummydriver;
- }
- return NIL;
- }
-
---- 127,135 ----
- return &dummydriver;
- }
- /* blackbox INBOX does not exist yet */
-! else if (!compare_cstring (rname,"INBOX")) return &dummydriver;
- }
-+ if(rname) fs_give((void **)&rname);
- return NIL;
- }
-
-***************
-*** 454,459 ****
---- 461,468 ----
- {
- char *s,tmp[MAILTMPLEN];
- long ret = NIL;
-+ if(!strncmp(mailbox,"#md/",4) || !strncmp(mailbox,"#mc/", 4))
-+ return maildir_create(stream, mailbox);
- /* validate name */
- if (!(compare_cstring (mailbox,"INBOX") && (s = dummy_file (tmp,mailbox)))) {
- sprintf (tmp,"Can't create %.80s: invalid name",mailbox);
-***************
-*** 519,524 ****
---- 528,541 ----
- {
- struct stat sbuf;
- char *s,tmp[MAILTMPLEN];
-+ if (!strncmp(mailbox,"#md/",4) || !strncmp(mailbox,"#mc/", 4)
-+ || is_valid_maildir(&mailbox)){
-+ char tmp[MAILTMPLEN] = {'\0'};
-+ strcpy(tmp, mailbox);
-+ if(tmp[strlen(tmp) - 1] != '/')
-+ tmp[strlen(tmp)] = '/';
-+ return maildir_delete(stream, tmp);
-+ }
- if (!(s = dummy_file (tmp,mailbox))) {
- sprintf (tmp,"Can't delete - invalid name: %.80s",s);
- MM_LOG (tmp,ERROR);
-***************
-*** 544,555 ****
- long dummy_rename (MAILSTREAM *stream,char *old,char *newname)
- {
- struct stat sbuf;
-! char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN];
- /* no trailing / allowed */
-! if (!dummy_file (oldname,old) || !(s = dummy_file (mbx,newname)) ||
- stat (oldname,&sbuf) || ((s = strrchr (s,'/')) && !s[1] &&
- ((sbuf.st_mode & S_IFMT) != S_IFDIR))) {
-! sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",old,newname);
- MM_LOG (mbx,ERROR);
- return NIL;
- }
---- 561,583 ----
- long dummy_rename (MAILSTREAM *stream,char *old,char *newname)
- {
- struct stat sbuf;
-! char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN], *rold, *rnewname;
-!
-! if(strlen(old) > MAILTMPLEN)
-! old[MAILTMPLEN] = '\0';
-!
-! if(strlen(newname) > MAILTMPLEN)
-! newname[MAILTMPLEN] = '\0';
-!
-! strcpy(tmp, old);
-! rold = maildir_remove_root(tmp);
-! strcpy(tmp, newname);
-! rnewname = maildir_remove_root(tmp);
- /* no trailing / allowed */
-! if (!dummy_file (oldname,rold) || !(s = dummy_file (mbx,rnewname)) ||
- stat (oldname,&sbuf) || ((s = strrchr (s,'/')) && !s[1] &&
- ((sbuf.st_mode & S_IFMT) != S_IFDIR))) {
-! sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",rold,rnewname);
- MM_LOG (mbx,ERROR);
- return NIL;
- }
-***************
-*** 565,578 ****
- }
- }
- /* rename of non-ex INBOX creates dest */
-! if (!compare_cstring (old,"INBOX") && stat (oldname,&sbuf))
- return dummy_create (NIL,mbx);
- if (rename (oldname,mbx)) {
-! sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",old,newname,
- strerror (errno));
- MM_LOG (tmp,ERROR);
- return NIL;
- }
- return T; /* return success */
- }
-
---- 593,608 ----
- }
- }
- /* rename of non-ex INBOX creates dest */
-! if (!compare_cstring (rold,"INBOX") && stat (oldname,&sbuf))
- return dummy_create (NIL,mbx);
- if (rename (oldname,mbx)) {
-! sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",rold,rnewname,
- strerror (errno));
- MM_LOG (tmp,ERROR);
- return NIL;
- }
-+ if(rold) fs_give((void **)&rold);
-+ if(rnewname) fs_give((void **)&rnewname);
- return T; /* return success */
- }
-
-diff -rc alpine-2.00/imap/src/osdep/unix/maildir.c alpine-2.00.maildir/imap/src/osdep/unix/maildir.c
-*** alpine-2.00/imap/src/osdep/unix/maildir.c 2011-01-24 19:38:50.000000000 -0600
---- alpine-2.00.maildir/imap/src/osdep/unix/maildir.c 2011-01-15 19:38:50.000000000 -0600
-***************
-*** 0 ****
---- 1,2584 ----
-+ /*
-+ * Maildir driver for Alpine 2.00
-+ *
-+ * Written by Eduardo Chappa <chappa@washington.edu>
-+ * Last Update: November 6, 2010.
-+ *
-+ */
-+
-+ #include <stdio.h>
-+ #include <ctype.h>
-+ #include <errno.h>
-+ extern int errno; /* just in case */
-+ #include "mail.h"
-+ #include <pwd.h>
-+ #include <sys/stat.h>
-+ #include <sys/time.h>
-+ #include "osdep.h"
-+ #include "rfc822.h"
-+ #include "fdstring.h"
-+ #include "misc.h"
-+ #include "dummy.h"
-+ #include "maildir.h"
-+
-+ /* Driver dispatch used by MAIL */
-+ DRIVER maildirdriver = {
-+ "md", /* driver name, yes it's md, not maildir */
-+ /* driver flags */
-+ DR_MAIL|DR_LOCAL|DR_NAMESPACE|DR_DIRFMT,
-+ (DRIVER *) NIL, /* next driver */
-+ maildir_valid, /* mailbox is valid for us */
-+ maildir_parameters, /* manipulate parameters */
-+ NIL, /* scan mailboxes */
-+ maildir_list, /* find mailboxes */
-+ maildir_lsub, /* find subscribed mailboxes */
-+ maildir_sub, /* subscribe to mailbox */
-+ maildir_unsub, /* unsubscribe from mailbox */
-+ maildir_create, /* create mailbox */
-+ maildir_delete, /* delete mailbox */
-+ maildir_rename, /* rename mailbox */
-+ mail_status_default, /* status of mailbox */
-+ maildir_open, /* open mailbox */
-+ maildir_close, /* close mailbox */
-+ maildir_fast, /* fetch message "fast" attributes */
-+ NIL, /* fetch message flags */
-+ NIL, /* fetch overview */
-+ NIL, /* fetch message structure */
-+ maildir_header, /* fetch message header */
-+ maildir_text, /* fetch message body */
-+ NIL, /* fetch partial message text */
-+ NIL, /* unique identifier */
-+ NIL, /* message number */
-+ NIL, /* modify flags */
-+ maildir_flagmsg, /* per-message modify flags */
-+ NIL, /* search for message based on criteria */
-+ NIL, /* sort messages */
-+ NIL, /* thread messages */
-+ maildir_ping, /* ping mailbox to see if still alive */
-+ maildir_check, /* check for new messages */
-+ maildir_expunge, /* expunge deleted messages */
-+ maildir_copy, /* copy messages to another mailbox */
-+ maildir_append, /* append string message to mailbox */
-+ NIL /* garbage collect stream */
-+ };
-+
-+
-+ DRIVER courierdriver = {
-+ "mc", /* Why a separate driver? So that
-+ createproto will work */
-+ /* driver flags */
-+ DR_MAIL|DR_LOCAL|DR_NAMESPACE|DR_DIRFMT,
-+ (DRIVER *) NIL, /* next driver */
-+ maildir_valid, /* mailbox is valid for us */
-+ maildir_parameters, /* manipulate parameters */
-+ NIL, /* scan mailboxes */
-+ courier_list, /* find mailboxes */
-+ maildir_lsub, /* find subscribed mailboxes */
-+ maildir_sub, /* subscribe to mailbox */
-+ maildir_unsub, /* unsubscribe from mailbox */
-+ maildir_create, /* create mailbox */
-+ maildir_delete, /* delete mailbox */
-+ maildir_rename, /* rename mailbox */
-+ mail_status_default, /* status of mailbox */
-+ maildir_open, /* open mailbox */
-+ maildir_close, /* close mailbox */
-+ maildir_fast, /* fetch message "fast" attributes */
-+ NIL, /* fetch message flags */
-+ NIL, /* fetch overview */
-+ NIL, /* fetch message structure */
-+ maildir_header, /* fetch message header */
-+ maildir_text, /* fetch message body */
-+ NIL, /* fetch partial message text */
-+ NIL, /* unique identifier */
-+ NIL, /* message number */
-+ NIL, /* modify flags */
-+ maildir_flagmsg, /* per-message modify flags */
-+ NIL, /* search for message based on criteria */
-+ NIL, /* sort messages */
-+ NIL, /* thread messages */
-+ maildir_ping, /* ping mailbox to see if still alive */
-+ maildir_check, /* check for new messages */
-+ maildir_expunge, /* expunge deleted messages */
-+ maildir_copy, /* copy messages to another mailbox */
-+ maildir_append, /* append string message to mailbox */
-+ NIL /* garbage collect stream */
-+ };
-+
-+ MAILSTREAM maildirproto = {&maildirdriver}; /* prototype stream */
-+ MAILSTREAM courierproto = {&courierdriver}; /* prototype stream */
-+
-+ long maildir_dirfmttest (char *name)
-+ {
-+ int i;
-+ for (i = 0; mdstruct[i] && strcmp(name, mdstruct[i]); i++);
-+ return (i < EndDir) || !strcmp(name, MDDIR)
-+ || !strncmp(name, MDUIDLAST, strlen(MDUIDLAST))
-+ || !strncmp(name, MDUIDTEMP, strlen(MDUIDTEMP)) ? LONGT : NIL;
-+ }
-+
-+ void
-+ md_domain_name(void)
-+ {
-+ int i;
-+
-+ strcpy(mdlocaldomain,mylocalhost ());
-+ for (i = 0; mdlocaldomain[i] ; i++)
-+ if(mdlocaldomain[i] == '/')
-+ mdlocaldomain[i] = '\057';
-+ else if (mdlocaldomain[i] == ':')
-+ mdlocaldomain[i] = '\072';
-+ }
-+
-+ char *
-+ myrootdir(char *name)
-+ {
-+ return myhomedir();
-+ }
-+
-+ char *
-+ mdirpath(void)
-+ {
-+ char *path = maildir_parameters(GET_MDINBOXPATH,NIL);
-+ return path ? (path[0] ? path : ".") : "Maildir";
-+ }
-+
-+ /* remove the "#md/" or "#mc/" part from a folder name */
-+ char *
-+ maildir_remove_root (char *name)
-+ {
-+ int courier = IS_COURIER(name), offset;
-+ char realname[MAILTMPLEN];
-+
-+ offset = maildir_valid_name(name) ? (name[3] == '/' ? 4 : 3) : 0;
-+ if(courier)
-+ courier_realname(name+offset, realname);
-+ else
-+ strcpy(realname, name+offset);
-+ return cpystr(realname);
-+ }
-+
-+
-+ /* Check validity of the name, we accept:
-+ * a) #md/directory/folder
-+ * b) #md/inbox
-+ * A few considerations: We can only accept as valid
-+ * a) names that start with #md/ and the directory exists or
-+ * b) names that do not start with #md/ but are maildir directories (have
-+ * the /cur, /tmp and /new structure)
-+ */
-+ int maildir_valid_name (char *name)
-+ {
-+ char tmpname[MAILTMPLEN] = {'\0'};
-+
-+ if (mdfpath)
-+ fs_give((void **)&mdfpath);
-+ if (name && (name[0] != '#'))
-+ sprintf(tmpname,"%s%s",MDPREFIX(CCLIENT), name);
-+ mdfpath = cpystr(tmpname[0] ? tmpname : name);
-+
-+ return IS_CCLIENT(name) || IS_COURIER(name);
-+ }
-+
-+ /* Check if the directory whose path is given by name is a valid maildir
-+ * directory (contains /cur, /tmp and /new)
-+ */
-+ int maildir_valid_dir (char *name)
-+ {
-+ int len;
-+ DirNamesType i;
-+ struct stat sbuf;
-+ char tmp[MAILTMPLEN];
-+
-+ if(name[strlen(name) - 1] == '/')
-+ name[strlen(name) - 1] = '\0';
-+ len = strlen(name);
-+ for (i = Cur; i != EndDir; i++){
-+ MDFLD(tmp, name, i);
-+ if (stat(tmp, &sbuf) < 0 || !S_ISDIR(sbuf.st_mode))
-+ break;
-+ }
-+ name[len] = '\0';
-+ return (i == EndDir) ? T : NIL;
-+ }
-+
-+ void courier_realname(char *name, char *realname)
-+ {
-+ int i,j;
-+
-+ if(!name)
-+ return;
-+
-+ for (i = 0, j = 0; i < MAILTMPLEN && j < strlen(name); j++, i++){
-+ realname[i] = name[j];
-+ if(name[j] == '/' && name[j+1] != '.' && name[j+1] != '%'
-+ && name[j+1] != '*')
-+ realname[++i] = '.';
-+ }
-+ if(realname[i-1] == '.')
-+ i--;
-+ realname[i] = '\0';
-+ }
-+
-+
-+ /* given a maildir folder, return its path. Memory freed by caller. Directory
-+ * does not contain the trailing slash "/". On error NULL is returned.
-+ */
-+ int maildir_file_path (char *name, char *tmp)
-+ {
-+ char *maildirpath = mdirpath(), *rname;
-+ int courier = IS_COURIER(name);
-+
-+ /* There are several ways in which the path can come, so we will handle
-+ them here. First we deal with #mc/ or #md/ prefix by removing the
-+ prefix, if any */
-+
-+ if(strlen(name) >= MAILTMPLEN)
-+ name[MAILTMPLEN] = '\0';
-+ strcpy(tmp, name);
-+ rname = maildir_remove_root(tmp);
-+ tmp[0] = '\0'; /* just in case something fails */
-+
-+ if (strlen(myrootdir(rname)) +
-+ max(strlen(rname), strlen(maildirpath)) > MAILTMPLEN){
-+ errno = ENAMETOOLONG;
-+ sprintf(tmp,"Error opening \"%s\": %s", rname, strerror (errno));
-+ mm_log(tmp,ERROR);
-+ return NIL;
-+ }
-+
-+ /* There are two ways in which the name can come here, either as a
-+ full path or not. If it is not a full path it can come in two ways,
-+ either as a file system path (Maildir/.Drafts) or as a maildir path
-+ (INBOX.Drafts)
-+ */
-+
-+ if(*rname == '/') /* full path */
-+ strcpy(tmp, rname); /* do nothing */
-+ else{
-+ sprintf (tmp,"%s/%s%s%s", myrootdir (rname),
-+ strncmp (ucase (strcpy (tmp, rname)), "INBOX", 5)
-+ ? rname : maildirpath,
-+ strncmp (ucase (strcpy (tmp, rname)), "INBOX", 5)
-+ ? "" : (courier ? "/" : ""),
-+ strncmp (ucase (strcpy (tmp, rname)), "INBOX", 5)
-+ ? "" : (*(rname+5) == MDSEPARATOR(courier) ? rname+5 : ""));
-+ }
-+ if(rname) fs_give((void **)&rname);
-+ return tmp[0] ? T : NIL;
-+ }
-+
-+ /* This function is given a full path for a mailbox and returns
-+ * if it is a valid maildir transformed to canonical notation
-+ */
-+ int
-+ is_valid_maildir (char **name)
-+ {
-+ if (!strncmp(*name, myrootdir (*name), strlen(myrootdir(*name)))){
-+ (*name) += strlen(myrootdir(*name));
-+ if (**name == '/') (*name)++;
-+ }
-+ return maildir_valid(*name) ? T : NIL;
-+ }
-+
-+ /* Check validity of mailbox. This routine does not send errors to log, other
-+ * routines calling this one may do so, though
-+ */
-+
-+ DRIVER *maildir_valid (char *name)
-+ {
-+ char tmpname[MAILTMPLEN];
-+
-+ maildir_file_path(name, tmpname);
-+
-+ return maildir_valid_dir(tmpname)
-+ ? (IS_COURIER(name) ? &courierdriver : &maildirdriver) : NIL;
-+ }
-+
-+ void maildir_fast (MAILSTREAM *stream,char *sequence,long flags)
-+ {
-+ unsigned long i;
-+ MESSAGECACHE *elt;
-+ /* get sequence */
-+ if (stream && LOCAL && ((flags & FT_UID) ?
-+ mail_uid_sequence (stream,sequence) :
-+ mail_sequence (stream,sequence)))
-+ for (i = 1L; i <= stream->nmsgs; i++) {
-+ if ((elt = mail_elt (stream,i))->sequence && (elt->valid = T) &&
-+ !(elt->day && elt->rfc822_size)) {
-+ ENVELOPE **env = NIL;
-+ ENVELOPE *e = NIL;
-+ if (!stream->scache) env = &elt->private.msg.env;
-+ else if (stream->msgno == i) env = &stream->env;
-+ else env = &e;
-+ if (!*env || !elt->rfc822_size) {
-+ STRING bs;
-+ unsigned long hs;
-+ char *ht = (*stream->dtb->header) (stream,i,&hs,NIL);
-+
-+ if (!*env) rfc822_parse_msg (env,NIL,ht,hs,NIL,BADHOST,
-+ stream->dtb->flags);
-+ if (!elt->rfc822_size) {
-+ (*stream->dtb->text) (stream,i,&bs,FT_PEEK);
-+ elt->rfc822_size = hs + SIZE (&bs) - GETPOS (&bs);
-+ }
-+ }
-+
-+ if (!elt->day && *env && (*env)->date)
-+ mail_parse_date (elt,(*env)->date);
-+
-+ if (!elt->day) elt->day = elt->month = 1;
-+ mail_free_envelope (&e);
-+ }
-+ }
-+ }
-+
-+ int
-+ maildir_eliminate_duplicate (char *name, struct direct ***flist, unsigned long *nfiles)
-+ {
-+ int i, j, k, error = 0, scanr;
-+ char new[MAILTMPLEN], old[MAILTMPLEN], tmp[MAILTMPLEN], *str;
-+ struct direct **names = NIL;
-+
-+ if((scanr = maildir_doscandir(name, &names, CCLIENT)) < 0)
-+ return -1;
-+
-+ if(nfiles) *nfiles = scanr;
-+ for(i = 0, j = 1, k = 0; j < scanr; i++, j++){
-+ if(k)
-+ names[i] = names[i+k];
-+ if(same_maildir_file(names[i]->d_name, names[j]->d_name)){
-+ int d, f, r, s;
-+ maildir_getflag(names[i]->d_name, &d, &f, &r, &s, NIL);
-+ sprintf(old,"%s/%s", name, names[i]->d_name);
-+ sprintf(new,"%s/.%s", name, names[i]->d_name);
-+ if(rename(old, new) < 0 && errno != EEXIST)
-+ error++;
-+ if(!error){
-+ for(; j < scanr
-+ && same_maildir_file(names[i]->d_name, names[j]->d_name)
-+ ; j++, k++){
-+ maildir_getflag(names[j]->d_name, (d ? NIL : &d),
-+ (f ? NIL : &f), (r ? NIL : &r), (s ? NIL : &s), NIL);
-+ sprintf(tmp,"%s/%s", name, names[j]->d_name);
-+ if(unlink(tmp) < 0){ /* Hmmm... a problem, let's see */
-+ struct stat sbuf;
-+ if (stat(tmp, &sbuf) == 0 && (sbuf.st_mode & S_IFMT) == S_IFREG)
-+ error++;
-+ }
-+ }
-+ if((str = strrchr(names[i]->d_name,FLAGSEP)) != NULL) *str = '\0';
-+ sprintf (old,"%s/%s%s%s%s%s%s", name, names[i]->d_name, MDSEP(2),
-+ MDFLAG(Draft, d), MDFLAG(Flagged, f), MDFLAG(Replied, r),
-+ MDFLAG(Seen, s));
-+ if(rename(new, old) < 0)
-+ error++;
-+ }
-+ }
-+
-+ }
-+ if(k > 0)
-+ fs_give((void **)&names);
-+ else
-+ *flist = names;
-+ return error ? -1 : k;
-+ }
-+
-+ int
-+ maildir_doscandir(char *name, struct direct ***flist, int flag)
-+ {
-+ return scandir(name, flist,
-+ flag == CCLIENT ? maildir_select : courier_dir_select,
-+ flag == CCLIENT ? maildir_namesort : courier_dir_sort);
-+ }
-+
-+ /*
-+ * return all files in a given directory. This is a separate call
-+ * so that if there are warnings during compilation this only appears once.
-+ */
-+ unsigned long
-+ maildir_scandir (char *name, struct direct ***flist,
-+ unsigned long *nfiles, int *scand, int flag)
-+ {
-+ struct stat sbuf;
-+ int rv = -2; /* impossible value */
-+
-+ if (scand)
-+ *scand = -1; /* assume error for safety */
-+ *nfiles = 0;
-+ if((stat(name,&sbuf) < 0)
-+ || (flag == CCLIENT
-+ && ((rv = maildir_eliminate_duplicate(name, flist, nfiles)) < 0)))
-+ return 0L;
-+
-+ if (scand && (rv > 0 || rv == -2))
-+ *nfiles = maildir_doscandir(name, flist, flag);
-+
-+ if(scand) *scand = *nfiles;
-+
-+ return (unsigned long) sbuf.st_ctime;
-+ }
-+
-+ /* Does a message with given name exists (or was it removed)?
-+ * Returns: 1 - yes, such message exist,
-+ * 0 - No, that message does not exist anymore
-+ *
-+ * Parameters: stream, name of mailbox, new name if his message does not
-+ * exist.
-+ */
-+
-+ int maildir_message_exists(MAILSTREAM *stream, char *name, char *newfile)
-+ {
-+ char tmp[MAILTMPLEN];
-+ int gotit = NIL;
-+ DIR *dir;
-+ struct direct *d;
-+ struct stat sbuf;
-+
-+ /* First check directly if it exists, if not there, look for it */
-+ sprintf(tmp,"%s/%s", LOCAL->curdir, name);
-+ if ((stat(tmp, &sbuf) == 0) && ((sbuf.st_mode & S_IFMT) == S_IFREG))
-+ return T;
-+
-+ if (!(dir = opendir (LOCAL->curdir)))
-+ return NIL;
-+
-+ while ((d = readdir(dir)) && gotit == NIL){
-+ if (d->d_name[0] == '.')
-+ continue;
-+ if (same_maildir_file(d->d_name, name)){
-+ gotit = T;
-+ strcpy(newfile, d->d_name);
-+ }
-+ }
-+ closedir(dir);
-+ return gotit;
-+ }
-+
-+ /* Maildir open */
-+
-+ MAILSTREAM *maildir_open (MAILSTREAM *stream)
-+ {
-+ char tmp[MAILTMPLEN];
-+ struct stat sbuf;
-+
-+ if (!stream) return &maildirproto;
-+ if (stream->local) fatal ("maildir recycle stream");
-+ md_domain_name(); /* get domain name for maildir files in mdlocaldomain */
-+ if(mypid == (pid_t) 0)
-+ mypid = getpid();
-+ if (!stream->rdonly){
-+ stream->perm_seen = stream->perm_deleted = stream->perm_flagged =
-+ stream->perm_answered = stream->perm_draft = T;
-+ }
-+ stream->local = (MAILDIRLOCAL *) fs_get (sizeof (MAILDIRLOCAL));
-+ memset(LOCAL, 0, sizeof(MAILDIRLOCAL));
-+ LOCAL->fd = -1;
-+
-+ LOCAL->courier = IS_COURIER(stream->mailbox);
-+ strcpy(tmp, stream->mailbox);
-+ if (maildir_file_path (stream->mailbox, tmp))
-+ LOCAL->dir = cpystr (tmp);
-+ LOCAL->candouid = maildir_can_assign_uid(stream);
-+ maildir_read_uid(stream, &stream->uid_last, &stream->uid_validity);
-+ if (LOCAL->dir){
-+ MDFLD(tmp, LOCAL->dir, Cur);
-+ LOCAL->curdir = cpystr (tmp);
-+ if (stat (LOCAL->curdir,&sbuf) < 0) {
-+ sprintf (tmp,"Can't open folder %s: %s",
-+ stream->mailbox,strerror (errno));
-+ mm_log (tmp,ERROR);
-+ maildir_close(stream, 0);
-+ return NIL;
-+ }
-+ }
-+
-+ if(maildir_file_path (stream->mailbox, tmp)){
-+ fs_give ((void **) &stream->mailbox);
-+ stream->mailbox = cpystr(tmp);
-+ }
-+
-+ LOCAL->buf = (char *) fs_get ((LOCAL->buflen = SENDBUFLEN) + 1);
-+ stream->sequence++;
-+ stream->nmsgs = stream->recent = 0L;
-+
-+ maildir_parse_folder(stream, 1);
-+
-+ return stream;
-+ }
-+
-+ /* Maildir initial parsing of the folder */
-+ void
-+ maildir_parse_folder (MAILSTREAM *stream, int full)
-+ {
-+ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN];
-+ struct direct **namescur = NIL, **namesnew = NIL;
-+ unsigned long i, nfilescur = 0L, nfilesnew = 0L, oldpos, newpos, total;
-+ int scan_err, rescan, loop = 0;
-+
-+ if (!stream) /* what??? */
-+ return;
-+
-+ MM_CRITICAL(stream);
-+
-+ MDFLD(tmp, LOCAL->dir, New);
-+ maildir_scandir (tmp, &namesnew, &nfilesnew, &scan_err, CCLIENT);
-+ if (scan_err < 0)
-+ maildir_abort(stream);
-+
-+ /* Scan old messages first, escoba! */
-+ if(stream->rdonly ||
-+ (LOCAL && ((maildir_initial_check(stream, Cur) == 0)
-+ || nfilesnew > 0L))){
-+ MDFLD(tmp, LOCAL->dir, Cur);
-+ LOCAL->scantime = maildir_scandir (tmp, &namescur, &nfilescur,
-+ &scan_err, CCLIENT);
-+ if (scan_err < 0){
-+ if(namesnew){
-+ for(i = 0L; i < nfilesnew; i++)
-+ fs_give((void **)&namesnew[i]);
-+ fs_give((void **) &namesnew);
-+ }
-+ maildir_abort(stream);
-+ }
-+ }
-+ if(LOCAL && (maildir_initial_check(stream, New) == 0)
-+ && (nfilescur > 0L)){
-+ MDFLD(tmp, LOCAL->dir, New);
-+ while(LOCAL && loop < 10){
-+ if(nfilesnew == 0L)
-+ maildir_scandir (tmp, &namesnew, &nfilesnew, &scan_err, CCLIENT);
-+ if (scan_err < 0){
-+ if(namesnew){
-+ for(i = 0L; i < nfilesnew; i++)
-+ fs_give((void **)&namesnew[i]);
-+ fs_give((void **) &namesnew);
-+ }
-+ maildir_abort(stream);
-+ break;
-+ }
-+ for(i = 0L, rescan = 0, newpos = oldpos = 0L;
-+ newpos < nfilescur && i < nfilesnew; i++){
-+ if(maildir_message_in_list(namesnew[i]->d_name, namescur, oldpos,
-+ nfilescur - 1L, &newpos)){
-+ oldpos = newpos;
-+ sprintf(tmp2,"%s/%s",tmp,namesnew[i]->d_name);
-+ if(unlink(tmp2) < 0)
-+ scan_err = -1;
-+ rescan++;
-+ }
-+ else
-+ newpos = oldpos;
-+ }
-+ if(scan_err < 0)
-+ maildir_abort(stream);
-+ if(rescan == 0)
-+ break;
-+ else{ /* restart */
-+ if(namesnew){
-+ for(i = 0L; i < nfilesnew; i++)
-+ fs_give((void **)&namesnew[i]);
-+ fs_give((void **) &namesnew);
-+ }
-+ nfilesnew = 0L;
-+ loop++;
-+ }
-+ }
-+ }
-+ if(loop == 10)
-+ maildir_abort(stream);
-+ if(LOCAL){
-+ if(stream->rdonly)
-+ stream->recent = 0L;
-+ total = namescur || stream->rdonly
-+ ? maildir_parse_dir(stream, 0L, Cur, namescur,
-+ nfilescur, full) : stream->nmsgs;
-+ stream->nmsgs = maildir_parse_dir(stream, total, New, namesnew,
-+ nfilesnew, full);
-+ }
-+ if(namesnew){
-+ for(i = 0L; i < nfilesnew; i++)
-+ fs_give((void **)&namesnew[i]);
-+ fs_give((void **) &namesnew);
-+ }
-+ if(namescur){
-+ for(i = 0L; i < nfilescur; i++)
-+ fs_give((void **)&namescur[i]);
-+ fs_give((void **) &namescur);
-+ }
-+ MM_NOCRITICAL(stream);
-+ }
-+
-+ int
-+ maildir_initial_check (MAILSTREAM *stream, DirNamesType dirtype)
-+ {
-+ char tmp[MAILTMPLEN];
-+ struct stat sbuf;
-+
-+ MDFLD(tmp, LOCAL->dir, dirtype);
-+ if (access (tmp, R_OK|W_OK|X_OK) != 0){
-+ maildir_abort(stream);
-+ return -1;
-+ }
-+
-+ MDFLD(tmp, LOCAL->dir, Cur);
-+ if (dirtype != New &&
-+ (stat(tmp, &sbuf) < 0 || sbuf.st_ctime == LOCAL->scantime))
-+ return -1;
-+ return 0;
-+ }
-+
-+
-+ /* Return the number of messages in the directory, while filling the
-+ * elt structure.
-+ */
-+
-+ unsigned long
-+ maildir_parse_dir(MAILSTREAM *stream, unsigned long nmsgs,
-+ DirNamesType dirtype, struct direct **names,
-+ unsigned long nfiles, int full)
-+ {
-+ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN], file[MAILTMPLEN],
-+ newfile[MAILTMPLEN], *mdstr;
-+ struct stat sbuf;
-+ unsigned long i, new = 0L, l, uid_last;
-+ unsigned long recent = stream ? stream->recent : 0L;
-+ int d = 0, f = 0, r = 0, s = 0, t = 0;
-+ int we_compute, in_list;
-+ int silent = stream ? stream->silent : NIL;
-+ MESSAGECACHE *elt;
-+
-+ MDFLD(tmp, LOCAL->dir, dirtype);
-+ if (dirtype == Cur && !stream->rdonly)
-+ for (i = 1L; i <= stream->nmsgs;){
-+ elt = mail_elt(stream, i);
-+ in_list = elt && elt->private.spare.ptr && nfiles > 0L
-+ ? (MDPOS(elt) < nfiles
-+ ? same_maildir_file(MDFILE(elt), names[MDPOS(elt)]->d_name)
-+ : NIL)
-+ || maildir_message_in_list(MDFILE(elt), names, 0L,
-+ nfiles - 1L, &MDPOS(elt))
-+ : NIL;
-+ if (!in_list){
-+ if (elt->private.spare.ptr)
-+ maildir_free_file ((void **) &elt->private.spare.ptr);
-+
-+ if (elt->recent) --recent;
-+ mail_expunged(stream,i);
-+ }
-+ else i++;
-+ }
-+
-+ stream->silent = T;
-+ uid_last = 0L;
-+ for (we_compute = 0, i = l = 1L; l <= nfiles; l++){
-+ unsigned long pos, uid;
-+ if (dirtype == New && !stream->rdonly){ /* move new messages to cur */
-+ pos = l - 1L;
-+ sprintf (file,"%s/%s", tmp, names[pos]->d_name);
-+ if(lstat(file,&sbuf) == 0)
-+ switch(sbuf.st_mode & S_IFMT){
-+ case S_IFREG:
-+ strcpy(tmp2, names[pos]->d_name);
-+ if((mdstr = strstr(tmp2,MDSEP(3)))
-+ || (mdstr = strstr(tmp2,MDSEP(2))))
-+ *(mdstr+1) = '2';
-+ else
-+ strcat(tmp2, MDSEP(2));
-+ sprintf(newfile, "%s/%s",LOCAL->curdir, tmp2);
-+ if(rename (file, newfile) != 0){
-+ mm_log("Unable to read new mail!", WARN);
-+ continue;
-+ }
-+ unlink (file);
-+ new++;
-+ break;
-+ case S_IFLNK: /* clean up, clean up, everybody, everywhere */
-+ if(unlink(file) < 0){
-+ if(LOCAL->link == NIL){
-+ mm_log("Unable to remove symbolic link", WARN);
-+ LOCAL->link = T;
-+ }
-+ }
-+ continue;
-+ break;
-+ default:
-+ if(LOCAL && LOCAL->link == NIL){
-+ mm_log("Unrecognized file or link in folder", WARN);
-+ LOCAL->link = T;
-+ }
-+ continue;
-+ break;
-+ }
-+ }
-+ mail_exists(stream, i + nmsgs);
-+ elt = mail_elt(stream, i + nmsgs);
-+ pos = (elt && elt->private.spare.ptr) ? MDPOS(elt) : l - 1L;
-+ if (dirtype == New) elt->recent = T;
-+ maildir_getflag(names[pos]->d_name, &d, &f, &r ,&s, &t);
-+ if (elt->private.spare.ptr)
-+ maildir_free_file_only ((void **)&elt->private.spare.ptr);
-+ else{
-+ maildir_get_file((MAILDIRFILE **)&elt->private.spare.ptr);
-+ we_compute++;
-+ }
-+ MDFILE(elt) = cpystr(names[pos]->d_name);
-+ MDPOS(elt) = pos;
-+ MDLOC(elt) = dirtype;
-+ if (dirtype == Cur){ /* deal with UIDs */
-+ if(elt->private.uid == 0L)
-+ elt->private.uid = maildir_get_uid(MDFILE(elt));
-+ if(elt->private.uid <= uid_last){
-+ uid = (we_compute ? uid_last : stream->uid_last) + 1L;
-+ if(LOCAL->candouid)
-+ maildir_assign_uid(stream, i + nmsgs, uid);
-+ else
-+ elt->private.uid = uid;
-+ }
-+ else
-+ uid = elt->private.uid;
-+ uid_last = uid;
-+ if(uid_last > stream->uid_last)
-+ stream->uid_last = uid_last;
-+ }
-+ if(dirtype == New && !stream->rdonly){
-+ maildir_free_file_only((void **)&elt->private.spare.ptr);
-+ MDFILE(elt) = cpystr(tmp2);
-+ MDSIZE(elt) = sbuf.st_size;
-+ MDMTIME(elt) = sbuf.st_mtime;
-+ MDLOC(elt) = Cur;
-+ }
-+ if (elt->draft != d || elt->flagged != f ||
-+ elt->answered != r || elt->seen != s || elt->deleted != t){
-+ elt->draft = d; elt->flagged = f; elt->answered = r;
-+ elt->seen = s; elt->deleted = t;
-+ if (!we_compute && !stream->rdonly)
-+ MM_FLAGS(stream, i+nmsgs);
-+ }
-+ maildir_get_date(stream, i+nmsgs);
-+ elt->valid = T;
-+ i++;
-+ }
-+ stream->silent = silent;
-+ if(LOCAL->candouid && dirtype == Cur)
-+ maildir_read_uid(stream, NULL, &stream->uid_validity);
-+ if (dirtype == New && stream->rdonly)
-+ new = nfiles;
-+ mail_exists(stream, nmsgs + ((dirtype == New) ? new : nfiles));
-+ mail_recent(stream, recent + ((dirtype == New) ? new : 0L));
-+
-+ return (nmsgs + (dirtype == New ? new : nfiles));
-+ }
-+
-+ long maildir_ping (MAILSTREAM *stream)
-+ {
-+ maildir_parse_folder(stream, 0);
-+ if(stream && LOCAL){
-+ if(LOCAL->candouid)
-+ maildir_uid_renew_tempfile(stream);
-+ else /* try again to get uids */
-+ LOCAL->candouid = maildir_can_assign_uid(stream);
-+ }
-+ return stream && LOCAL ? LONGT : NIL;
-+ }
-+
-+ int maildir_select (const struct direct *name)
-+ {
-+ return (name->d_name[0] != '.');
-+ }
-+
-+ /*
-+ * Unfortunately, there is no way to sort by arrival in this driver, this
-+ * means that opening a folder in this driver using the scandir function
-+ * will always make this driver slower than any driver that has a natural
-+ * way of sorting by arrival (like a flat file format, "mbox", "mbx", etc).
-+ */
-+ int maildir_namesort (const void *d1, const void *d2)
-+ {
-+ const struct direct *e1 = *(const struct direct **) d1;
-+ const struct direct *e2 = *(const struct direct **) d2;
-+
-+ return comp_maildir_file((char *) e1->d_name, (char *) e2->d_name);
-+ }
-+
-+ /* Maildir close */
-+
-+ void maildir_close (MAILSTREAM *stream, long options)
-+ {
-+ MESSAGECACHE *elt;
-+ unsigned long i;
-+ int silent = stream ? stream->silent : 0;
-+ mailcache_t mc = (mailcache_t) mail_parameters (NIL,GET_CACHE,NIL);
-+
-+ if (!stream) return;
-+
-+ for (i = 1L; i <= stream->nmsgs; i++)
-+ if((elt = (MESSAGECACHE *) (*mc)(stream,i,CH_ELT)) && elt->private.spare.ptr)
-+ maildir_free_file ((void **) &elt->private.spare.ptr);
-+ stream->silent = T;
-+ if (options & CL_EXPUNGE) maildir_expunge (stream, NIL, NIL);
-+ maildir_abort(stream);
-+ if (mdfpath) fs_give((void **)&mdfpath);
-+ if (mypid) mypid = (pid_t) 0;
-+ stream->silent = silent;
-+ }
-+
-+ void maildir_check (MAILSTREAM *stream)
-+ {
-+ if (maildir_ping (stream)) mm_log ("Check completed",(long) NIL);
-+ }
-+
-+ long maildir_text (MAILSTREAM *stream,unsigned long msgno,STRING *bs, long flags)
-+ {
-+ char tmp[MAILTMPLEN];
-+ unsigned long i;
-+ MESSAGECACHE *elt;
-+ char *s;
-+ /* UID call "impossible" */
-+ if (flags & FT_UID || !LOCAL) return NIL;
-+ elt = mail_elt (stream, msgno);
-+
-+ if (!(flags & FT_PEEK) && !elt->seen){
-+ elt->seen = T;
-+ maildir_flagmsg (stream, elt);
-+ MM_FLAGS(stream, elt->msgno);
-+ }
-+
-+ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), MDLOC(elt));
-+ if (LOCAL->fd < 0) /* if file closed ? */
-+ LOCAL->fd = open(tmp,O_RDONLY,NIL);
-+
-+ if (LOCAL->fd < 0 && (errno == EACCES || errno == ENOENT)){
-+ INIT (bs, mail_string, "", 0);
-+ elt->rfc822_size = 0L;
-+ return NIL;
-+ }
-+
-+ s = maildir_text_work(stream, elt, &i, flags);
-+ INIT (bs, mail_string, s, i);
-+ return LONGT;
-+ }
-+
-+ char *maildir_text_work (MAILSTREAM *stream,MESSAGECACHE *elt,
-+ unsigned long *length,long flags)
-+ {
-+ FDDATA d;
-+ STRING bs;
-+ char *s,tmp[CHUNK];
-+ unsigned long msgno = elt->msgno;
-+ static int try = 0;
-+
-+ if (length)
-+ *length = 0L;
-+ LOCAL->buf[0] = '\0';
-+
-+ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), MDLOC(elt));
-+ if (LOCAL->fd < 0) /* if file closed ? */
-+ LOCAL->fd = open(tmp,O_RDONLY,NIL);
-+
-+ if (LOCAL->fd < 0){ /* flag change? */
-+ if (try < 5){
-+ try++;
-+ if (maildir_update_elt_maildirp(stream, msgno) > 0)
-+ try = 0;
-+ return maildir_text_work(stream, mail_elt(stream, msgno),length, flags);
-+ }
-+ try = 0;
-+ return NULL;
-+ }
-+
-+ lseek (LOCAL->fd, elt->private.msg.text.offset,L_SET);
-+
-+ if (flags & FT_INTERNAL) { /* initial data OK? */
-+ if (elt->private.msg.text.text.size > LOCAL->buflen) {
-+ fs_give ((void **) &LOCAL->buf);
-+ LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
-+ elt->private.msg.text.text.size) + 1);
-+ }
-+ read (LOCAL->fd,LOCAL->buf,elt->private.msg.text.text.size);
-+ LOCAL->buf[*length = elt->private.msg.text.text.size] = '\0';
-+ }
-+ else {
-+ if (elt->rfc822_size > LOCAL->buflen) {
-+ fs_give ((void **) &LOCAL->buf);
-+ LOCAL->buf = (char *) fs_get ((LOCAL->buflen = elt->rfc822_size) + 1);
-+ }
-+ d.fd = LOCAL->fd; /* yes, set up file descriptor */
-+ d.pos = elt->private.msg.text.offset;
-+ d.chunk = tmp; /* initial buffer chunk */
-+ d.chunksize = CHUNK;
-+ INIT (&bs,fd_string,&d,elt->private.msg.text.text.size);
-+ for (s = LOCAL->buf; SIZE (&bs);) switch (CHR (&bs)) {
-+ case '\r': /* carriage return seen */
-+ *s++ = SNX (&bs); /* copy it and any succeeding LF */
-+ if (SIZE (&bs) && (CHR (&bs) == '\n')) *s++ = SNX (&bs);
-+ break;
-+ case '\n':
-+ *s++ = '\r'; /* insert a CR */
-+ default:
-+ *s++ = SNX (&bs); /* copy characters */
-+ }
-+ *s = '\0'; /* tie off buffer */
-+ *length = s - (char *) LOCAL->buf; /* calculate length */
-+ }
-+ close(LOCAL->fd); LOCAL->fd = -1;
-+ return LOCAL->buf;
-+ }
-+
-+ /* maildir parse, fill the elt structure... well not all of it... */
-+ unsigned long maildir_parse_message(MAILSTREAM *stream, unsigned long msgno,
-+ DirNamesType dirtype)
-+ {
-+ char *b, *s, *t, c;
-+ char tmp[MAILTMPLEN];
-+ struct stat sbuf;
-+ unsigned long i, len;
-+ int d, f, r, se, dt;
-+ MESSAGECACHE *elt;
-+
-+ elt = mail_elt (stream,msgno);
-+ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), dirtype);
-+ if(stat(tmp, &sbuf) == 0)
-+ MDSIZE(elt) = sbuf.st_size;
-+
-+ maildir_get_date(stream, msgno);
-+ maildir_getflag(MDFILE(elt), &d, &f, &r ,&se, &dt);
-+ elt->draft = d; elt->flagged = f; elt->answered = r; elt->seen = se;
-+ elt->deleted = dt; elt->valid = T;
-+ if (LOCAL->fd < 0) /* if file closed ? */
-+ LOCAL->fd = open(tmp,O_RDONLY,NIL);
-+
-+ if (LOCAL->fd >= 0){
-+ s = (char *) fs_get (MDSIZE(elt) + 1);
-+ read (LOCAL->fd,s,MDSIZE(elt));
-+ s[MDSIZE(elt)] = '\0';
-+ t = s + strlen(s); /* make t point to the end of s */
-+ for (i = 0L, b = s; b < t && !(i && (*b == '\n')); i = (*b++ == '\n'));
-+ len = (*b ? ++b : b) - s;
-+ elt->private.msg.header.text.size =
-+ elt->private.msg.text.offset = len;
-+ elt->private.msg.text.text.size = MDSIZE(elt) - len;
-+ for (i = 0L, b = s, c = *b; b &&
-+ ((c < '\016' && ((c == '\012' && ++i)
-+ ||(c == '\015' && *(b+1) == '\012' && ++b && (i +=2))))
-+ || b < t); i++, c= *++b);
-+ elt->rfc822_size = i;
-+ fs_give ((void **) &s);
-+ close(LOCAL->fd); LOCAL->fd = -1;
-+ }
-+ return elt->rfc822_size;
-+ }
-+
-+ int
-+ maildir_update_elt_maildirp(MAILSTREAM *stream, unsigned long msgno)
-+ {
-+ char tmp[MAILTMPLEN];
-+ struct direct **names = NIL;
-+ unsigned long i, nfiles, pos;
-+ int d = 0, f = 0 , r = 0, s = 0, t = 0, in_list, scan_err;
-+ MESSAGECACHE *elt;
-+
-+ MDFLD(tmp, LOCAL->dir, Cur);
-+
-+ maildir_scandir (tmp, &names, &nfiles, &scan_err, CCLIENT);
-+
-+ elt = mail_elt (stream,msgno);
-+
-+ in_list = nfiles > 0L
-+ ? maildir_message_in_list(MDFILE(elt), names, 0L, nfiles - 1L, &pos)
-+ : NIL;
-+
-+ if (in_list && pos >= 0L && pos < nfiles
-+ && !strcmp(MDFILE(elt), names[pos]->d_name)){
-+ in_list = NIL;
-+ maildir_abort(stream);
-+ }
-+
-+ if (in_list && pos >= 0L && pos < nfiles){
-+ maildir_free_file_only((void **)&elt->private.spare.ptr);
-+ MDFILE(elt) = cpystr(names[pos]->d_name);
-+ maildir_getflag(MDFILE(elt), &d, &f, &r ,&s, &t);
-+ if (elt->draft != d || elt->flagged != f ||
-+ elt->answered != r || elt->seen != s || elt->deleted != t){
-+ elt->draft = d; elt->flagged = f; elt->answered = r;
-+ elt->seen = s; elt->deleted = t;
-+ MM_FLAGS(stream, msgno);
-+ }
-+ }
-+ for (i = 0L; i < nfiles; i++)
-+ fs_give((void **) &names[i]);
-+ if (names)
-+ fs_give((void **) &names);
-+ return in_list ? 1 : -1;
-+ }
-+
-+ /* Maildir fetch message header */
-+
-+ char *maildir_header (MAILSTREAM *stream,unsigned long msgno,
-+ unsigned long *length, long flags)
-+ {
-+ char tmp[MAILTMPLEN], *s;
-+ MESSAGECACHE *elt;
-+ static int try = 0;
-+
-+ if (length) *length = 0;
-+ if (flags & FT_UID || !LOCAL) return ""; /* UID call "impossible" */
-+ elt = mail_elt (stream,msgno);
-+ if(elt->private.msg.header.text.size == 0)
-+ maildir_parse_message(stream, msgno, MDLOC(elt));
-+
-+ MSGPATH(tmp, LOCAL->dir, MDFILE(elt), MDLOC(elt));
-+ if (LOCAL->fd < 0)
-+ LOCAL->fd = open (tmp,O_RDONLY,NIL);
-+
-+ if (LOCAL->fd < 0 && errno == EACCES){
-+ mm_log ("Message exists but can not be read. Envelope and body lost!",ERROR);
-+ return NULL;
-+ }
-+
-+ if (LOCAL->fd < 0){ /* flag change? */
-+ if (try < 5){
-+ try++;
-+ if (maildir_update_elt_maildirp(stream, msgno) > 0)
-+ try = 0;
-+ return maildir_header(stream, msgno, length, flags);
-+ }
-+ try = 0;
-+ return NULL;
-+ }
-+
-+ if (flags & FT_INTERNAL){
-+ if(elt->private.msg.header.text.size > LOCAL->buflen){
-+ fs_give ((void **) &LOCAL->buf);
-+ LOCAL->buf = (char *) fs_get ((LOCAL->buflen =
-+ elt->private.msg.header.text.size) + 1);
-+ }
-+ read (LOCAL->fd, (void *)LOCAL->buf, elt->private.msg.header.text.size);
-+ LOCAL->buf[*length = elt->private.msg.header.text.size] = '\0';
-+ }
-+ else{
-+ s = (char *) fs_get(elt->private.msg.header.text.size+1);
-+ read (LOCAL->fd, (void *)s, elt->private.msg.header.text.size);
-+ s[elt->private.msg.header.text.size] = '\0';
-+ *length = strcrlfcpy (&LOCAL->buf,&LOCAL->buflen,s,
-+ elt->private.msg.header.text.size);
-+ fs_give ((void **) &s);
-+ }
-+ elt->private.msg.text.offset = elt->private.msg.header.text.size;
-+ elt->private.msg.text.text.size = MDSIZE(elt) - elt->private.msg.text.offset;
-+ close(LOCAL->fd); LOCAL->fd = -1;
-+ return LOCAL->buf;
-+ }
-+
-+ /* Maildir find list of subscribed mailboxes
-+ * Accepts: mail stream
-+ * pattern to search
-+ */
-+
-+ void maildir_list (MAILSTREAM *stream,char *ref, char *pat)
-+ {
-+ char *s,test[MAILTMPLEN],file[MAILTMPLEN];
-+ long i = 0L;
-+
-+ if((!pat || !*pat) && maildir_canonicalize (test,ref,"*")
-+ && maildir_valid_name(test)){ /* there is a #md/ leading here */
-+ for (i = 3L; test[i] && test[i] != '/'; i++);
-+ if ((s = strchr (test+i+1,'/')) != NULL) *++s = '\0';
-+ else test[0] = '\0';
-+ mm_list (stream,'/',test, LATT_NOSELECT);
-+ }
-+ else if (maildir_canonicalize (test,ref,pat)) {
-+ if (test[3] == '/') { /* looking down levels? */
-+ /* yes, found any wildcards? */
-+ if ((s = strpbrk (test,"%*")) != NULL){
-+ /* yes, copy name up to that point */
-+ strncpy (file,test+4,i = s - (test+4));
-+ file[i] = '\0'; /* tie off */
-+ }
-+ else strcpy (file,test+4);/* use just that name then */
-+ /* find directory name */
-+ if ((s = strrchr (file, '/')) != NULL){
-+ *s = '\0'; /* found, tie off at that point */
-+ s = file;
-+ }
-+ /* do the work */
-+ if(IS_COURIER(test))
-+ courier_list_work (stream,s,test,0);
-+ else
-+ maildir_list_work (stream,s,test,0);
-+ }
-+ /* always an INBOX */
-+ if (!compare_cstring (test,"#MD/INBOX"))
-+ mm_list (stream,NIL,"#MD/INBOX",LATT_NOINFERIORS);
-+ if (!compare_cstring (test,"#MC/INBOX"))
-+ mm_list (stream,NIL,"#MC/INBOX",LATT_NOINFERIORS);
-+ }
-+ }
-+
-+ void courier_list (MAILSTREAM *stream,char *ref, char *pat)
-+ {
-+ /* I am too lazy to do anything. Do you care to ask maildir list, please?
-+ The real reason why this is a dummy function is because we do not want to
-+ see the same folder listed twice.
-+ */
-+ }
-+
-+ /* For those that want to hide things, we give them a chance to do so */
-+ void *maildir_parameters (long function, void *value)
-+ {
-+ void *ret = NIL;
-+ switch ((int) function) {
-+ case SET_MDINBOXPATH:
-+ if(strlen((char *) value ) > 49)
-+ strcpy(myMdInboxDir, "Maildir");
-+ else
-+ strcpy(myMdInboxDir, (char *) value);
-+ case GET_MDINBOXPATH:
-+ if (myMdInboxDir[0] == '\0') strcpy(myMdInboxDir,"Maildir");
-+ ret = (void *) myMdInboxDir;
-+ break;
-+ case SET_COURIERSTYLE:
-+ CourierStyle = (long) value;
-+ case GET_COURIERSTYLE:
-+ ret = (void *) CourierStyle;
-+ break;
-+ case GET_DIRFMTTEST:
-+ ret = (void *) maildir_dirfmttest;
-+ break;
-+ default:
-+ break;
-+ }
-+ return ret;
-+ }
-+
-+ int maildir_create_folder(char *mailbox)
-+ {
-+ char tmp[MAILTMPLEN], err[MAILTMPLEN];
-+ int i;
-+
-+ for (i = Cur; i != EndDir; i++){
-+ MDFLD(tmp, mailbox, i);
-+ if (mkdir(tmp, 0700) && errno != EEXIST){ /* try to make new dir */
-+ sprintf (err, "Can't create %s: %s", tmp, strerror(errno));
-+ mm_log (err,ERROR);
-+ return NIL;
-+ }
-+ }
-+ return T;
-+ }
-+
-+ int maildir_create_work(char *mailbox, int loop)
-+ {
-+ char *s, c, err[MAILTMPLEN], tmp[MAILTMPLEN], tmp2[MAILTMPLEN], mbx[MAILTMPLEN];
-+ int fnlen, create_dir = 0, courier, mv;
-+ struct stat sbuf;
-+ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL);
-+
-+ courier = IS_COURIER(mailbox);
-+ strcpy(mbx, mailbox);
-+ mv = maildir_valid(mbx) ? 1 : 0;
-+ maildir_file_path(mailbox, tmp);
-+ if (mailbox[strlen(mailbox) - 1] == MDSEPARATOR(courier)){
-+ create_dir++;
-+ mailbox[strlen(mailbox) - 1] = '\0';
-+ }
-+
-+ if(!loop && courier){
-+ if(mv){
-+ if(create_dir){
-+ if(style == CCLIENT)
-+ strcpy (err,"Can not create directory: folder exists. Create subfolder");
-+ else
-+ strcpy(err,"Folder and Directory already exist");
-+ }
-+ else
-+ strcpy (err, "Can't create mailbox: mailbox already exists");
-+ }
-+ else{
-+ if(create_dir)
-+ strcpy(err, "Can not create directory. Cread folder instead");
-+ else
-+ err[0] = '\0';
-+ }
-+ if(err[0]){
-+ mm_log (err,ERROR);
-+ return NIL;
-+ }
-+ }
-+
-+ fnlen = strlen(tmp);
-+ if ((s = strrchr(mailbox,MDSEPARATOR(courier))) != NULL){
-+ c = *++s;
-+ *s = '\0';
-+ if ((stat(tmp,&sbuf) || ((sbuf.st_mode & S_IFMT) != S_IFDIR)) &&
-+ !maildir_create_work (mailbox, ++loop))
-+ return NIL;
-+ *s = c;
-+ }
-+ tmp[fnlen] = '\0';
-+
-+ if (mkdir(tmp,0700) && errno != EEXIST)
-+ return NIL;
-+
-+ if (create_dir)
-+ mailbox[fnlen] = '/';
-+
-+ if (create_dir){
-+ if(style == CCLIENT){
-+ if(!courier){
-+ FILE *fp = NULL;
-+ sprintf(tmp2,"%s%s", tmp, MDDIR);
-+ if ((fp = fopen(tmp2,"w")) == NULL){
-+ sprintf (err,"Problem creating %s: %s", tmp2, strerror(errno));
-+ mm_log (err,ERROR);
-+ return NIL;
-+ }
-+ fclose(fp);
-+ }
-+ }
-+ return T;
-+ }
-+ else
-+ return maildir_create_folder(tmp);
-+ }
-+
-+ long maildir_create (MAILSTREAM *stream,char *mailbox)
-+ {
-+ char tmp[MAILTMPLEN], err[MAILTMPLEN];
-+ int rv, create_dir;
-+
-+ create_dir = mailbox ?
-+ (mailbox[strlen(mailbox) - 1] ==
-+ MDSEPARATOR(IS_COURIER(mailbox))) : 0;
-+ maildir_file_path(mailbox, tmp);
-+ strcpy(tmp, mailbox);
-+ rv = maildir_create_work(mailbox, 0);
-+ strcpy(mailbox, tmp);
-+ if (rv == 0){
-+ sprintf (err,"Can't create %s %s",
-+ (create_dir ? "directory" : "mailbox"), mailbox);
-+ mm_log (err,ERROR);
-+ }
-+ return rv ? LONGT : NIL;
-+ }
-+
-+ #define MAXTRY 10000
-+ void maildir_flagmsg (MAILSTREAM *stream,MESSAGECACHE *elt)
-+ {
-+ char oldfile[MAILTMPLEN],newfile[MAILTMPLEN],fn[MAILTMPLEN];
-+ char *s;
-+ int ren, try = 0;
-+
-+ if (elt->valid){
-+ for (try = 1; try > 0 && try < MAXTRY; try++){
-+ /* build the new filename */
-+ sprintf (oldfile,"%s/%s",LOCAL->curdir, MDFILE(elt));
-+ fn[0] = '\0';
-+ if ((ren = maildir_message_exists(stream, MDFILE(elt), fn)) == 0){
-+ errno = ENOENT;
-+ try = MAXTRY;
-+ }
-+ if (*fn) /* new oldfile! */
-+ sprintf (oldfile,"%s/%s",LOCAL->curdir,fn);
-+ if ((s = strrchr (MDFILE(elt), FLAGSEP))) *s = '\0';
-+ sprintf (fn,"%s%s%s%s%s%s%s", MDFILE(elt), MDSEP(2),
-+ MDFLAG(Draft, elt->draft), MDFLAG(Flagged, elt->flagged),
-+ MDFLAG(Replied, elt->answered), MDFLAG(Seen, elt->seen),
-+ MDFLAG(Trashed, elt->deleted));
-+ sprintf (newfile,"%s/%s",LOCAL->curdir,fn);
-+ if (ren != 0 && rename (oldfile,newfile) >= 0)
-+ try = -1;
-+ }
-+
-+ if (try > 0){
-+ sprintf(oldfile,"Unable to write flags to disk: %s",
-+ (errno == ENOENT) ? "message is gone!" : strerror (errno));
-+ mm_log(oldfile,ERROR);
-+ return;
-+ }
-+ #ifdef __CYGWIN__
-+ utime(LOCAL->curdir, NIL); /* make sure next scan will catch the change */
-+ #endif
-+ maildir_free_file_only ((void **) &elt->private.spare.ptr);
-+ MDFILE(elt) = cpystr (fn);
-+ }
-+ }
-+
-+ long maildir_expunge (MAILSTREAM *stream, char *sequence, long options)
-+ {
-+ long ret;
-+ MESSAGECACHE *elt;
-+ unsigned long i, n = 0L;
-+ unsigned long recent = stream->recent;
-+ char tmp[MAILTMPLEN];
-+
-+ mm_critical (stream); /* go critical */
-+ ret = sequence ? ((options & EX_UID) ?
-+ mail_uid_sequence (stream,sequence) :
-+ mail_sequence (stream,sequence)) : LONGT;
-+ if(ret == 0L)
-+ return 0L;
-+ for (i = 1L; i <= stream->nmsgs;){
-+ elt = mail_elt (stream,i);
-+ if (elt->deleted && (sequence ? elt->sequence : T)){
-+ sprintf (tmp,"%s/%s",LOCAL->curdir, MDFILE(elt));
-+ if (unlink (tmp) < 0) {/* try to delete the message */
-+ sprintf (tmp,"Expunge of message %ld failed, aborted: %s",i,
-+ strerror (errno));
-+ if (!stream->silent)
-+ mm_log (tmp,WARN);
-+ break;
-+ }
-+ if (elt->private.spare.ptr)
-+ maildir_free_file ((void **) &elt->private.spare.ptr);
-+ if (elt->recent) --recent;/* if recent, note one less recent message */
-+ mail_expunged (stream,i); /* notify upper levels */
-+ n++; /* count up one more expunged message */
-+ }
-+ else i++;
-+ }
-+ if(n){ /* output the news if any expunged */
-+ sprintf (tmp,"Expunged %ld messages",n);
-+ if (!stream->silent)
-+ mm_log (tmp,(long) NIL);
-+ }
-+ else
-+ if (!stream->silent)
-+ mm_log ("No messages deleted, so no update needed",(long) NIL);
-+ mm_nocritical (stream); /* release critical */
-+ /* notify upper level of new mailbox size */
-+ mail_exists (stream,stream->nmsgs);
-+ mail_recent (stream,recent);
-+ return ret;
-+ }
-+
-+ long maildir_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options)
-+ {
-+ STRING st;
-+ MESSAGECACHE *elt;
-+ unsigned long len;
-+ int fd;
-+ unsigned long i;
-+ struct stat sbuf;
-+ char tmp[MAILTMPLEN], flags[MAILTMPLEN], path[MAILTMPLEN], *s;
-+ /* copy the messages */
-+ if ((options & CP_UID) ? mail_uid_sequence (stream, sequence) :
-+ mail_sequence (stream,sequence))
-+ for (i = 1L; i <= stream->nmsgs; i++)
-+ if ((elt = mail_elt (stream,i))->sequence){
-+ MSGPATH(path, LOCAL->dir, MDFILE(elt), MDLOC(elt));
-+ if (((fd = open (path,O_RDONLY,NIL)) < 0)
-+ ||((!elt->rfc822_size &&
-+ ((stat(path, &sbuf) < 0) || !S_ISREG (sbuf.st_mode)))))
-+ return NIL;
-+ if(!elt->rfc822_size)
-+ MDSIZE(elt) = sbuf.st_size;
-+ s = (char *) fs_get(MDSIZE(elt) + 1);
-+ read (fd,s,MDSIZE(elt));
-+ s[MDSIZE(elt)] = '\0';
-+ close (fd);
-+ len = strcrlfcpy (&LOCAL->buf,&LOCAL->buflen, s, MDSIZE(elt));
-+ INIT (&st,mail_string, LOCAL->buf, len);
-+ elt->rfc822_size = len;
-+ fs_give ((void **)&s);
-+
-+ flags[0] = flags[1] = '\0';
-+ if (elt->seen) strcat (flags," \\Seen");
-+ if (elt->draft) strcat (flags," \\Draft");
-+ if (elt->deleted) strcat (flags," \\Deleted");
-+ if (elt->flagged) strcat (flags," \\Flagged");
-+ if (elt->answered) strcat (flags," \\Answered");
-+ flags[0] = '('; /* open list */
-+ strcat (flags,")"); /* close list */
-+ mail_date (tmp,elt); /* generate internal date */
-+ if (!mail_append_full (NIL,mailbox,flags,tmp,&st))
-+ return NIL;
-+ if (options & CP_MOVE) elt->deleted = T;
-+ }
-+ return LONGT; /* return success */
-+ }
-+
-+ long maildir_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
-+ {
-+ int fd, k;
-+ STRING *message;
-+ char c,*s, *flags, *date;
-+ char tmp[MAILTMPLEN],file[MAILTMPLEN],path1[MAILTMPLEN],path2[MAILTMPLEN];
-+ MESSAGECACHE elt;
-+ long i, size = 0L, ret = LONGT, f;
-+ unsigned long uf, ti;
-+ static unsigned int transact = 0;
-+
-+ if (!maildir_valid(mailbox)) {
-+ sprintf (tmp,"Not a valid Maildir mailbox: %s",mailbox);
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+
-+ if (!*mdlocaldomain)
-+ md_domain_name(); /* get domain name for maildir files in mdlocaldomain now! */
-+
-+ if (mypid == (pid_t) 0)
-+ mypid = getpid();
-+
-+ if (!stream){
-+ stream = &maildirproto;
-+
-+ for (k = 0; k < NUSERFLAGS && stream->user_flags[k]; ++k)
-+ fs_give ((void **) &stream->user_flags[k]);
-+ }
-+
-+ if (!(*af) (stream,data,&flags,&date,&message)) return NIL;
-+
-+ mm_critical (stream); /* go critical */
-+ /* call time(0) only once, use transact to distinguish instead */
-+ ti = time(0);
-+ do {
-+ if (!SIZE (message)) { /* guard against zero-length */
-+ mm_log ("Append of zero-length message",ERROR);
-+ ret = NIL;
-+ break;
-+ }
-+ if (date && !mail_parse_date(&elt,date)){
-+ sprintf (tmp,"Bad date in append: %.80s",date);
-+ mm_log (tmp,ERROR);
-+ ret = NIL;
-+ break;
-+ }
-+ f = mail_parse_flags (stream,flags,&uf);
-+ /* build file name we will use */
-+ sprintf (file,"%lu.%d_%09u.%s%s%s%s%s%s",
-+ ti, mypid, transact++, mdlocaldomain, (f ? MDSEP(2) : ""),
-+ MDFLAG(Draft, f&fDRAFT), MDFLAG(Flagged, f&fFLAGGED),
-+ MDFLAG(Replied, f&fANSWERED), MDFLAG(Seen, f&fSEEN));
-+ /* build tmp file name */
-+ if (maildir_file_path(mailbox, tmp))
-+ MSGPATH(path1, tmp, file, Tmp);
-+
-+ if ((fd = open (path1,O_WRONLY|O_CREAT|O_EXCL,S_IREAD|S_IWRITE)) < 0) {
-+ sprintf (tmp, "Can't open append mailbox: %s", strerror (errno));
-+ mm_log (tmp, ERROR);
-+ return NIL;
-+ }
-+ for (size = 0,i = SIZE (message),s = (char *) fs_get (i + 1); i; --i)
-+ if ((c = SNX (message)) != '\015') s[size++] = c;
-+ if ((write (fd, s, size) < 0) || fsync (fd)) {
-+ unlink (path1); /* delete message */
-+ sprintf (tmp, "Message append failed: %s", strerror (errno));
-+ mm_log (tmp, ERROR);
-+ ret = NIL;
-+ }
-+ fs_give ((void **) &s); /* flush the buffer */
-+ close (fd); /* close the file */
-+ /* build final filename to use */
-+ if (maildir_file_path(mailbox, tmp))
-+ MSGPATH(path2, tmp, file, New);
-+ if (rename (path1,path2) < 0) {
-+ sprintf (tmp, "Message append failed: %s", strerror (errno));
-+ mm_log (tmp, ERROR);
-+ ret = NIL;
-+ }
-+ unlink (path1);
-+
-+ if (ret)
-+ if (!(*af) (stream,data,&flags,&date,&message)) ret = NIL;
-+
-+ } while (ret && message); /* write the data */
-+ mm_nocritical (stream); /* release critical */
-+ return ret;
-+ }
-+
-+ long maildir_delete (MAILSTREAM *stream,char *mailbox)
-+ {
-+ DIR *dirp;
-+ struct direct *d;
-+ int i, remove_dir = 0, mddir = 0, rv, error = 0;
-+ char tmp[MAILTMPLEN],tmp2[MAILTMPLEN], realname[MAILTMPLEN];
-+ struct stat sbuf;
-+ int courier = IS_COURIER(mailbox);
-+
-+ if (mailbox[strlen(mailbox) - 1] == MDSEPARATOR(courier)){
-+ remove_dir++;
-+ mailbox[strlen(mailbox) -1] = '\0';
-+ }
-+
-+ if (!maildir_valid(mailbox)){
-+ maildir_file_path(mailbox, tmp);
-+ if (stat(tmp, &sbuf) < 0 || !S_ISDIR(sbuf.st_mode)){
-+ sprintf(tmp,"Can not remove %s", mailbox);
-+ error++;
-+ }
-+ }
-+
-+ if (!error && remove_dir && !maildir_dir_is_empty(mailbox)){
-+ sprintf(tmp,"Can not remove directory %s/: directory not empty", mailbox);
-+ error++;
-+ }
-+
-+ if(error){
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+
-+ maildir_close(stream,0); /* even if stream was NULL */
-+
-+ maildir_file_path(mailbox, realname);
-+
-+ if (remove_dir){
-+ sprintf(tmp,"%s/%s", realname, MDDIR);
-+ if ((rv = stat (tmp,&sbuf)) == 0 && S_ISREG(sbuf.st_mode))
-+ rv = unlink(tmp);
-+ else if (errno == ENOENT)
-+ rv = 0;
-+ if (rv != 0){
-+ sprintf(tmp,"Can not remove %s/%s: %s", tmp2, MDDIR, strerror(errno));
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+ if (!maildir_valid(realname) && rmdir(realname) != 0){
-+ sprintf(tmp,"Can not remove %s/: %s", mailbox, strerror(errno));
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+ return LONGT;
-+ }
-+ /* else remove just the folder. Remove all hidden files, except MDDIR */
-+ for (i = Cur; i != EndDir; i++){
-+ MDFLD(tmp, realname, i);
-+
-+ if (!(dirp = opendir (tmp))){
-+ sprintf(tmp,"Can not read %s/: %s", mailbox, strerror(errno));
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+
-+ while ((d = readdir(dirp)) != NULL){
-+ if (strcmp(d->d_name, ".") && strcmp(d->d_name,"..")){
-+ sprintf(tmp2,"%s/%s", tmp, d->d_name);
-+ if (unlink(tmp2) != 0){
-+ sprintf(tmp2,"Can not remove %s: %s", mailbox, strerror(errno));
-+ mm_log (tmp2,ERROR);
-+ return NIL;
-+ }
-+ }
-+ }
-+ closedir(dirp);
-+ if (rmdir(tmp) != 0){
-+ sprintf(tmp,"Can not remove %s: %s", mailbox, strerror(errno));
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+ }
-+ /*
-+ * ok we have removed all subdirectories of the folder mailbox, Remove the
-+ * hidden files.
-+ */
-+
-+ if(!(dirp = opendir (realname))){
-+ sprintf(tmp,"Can not read %s/: %s", realname, strerror(errno));
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+
-+ while ((d = readdir(dirp)) != NULL){
-+ if (strcmp(d->d_name, ".") && strcmp(d->d_name,"..")
-+ && (!strcmp(d->d_name, MDDIR)
-+ || !strncmp(d->d_name, MDUIDLAST, strlen(MDUIDLAST))
-+ || !strncmp(d->d_name, MDUIDTEMP, strlen(MDUIDTEMP)))){
-+ if(strcmp(d->d_name, MDDIR) == 0)
-+ mddir++;
-+ sprintf(tmp,"%s/%s", realname, d->d_name);
-+ if (unlink(tmp) != 0)
-+ error++;
-+ }
-+ }
-+ closedir(dirp);
-+ if (error ||
-+ (maildir_dir_is_empty(mailbox) && mddir == 0 && rmdir(realname) < 0)){
-+ sprintf(tmp,"Can not remove folder %s: %s", mailbox, strerror(errno));
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+ return LONGT;
-+ }
-+
-+ long maildir_rename (MAILSTREAM *stream, char *old, char *new)
-+ {
-+ char tmp[MAILTMPLEN],tmpnew[MAILTMPLEN], realold[MAILTMPLEN];
-+ char realnew[MAILTMPLEN];
-+ int courier = IS_COURIER(old) && IS_COURIER(new);
-+ int i;
-+ long rv = LONGT;
-+ COURIER_S *cdir;
-+
-+ if((IS_COURIER(old) || IS_COURIER(new)) && !courier){
-+ sprintf (tmp,"Can't rename mailbox %s to %s",old, new);
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+
-+ if (!maildir_valid(old)){
-+ sprintf (tmp,"Can't rename mailbox %s: folder not in maildir format",old);
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+ maildir_file_path(old, realold);
-+ if (!maildir_valid_name(new) && new[0] == '#'){
-+ sprintf (tmp,"Can't rename mailbox %s: folder not in maildir format",new);
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+ maildir_file_path(new, realnew);
-+ if (access(tmpnew,F_OK) == 0){ /* new mailbox name must not exist */
-+ sprintf (tmp,"Can't rename to mailbox %s: destination already exists",new);
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+
-+ if(!courier){
-+ if (rename (realold,realnew)){ /* try to rename the directory */
-+ sprintf (tmp,"Can't rename mailbox %s to %s: %s",old, new,
-+ strerror(errno));
-+ mm_log (tmp,ERROR);
-+ return NIL;
-+ }
-+ return LONGT; /* return success */
-+ }
-+
-+ cdir = courier_list_dir(old);
-+ for (i = 0; cdir && i < cdir->total; i++){
-+ if(strstr(cdir->data[i]->name, old)){
-+ sprintf(tmp,"%s%s", new, cdir->data[i]->name+strlen(old));
-+ maildir_file_path(cdir->data[i]->name, realold);
-+ maildir_file_path(tmp, realnew);
-+ if (rename (realold,realnew)){
-+ sprintf (tmp,"Can't rename mailbox %s to %s: %s",old, new,
-+ strerror(errno));
-+ mm_log (tmp,ERROR);
-+ rv = NIL;
-+ }
-+ }
-+ }
-+ courier_free_cdir(&cdir);
-+ return rv;
-+ }
-+
-+ long maildir_sub (MAILSTREAM *stream,char *mailbox)
-+ {
-+ return sm_subscribe (mailbox);
-+ }
-+
-+ long maildir_unsub (MAILSTREAM *stream,char *mailbox)
-+ {
-+ return sm_unsubscribe (mailbox);
-+ }
-+
-+ void maildir_lsub (MAILSTREAM *stream,char *ref,char *pat)
-+ {
-+ void *sdb = NIL;
-+ char *s, test[MAILTMPLEN];
-+ /* get canonical form of name */
-+ if (maildir_canonicalize (test,ref,pat) && (s = sm_read (&sdb))) {
-+ do if (pmatch_full (s,test,'/')) mm_lsub (stream,'/',s,NIL);
-+ while ((s = sm_read (&sdb)) != NULL); /* until no more subscriptions */
-+ }
-+ }
-+
-+ long maildir_canonicalize (char *pattern,char *ref,char *pat)
-+ {
-+ if (ref && *ref) { /* have a reference */
-+ strcpy (pattern,ref); /* copy reference to pattern */
-+ /* # overrides mailbox field in reference */
-+ if (*pat == '#') strcpy (pattern,pat);
-+ /* pattern starts, reference ends, with / */
-+ else if ((*pat == '/') && (pattern[strlen (pattern) - 1] == '/'))
-+ strcat (pattern,pat + 1); /* append, omitting one of the period */
-+
-+ else strcat (pattern,pat); /* anything else is just appended */
-+ }
-+ else strcpy (pattern,pat); /* just have basic name */
-+ return maildir_valid_name(pattern) ? LONGT : NIL;
-+ }
-+
-+ void maildir_list_work (MAILSTREAM *stream,char *dir,char *pat,long level)
-+ {
-+ DIR *dp;
-+ struct direct *d;
-+ struct stat sbuf;
-+ char curdir[MAILTMPLEN],name[MAILTMPLEN], tmp[MAILTMPLEN];
-+ char realpat[MAILTMPLEN];
-+ long i;
-+ char *maildirpath = mdirpath();
-+
-+ sprintf(curdir,"%s/%s/", myrootdir(pat), dir ? dir : maildirpath);
-+ if ((dp = opendir (curdir)) != NULL){
-+ if (dir) sprintf (name,"%s%s/",MDPREFIX(CCLIENT),dir);
-+ else strcpy (name, pat);
-+
-+ if (level == 0 && !strpbrk(pat,"%*")){
-+ if(maildir_valid(pat)){
-+ i = maildir_contains_folder(pat, NULL)
-+ ? LATT_HASCHILDREN
-+ : (maildir_is_dir(pat, NULL)
-+ ? LATT_HASNOCHILDREN : LATT_NOINFERIORS);
-+ maildir_file_path(pat, realpat);
-+ i += maildir_any_new_msgs(realpat)
-+ ? LATT_MARKED : LATT_UNMARKED;
-+ mm_list (stream,'/', pat, i);
-+ }
-+ else
-+ if(pat[strlen(pat) - 1] == '/')
-+ mm_list (stream,'/', pat, LATT_NOSELECT);
-+ }
-+
-+ while ((d = readdir (dp)) != NULL)
-+ if(strcmp(d->d_name, ".") && strcmp(d->d_name,"..")
-+ && strcmp(d->d_name, MDNAME(Cur))
-+ && strcmp(d->d_name, MDNAME(Tmp))
-+ && strcmp(d->d_name, MDNAME(New))){
-+
-+ if (dir) sprintf (tmp,"%s%s", name,d->d_name);
-+ else strcpy(tmp, d->d_name);
-+
-+ if(pmatch_full (tmp, pat,'/')){
-+ sprintf(tmp,"%s/%s/%s", myrootdir(d->d_name),
-+ (dir ? dir : maildirpath), d->d_name);
-+ if(stat (tmp,&sbuf) == 0
-+ && ((sbuf.st_mode & S_IFMT) == S_IFDIR)){
-+ if (dir) sprintf (tmp,"%s%s", name,d->d_name);
-+ else strcpy(tmp, d->d_name);
-+ i = maildir_valid(tmp)
-+ ? (maildir_contains_folder(dir, d->d_name)
-+ ? LATT_HASCHILDREN
-+ : (maildir_is_dir(dir, d->d_name)
-+ ? LATT_HASNOCHILDREN : LATT_NOINFERIORS))
-+ : LATT_NOSELECT;
-+ i += maildir_any_new_msgs(tmp)
-+ ? LATT_MARKED : LATT_UNMARKED;
-+ mm_list (stream,'/',tmp, i);
-+ strcat (tmp, "/");
-+ if(dmatch (tmp, pat,'/') &&
-+ (level < (long) mail_parameters (NIL,GET_LISTMAXLEVEL,NIL))){
-+ sprintf(tmp,"%s/%s",dir,d->d_name);
-+ maildir_list_work (stream,tmp,pat,level+1);
-+ }
-+ }
-+ }
-+ }
-+ closedir (dp);
-+ }
-+ }
-+
-+ void courier_list_work (MAILSTREAM *stream, char *dir, char *pat, long level)
-+ {
-+ char c, curdir[MAILTMPLEN], tmp[MAILTMPLEN];
-+ char realname[MAILTMPLEN], realpat[MAILTMPLEN] = {'\0'};
-+ int i, found;
-+ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL), j;
-+ char *maildirpath = mdirpath();
-+ COURIER_S *cdir;
-+
-+ if(!strpbrk(pat,"%*")){ /* a mailbox */
-+ maildir_file_path(pat, curdir);
-+ i = strlen(curdir) - 1;
-+ if(curdir[i] == '/')
-+ curdir[i] = '\0';
-+ cdir = courier_list_dir(curdir);
-+ if(cdir){
-+ found = 0; j = 0L;
-+ if(maildir_valid_name(pat)){
-+ for(i = 0; !found && i < cdir->total; i++)
-+ if(strstr(curdir, cdir->data[i]->name)){
-+ if(strlen(curdir) < strlen(cdir->data[i]->name))
-+ found += 2;
-+ else if(strlen(curdir) == strlen(cdir->data[i]->name))
-+ found -= 1;
-+ }
-+ if(found > 0)
-+ j = LATT_HASCHILDREN;
-+ else if(found == 0)
-+ j = (style == COURIER) ? LATT_HASNOCHILDREN : LATT_NOINFERIORS;
-+ }
-+ else
-+ j = LATT_NOSELECT;
-+ j += maildir_any_new_msgs(curdir) ? LATT_MARKED : LATT_UNMARKED;
-+ if (found)
-+ mm_list (stream, '.', pat, j);
-+ courier_free_cdir(&cdir);
-+ }
-+ return;
-+ }
-+
-+ strcpy(tmp,pat + 4); /* a directory */
-+ j = strlen(pat) - 1;
-+ maildir_file_path(pat, realpat);
-+ c = pat[j];
-+ pat[j] = '\0';
-+ realname[0] = '\0';
-+ if(dir)
-+ maildir_file_path(dir, realname);
-+ sprintf(curdir,"%s%s%s/%s", (dir ? "" : myrootdir(pat)), (dir ? "" : "/"),
-+ (dir ? realname : maildirpath), (dir ? "" : "."));
-+ sprintf(tmp, "%s%s/.", MDPREFIX(COURIER), dir ? dir : maildirpath);
-+ if (level == 0 && tmp && pmatch_full (tmp, realpat, '.'))
-+ mm_list (stream,'.', tmp, LATT_NOSELECT);
-+
-+ cdir = courier_list_dir(pat);
-+ pat[j] = c;
-+ for (i = 0; cdir && i < cdir->total; i++)
-+ if(pmatch_full (cdir->data[i]->name, pat, '.')){
-+ sprintf(tmp, "%s.", cdir->data[i]->name);
-+ courier_list_info(&cdir, tmp, i);
-+ mm_list (stream,'.',cdir->data[i]->name, cdir->data[i]->attribute);
-+ }
-+ courier_free_cdir(&cdir);
-+ }
-+
-+ int
-+ same_maildir_file(char *name1, char *name2)
-+ {
-+ char tmp1[MAILTMPLEN], tmp2[MAILTMPLEN];
-+ char *s;
-+
-+ strcpy(tmp1, name1 ? name1 : "");
-+ strcpy(tmp2, name2 ? name2 : "");
-+ if ((s = strrchr(tmp1, FLAGSEP)) != NULL)
-+ *s = '\0';
-+ if (((s = strrchr(tmp1, SIZESEP)) != NULL) && (strchr(s,'.') == NULL))
-+ *s = '\0';
-+ if ((s = strrchr(tmp2, FLAGSEP)) != NULL)
-+ *s = '\0';
-+ if (((s = strrchr(tmp2, SIZESEP)) != NULL) && (strchr(s,'.') == NULL))
-+ *s = '\0';
-+
-+ return !strcmp(tmp1, tmp2);
-+ }
-+
-+ unsigned long antoul(char *seed)
-+ {
-+ int i, error = 0;
-+ unsigned long val = 0L, rv1 = 0L, t;
-+ char c, *p;
-+ if(!seed)
-+ return 0L;
-+ t = strtoul(seed, &p, 10);
-+ if(p && (*p == '.' || *p == '_'))
-+ return t;
-+ /* else */
-+ if((p = strchr(seed,'.')) != NULL)
-+ *p = '\0';
-+ error = (strlen(seed) > 6); /* too long */
-+ for(i= strlen(seed)-1; error == 0 && i >= 0; i--){
-+ c = seed[i];
-+ if (c >= 'A' && c <= 'Z') val = c - 'A';
-+ else if (c >= 'a' && c <= 'z') val = c - 'a' + 26;
-+ else if (c >= '0' && c <= '9') val = c - '0' + 26 + 26;
-+ else if (c == '-') val = c - '-' + 26 + 26 + 10;
-+ else if (c == '_') val = c - '_' + 26 + 26 + 10 + 1;
-+ else error++;
-+ rv1 = val + (rv1 << 6);
-+ }
-+ if(p)
-+ *p = '.';
-+ return error ? 0L : rv1;
-+ }
-+
-+ unsigned long mdfntoul (char *name)
-+ {
-+ unsigned long t;
-+ char *r, last;
-+
-+ if((*name == '_') && ((r = strpbrk(name,".,%+")) != NULL)){ /* Grrr!!! */
-+ last = *r;
-+ *r = '\0';
-+ t = antoul(r+1);
-+ *r = last;
-+ }
-+ else
-+ t = antoul(name);
-+ return t;
-+ }
-+
-+ int comp_maildir_file(char *name1, char *name2)
-+ {
-+ int uset1 = 1, uset2 = 1, i, j, cmp;
-+ unsigned long t1, t2;
-+ char *s1, *s2;
-+
-+ if (!(name1 && *name1))
-+ return (name2 && *name2) ? (*name2 == FLAGSEP ? 0 : -1) : 0;
-+
-+ if (!(name2 && *name2))
-+ return (name1 && *name1) ? (*name1 == FLAGSEP ? 0 : 1) : 0;
-+
-+ if((cmp = strcmp(name1,name2)) == 0)
-+ return 0;
-+
-+ t1 = strtoul(name1, &s1, 10);
-+ t2 = strtoul(name2, &s2, 10);
-+
-+ if(!s1 || *s1 != '.')
-+ uset1 = 0;
-+
-+ if(!s2 || *s2 != '.')
-+ uset2 = 0;
-+
-+ if(uset1 && uset2) /* normal sort order */
-+ return (t1 < t2) ? -1 : (t1 > t2 ? 1 : (cmp < 0 ? -1 : 1));
-+
-+ /* If we make it here we say Grrrr.... first, then we try to figure out
-+ * how to sort this mess.
-+ * These are the rules.
-+ * If there is a number at the beginning it is bigger than anything else.
-+ * If there are digits, then the number of digits decides which one is bigger.
-+ */
-+
-+ for(i = 0; isdigit(name1[i]); i++);
-+ for(j = 0; isdigit(name2[j]); j++);
-+
-+ return(uset1 ? 1
-+ : (uset2 ? -1
-+ : (i < j ? -1 : (i > j ? 1 : (cmp < 0 ? -1 : 1)))));
-+ }
-+
-+ void
-+ maildir_getflag(char *name, int *d, int *f, int *r ,int *s, int *t)
-+ {
-+ char tmp[MAILTMPLEN], *b;
-+ int offset = 0;
-+ int tmpd, tmpf, tmpr, tmps, tmpt;
-+
-+ if(d) *d = 0;
-+ if(f) *f = 0;
-+ if(r) *r = 0;
-+ if(s) *s = 0;
-+ if(t) *t = 0;
-+
-+ tmpd = tmpf = tmpr = tmps = tmpt = NIL; /* no flags set by default */
-+ strcpy(tmp,name);
-+ while ((b = strrchr(tmp+offset, FLAGSEP)) != NULL){
-+ char flag,last;
-+ int k;
-+ if (!++b) break;
-+ switch (*b){
-+ case '1':
-+ case '2':
-+ case '3': flag = *b; b += 2;
-+ for (k = 0; b[k] && b[k] != FLAGSEP && b[k] != ','; k++);
-+ last = b[k];
-+ b[k] = '\0';
-+ if (flag == '2' || flag == '3'){
-+ tmpd = strchr (b, MDFLAGC(Draft)) ? T : NIL;
-+ tmpf = strchr (b, MDFLAGC(Flagged)) ? T : NIL;
-+ tmpr = strchr (b, MDFLAGC(Replied)) ? T : NIL;
-+ tmps = strchr (b, MDFLAGC(Seen)) ? T : NIL;
-+ tmpt = strchr (b, MDFLAGC(Trashed)) ? T : NIL;
-+ }
-+ b[k] = last;
-+ b += k;
-+ for (; tmp[offset] && tmp[offset] != FLAGSEP; offset++);
-+ offset++;
-+ break;
-+ default: break; /* Should we crash?... Nahhh */
-+ }
-+ }
-+ if(d) *d = tmpd;
-+ if(f) *f = tmpf;
-+ if(r) *r = tmpr;
-+ if(s) *s = tmps;
-+ if(t) *t = tmpt;
-+ }
-+
-+ int
-+ maildir_message_in_list(char *msgname, struct direct **names,
-+ unsigned long bottom, unsigned long top, unsigned long *pos)
-+ {
-+ unsigned long middle = (bottom + top)/2;
-+ int test;
-+
-+ if (!msgname)
-+ return NIL;
-+
-+ if (pos) *pos = middle;
-+
-+ if (same_maildir_file(msgname, names[middle]->d_name))
-+ return T;
-+
-+ if (middle == bottom){ /* 0 <= 0 < 1 */
-+ int rv = NIL;
-+ if (same_maildir_file(msgname, names[middle]->d_name)){
-+ rv = T;
-+ if (pos) *pos = middle;
-+ }
-+ else
-+ if (same_maildir_file(msgname, names[top]->d_name)){
-+ rv = T;
-+ if (pos) *pos = top;
-+ }
-+ return rv;
-+ }
-+
-+ test = comp_maildir_file(msgname, names[middle]->d_name);
-+
-+ if (top <= bottom)
-+ return test ? NIL : T;
-+
-+ if (test < 0 ) /* bottom < msgname < middle */
-+ return maildir_message_in_list(msgname, names, bottom, middle, pos);
-+ else if (test > 0) /* middle < msgname < top */
-+ return maildir_message_in_list(msgname, names, middle, top, pos);
-+ else return T;
-+ }
-+
-+ void
-+ maildir_abort(MAILSTREAM *stream)
-+ {
-+ if (LOCAL){
-+ if(LOCAL->candouid)
-+ maildir_read_uid(stream, NULL, &stream->uid_validity);
-+ if (LOCAL->dir) fs_give ((void **) &LOCAL->dir);
-+ if (LOCAL->curdir) fs_give ((void **) &LOCAL->curdir);
-+ if (LOCAL->buf) fs_give ((void **) &LOCAL->buf);
-+ if(LOCAL->uidtempfile){
-+ unlink(LOCAL->uidtempfile);
-+ fs_give ((void **) &LOCAL->uidtempfile);
-+ }
-+ fs_give ((void **) &stream->local);
-+ }
-+ if (mdfpath) fs_give((void **)&mdfpath);
-+ stream->dtb = NIL;
-+ }
-+
-+ int
-+ maildir_contains_folder(char *dirname, char *name)
-+ {
-+ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN];
-+ int rv = 0;
-+ DIR *dir;
-+ struct direct *d;
-+
-+ maildir_file_path(dirname, tmp2);
-+ if(name){
-+ strcat(tmp2,"/");
-+ strcat(tmp2, name);
-+ }
-+
-+ if (!(dir = opendir (tmp2)))
-+ return NIL;
-+
-+ while ((d = readdir(dir)) != NULL){
-+ if (strcmp(d->d_name, ".") && strcmp(d->d_name,"..")
-+ && strcmp(d->d_name, MDNAME(Cur))
-+ && strcmp(d->d_name, MDNAME(Tmp))
-+ && strcmp(d->d_name, MDNAME(New))){
-+
-+ sprintf(tmp,"%s/%s", tmp2, d->d_name);
-+ if(maildir_valid(tmp)){
-+ rv++;
-+ break;
-+ }
-+ }
-+ }
-+ closedir(dir);
-+ return rv;
-+ }
-+
-+ int
-+ maildir_is_dir(char *dirname, char *name)
-+ {
-+ char tmp[MAILTMPLEN];
-+ struct stat sbuf;
-+
-+ maildir_file_path(dirname, tmp);
-+ if(name){
-+ strcat(tmp,"/");
-+ strcat(tmp,name);
-+ }
-+ strcat(tmp,"/");
-+ strcat(tmp,MDDIR);
-+
-+ return ((stat(tmp, &sbuf) == 0) && S_ISREG (sbuf.st_mode)) ? 1 : 0;
-+ }
-+
-+ int
-+ maildir_dir_is_empty(char *mailbox)
-+ {
-+ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN], tmp3[MAILTMPLEN],*s;
-+ int rv = 1, courier = IS_COURIER(mailbox);
-+ DIR *dir;
-+ struct direct *d;
-+ struct stat sbuf;
-+
-+ maildir_file_path(mailbox, tmp2);
-+
-+ if(courier){
-+ strcpy(tmp3, tmp2);
-+ if(s = strrchr(tmp2, '/'))
-+ *s = '\0';
-+ }
-+
-+ if (!(dir = opendir (tmp2)))
-+ return rv;
-+
-+ if(courier){
-+ while((d = readdir(dir)) != NULL){
-+ sprintf(tmp,"%s/%s", tmp2, d->d_name);
-+ if(!strncmp(tmp, tmp3, strlen(tmp3))
-+ && tmp[strlen(tmp3)] == '.'){
-+ rv = 0;
-+ break;
-+ }
-+ }
-+ }
-+ else
-+ while ((d = readdir(dir)) != NULL){
-+ sprintf(tmp,"%s/%s", tmp2, d->d_name);
-+ if (strcmp(d->d_name, ".")
-+ && strcmp(d->d_name,"..")
-+ && strcmp(d->d_name, MDNAME(Cur))
-+ && strcmp(d->d_name, MDNAME(Tmp))
-+ && strcmp(d->d_name, MDNAME(New))
-+ && strcmp(d->d_name, MDDIR)
-+ && strcmp(d->d_name, MDUIDVALIDITY)
-+ && !(d->d_name[0] == '.'
-+ && stat (tmp,&sbuf) == 0
-+ && S_ISREG(sbuf.st_mode))){
-+ rv = 0;
-+ break;
-+ }
-+ }
-+ closedir(dir);
-+ return rv;
-+ }
-+
-+ void
-+ maildir_get_file (MAILDIRFILE **mdfile)
-+ {
-+ MAILDIRFILE *md;
-+
-+ md = (MAILDIRFILE *) fs_get(sizeof(MAILDIRFILE));
-+ memset(md, 0, sizeof(MAILDIRFILE));
-+ *mdfile = md;
-+ }
-+
-+ void
-+ maildir_free_file (void **mdfile)
-+ {
-+ MAILDIRFILE *md = (mdfile && *mdfile) ? (MAILDIRFILE *) *mdfile : NULL;
-+
-+ if (md){
-+ if (md->name) fs_give((void **)&md->name);
-+ fs_give((void **)&md);
-+ }
-+ }
-+
-+ void
-+ maildir_free_file_only (void **mdfile)
-+ {
-+ MAILDIRFILE *md = (mdfile && *mdfile) ? (MAILDIRFILE *) *mdfile : NULL;
-+
-+ if (md && md->name)
-+ fs_give((void **)&md->name);
-+ }
-+
-+ int
-+ maildir_any_new_msgs(char *mailbox)
-+ {
-+ char tmp[MAILTMPLEN];
-+ int rv = NIL;
-+ DIR *dir;
-+ struct direct *d;
-+
-+ MDFLD(tmp, mailbox, New);
-+
-+ if (!(dir = opendir (tmp)))
-+ return rv;
-+
-+ while ((d = readdir(dir)) != NULL){
-+ if (d->d_name[0] == '.')
-+ continue;
-+ rv = T;
-+ break;
-+ }
-+ closedir(dir);
-+ return rv;
-+ }
-+
-+
-+ void
-+ maildir_get_date(MAILSTREAM *stream, unsigned long msgno)
-+ {
-+ MESSAGECACHE *elt;
-+ struct tm *t;
-+ time_t ti;
-+ int i,k;
-+
-+ elt = mail_elt (stream,msgno);
-+ if(elt && elt->year != 0)
-+ return;
-+ if ((ti = mdfntoul(MDFILE(elt))) > 0L && (t = gmtime(&ti))){
-+ i = t->tm_hour * 60 + t->tm_min;
-+ k = t->tm_yday;
-+ t = localtime(&ti);
-+ i = t->tm_hour * 60 + t->tm_min - i;
-+ if((k = t->tm_yday - k) != 0)
-+ i += ((k < 0) == (abs (k) == 1)) ? -24*60 : 24*60;
-+ k = abs (i);
-+ elt->hours = t->tm_hour;
-+ elt->minutes = t->tm_min;
-+ elt->seconds = t->tm_sec;
-+ elt->day = t->tm_mday; elt->month = t->tm_mon + 1;
-+ elt->year = t->tm_year - (BASEYEAR - 1900);
-+ elt->zoccident = (k == i) ? 0 : 1;
-+ elt->zhours = k/60;
-+ elt->zminutes = k % 60;
-+ }
-+ }
-+
-+ /* Support for Courier Style directories
-+ When this code is complete there will be two types of support, which
-+ will be configurable. The problem is the following: In Courier style
-+ folder structure, a "folder" may have a subfolder called
-+ "folder.subfolder", which is not natural in the file system in the
-+ sense that I can not stat for "folder.subfolder" wihtout knowing what
-+ "subfolder" is. It needs to be guessed. Because of this I need to look
-+ in the list of folders if there is a folder with a name
-+ "folder.subfolder", before I can say if the folder is dual or not. One
-+ can avoid this annoyance if one ignores the problem by declaring that
-+ every folder is dual. I will however code as the default the more
-+ complicated idea of scaning the containing directory each time it is
-+ modified and search for subfolders, and list the entries it found.
-+ */
-+
-+ int courier_dir_select (const struct direct *name)
-+ {
-+ return name->d_name[0] == '.' && (strlen(name->d_name) > 2
-+ || (strlen(name->d_name) == 2 && name->d_name[1] != '.'));
-+ }
-+
-+ int courier_dir_sort (const void *d1, const void *d2)
-+ {
-+ const struct direct *e1 = *(const struct direct **) d1;
-+ const struct direct *e2 = *(const struct direct **) d2;
-+
-+ return strcmp((char *) e1->d_name, (char *) e2->d_name);
-+ }
-+
-+ void courier_free_cdir (COURIER_S **cdir)
-+ {
-+ int i;
-+
-+ if (!*cdir)
-+ return;
-+
-+ if ((*cdir)->path) fs_give((void **)&((*cdir)->path));
-+ for (i = 0; i < (*cdir)->total; i++)
-+ if((*cdir)->data[i]->name) fs_give((void **)&((*cdir)->data[i]->name));
-+ fs_give((void **)&((*cdir)->data));
-+ fs_give((void **)&(*cdir));
-+ }
-+
-+ COURIER_S *courier_get_cdir (int total)
-+ {
-+ COURIER_S *cdir;
-+
-+ cdir = (COURIER_S *)fs_get(sizeof(COURIER_S));
-+ memset(cdir, 0, sizeof(COURIER_S));
-+ cdir->data = (COURIERLOCAL **) fs_get(total*sizeof(COURIERLOCAL *));
-+ memset(cdir->data, 0, sizeof(COURIERLOCAL *));
-+ cdir->total = total;
-+ return cdir;
-+ }
-+
-+ int courier_search_list(COURIERLOCAL **data, char *name, int first, int last)
-+ {
-+ int try = (first + last)/2;
-+
-+ if(!strstr(data[try]->name, name)){
-+ if(first == try) /* first == last || first + 1 == last */
-+ return strstr(data[last]->name, name) ? 1 : 0;
-+ if(strcmp(data[try]->name, name) < 0) /*data[try] < name < data[end] */
-+ return courier_search_list(data, name, try, last);
-+ else /* data[begin] < name < data[try] */
-+ return courier_search_list(data, name, first, try);
-+ }
-+ return 1;
-+ }
-+
-+ /* Lists all directories that are subdirectories of a given directory */
-+
-+ COURIER_S *courier_list_dir(char *curdir)
-+ {
-+ struct direct **names = NIL;
-+ struct stat sbuf;
-+ unsigned long ndir;
-+ COURIER_S *cdir = NULL;
-+ char tmp[MAILTMPLEN], tmp2[MAILTMPLEN], pathname[MAILTMPLEN],
-+ realname[MAILTMPLEN];
-+ int i, j, scand, td;
-+
-+ /* There are two cases, either curdir is
-+ #mc/INBOX. #mc/INBOX.foo
-+ or
-+ #mc/Maildir/. #mc/Maildir/.foo
-+ */
-+ strcpy(tmp,curdir + 4);
-+ if(!strncmp(ucase(tmp), "INBOX", 5))
-+ strcpy(tmp, "#mc/INBOX.");
-+ else{
-+ strcpy(tmp, curdir);
-+ for (i = strlen(tmp) - 1; tmp[i] && tmp[i] != '/'; i--);
-+ tmp[i+2] = '\0'; /* keep the last "." intact */
-+ }
-+ maildir_file_path(tmp, realname);
-+ maildir_scandir (realname, &names, &ndir, &scand, COURIER);
-+
-+ if (scand > 0){
-+ cdir = courier_get_cdir(ndir);
-+ cdir->path = cpystr(realname);
-+ for(i = 0, j = 0; i < ndir; i++){
-+ td = realname[strlen(realname) - 1] == '.'
-+ && *names[i]->d_name == '.';
-+ sprintf(tmp2,"%s%s", tmp, names[i]->d_name+1);
-+ sprintf(pathname,"%s%s", realname, names[i]->d_name + td);
-+ if(stat(pathname, &sbuf) == 0 && S_ISDIR(sbuf.st_mode)){
-+ cdir->data[j] = (COURIERLOCAL *) fs_get(sizeof(COURIERLOCAL));
-+ cdir->data[j++]->name = cpystr(tmp2);
-+ }
-+ fs_give((void **)&names[i]);
-+ }
-+ cdir->total = j;
-+ if(cdir->total == 0)
-+ courier_free_cdir(&cdir);
-+ }
-+ if(names)
-+ fs_give((void **) &names);
-+ return cdir;
-+ }
-+
-+ void
-+ courier_list_info(COURIER_S **cdirp, char *data, int i)
-+ {
-+ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL);
-+ COURIER_S *cdir = *cdirp;
-+
-+ if(maildir_valid(cdir->data[i]->name)){
-+ if(courier_search_list(cdir->data, data, 0, cdir->total - 1))
-+ cdir->data[i]->attribute = LATT_HASCHILDREN;
-+ else
-+ cdir->data[i]->attribute = (style == COURIER)
-+ ? LATT_HASNOCHILDREN : LATT_NOINFERIORS;
-+ }
-+ else
-+ cdir->data[i]->attribute = LATT_NOSELECT;
-+ cdir->data[i]->attribute += maildir_any_new_msgs(cdir->data[i]->name)
-+ ? LATT_MARKED : LATT_UNMARKED;
-+ }
-+
-+ /* UID Support */
-+ /* Yes, I know I procastinated a lot about this, but here it is finally */
-+
-+ unsigned int
-+ maildir_can_assign_uid (MAILSTREAM *stream)
-+ {
-+ unsigned int rv = 0;
-+ int createtemp;
-+ unsigned long t;
-+ char tmp[MAILTMPLEN], *s;
-+ DIR *dir;
-+ struct direct *d;
-+
-+ if(!stream || stream->rdonly
-+ || !LOCAL || !LOCAL->dir || !(dir = opendir(LOCAL->dir)))
-+ return rv;
-+
-+ sprintf(tmp, "%s.%d", MDUIDTEMP, mypid);
-+ while ((d = readdir(dir)) != NULL){
-+ if(!strncmp(d->d_name, tmp, strlen(tmp))
-+ || !strncmp(d->d_name, MDUIDTEMP, strlen(MDUIDTEMP)))
-+ break;
-+ }
-+ rv = d ? !strncmp(d->d_name, tmp, strlen(tmp)) : 1;
-+ createtemp = d ? 0 : 1;
-+ if (d && rv == 0){ /* is there a temp file that is not ours? */
-+ s = strrchr(d->d_name, '.');
-+ t = strtoul(s+1, &s, 10);
-+ if(s != NULL && *s != '\0')
-+ createtemp++;
-+ if(time(0) > t + MAXTEMPUID){
-+ createtemp++;
-+ sprintf(tmp,"%s/%s", LOCAL->dir, d->d_name);
-+ unlink(tmp);
-+ }
-+ }
-+ closedir(dir);
-+ if(createtemp){
-+ FILE *fp;
-+ sprintf(tmp,"%s/%s.%d.%lu", LOCAL->dir, MDUIDTEMP, mypid, time(0));
-+ if(fp = fopen(tmp, "w")){
-+ fclose(fp);
-+ if(LOCAL->uidtempfile)
-+ fs_give((void **)&LOCAL->uidtempfile);
-+ LOCAL->uidtempfile = cpystr(tmp);
-+ rv++;
-+ }
-+ }
-+ return rv;
-+ }
-+
-+ void
-+ maildir_read_uid(MAILSTREAM *stream, unsigned long *uid_last,
-+ unsigned long *uid_validity)
-+ {
-+ int createuid, deleteuid = 0;
-+ char tmp[MAILTMPLEN], *s = NULL;
-+ DIR *dir;
-+ struct direct *d;
-+
-+ if(uid_last) *uid_last = 0L;
-+ if(uid_last && uid_validity) *uid_validity = time(0);
-+ if(!stream || !LOCAL || !LOCAL->dir || !(dir = opendir(LOCAL->dir)))
-+ return;
-+
-+ while ((d = readdir(dir)) != NULL){
-+ if(!strncmp(d->d_name, MDUIDLAST, strlen(MDUIDLAST)))
-+ break;
-+ }
-+ createuid = d == NULL ? 1 : 0;
-+ if(uid_last == NULL)
-+ deleteuid++;
-+ if(d){
-+ if(uid_last){
-+ s = d->d_name + strlen(MDUIDLAST) + 1;
-+ *uid_last = strtoul(s, &s, 10);
-+ if(!s || *s != '.'){
-+ deleteuid++;
-+ createuid++;
-+ *uid_last = 0L;
-+ }
-+ }
-+ if(s && *s == '.'){
-+ if(uid_validity){
-+ s++;
-+ *uid_validity = strtoul(s, &s, 10);
-+ if(s && *s != '\0'){
-+ *uid_validity = time(0);
-+ deleteuid++;
-+ createuid++;
-+ }
-+ }
-+ }
-+ else{
-+ deleteuid++;
-+ createuid++;
-+ }
-+ }
-+ if(deleteuid){
-+ sprintf(tmp,"%s/%s", LOCAL->dir, d->d_name);
-+ unlink(tmp);
-+ }
-+ if(createuid)
-+ maildir_write_uid(stream, (uid_last ? *uid_last : stream->uid_last),
-+ uid_validity ? *uid_validity : time(0));
-+ closedir(dir);
-+ }
-+
-+ void
-+ maildir_write_uid(MAILSTREAM *stream, unsigned long uid_last,
-+ unsigned long uid_validity)
-+ {
-+ char tmp[MAILTMPLEN];
-+ FILE *fp;
-+
-+ if(!stream || stream->rdonly || !LOCAL || !LOCAL->dir)
-+ return;
-+
-+ sprintf(tmp,"%s/%s.%010lu.%010lu", LOCAL->dir, MDUIDLAST,
-+ uid_last, uid_validity);
-+ if(fp = fopen(tmp, "w"))
-+ fclose(fp);
-+ }
-+
-+ unsigned long
-+ maildir_get_uid(char *name)
-+ {
-+ char *s;
-+ unsigned long rv = 0L;
-+
-+ if(!name || (s = strstr(name,MDUIDSEP)) == NULL)
-+ return rv;
-+
-+ s += strlen(MDUIDSEP);
-+ rv = strtoul(s, NULL, 10);
-+ return rv;
-+ }
-+
-+
-+ void
-+ maildir_delete_uid(MAILSTREAM *stream, unsigned long msgno)
-+ {
-+ char old[MAILTMPLEN], new[MAILTMPLEN], *s, *t;
-+ MESSAGECACHE *elt;
-+
-+ elt = mail_elt(stream, msgno);
-+ if(!stream || !elt || !elt->private.spare.ptr || !LOCAL || !LOCAL->dir)
-+ return;
-+
-+ sprintf(old, "%s/%s/%s", LOCAL->dir, MDNAME(Cur), MDFILE(elt));
-+ t = MDFILE(elt);
-+ if(s = strstr(MDFILE(elt), MDUIDSEP)){
-+ *s = '\0';
-+ s += strlen(MDUIDSEP);
-+ strtoul(s, &s, 10);
-+ sprintf(new, "%s/%s/%s%s", LOCAL->dir, MDNAME(Cur), t, s);
-+ if(rename(old, new) == 0){
-+ maildir_free_file_only ((void **)&elt->private.spare.ptr);
-+ s = strrchr(new, '/');
-+ MDFILE(elt) = cpystr(s+1);
-+ }
-+ elt->private.uid = 0L;
-+ }
-+ }
-+
-+ void
-+ maildir_assign_uid(MAILSTREAM *stream, unsigned long msgno, unsigned long uid)
-+ {
-+ int createuid, deleteuid = 0;
-+ char old[MAILTMPLEN], new[MAILTMPLEN], *s, *t;
-+ MESSAGECACHE *elt;
-+
-+ elt = mail_elt(stream, msgno);
-+ if(!stream || !elt || !elt->private.spare.ptr || !LOCAL || !LOCAL->dir)
-+ return;
-+
-+ maildir_delete_uid(stream, msgno);
-+ sprintf(old, "%s/%s/%s", LOCAL->dir, MDNAME(Cur), MDFILE(elt));
-+ t = MDFILE(elt);
-+ if((s = strrchr(MDFILE(elt),FLAGSEP)) != NULL){
-+ *s++ = '\0';
-+ sprintf(new, "%s/%s/%s%s%lu%c%s",
-+ LOCAL->dir, MDNAME(Cur), t, MDUIDSEP, uid, FLAGSEP, s);
-+ if(rename(old, new) == 0){
-+ maildir_free_file_only ((void **)&elt->private.spare.ptr);
-+ s = strrchr(new, '/');
-+ MDFILE(elt) = cpystr(s+1);
-+ stream->uid_validity = time(0);
-+ }
-+ elt->private.uid = uid;
-+ }
-+ }
-+
-+ void
-+ maildir_uid_renew_tempfile(MAILSTREAM *stream)
-+ {
-+ char tmp[MAILTMPLEN];
-+
-+ if(!stream || stream->rdonly
-+ || !LOCAL || !LOCAL->candouid || !LOCAL->dir || !LOCAL->uidtempfile)
-+ return;
-+
-+ sprintf(tmp,"%s/%s.%d.%lu", LOCAL->dir, MDUIDTEMP, mypid, time(0));
-+ if(rename(LOCAL->uidtempfile, tmp) == 0){
-+ fs_give((void **)&LOCAL->uidtempfile);
-+ LOCAL->uidtempfile = cpystr(tmp);
-+ }
-+ }
-diff -rc alpine-2.00/imap/src/osdep/unix/maildir.h alpine-2.00.maildir/imap/src/osdep/unix/maildir.h
-*** alpine-2.00/imap/src/osdep/unix/maildir.h 2011-01-24 19:38:50.000000000 -0600
---- alpine-2.00.maildir/imap/src/osdep/unix/maildir.h 2011-01-15 19:11:36.000000000 -0600
-***************
-*** 0 ****
---- 1,226 ----
-+ /*
-+ * A few definitions that try to make this module portable to other
-+ * platforms (e.g. Cygwin). This module is based on the information from
-+ * http://cr.yp.to/proto/maildir.html
-+ */
-+
-+ /* First we deal with the separator character */
-+ #ifndef FLAGSEP
-+ #define FLAGSEP ':'
-+ #endif
-+ #define SIZESEP ','
-+
-+ const char sep1[] = {FLAGSEP, '1', ',', '\0'}; /* experimental semantics*/
-+ const char sep2[] = {FLAGSEP, '2', ',', '\0'}; /* Flags Information */
-+ const char sep3[] = {FLAGSEP, '3', ',', '\0'}; /* Grrrr.... */
-+
-+ const char *sep[] = { sep1, sep2, sep3, NULL};
-+
-+ #define MDSEP(i) sep[((i) - 1)]
-+
-+ /* Now we deal with flags. Woohoo! */
-+ typedef enum {Draft, Flagged, Passed, Replied, Seen, Trashed,
-+ EmptyFlag, EndFlags} MdFlagNamesType;
-+ const int mdimapflags[] = {Draft, Flagged, Replied, Seen, Trashed, EmptyFlag, EndFlags};
-+ const int mdkwdflags[] = {Passed, EmptyFlag, EndFlags};
-+
-+ /* this array lists the codes for mdflgnms (maildir flag names) above */
-+ const char *mdflags[] = { "D", "F", "P", "R", "S", "T", "", NULL};
-+ /* and as characters too */
-+ const char cmdflags[] = { 'D', 'F', 'P', 'R', 'S', 'T', '0', '\0'};
-+
-+ /* MDFLAG(Seen, elt->seen) */
-+ #define MDFLAG(i,j) mdflags[j ? (i) : EmptyFlag]
-+ /* MDFLAGC(Seen) */
-+ #define MDFLAGC(i) cmdflags[(i)]
-+
-+ /* Now we deal with the directory structure */
-+ typedef enum {Cur, Tmp, New, EndDir} DirNamesType;
-+ char *mdstruct[] = {"cur", "tmp", "new", NULL};
-+ #define MDNAME(i) mdstruct[(i)]
-+ #define MDFLD(tmp, dir, i) sprintf((tmp),"%s/%s", (dir), mdstruct[(i)])
-+ #define MSGPATH(tmp, dir, msg,i) sprintf((tmp),"%s/%s/%s", (dir), mdstruct[(i)],(msg))
-+
-+ /* Files associated to a maildir directory */
-+
-+ #define MDUIDVALIDITY ".uidvalidity" /* support for old maildirs */
-+ #define MDDIR ".mdir" /* this folder is a directory */
-+ #define MDUIDLAST ".uidlast" /* last assigned uid */
-+ #define MDUIDTEMP ".uidtemp" /* We assign uid's no one else */
-+
-+
-+
-+ /* Support of Courier Structure */
-+ #define CCLIENT 0
-+ #define COURIER 1
-+ #define IS_CCLIENT(t) \
-+ (((t) && (t)[0] == '#' && ((t)[1] == 'm' || (t)[1] == 'M')\
-+ && ((t)[2] == 'd' || (t)[2] == 'D')\
-+ && (t)[3] == '/' && (t)[4] != '\0') ? 1 : 0)
-+
-+ #define IS_COURIER(t) \
-+ (((t) && (t)[0] == '#' && ((t)[1] == 'm' || (t)[1] == 'M')\
-+ && ((t)[2] == 'c' || (t)[2] == 'C')\
-+ && (t)[3] == '/' && (t)[4] != '\0') ? 1 : 0)
-+ #define MDPREFIX(s) ((s) ? "#mc/" : "#md/")
-+ #define MDSEPARATOR(s) ((s) ? '.' : '/')
-+
-+ /* UID Support */
-+
-+ #define MAXTEMPUID (unsigned long) 180L
-+ const char mduid[] = {',','u','=','\0'};
-+ #define MDUIDSEP mduid
-+
-+
-+ /* Now we deal with messages filenames */
-+ char mdlocaldomain[MAILTMPLEN+1] = {'\0'};
-+ pid_t mypid = (pid_t) 0;
-+ static char *mdfpath = NULL;
-+ static char myMdInboxDir[50] = { '\0' };/* Location of the Maildir INBOX */
-+ static long CourierStyle = CCLIENT;
-+
-+ #define CHUNK 16384 /* from unix.h */
-+
-+ typedef struct courier_local {
-+ char *name; /* name of directory/folder */
-+ int attribute; /* attributes (children/marked/etc) */
-+ } COURIERLOCAL;
-+
-+ typedef struct courier {
-+ char *path; /* Path to collection */
-+ time_t scantime; /* time at which information was generated */
-+ int total; /* total number of elements in data */
-+ COURIERLOCAL **data;
-+ } COURIER_S;
-+
-+ /* In gdb this is the *(struct maildir_local *)stream->local structure */
-+ typedef struct maildir_local {
-+ unsigned int dirty : 1; /* diskcopy needs updating */
-+ unsigned int courier : 1; /* It is Courier style file system */
-+ unsigned int link : 1; /* There is a symbolic link */
-+ unsigned int candouid; /* we can assign uids and no one else */
-+ char *uidtempfile; /* path to uid temp file */
-+ int fd; /* fd of open message */
-+ char *dir; /* mail directory name */
-+ char *curdir; /* mail directory name/cur */
-+ unsigned char *buf; /* temporary buffer */
-+ unsigned long buflen; /* current size of temporary buffer */
-+ time_t scantime; /* last time directory scanned */
-+ } MAILDIRLOCAL;
-+
-+ /* Convenient access to local data */
-+ #define LOCAL ((MAILDIRLOCAL *) stream->local)
-+
-+ typedef struct maildir_file_info {
-+ char *name; /* name of the file */
-+ DirNamesType loc; /* location of this file */
-+ unsigned long pos; /* place in list where this file is listed */
-+ off_t size; /* size in bytes, on disk */
-+ time_t atime; /* last access time */
-+ time_t mtime; /* last modified time */
-+ time_t ctime; /* last changed time */
-+ } MAILDIRFILE;
-+
-+ #define MDFILE(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->name)
-+ #define MDLOC(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->loc)
-+ #define MDPOS(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->pos)
-+ #define MDSIZE(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->size)
-+ #define MDATIME(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->atime)
-+ #define MDMTIME(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->mtime)
-+ #define MDCTIME(F) (((MAILDIRFILE *)((F)->private.spare.ptr))->ctime)
-+
-+ /* Function prototypes */
-+
-+ DRIVER *maildir_valid (char *name);
-+ MAILSTREAM *maildir_open (MAILSTREAM *stream);
-+ void maildir_close (MAILSTREAM *stream, long options);
-+ long maildir_ping (MAILSTREAM *stream);
-+ void maildir_check (MAILSTREAM *stream);
-+ long maildir_text (MAILSTREAM *stream,unsigned long msgno,STRING *bs,long flags);
-+ char *maildir_header (MAILSTREAM *stream,unsigned long msgno,
-+ unsigned long *length, long flags);
-+ void maildir_list (MAILSTREAM *stream,char *ref,char *pat);
-+ void *maildir_parameters (long function,void *value);
-+ int maildir_create_folder (char *mailbox);
-+ long maildir_create (MAILSTREAM *stream,char *mailbox);
-+ void maildir_flagmsg (MAILSTREAM *stream,MESSAGECACHE *elt); /*check */
-+ long maildir_expunge (MAILSTREAM *stream, char *sequence, long options);
-+ long maildir_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options);
-+ long maildir_append (MAILSTREAM *stream,char *mailbox, append_t af, void *data);
-+ long maildir_delete (MAILSTREAM *stream,char *mailbox);
-+ long maildir_rename (MAILSTREAM *stream,char *old,char *new);
-+ long maildir_sub (MAILSTREAM *stream,char *mailbox);
-+ long maildir_unsub (MAILSTREAM *stream,char *mailbox);
-+ void maildir_lsub (MAILSTREAM *stream,char *ref,char *pat);
-+ void courier_list (MAILSTREAM *stream,char *ref, char *pat);
-+
-+ /* utility functions */
-+ void courier_realname (char *name, char *realname);
-+ long maildir_dirfmttest (char *name);
-+ char *maildir_file (char *dst,char *name);
-+ int maildir_select (const struct direct *name);
-+ int maildir_namesort (const void *d1, const void *d2);
-+ unsigned long antoul (char *seed);
-+ unsigned long mdfntoul (char *name);
-+ int courier_dir_select (const struct direct *name);
-+ int courier_dir_sort (const void *d1, const void *d2);
-+ long maildir_canonicalize (char *pattern,char *ref,char *pat);
-+ void maildir_list_work (MAILSTREAM *stream,char *subdir,char *pat,long level);
-+ void courier_list_work (MAILSTREAM *stream,char *subdir,char *pat,long level);
-+ int maildir_file_path(char *name, char *tmp);
-+ int maildir_valid_name (char *name);
-+ int maildir_valid_dir (char *name);
-+ int is_valid_maildir (char **name);
-+ int maildir_message_exists(MAILSTREAM *stream,char *name, char *tmp);
-+ char *maildir_remove_root(char *name);
-+ char *maildir_text_work (MAILSTREAM *stream,MESSAGECACHE *elt, unsigned long *length,long flags);
-+ unsigned long maildir_parse_message(MAILSTREAM *stream, unsigned long msgno,
-+ DirNamesType dirtype);
-+ int maildir_eliminate_duplicate (char *name, struct direct ***flist,
-+ unsigned long *nfiles);
-+ int maildir_doscandir (char *name, struct direct ***flist, int flag);
-+ unsigned long maildir_scandir (char *name, struct direct ***flist,
-+ unsigned long *nfiles, int *scand, int flag);
-+ void maildir_parse_folder (MAILSTREAM *stream, int full);
-+ void md_domain_name (void);
-+ char *myrootdir (char *name);
-+ char *mdirpath (void);
-+ int maildir_initial_check (MAILSTREAM *stream, DirNamesType dirtype);
-+ unsigned long maildir_parse_dir(MAILSTREAM *stream, unsigned long nmsgs,
-+ DirNamesType dirtype, struct direct **names, unsigned long nfiles, int full);
-+ int same_maildir_file(char *name1, char *name2);
-+ int comp_maildir_file(char *name1, char *name2);
-+ int maildir_message_in_list(char *msgname, struct direct **names,
-+ unsigned long bottom, unsigned long top, unsigned long *pos);
-+ void maildir_getflag(char *name, int *d, int *f, int *r ,int *s, int *t);
-+ int maildir_update_elt_maildirp(MAILSTREAM *stream, unsigned long msgno);
-+ void maildir_abort (MAILSTREAM *stream);
-+ int maildir_contains_folder(char *dirname, char *name);
-+ int maildir_is_dir(char *dirname, char *name);
-+ int maildir_dir_is_empty(char *mailbox);
-+ int maildir_create_work (char *mailbox, int loop);
-+ void maildir_get_file (MAILDIRFILE **mdfile);
-+ void maildir_free_file (void **mdfile);
-+ void maildir_free_file_only (void **mdfile);
-+ int maildir_any_new_msgs(char *mailbox);
-+ void maildir_get_date(MAILSTREAM *stream, unsigned long msgno);
-+ void maildir_fast (MAILSTREAM *stream,char *sequence,long flags);
-+
-+ /* Courier server support */
-+ void courier_free_cdir (COURIER_S **cdir);
-+ COURIER_S *courier_get_cdir (int total);
-+ int courier_search_list(COURIERLOCAL **data, char *name, int first, int last);
-+ COURIER_S *courier_list_dir(char *curdir);
-+ void courier_list_info(COURIER_S **cdirp, char *data, int i);
-+
-+ /* UID Support */
-+ unsigned int maildir_can_assign_uid (MAILSTREAM *stream);
-+ void maildir_read_uid(MAILSTREAM *stream, unsigned long *uid_last,
-+ unsigned long *uid_validity);
-+ void maildir_write_uid(MAILSTREAM *stream, unsigned long uid_last,
-+ unsigned long uid_validity);
-+ unsigned long maildir_get_uid(char *name);
-+ void maildir_delete_uid(MAILSTREAM *stream, unsigned long msgno);
-+ void maildir_assign_uid(MAILSTREAM *stream, unsigned long msgno, unsigned long uid);
-+ void maildir_uid_renew_tempfile(MAILSTREAM *stream);
-+
-diff -rc alpine-2.00/imap/src/osdep/unix/Makefile alpine-2.00.maildir/imap/src/osdep/unix/Makefile
-*** alpine-2.00/imap/src/osdep/unix/Makefile 2008-06-04 13:18:34.000000000 -0500
---- alpine-2.00.maildir/imap/src/osdep/unix/Makefile 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 144,150 ****
- # However, mh needs to be before any sysinbox formats (such as mmdf or unix)
- # since otherwise INBOX won't work correctly when mh_allow_inbox is set.
- #
-! DEFAULTDRIVERS=imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
- CHUNKSIZE=65536
-
- # Normally no need to change any of these
---- 144,150 ----
- # However, mh needs to be before any sysinbox formats (such as mmdf or unix)
- # since otherwise INBOX won't work correctly when mh_allow_inbox is set.
- #
-! DEFAULTDRIVERS=maildir courier imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
- CHUNKSIZE=65536
-
- # Normally no need to change any of these
-***************
-*** 153,159 ****
- BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
- dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
- rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
-! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
- CFLAGS=-g
-
- CAT=cat
---- 153,159 ----
- BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
- dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
- rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
-! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o maildir.o
- CFLAGS=-g
-
- CAT=cat
-***************
-*** 282,288 ****
-
- cyg: # Cygwin - note that most local file drivers don't work!!
- $(BUILD) `$(CAT) SPECIALS` OS=$@ \
-! DEFAULTDRIVERS="imap nntp pop3 mbx unix phile" \
- SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
- SPOOLDIR=/var \
- ACTIVEFILE=/usr/local/news/lib/active \
---- 282,288 ----
-
- cyg: # Cygwin - note that most local file drivers don't work!!
- $(BUILD) `$(CAT) SPECIALS` OS=$@ \
-! DEFAULTDRIVERS="imap nntp pop3 mbx unix maildir phile" \
- SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
- SPOOLDIR=/var \
- ACTIVEFILE=/usr/local/news/lib/active \
-***************
-*** 892,898 ****
- unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
- utf8.o: mail.h misc.h osdep.h utf8.h tmap.c widths.c
- utf8aux.o: mail.h misc.h osdep.h utf8.h
-!
-
- # OS-dependent
-
---- 892,898 ----
- unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
- utf8.o: mail.h misc.h osdep.h utf8.h tmap.c widths.c
- utf8aux.o: mail.h misc.h osdep.h utf8.h
-! maildir.o: mail.h misc.h osdep.h maildir.h dummy.h
-
- # OS-dependent
-
-diff -rc alpine-2.00/imap/src/osdep/unix/os_cyg.h alpine-2.00.maildir/imap/src/osdep/unix/os_cyg.h
-*** alpine-2.00/imap/src/osdep/unix/os_cyg.h 2008-06-04 13:18:34.000000000 -0500
---- alpine-2.00.maildir/imap/src/osdep/unix/os_cyg.h 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 47,52 ****
---- 47,53 ----
- #define setpgrp setpgid
-
- #define SYSTEMUID 18 /* Cygwin returns this for SYSTEM */
-+ #define FLAGSEP ';'
- #define geteuid Geteuid
- uid_t Geteuid (void);
-
-diff -rc alpine-2.00/pith/conf.c alpine-2.00.maildir/pith/conf.c
-*** alpine-2.00/pith/conf.c 2008-08-22 19:07:05.000000000 -0500
---- alpine-2.00.maildir/pith/conf.c 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 427,432 ****
---- 427,435 ----
-
- CONF_TXT_T cf_text_newsrc_path[] = "Full path and name of NEWSRC file";
-
-+ #ifndef _WINDOWS
-+ CONF_TXT_T cf_text_maildir_location[] = "Location relative to your HOME directory of the directory where your INBOX\n# for the maildir format is located. Default value is \"Maildir\". If your\n# inbox is located at \"~/Maildir\" you do not need to change this value.\n# A common value is also \".maildir\"";
-+ #endif
-
- /*----------------------------------------------------------------------
- These are the variables that control a number of pine functions. They
-***************
-*** 627,632 ****
---- 630,639 ----
- NULL, cf_text_news_active},
- {"news-spool-directory", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
- NULL, cf_text_news_spooldir},
-+ #ifndef _WINDOWS
-+ {"maildir-location", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
-+ "Maildir Location", cf_text_maildir_location},
-+ #endif
- {"upload-command", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
- NULL, cf_text_upload_cmd},
- {"upload-command-prefix", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
-***************
-*** 2216,2221 ****
---- 2223,2234 ----
- mail_parameters(NULL, SET_NEWSSPOOL,
- (void *)VAR_NEWS_SPOOL_DIR);
-
-+ #ifndef _WINDOWS
-+ set_current_val(&vars[V_MAILDIR_LOCATION], TRUE, TRUE);
-+ if(VAR_MAILDIR_LOCATION && VAR_MAILDIR_LOCATION[0])
-+ mail_parameters(NULL, SET_MDINBOXPATH, (void *)VAR_MAILDIR_LOCATION);
-+ #endif
-+
- /* guarantee a save default */
- set_current_val(&vars[V_DEFAULT_SAVE_FOLDER], TRUE, TRUE);
- if(!VAR_DEFAULT_SAVE_FOLDER || !VAR_DEFAULT_SAVE_FOLDER[0])
-***************
-*** 2832,2837 ****
---- 2845,2854 ----
- F_SORT_DEFAULT_SAVE_ALPHA, h_config_sort_save_alpha, PREF_FLDR, 0},
- {"vertical-folder-list", "Use Vertical Folder List",
- F_VERTICAL_FOLDER_LIST, h_config_vertical_list, PREF_FLDR, 0},
-+ #ifndef _WINDOWS
-+ {"use-courier-folder-list", "Courier Style Folder List",
-+ F_COURIER_FOLDER_LIST, h_config_courier_list, PREF_FLDR, 0},
-+ #endif
-
- /* Addr book */
- {"combined-addrbook-display", "Combined Address Book Display",
-***************
-*** 6895,6900 ****
---- 6912,6923 ----
-
- break;
-
-+ #ifndef _WINDOWS
-+ case F_COURIER_FOLDER_LIST:
-+ mail_parameters(NULL,SET_COURIERSTYLE,(void *)(F_ON(f->id ,ps)? 1 : 0));
-+ break; /* COURIER == 1, CCLIENT == 0, see maildir.h */
-+ #endif
-+
- case F_COLOR_LINE_IMPORTANT :
- case F_DATES_TO_LOCAL :
- clear_index_cache(ps->mail_stream, 0);
-***************
-*** 7676,7681 ****
---- 7699,7708 ----
- return(h_config_newmailwidth);
- case V_NEWSRC_PATH :
- return(h_config_newsrc_path);
-+ #ifndef _WINDOWS
-+ case V_MAILDIR_LOCATION :
-+ return(h_config_maildir_location);
-+ #endif
- case V_BROWSER :
- return(h_config_browser);
- #if defined(DOS) || defined(OS2)
-diff -rc alpine-2.00/pith/conf.h alpine-2.00.maildir/pith/conf.h
-*** alpine-2.00/pith/conf.h 2008-08-19 19:27:11.000000000 -0500
---- alpine-2.00.maildir/pith/conf.h 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 249,254 ****
---- 249,258 ----
- #define GLO_NEWS_ACTIVE_PATH vars[V_NEWS_ACTIVE_PATH].global_val.p
- #define VAR_NEWS_SPOOL_DIR vars[V_NEWS_SPOOL_DIR].current_val.p
- #define GLO_NEWS_SPOOL_DIR vars[V_NEWS_SPOOL_DIR].global_val.p
-+ #ifndef _WINDOWS
-+ #define VAR_MAILDIR_LOCATION vars[V_MAILDIR_LOCATION].current_val.p
-+ #define GLO_MAILDIR_LOCATION vars[V_MAILDIR_LOCATION].global_val.p
-+ #endif
- #define VAR_DISABLE_DRIVERS vars[V_DISABLE_DRIVERS].current_val.l
- #define VAR_DISABLE_AUTHS vars[V_DISABLE_AUTHS].current_val.l
- #define VAR_REMOTE_ABOOK_METADATA vars[V_REMOTE_ABOOK_METADATA].current_val.p
-diff -rc alpine-2.00/pith/conftype.h alpine-2.00.maildir/pith/conftype.h
-*** alpine-2.00/pith/conftype.h 2008-08-19 19:27:11.000000000 -0500
---- alpine-2.00.maildir/pith/conftype.h 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 114,119 ****
---- 114,122 ----
- , V_NEWSRC_PATH
- , V_NEWS_ACTIVE_PATH
- , V_NEWS_SPOOL_DIR
-+ #ifndef _WINDOWS
-+ , V_MAILDIR_LOCATION
-+ #endif
- , V_UPLOAD_CMD
- , V_UPLOAD_CMD_PREFIX
- , V_DOWNLOAD_CMD
-***************
-*** 380,385 ****
---- 383,391 ----
- F_PASS_C1_CONTROL_CHARS,
- F_SINGLE_FOLDER_LIST,
- F_VERTICAL_FOLDER_LIST,
-+ #ifndef _WINDOWS
-+ F_COURIER_FOLDER_LIST,
-+ #endif
- F_TAB_CHK_RECENT,
- F_AUTO_REPLY_TO,
- F_VERBOSE_POST,
-diff -rc alpine-2.00/pith/init.c alpine-2.00.maildir/pith/init.c
-*** alpine-2.00/pith/init.c 2007-08-16 17:25:10.000000000 -0500
---- alpine-2.00.maildir/pith/init.c 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 407,412 ****
---- 407,415 ----
- && stricmp(filename, folder_base)){
- #else
- if(strncmp(filename, folder_base, folder_base_len) == 0
-+ #ifndef _WINDOWS
-+ && filename[folder_base_len] != list_cntxt->dir->delim
-+ #endif
- && strcmp(filename, folder_base)){
- #endif
- #endif
-diff -rc alpine-2.00/pith/pattern.c alpine-2.00.maildir/pith/pattern.c
-*** alpine-2.00/pith/pattern.c 2008-07-14 13:01:54.000000000 -0500
---- alpine-2.00.maildir/pith/pattern.c 2011-01-24 19:38:41.000000000 -0600
-***************
-*** 5482,5487 ****
---- 5482,5496 ----
- break;
-
- case '#':
-+ #ifndef _WINDOWS
-+ if(!struncmp(patfolder, "#md/", 4)
-+ || !struncmp(patfolder, "#mc/", 4)){
-+ maildir_file_path(patfolder, tmp1);
-+ if(!strcmp(patfolder, stream->mailbox))
-+ match++;
-+ break;
-+ }
-+ #endif
- if(!strcmp(patfolder, stream->mailbox))
- match++;
-
-***************
-*** 7894,7900 ****
- int we_cancel = 0, width;
- CONTEXT_S *save_context = NULL;
- char buf[MAX_SCREEN_COLS+1], sbuf[MAX_SCREEN_COLS+1];
-! char *save_ref = NULL;
- #define FILTMSG_MAX 30
-
- if(!stream)
---- 7903,7909 ----
- int we_cancel = 0, width;
- CONTEXT_S *save_context = NULL;
- char buf[MAX_SCREEN_COLS+1], sbuf[MAX_SCREEN_COLS+1];
-! char *save_ref = NULL, *save_dstfldr = NULL, *save_dstfldr2 = NULL;
- #define FILTMSG_MAX 30
-
- if(!stream)
-***************
-*** 7928,7933 ****
---- 7937,7952 ----
- if(F_OFF(F_QUELL_FILTER_MSGS, ps_global))
- we_cancel = busy_cue(buf, NULL, 0);
-
-+ #ifndef _WINDOWS
-+ if(!struncmp(dstfldr, "#md/", 4) || !struncmp(dstfldr, "#mc/", 4)){
-+ char tmp1[MAILTMPLEN];
-+ maildir_file_path(dstfldr, tmp1);
-+ save_dstfldr2 = dstfldr;
-+ save_dstfldr = cpystr(tmp1);
-+ dstfldr = save_dstfldr;
-+ }
-+ #endif
-+
- if(!is_absolute_path(dstfldr)
- && !(save_context = default_save_context(ps_global->context_list)))
- save_context = ps_global->context_list;
-***************
-*** 7991,7996 ****
---- 8010,8020 ----
- if(we_cancel)
- cancel_busy_cue(buf[0] ? 0 : -1);
-
-+ if(save_dstfldr){
-+ fs_give((void **)&save_dstfldr);
-+ dstfldr = save_dstfldr2;
-+ }
-+
- return(buf[0] != '\0');
- }
-
-diff -rc alpine-2.00/pith/pine.hlp alpine-2.00.maildir/pith/pine.hlp
-*** alpine-2.00/pith/pine.hlp 2008-08-22 19:07:05.000000000 -0500
---- alpine-2.00.maildir/pith/pine.hlp 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 21253,21258 ****
---- 21253,21354 ----
- &lt;End of help on this topic&gt;
- </BODY>
- </HTML>
-+ ====== h_config_maildir_location ======
-+ <HTML>
-+ <HEAD>
-+ <TITLE>OPTION: <!--#echo var="VAR_maildir-location"--></TITLE>
-+ </HEAD>
-+ <BODY>
-+ <H1>OPTION: <!--#echo var="VAR_maildir-location"--></H1>
-+
-+ <P>
-+ This option should be used only if you have a Maildir folder which you
-+ want to use as your INBOX. If this is not your case (or don't know what
-+ this is), you can safely ignore this option.
-+
-+ <P>
-+ This option overrides the default directory Pine uses to find the location of
-+ your INBOX, in case this is in Maildir format. The default value of this
-+ option is "Maildir", but in some systems, this directory could have been
-+ renamed (e.g. to ".maildir"). If this is your case use this option to change
-+ the default.
-+
-+ <P>
-+ The value of this option is prefixed with the "~/" string to determine the
-+ full path to your INBOX.
-+
-+ <P>
-+ You should probably <A HREF="h_config_maildir">read</A> a few tips that
-+ teach you how to configure your maildir for optimal performance. This
-+ version also has <A HREF="h_config_courier_list">support</A> for the
-+ Courier style file system when a maildir collection is accessed locally.
-+
-+ <P><UL>
-+ <LI><A HREF="h_finding_help">Finding more information and requesting help</A>
-+ </UL>
-+ <P>
-+ &lt;End of help on this topic&gt;
-+ </BODY>
-+ </HTML>
-+ ====== h_config_maildir =====
-+ <HTML>
-+ <HEAD>
-+ <TITLE>Maildir Support</TITLE>
-+ </HEAD>
-+ <BODY>
-+ <H1>Maildir Support</H1>
-+
-+ This version of Alpine has been enhanced with Maildir support. This text is
-+ intended to be a reference on its support.
-+ <P>
-+
-+ A Maildir folder is a directory that contains three directories called
-+ cur, tmp and new. A program that delivers mail (e.g. postfix) will put new
-+ mail in the new directory. A program that reads mail will look for for old
-+ messages in the cur directory, while it will look for new mail in the new
-+ directory.
-+ <P>
-+
-+ In order to use maildir support it is better to set your inbox-path to the
-+ value &quot;#md/inbox&quot; (without quotes). This assumes that your mail
-+ delivery agent is delivering new mail to ~/Maildir/new. If the directory
-+ where new mail is being delivered is not called "Maildir", you can set the
-+ name of the subdirectory of home where it is being delivered in the <A
-+ HREF="h_config_maildir_location"><!--#echo var="VAR_maildir-location"--></A> configuration
-+ variable. Most of the time you will not have to worry about the
-+ <!--#echo var="VAR_maildirlocation"--> variable, because it will probably be set by your
-+ administrator in the pine.conf configuration file.
-+ <P>
-+
-+ One of the advantages of the Maildir support of this version of Alpine is
-+ that you do not have to stop using folders in another styles (mbox, mbx,
-+ etc.). This is desirable since the usage of a specific mail storage system
-+ is a personal decision. Folders in the maildir format that are part of the
-+ Mail collection will be recognized without any extra configuration of your
-+ part. If your mail/ collection is located under the mail/ directory, then
-+ creating a new maildir folder in this collection is done by pressing "A"
-+ and entering the string "#driver.md/mail/newfolder". Observe that adding a
-+ new folder as "newfolder" may not create such folder in maildir format.
-+
-+ <P>
-+ If you would like to have all folders created in the maildir format by
-+ default, you do so by adding a Maildir Collection. In order to convert
-+ your current mail/ collection into a maildir collection, edit the
-+ collection and change the path variable from &quot;mail/&quot; to
-+ &quot;#md/mail&quot;. In a maildir collection folders of any other format
-+ are ignored.
-+
-+ <P> Finally, This version also has
-+ <A HREF="h_config_courier_list">support</A> for the Courier style file system
-+ when a maildir collection is accessed locally.
-+
-+ <P>
-+ <UL>
-+ <LI><A HREF="h_finding_help">Finding more information and requesting help</A>
-+ </UL><P>
-+ &lt;End of help on this topic&gt;
-+ </BODY>
-+ </HTML>
- ====== h_config_literal_sig =====
- <HTML>
- <HEAD>
-***************
-*** 29126,29131 ****
---- 29222,29270 ----
- <P>
- &lt;End of help on this topic&gt;
- </BODY>
-+ </HTML>
-+ ====== h_config_courier_list =====
-+ <HTML>
-+ <HEAD>
-+ <TITLE>FEATURE: <!--#echo var="FEAT_courier-folder-list"--></TITLE>
-+ </HEAD>
-+ <BODY>
-+ <H1>FEATURE: <!--#echo var="FEAT_courier-folder-list"--></H1>
-+
-+ In a maildir collection, a folder could be used as a directory to store
-+ folders. In the Courier server if you create a folder, then a directory
-+ with the same name is created. If you use this patch to access a
-+ collection created by the Courier server, then the display of such
-+ collection will look confusing. The best way to access a maildir
-+ collection created by the Courier server is by using the &quot;#mc/&quot;
-+ prefix instead of the &quot;#md/&quot; prefix. If you use this alternate
-+ prefix, then this feature applies to you, otherwise you can safely ignore
-+ the text that follows.
-+ <P>
-+ Depending on if you have enabled the option
-+ <a href="h_config_separate_fold_dir_view"><!--#echo var="FEAT_separate-folder-and-directory-entries"--></a>
-+ a folder may be listed as &quot;folder[.]&quot;, or as two entries in the
-+ list by &quot;folder&quot; and &quot;folder.&quot;.
-+ <P>
-+ If this option is disabled, Pine will list local folders that are in Courier
-+ style format, as &quot;folder&quot;, and those that are also directories as
-+ &quot;folder[.]&quot;. This makes the default display cleaner.
-+ <P>
-+ If this feature is enabled then creating folders in a maildir collection
-+ will create a directory with the same name. If this feature is disabled, then
-+ a folder is considered a directory only if it contains subfolders, so you can
-+ not create a directory with the same name as an exisiting folder unless
-+ you create a subfolder of that folder first (e.g. if you have a folder
-+ called &quot;foo&quot; simply add &quot;foo.bar&quot; directly. This will
-+ create the directory &quot;foo&quot; and the subfolder &quot;bar&quot; of it).
-+ <P>
-+ Observe that this feature works only for maildir collections that are accessed
-+ locally. If a collection is accessed remotely then this feature has no value,
-+ as the report is created in a server, and Pine only reports what received
-+ from the server in this case.
-+ <P>
-+ &lt;End of help on this topic&gt;
-+ </BODY>
- </HTML>
- ====== h_config_verbose_post =====
- <HTML>
-diff -rc alpine-2.00/pith/send.c alpine-2.00.maildir/pith/send.c
-*** alpine-2.00/pith/send.c 2008-08-06 13:25:58.000000000 -0500
---- alpine-2.00.maildir/pith/send.c 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 256,261 ****
---- 256,268 ----
-
- if(exists & FEX_ISFILE){
- context_apply(tmp, p_cntxt, mbox, sizeof(tmp));
-+ #ifndef _WINDOWS
-+ if (!struncmp(tmp, "#md/",4) || !struncmp(tmp, "#mc/", 4)){
-+ char tmp2[MAILTMPLEN];
-+ maildir_file_path(tmp, tmp2);
-+ strcpy(tmp, tmp2);
-+ }
-+ #endif
- if(!(IS_REMOTE(tmp) || is_absolute_path(tmp))){
- /*
- * The mbox is relative to the home directory.
-diff -rc alpine-2.00/README.maildir alpine-2.00.maildir/README.maildir
-*** alpine-2.00/README.maildir 2011-01-24 19:38:50.000000000 -0600
---- alpine-2.00.maildir/README.maildir 2011-01-15 19:11:07.000000000 -0600
-***************
-*** 0 ****
---- 1,153 ----
-+ ---------------------------------------
-+
-+ Maildir Driver for Alpine 1.0
-+ By Eduardo Chappa <chappa@washington.edu>
-+ http://staff.washington.edu/chappa/alpine/
-+
-+ ---------------------------------------
-+ 1. General Information About This Patch
-+ ---------------------------------------
-+
-+ This patch adds support for the maildir format to Alpine. We take the
-+ approach that this patch is one more driver among the number of formats
-+ supported by Alpine (more generally c-client). This approach differs from
-+ older versions of similar patches, in that once a maildir patch was
-+ applied, it was assumed that all your folders would be created in the
-+ maildir format.
-+
-+ This patch does not assume that maildir is a preferred format, instead
-+ puts maildir in equal footing with other formats (mbox, mbx, mix, etc),
-+ and so a maildir folder in the mail/ collection is treated in the same way
-+ as any other folder in any other format. In other words, just by reading
-+ the name of a folder, or opening it, or doing any operation with it, you
-+ can not know in which format the folder is.
-+
-+ This implies that if you want to add a folder in the maildir format to the
-+ mail/ collection, then you must add by pressing "A" in the folder list
-+ collection and enter "#driver.md/mail/name_maildir_folder".
-+
-+ If you only want to use maildir, however, you can do so too. In this case,
-+ you must create a maildir collection. In that collection, only maildir
-+ folders will be listed. If there is any folder in any other format, that
-+ folder will be ignored. In another words, any folder listed there is in
-+ maildir format and can be accessed through that collection, conversely,
-+ any folder not listed there is not in maildir format and there is no way
-+ to access it using this collection.
-+
-+ In order to create a maildir collection, you could press M S L, and "A" to
-+ add a collection. Fill in the required fields as follows:
-+
-+ Nickname : Anything
-+ Server :
-+ Path : #md/relative/path/to/maildir/collection/
-+ View :
-+
-+ For example, if "path" is set to "#md/mail/", then Alpine will look for your
-+ maildir folders that are in ~/mail/.
-+
-+ The code in this patch is mostly based in code for the unix driver plus
-+ some combinations of the mh, mbx and nntp drivers for the c-client
-+ library. Those drivers were designed by Mark Crispin, and bugs in this
-+ code are not his bugs, but my own.
-+
-+ I got all the specification for this patch from
-+ http://cr.yp.to/proto/maildir.html. If you know of a place with a better
-+ specification for maildir format please let me know. The method this patch
-+ uses to create a unique filename for a message is one of the "old
-+ fashioned" methods. I realize that this is old fashioned, but it is
-+ portable, and portability is the main reason why I decided to use an old
-+ fashioned method (most methods are not portable. See the word
-+ "Unfortunately" in that document).
-+
-+ --------------
-+ 2. Other Goals
-+ --------------
-+
-+ It is intended that this code will work well with any application
-+ written using the c-client library. Of paramount importance is to make the
-+ associated imap server work well when the server accesses a folder in
-+ Maildir format. The program mailutil should also work flawlessly with this
-+ implemetation of the driver.
-+
-+ It is intended that this driver be fast and stable. We intend not to
-+ patch Alpine to make this driver do its work, unless such patching is for
-+ fixing bugs in Alpine or to pass parameters to the driver.
-+
-+ ------------------------------------------------------------------------
-+ 3. What are the known bugs of this implementation of the Maildir driver?
-+ ------------------------------------------------------------------------
-+
-+ I don't know any at this time. There have been bugs before, though, but
-+ I try to fix bugs as soon as they are reported. A complete list of updates
-+ for this patch, which includes bug fixes, improvements and addition of new
-+ features can be found at
-+
-+ http://staff.washington.edu/chappa/alpine/updates/maildir.html
-+
-+ ----------
-+ 4. On UIDs
-+ ----------
-+
-+ This patch keeps uids in the name of the file that contains the message,
-+ by adding a ",u=" string to the file name to save the uid of a message. A
-+ file is kept between sessions to save information on the last uid assigned
-+ and its time of validity. Only one session with writing access can write
-+ uids, all others must wait for the other session to assign them. The
-+ session assigning uids creates a ".uidtemp" file which other sessions must
-+ not disturb.
-+
-+ Uid support appeared in Alpine 1.00 (snapshot 925), and is experimental,
-+ please report any problems.
-+
-+ --------------------------------------------
-+ 5. Configuring Alpine and Setting up a Maildir
-+ --------------------------------------------
-+
-+ Once this approach was chosen, it implied the following:
-+
-+ * This patch assumes that your INBOX is located at "$HOME/Maildir".
-+ This is a directory which should have three subdirectories "cur",
-+ "tmp" and "new". Mail is delivered to 'new' and read from 'cur'. I
-+ have added a configuration option "maildir-location" which can be
-+ used to tell Alpine where your Maildir inbox is, in case your system
-+ do not use the above directory (e.g. your system may use
-+ "~/.maildir"). In this case define that variable to be the name of
-+ the directory where your e-mail is being delivered (e.g.
-+ ".maildir").
-+
-+ * If you want to use the above configuration as your inbox, you must
-+ define your inbox-path as "#md/inbox" (no quotes). You can define
-+ the inbox-path like above even if you have changed the
-+ maildir-location variable. That's the whole point of that variable.
-+
-+ -----------------------------------
-+ 6. What about Courier file systems?
-+ -----------------------------------
-+
-+ In a courier file system all folders are subfolders of a root folder
-+ called INBOX. Normally INBOX is located at ~/Maildir and subfolders are
-+ "dot" directories in ~/Maildir. For example ~/Maildir/.Trash is a
-+ subfolder of INBOX and is accessed with the nickname "INBOX.Trash".
-+
-+ You can not access folders in this way unless you preceed them with the
-+ string "#mc/". The purpose of the string "#mc/" is to warn Alpine that a
-+ collection in the Courier format is going to be accessed, so you can
-+ SELECT a folder like "#mc/INBOX.Trash", but not "INBOX.Trash"
-+
-+ You can access a collection through a server, but if you want to access a
-+ collection of folders created using the Courier server, you MUST edit your
-+ ".pinerc" file and enter the definition of the collection as follows:
-+
-+ folder-collections="Anything you want" #mc/INBOX.[]
-+
-+ You can replace the string "#mc/INBOX." by something different, for example
-+ "#mc/Courier/." will make Alpine search for your collection in ~/Courier.
-+
-+ You can not add this directly into Alpine because Alpine fails to accept this
-+ value from its input, but it takes it correctly when it is added through
-+ the ".pinerc" file.
-+
-+ You can access your inbox as "#mc/INBOX" or "#md/INBOX". Both definitions
-+ point to the same place.
-+
-+ Last Updated February 9, 2008
diff --git a/testing/rxvt-unicode/ChangeLog b/testing/rxvt-unicode/ChangeLog
deleted file mode 100644
index d4275a700..000000000
--- a/testing/rxvt-unicode/ChangeLog
+++ /dev/null
@@ -1,5 +0,0 @@
-2011-05-22 Angel Velasquez <angvp@archlinux.org>
- * Rebuilt against perl 5.14.0
-
-2011-05-17 Angel Velasquez <angvp@archlinux.org>
- * Removed not accepted upstream patch (closes FS#23324)
diff --git a/testing/rxvt-unicode/PKGBUILD b/testing/rxvt-unicode/PKGBUILD
deleted file mode 100644
index a72fa7c11..000000000
--- a/testing/rxvt-unicode/PKGBUILD
+++ /dev/null
@@ -1,53 +0,0 @@
-# $Id: PKGBUILD 124538 2011-05-22 21:23:30Z angvp $
-# Maintainer: Angel Velasquez <angvp@archlinux.org>
-# Contributor: tobias <tobias@archlinux.org>
-# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
-
-pkgname=rxvt-unicode
-pkgver=9.11
-pkgrel=4
-pkgdesc="An unicode enabled rxvt-clone terminal emulator (urxvt)"
-arch=('i686' 'x86_64')
-url="http://software.schmorp.de/pkg/rxvt-unicode.html"
-license=('GPL')
-depends=('gcc-libs' 'libxft' 'gdk-pixbuf2')
-optdepends=('perl: lots of utilities' 'gtk2-perl: to use the urxvt-tabbed')
-changelog=ChangeLog
-source=(http://dist.schmorp.de/rxvt-unicode/${pkgname}-${pkgver}.tar.bz2 \
- ${pkgname}.desktop)
-md5sums=('1bed5bfeed026e0bfafa0e9e4f62aa37'
- '3de6c13126a45bc3bc9f6bba077a1311')
-sha1sums=('21d0fad9a6032dbcf2c43a85f288543c6bd5ab3d'
- '962aebc88982dbeb62a7c4a051ff567e015f61a0')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr \
- --with-terminfo=/usr/share/terminfo \
- --enable-256-color \
- --enable-font-styles \
- --enable-xim \
- --enable-keepscrolling \
- --enable-selectionscrolling \
- --enable-smart-resize \
- --enable-pixbuf \
- --enable-transparency \
- --enable-utmp \
- --enable-wtmp \
- --enable-lastlog \
- --disable-frills
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- install -d "${pkgdir}/usr/share/terminfo"
- export TERMINFO="${pkgdir}/usr/share/terminfo"
- make DESTDIR="${pkgdir}" install
- # install the tabbing wrapper ( requires gtk2-perl! )
- sed -i 's/\"rxvt\"/"urxvt"/' doc/rxvt-tabbed
- install -Dm 755 doc/rxvt-tabbed "${pkgdir}/usr/bin/urxvt-tabbed"
- # install freedesktop menu
- install -Dm644 ../${pkgname}.desktop \
- "${pkgdir}/usr/share/applications/${pkgname}.desktop"
-}
diff --git a/testing/rxvt-unicode/rxvt-unicode.desktop b/testing/rxvt-unicode/rxvt-unicode.desktop
deleted file mode 100644
index 68d613dbd..000000000
--- a/testing/rxvt-unicode/rxvt-unicode.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Name=rxvt-unicode
-Comment=An Unicode capable rxvt clone
-Exec=urxvt
-Icon=terminal
-Terminal=false
-Type=Application
-Categories=Application;System;TerminalEmulator;
diff --git a/testing/spamassassin/PKGBUILD b/testing/spamassassin/PKGBUILD
deleted file mode 100644
index 6b97ea8c1..000000000
--- a/testing/spamassassin/PKGBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# $Id: PKGBUILD 125325 2011-05-25 21:40:50Z remy $
-# Maintainer: Dale Blount <dale@archlinux.org>
-# Contributor: Manolis Tzanidakis
-
-pkgname=spamassassin
-pkgver=3.3.1
-pkgrel=5
-pkgdesc="A mail filter to identify spam."
-arch=(i686 x86_64)
-license=(APACHE)
-url="http://spamassassin.apache.org"
-depends=('perl>=5.14' 'perl-net-dns' 'perl-uri' 'perl-html-parser' \
- 'perl-digest-sha1' 'perl-io-socket-ssl' 'openssl' \
- 'perl-libwww' 'perl-mail-spf' \
- 'zlib' 're2c')
- # perl-archive-tar perl-io-zlib)
-makedepends=('razor' 'perl-dbi')
-optdepends=('razor: to identify collaborately-flagged spam'
- 'gnupg: gpg support, without this use --nogpg flag for sa-update'
- 're2c: regexp compiler, for compiling rules with sa-compile')
-backup=(etc/conf.d/spamd etc/mail/spamassassin/local.cf \
- etc/mail/spamassassin/init.pre \
- etc/mail/spamassassin/v310.pre \
- etc/mail/spamassassin/v312.pre \
- etc/mail/spamassassin/v320.pre)
-install=${pkgname}.install
-options=(!emptydirs)
-source=(http://mirrors.devlib.org/apache/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz \
- spamd.conf.d spamd)
-md5sums=('5a93f81fda315411560ff5da099382d2'
- 'af501c6b0bb937a2775b747cc4b6d150'
- '0534d3071a526a27ddc2b297afa03b04')
-
-build() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
-
- # install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 /usr/bin/perl Makefile.PL INSTALLDIRS=vendor \
- CONTACT_ADDRESS=root@localhost ENABLE_SSL=yes PERL_TAINT=no
- /usr/bin/make
-}
-
-check() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
- /usr/bin/make test || true
-}
-
-package() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
- /usr/bin/make DESTDIR=${pkgdir} install
-
- /bin/install -D -m644 ${srcdir}/spamd.conf.d ${pkgdir}/etc/conf.d/spamd
- /bin/install -D -m755 ${srcdir}/spamd ${pkgdir}/etc/rc.d/spamd
-}
diff --git a/testing/spamassassin/spamassassin.install b/testing/spamassassin/spamassassin.install
deleted file mode 100644
index 5109956c9..000000000
--- a/testing/spamassassin/spamassassin.install
+++ /dev/null
@@ -1,25 +0,0 @@
-# arg 1: the new package version
-post_install() {
- echo "You must run 'sa-update' to install spam rules before use."
- /bin/true
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- # Compile rules, if rules have previously been compiled, and it's possible
- if [ -x /usr/bin/re2c -a -x /usr/bin/perlbin/vendor/sa-compile -a -d /var/lib/spamassassin/compiled ]; then
- echo "Detected compiled rules, running sa-compile..."
- sa-compile > /dev/null 2>&1
-fi
-}
-
-# arg 1: the old package version
-pre_remove() {
- /bin/true
-}
-
-# arg 1: the old package version
-post_remove() {
- /bin/true
-}
diff --git a/testing/spamassassin/spamd b/testing/spamassassin/spamd
deleted file mode 100644
index 11d35f7cd..000000000
--- a/testing/spamassassin/spamd
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-
-# source application-specific settings
-[ -f /etc/conf.d/spamd ] && . /etc/conf.d/spamd
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/bin/vendor_perl/spamd`
-case "$1" in
- start)
- stat_busy "Starting spamd"
- [ -z "$PID" ] && /usr/bin/vendor_perl/spamd -d ${SPAMD_OPTS}
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon spamd
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping spamd"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- # Some users report that a second attempt at stopping the process
- # works. So, take a little nap and give it another whirl...
- sleep 2
- kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon spamd
- stat_done
- fi
- else
- rm_daemon spamd
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
-# vim: ts=2 sw=2 et ft=sh
diff --git a/testing/spamassassin/spamd.conf.d b/testing/spamassassin/spamd.conf.d
deleted file mode 100644
index 4295e0073..000000000
--- a/testing/spamassassin/spamd.conf.d
+++ /dev/null
@@ -1 +0,0 @@
-SPAMD_OPTS="-c"
diff --git a/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD
deleted file mode 100644
index 40784dcb7..000000000
--- a/testing/subversion/PKGBUILD
+++ /dev/null
@@ -1,98 +0,0 @@
-# $Id: PKGBUILD 126240 2011-06-02 20:16:49Z stephane $
-# Maintainer: Paul Mattal <paul@archlinux.org>
-# Contributor: Jason Chu <jason@archlinux.org>
-
-pkgname=subversion
-pkgver=1.6.17
-pkgrel=3
-pkgdesc="Replacement for CVS, another versioning system (SVN)"
-arch=('i686' 'x86_64')
-license=('apache' 'bsd')
-depends=('neon' 'apr-util')
-makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'ruby' 'java-runtime'
- 'autoconf' 'sqlite3' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
-source=(http://subversion.tigris.org/downloads/$pkgname-$pkgver.tar.bz2
- svnserve svn svnserve.conf svnmerge.py
- subversion.rpath.fix.patch
- subversion.suppress.deprecation.warnings.patch)
-
-backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
-url="http://subversion.apache.org/"
-provides=('svn')
-options=('!makeflags' '!libtool')
-optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- export PYTHON=/usr/bin/python2
-
- # apply patches
- patch -Np0 -i ../subversion.rpath.fix.patch
- patch -Np1 -i ../subversion.suppress.deprecation.warnings.patch
-
- # configure
- autoreconf
- ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
- --with-zlib=/usr --with-neon=/usr --with-apxs \
- --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.1 \
- --enable-javahl --with-gnome-keyring --with-kwallet
-
- # build
- (make external-all && make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all )
-}
-
-#check() {
-# cd "${srcdir}/${pkgname}-${pkgver}"
-# export LANG=C LC_ALL=C
-# make check check-swig-pl check-swig-py CLEANUP=yes
-#}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- # install
- export LD_LIBRARY_PATH=${pkgdir}/usr/lib:$LD_LIBRARY_PATH
- make DESTDIR=${pkgdir} install
-
- make DESTDIR=${pkgdir} swig-py
- make install-swig-py DESTDIR=${pkgdir}
-
- install -d ${pkgdir}/usr/lib/python2.7
- mv ${pkgdir}/usr/lib/svn-python/ ${pkgdir}/usr/lib/python2.7/site-packages
-
- install -d ${pkgdir}/usr/share/subversion
- install -d -m 755 tools/hook-scripts ${pkgdir}/usr/share/subversion/
- rm -f ${pkgdir}/usr/share/subversion/hook-scripts/*.in
-
- make DESTDIR=${pkgdir} swig-pl
- make install-swig-pl DESTDIR=${pkgdir} INSTALLDIRS=vendor
- rm -f ${pkgdir}/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist
- rm -rf ${pkgdir}/usr/lib/perl5/core_perl
-
- make DESTDIR=${pkgdir} swig-rb
- make install-swig-rb DESTDIR=${pkgdir}
-
- make DESTDIR=${pkgdir} javahl
- make DESTDIR=${pkgdir} install-javahl
-
- install -d ${pkgdir}/etc/{rc.d,xinetd.d,conf.d}
-
- install -m 755 ${srcdir}/svnserve ${pkgdir}/etc/rc.d
- install -m 644 ${srcdir}/svn ${pkgdir}/etc/xinetd.d
- install -m 644 ${srcdir}/svnserve.conf ${pkgdir}/etc/conf.d/svnserve
- install -m 755 ${srcdir}/svnmerge.py ${pkgdir}/usr/bin/svnmerge
- install -D -m 644 ${srcdir}/subversion-$pkgver/COPYING \
- ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
-
- # bash completion
- install -Dm 644 ${srcdir}/${pkgname}-${pkgver}/tools/client-side/bash_completion \
- ${pkgdir}/etc/bash_completion.d/subversion
-}
-md5sums=('81e5dc5beee4b3fc025ac70c0b6caa14'
- 'a2b029e8385007ffb99b437b30521c90'
- 'a0db6dd43af33952739b6ec089852630'
- 'c459e299192552f61578f3438abf0664'
- 'a6371baeda7e224504629ecdda2749b4'
- '6b4340ba9d8845cd8497e013ae01be3f'
- '1166f3b7413d7e7450299b3525680bbe')
diff --git a/testing/subversion/subversion.rpath.fix.patch b/testing/subversion/subversion.rpath.fix.patch
deleted file mode 100644
index ba6ee9e4e..000000000
--- a/testing/subversion/subversion.rpath.fix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200
-+++ Makefile.in 2009-06-04 00:56:29.000000000 -0300
-@@ -678,6 +678,7 @@
-
- $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
- cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
-+ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}}
-
- swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
- $(SWIG_PL_DIR)/native/Makefile
diff --git a/testing/subversion/subversion.suppress.deprecation.warnings.patch b/testing/subversion/subversion.suppress.deprecation.warnings.patch
deleted file mode 100644
index 94ce89b18..000000000
--- a/testing/subversion/subversion.suppress.deprecation.warnings.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -urN subversion-1.6.9/subversion/bindings/swig/python/svn/core.py subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py
---- subversion-1.6.9/subversion/bindings/swig/python/svn/core.py 2009-02-13 11:22:26.000000000 -0500
-+++ subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py 2010-02-08 07:46:29.000000000 -0500
-@@ -19,6 +19,7 @@
- from libsvn.core import *
- import libsvn.core as _libsvncore
- import atexit as _atexit
-+import warnings
-
- class SubversionException(Exception):
- def __init__(self, message=None, apr_err=None, child=None,
-@@ -44,7 +45,9 @@
- Exception.__init__(self, *args)
-
- self.apr_err = apr_err
-- self.message = message
-+ with warnings.catch_warnings():
-+ warnings.simplefilter("ignore", DeprecationWarning)
-+ self.message = message
- self.child = child
- self.file = file
- self.line = line
diff --git a/testing/subversion/svn b/testing/subversion/svn
deleted file mode 100644
index 8988aaf63..000000000
--- a/testing/subversion/svn
+++ /dev/null
@@ -1,11 +0,0 @@
-service svn
-{
- flags = REUSE
- socket_type = stream
- wait = no
- user = root
- server = /usr/bin/svnserve
- server_args = -i
- log_on_failure += USERID
- disable = yes
-}
diff --git a/testing/subversion/svnmerge.py b/testing/subversion/svnmerge.py
deleted file mode 100644
index d8931648f..000000000
--- a/testing/subversion/svnmerge.py
+++ /dev/null
@@ -1,2370 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-# Copyright (c) 2005, Giovanni Bajo
-# Copyright (c) 2004-2005, Awarix, Inc.
-# All rights reserved.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-#
-# Author: Archie Cobbs <archie at awarix dot com>
-# Rewritten in Python by: Giovanni Bajo <rasky at develer dot com>
-#
-# Acknowledgments:
-# John Belmonte <john at neggie dot net> - metadata and usability
-# improvements
-# Blair Zajac <blair at orcaware dot com> - random improvements
-# Raman Gupta <rocketraman at fastmail dot fm> - bidirectional and transitive
-# merging support
-# Dustin J. Mitchell <dustin at zmanda dot com> - support for multiple
-# location identifier formats
-#
-# $HeadURL$
-# $LastChangedDate$
-# $LastChangedBy$
-# $LastChangedRevision$
-#
-# Requisites:
-# svnmerge.py has been tested with all SVN major versions since 1.1 (both
-# client and server). It is unknown if it works with previous versions.
-#
-# Differences from svnmerge.sh:
-# - More portable: tested as working in FreeBSD and OS/2.
-# - Add double-verbose mode, which shows every svn command executed (-v -v).
-# - "svnmerge avail" now only shows commits in source, not also commits in
-# other parts of the repository.
-# - Add "svnmerge block" to flag some revisions as blocked, so that
-# they will not show up anymore in the available list. Added also
-# the complementary "svnmerge unblock".
-# - "svnmerge avail" has grown two new options:
-# -B to display a list of the blocked revisions
-# -A to display both the blocked and the available revisions.
-# - Improved generated commit message to make it machine parsable even when
-# merging commits which are themselves merges.
-# - Add --force option to skip working copy check
-# - Add --record-only option to "svnmerge merge" to avoid performing
-# an actual merge, yet record that a merge happened.
-# - Can use a variety of location-identifier formats
-#
-# TODO:
-# - Add "svnmerge avail -R": show logs in reverse order
-#
-# Information for Hackers:
-#
-# Identifiers for branches:
-# A branch is identified in three ways within this source:
-# - as a working copy (variable name usually includes 'dir')
-# - as a fully qualified URL
-# - as a path identifier (an opaque string indicating a particular path
-# in a particular repository; variable name includes 'pathid')
-# A "target" is generally user-specified, and may be a working copy or
-# a URL.
-
-import sys, os, getopt, re, types, tempfile, time, locale
-from bisect import bisect
-from xml.dom import pulldom
-
-NAME = "svnmerge"
-if not hasattr(sys, "version_info") or sys.version_info < (2, 0):
- error("requires Python 2.0 or newer")
-
-# Set up the separator used to separate individual log messages from
-# each revision merged into the target location. Also, create a
-# regular expression that will find this same separator in already
-# committed log messages, so that the separator used for this run of
-# svnmerge.py will have one more LOG_SEPARATOR appended to the longest
-# separator found in all the commits.
-LOG_SEPARATOR = 8 * '.'
-LOG_SEPARATOR_RE = re.compile('^((%s)+)' % re.escape(LOG_SEPARATOR),
- re.MULTILINE)
-
-# Each line of the embedded log messages will be prefixed by LOG_LINE_PREFIX.
-LOG_LINE_PREFIX = 2 * ' '
-
-# Set python to the default locale as per environment settings, same as svn
-# TODO we should really parse config and if log-encoding is specified, set
-# the locale to match that encoding
-locale.setlocale(locale.LC_ALL, '')
-
-# We want the svn output (such as svn info) to be non-localized
-# Using LC_MESSAGES should not affect localized output of svn log, for example
-if os.environ.has_key("LC_ALL"):
- del os.environ["LC_ALL"]
-os.environ["LC_MESSAGES"] = "C"
-
-###############################################################################
-# Support for older Python versions
-###############################################################################
-
-# True/False constants are Python 2.2+
-try:
- True, False
-except NameError:
- True, False = 1, 0
-
-def lstrip(s, ch):
- """Replacement for str.lstrip (support for arbitrary chars to strip was
- added in Python 2.2.2)."""
- i = 0
- try:
- while s[i] == ch:
- i = i+1
- return s[i:]
- except IndexError:
- return ""
-
-def rstrip(s, ch):
- """Replacement for str.rstrip (support for arbitrary chars to strip was
- added in Python 2.2.2)."""
- try:
- if s[-1] != ch:
- return s
- i = -2
- while s[i] == ch:
- i = i-1
- return s[:i+1]
- except IndexError:
- return ""
-
-def strip(s, ch):
- """Replacement for str.strip (support for arbitrary chars to strip was
- added in Python 2.2.2)."""
- return lstrip(rstrip(s, ch), ch)
-
-def rsplit(s, sep, maxsplits=0):
- """Like str.rsplit, which is Python 2.4+ only."""
- L = s.split(sep)
- if not 0 < maxsplits <= len(L):
- return L
- return [sep.join(L[0:-maxsplits])] + L[-maxsplits:]
-
-###############################################################################
-
-def kwextract(s):
- """Extract info from a svn keyword string."""
- try:
- return strip(s, "$").strip().split(": ")[1]
- except IndexError:
- return "<unknown>"
-
-__revision__ = kwextract('$Rev$')
-__date__ = kwextract('$Date$')
-
-# Additional options, not (yet?) mapped to command line flags
-default_opts = {
- "svn": "svn",
- "prop": NAME + "-integrated",
- "block-prop": NAME + "-blocked",
- "commit-verbose": True,
- "verbose": 0,
-}
-logs = {}
-
-def console_width():
- """Get the width of the console screen (if any)."""
- try:
- return int(os.environ["COLUMNS"])
- except (KeyError, ValueError):
- pass
-
- try:
- # Call the Windows API (requires ctypes library)
- from ctypes import windll, create_string_buffer
- h = windll.kernel32.GetStdHandle(-11)
- csbi = create_string_buffer(22)
- res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
- if res:
- import struct
- (bufx, bufy,
- curx, cury, wattr,
- left, top, right, bottom,
- maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
- return right - left + 1
- except ImportError:
- pass
-
- # Parse the output of stty -a
- if os.isatty(1):
- out = os.popen("stty -a").read()
- m = re.search(r"columns (\d+);", out)
- if m:
- return int(m.group(1))
-
- # sensible default
- return 80
-
-def error(s):
- """Subroutine to output an error and bail."""
- print >> sys.stderr, "%s: %s" % (NAME, s)
- sys.exit(1)
-
-def report(s):
- """Subroutine to output progress message, unless in quiet mode."""
- if opts["verbose"]:
- print "%s: %s" % (NAME, s)
-
-def prefix_lines(prefix, lines):
- """Given a string representing one or more lines of text, insert the
- specified prefix at the beginning of each line, and return the result.
- The input must be terminated by a newline."""
- assert lines[-1] == "\n"
- return prefix + lines[:-1].replace("\n", "\n"+prefix) + "\n"
-
-def recode_stdout_to_file(s):
- if locale.getdefaultlocale()[1] is None or not hasattr(sys.stdout, "encoding") \
- or sys.stdout.encoding is None:
- return s
- u = s.decode(sys.stdout.encoding)
- return u.encode(locale.getdefaultlocale()[1])
-
-class LaunchError(Exception):
- """Signal a failure in execution of an external command. Parameters are the
- exit code of the process, the original command line, and the output of the
- command."""
-
-try:
- """Launch a sub-process. Return its output (both stdout and stderr),
- optionally split by lines (if split_lines is True). Raise a LaunchError
- exception if the exit code of the process is non-zero (failure).
-
- This function has two implementations, one based on subprocess (preferred),
- and one based on popen (for compatibility).
- """
- import subprocess
- import shlex
-
- def launch(cmd, split_lines=True):
- # Requiring python 2.4 or higher, on some platforms we get
- # much faster performance from the subprocess module (where python
- # doesn't try to close an exhorbitant number of file descriptors)
- stdout = ""
- stderr = ""
- try:
- if os.name == 'nt':
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE, \
- close_fds=False, stderr=subprocess.PIPE)
- else:
- # Use shlex to break up the parameters intelligently,
- # respecting quotes. shlex can't handle unicode.
- args = shlex.split(cmd.encode('ascii'))
- p = subprocess.Popen(args, stdout=subprocess.PIPE, \
- close_fds=False, stderr=subprocess.PIPE)
- stdoutAndErr = p.communicate()
- stdout = stdoutAndErr[0]
- stderr = stdoutAndErr[1]
- except OSError, inst:
- # Using 1 as failure code; should get actual number somehow? For
- # examples see svnmerge_test.py's TestCase_launch.test_failure and
- # TestCase_launch.test_failurecode.
- raise LaunchError(1, cmd, stdout + " " + stderr + ": " + str(inst))
-
- if p.returncode == 0:
- if split_lines:
- # Setting keepends=True for compatibility with previous logic
- # (where file.readlines() preserves newlines)
- return stdout.splitlines(True)
- else:
- return stdout
- else:
- raise LaunchError(p.returncode, cmd, stdout + stderr)
-except ImportError:
- # support versions of python before 2.4 (slower on some systems)
- def launch(cmd, split_lines=True):
- if os.name not in ['nt', 'os2']:
- import popen2
- p = popen2.Popen4(cmd)
- p.tochild.close()
- if split_lines:
- out = p.fromchild.readlines()
- else:
- out = p.fromchild.read()
- ret = p.wait()
- if ret == 0:
- ret = None
- else:
- ret >>= 8
- else:
- i,k = os.popen4(cmd)
- i.close()
- if split_lines:
- out = k.readlines()
- else:
- out = k.read()
- ret = k.close()
-
- if ret is None:
- return out
- raise LaunchError(ret, cmd, out)
-
-def launchsvn(s, show=False, pretend=False, **kwargs):
- """Launch SVN and grab its output."""
- username = password = configdir = ""
- if opts.get("username", None):
- username = "--username=" + opts["username"]
- if opts.get("password", None):
- password = "--password=" + opts["password"]
- if opts.get("config-dir", None):
- configdir = "--config-dir=" + opts["config-dir"]
- cmd = ' '.join(filter(None, [opts["svn"], "--non-interactive",
- username, password, configdir, s]))
- if show or opts["verbose"] >= 2:
- print cmd
- if pretend:
- return None
- return launch(cmd, **kwargs)
-
-def svn_command(s):
- """Do (or pretend to do) an SVN command."""
- out = launchsvn(s, show=opts["show-changes"] or opts["dry-run"],
- pretend=opts["dry-run"],
- split_lines=False)
- if not opts["dry-run"]:
- print out
-
-def check_dir_clean(dir):
- """Check the current status of dir for local mods."""
- if opts["force"]:
- report('skipping status check because of --force')
- return
- report('checking status of "%s"' % dir)
-
- # Checking with -q does not show unversioned files or external
- # directories. Though it displays a debug message for external
- # directories, after a blank line. So, practically, the first line
- # matters: if it's non-empty there is a modification.
- out = launchsvn("status -q %s" % dir)
- if out and out[0].strip():
- error('"%s" has local modifications; it must be clean' % dir)
-
-class PathIdentifier:
- """Abstraction for a path identifier, so that we can start talking
- about it before we know the form that it takes in the properties (its
- external_form). Objects are referenced in the class variable 'locobjs',
- keyed by all known forms."""
-
- # a map of UUID (or None) to repository root URL.
- repo_hints = {}
-
- # a map from any known string form to the corresponding PathIdentifier
- locobjs = {}
-
- def __init__(self, repo_relative_path, uuid=None, url=None, external_form=None):
- self.repo_relative_path = repo_relative_path
- self.uuid = uuid
- self.url = url
- self.external_form = external_form
-
- def __repr__(self):
- return "<PathIdentifier " + ', '.join('%s=%r' % i for i in self.__dict__.items()) + '>'
-
- def __str__(self):
- """Return a printable string representation"""
- if self.external_form:
- return self.external_form
- if self.url:
- return self.format('url')
- if self.uuid:
- return self.format('uuid')
- return self.format('path')
-
- def from_pathid(pathid_str):
- """convert pathid_str to a PathIdentifier"""
- if not PathIdentifier.locobjs.has_key(pathid_str):
- if is_url(pathid_str):
- # we can determine every form; PathIdentifier.hint knows how to do that
- PathIdentifier.hint(pathid_str)
- elif pathid_str[:7] == 'uuid://':
- mo = re.match('uuid://([^/]*)(.*)', pathid_str)
- if not mo:
- error("Invalid path identifier '%s'" % pathid_str)
- uuid, repo_relative_path = mo.groups()
- pathid = PathIdentifier(repo_relative_path, uuid=uuid)
- # we can cache this by uuid:// pathid and by repo-relative path
- PathIdentifier.locobjs[pathid_str] = PathIdentifier.locobjs[repo_relative_path] = pathid
- elif pathid_str and pathid_str[0] == '/':
- # strip any trailing slashes
- pathid_str = pathid_str.rstrip('/')
- pathid = PathIdentifier(repo_relative_path=pathid_str)
- # we can only cache this by repo-relative path
- PathIdentifier.locobjs[pathid_str] = pathid
- else:
- error("Invalid path identifier '%s'" % pathid_str)
- return PathIdentifier.locobjs[pathid_str]
- from_pathid = staticmethod(from_pathid)
-
- def from_target(target):
- """Convert a target (either a working copy path or an URL) into a
- path identifier."""
- # prime the cache first if we don't know about this target yet
- if not PathIdentifier.locobjs.has_key(target):
- PathIdentifier.hint(target)
-
- try:
- return PathIdentifier.locobjs[target]
- except KeyError:
- error("Could not recognize path identifier '%s'" % target)
- from_target = staticmethod(from_target)
-
- def hint(target):
- """Cache some information about target, as it may be referenced by
- repo-relative path in subversion properties; the cache can help to
- expand such a relative path to a full path identifier."""
- if PathIdentifier.locobjs.has_key(target): return
- if not is_url(target) and not is_wc(target): return
-
- url = target_to_url(target)
-
- root = get_repo_root(url)
- assert root[-1] != "/"
- assert url[:len(root)] == root, "url=%r, root=%r" % (url, root)
- repo_relative_path = url[len(root):]
-
- try:
- uuid = get_svninfo(target)['Repository UUID']
- uuid_pathid = 'uuid://%s%s' % (uuid, repo_relative_path)
- except KeyError:
- uuid = None
- uuid_pathid = None
-
- locobj = PathIdentifier.locobjs.get(url) or \
- (uuid_pathid and PathIdentifier.locobjs.get(uuid_pathid))
- if not locobj:
- locobj = PathIdentifier(repo_relative_path, uuid=uuid, url=url)
-
- PathIdentifier.repo_hints[uuid] = root # (uuid may be None)
-
- PathIdentifier.locobjs[target] = locobj
- PathIdentifier.locobjs[url] = locobj
- if uuid_pathid:
- PathIdentifier.locobjs[uuid_pathid] = locobj
- if not PathIdentifier.locobjs.has_key(repo_relative_path):
- PathIdentifier.locobjs[repo_relative_path] = locobj
- hint = staticmethod(hint)
-
- def format(self, fmt):
- if fmt == 'path':
- return self.repo_relative_path
- elif fmt == 'uuid':
- return "uuid://%s%s" % (self.uuid, self.repo_relative_path)
- elif fmt == 'url':
- return self.url
- else:
- error("Unkonwn path type '%s'" % fmt)
-
- def match_substring(self, str):
- """Test whether str is a substring of any representation of this
- PathIdentifier."""
- if self.repo_relative_path.find(str) >= 0:
- return True
-
- if self.uuid:
- if ("uuid://%s%s" % (self.uuid, self.repo_relative_path)).find(str) >= 0:
- return True
-
- if self.url:
- if (self.url + self.repo_relative_path).find(str) >= 0:
- return True
-
- return False
-
- def get_url(self):
- """Convert a pathid into a URL. If this is not possible, error out."""
- if self.url:
- return self.url
- # if we have a uuid and happen to know the URL for it, use that
- elif self.uuid and PathIdentifier.repo_hints.has_key(self.uuid):
- self.url = PathIdentifier.repo_hints[self.uuid] + self.repo_relative_path
- PathIdentifier.locobjs[self.url] = self
- return self.url
- # if we've only seen one rep, use that (a guess, but an educated one)
- elif not self.uuid and len(PathIdentifier.repo_hints) == 1:
- uuid, root = PathIdentifier.repo_hints.items()[0]
- if uuid:
- self.uuid = uuid
- PathIdentifier.locobjs['uuid://%s%s' % (uuid, self.repo_relative_path)] = self
- self.url = root + self.repo_relative_path
- PathIdentifier.locobjs[self.url] = self
- report("Guessing that '%s' refers to '%s'" % (self, self.url))
- return self.url
- else:
- error("Cannot determine URL for '%s'; " % self +
- "Explicit source argument (-S/--source) required.\n")
-
-class RevisionLog:
- """
- A log of the revisions which affected a given URL between two
- revisions.
- """
-
- def __init__(self, url, begin, end, find_propchanges=False):
- """
- Create a new RevisionLog object, which stores, in self.revs, a list
- of the revisions which affected the specified URL between begin and
- end. If find_propchanges is True, self.propchange_revs will contain a
- list of the revisions which changed properties directly on the
- specified URL. URL must be the URL for a directory in the repository.
- """
- self.url = url
-
- # Setup the log options (--quiet, so we don't show log messages)
- log_opts = '--xml --quiet -r%s:%s "%s"' % (begin, end, url)
- if find_propchanges:
- # The --verbose flag lets us grab merge tracking information
- # by looking at propchanges
- log_opts = "--verbose " + log_opts
-
- # Read the log to look for revision numbers and merge-tracking info
- self.revs = []
- self.propchange_revs = []
- repos_pathid = PathIdentifier.from_target(url)
- for chg in SvnLogParser(launchsvn("log %s" % log_opts,
- split_lines=False)):
- self.revs.append(chg.revision())
- for p in chg.paths():
- if p.action() == 'M' and p.pathid() == repos_pathid.repo_relative_path:
- self.propchange_revs.append(chg.revision())
-
- # Save the range of the log
- self.begin = int(begin)
- if end == "HEAD":
- # If end is not provided, we do not know which is the latest
- # revision in the repository. So we set 'end' to the latest
- # known revision.
- self.end = self.revs[-1]
- else:
- self.end = int(end)
-
- self._merges = None
- self._blocks = None
-
- def merge_metadata(self):
- """
- Return a VersionedProperty object, with a cached view of the merge
- metadata in the range of this log.
- """
-
- # Load merge metadata if necessary
- if not self._merges:
- self._merges = VersionedProperty(self.url, opts["prop"])
- self._merges.load(self)
-
- return self._merges
-
- def block_metadata(self):
- if not self._blocks:
- self._blocks = VersionedProperty(self.url, opts["block-prop"])
- self._blocks.load(self)
-
- return self._blocks
-
-
-class VersionedProperty:
- """
- A read-only, cached view of a versioned property.
-
- self.revs contains a list of the revisions in which the property changes.
- self.values stores the new values at each corresponding revision. If the
- value of the property is unknown, it is set to None.
-
- Initially, we set self.revs to [0] and self.values to [None]. This
- indicates that, as of revision zero, we know nothing about the value of
- the property.
-
- Later, if you run self.load(log), we cache the value of this property over
- the entire range of the log by noting each revision in which the property
- was changed. At the end of the range of the log, we invalidate our cache
- by adding the value "None" to our cache for any revisions which fall out
- of the range of our log.
-
- Once self.revs and self.values are filled, we can find the value of the
- property at any arbitrary revision using a binary search on self.revs.
- Once we find the last revision during which the property was changed,
- we can lookup the associated value in self.values. (If the associated
- value is None, the associated value was not cached and we have to do
- a full propget.)
-
- An example: We know that the 'svnmerge' property was added in r10, and
- changed in r21. We gathered log info up until r40.
-
- revs = [0, 10, 21, 40]
- values = [None, "val1", "val2", None]
-
- What these values say:
- - From r0 to r9, we know nothing about the property.
- - In r10, the property was set to "val1". This property stayed the same
- until r21, when it was changed to "val2".
- - We don't know what happened after r40.
- """
-
- def __init__(self, url, name):
- """View the history of a versioned property at URL with name"""
- self.url = url
- self.name = name
-
- # We know nothing about the value of the property. Setup revs
- # and values to indicate as such.
- self.revs = [0]
- self.values = [None]
-
- # We don't have any revisions cached
- self._initial_value = None
- self._changed_revs = []
- self._changed_values = []
-
- def load(self, log):
- """
- Load the history of property changes from the specified
- RevisionLog object.
- """
-
- # Get the property value before the range of the log
- if log.begin > 1:
- self.revs.append(log.begin-1)
- try:
- self._initial_value = self.raw_get(log.begin-1)
- except LaunchError:
- # The specified URL might not exist before the
- # range of the log. If so, we can safely assume
- # that the property was empty at that time.
- self._initial_value = { }
- self.values.append(self._initial_value)
- else:
- self._initial_value = { }
- self.values[0] = self._initial_value
-
- # Cache the property values in the log range
- old_value = self._initial_value
- for rev in log.propchange_revs:
- new_value = self.raw_get(rev)
- if new_value != old_value:
- self._changed_revs.append(rev)
- self._changed_values.append(new_value)
- self.revs.append(rev)
- self.values.append(new_value)
- old_value = new_value
-
- # Indicate that we know nothing about the value of the property
- # after the range of the log.
- if log.revs:
- self.revs.append(log.end+1)
- self.values.append(None)
-
- def raw_get(self, rev=None):
- """
- Get the property at revision REV. If rev is not specified, get
- the property at revision HEAD.
- """
- return get_revlist_prop(self.url, self.name, rev)
-
- def get(self, rev=None):
- """
- Get the property at revision REV. If rev is not specified, get
- the property at revision HEAD.
- """
-
- if rev is not None:
-
- # Find the index using a binary search
- i = bisect(self.revs, rev) - 1
-
- # Return the value of the property, if it was cached
- if self.values[i] is not None:
- return self.values[i]
-
- # Get the current value of the property
- return self.raw_get(rev)
-
- def changed_revs(self, key=None):
- """
- Get a list of the revisions in which the specified dictionary
- key was changed in this property. If key is not specified,
- return a list of revisions in which any key was changed.
- """
- if key is None:
- return self._changed_revs
- else:
- changed_revs = []
- old_val = self._initial_value
- for rev, val in zip(self._changed_revs, self._changed_values):
- if val.get(key) != old_val.get(key):
- changed_revs.append(rev)
- old_val = val
- return changed_revs
-
- def initialized_revs(self):
- """
- Get a list of the revisions in which keys were added or
- removed in this property.
- """
- initialized_revs = []
- old_len = len(self._initial_value)
- for rev, val in zip(self._changed_revs, self._changed_values):
- if len(val) != old_len:
- initialized_revs.append(rev)
- old_len = len(val)
- return initialized_revs
-
-class RevisionSet:
- """
- A set of revisions, held in dictionary form for easy manipulation. If we
- were to rewrite this script for Python 2.3+, we would subclass this from
- set (or UserSet). As this class does not include branch
- information, it's assumed that one instance will be used per
- branch.
- """
- def __init__(self, parm):
- """Constructs a RevisionSet from a string in property form, or from
- a dictionary whose keys are the revisions. Raises ValueError if the
- input string is invalid."""
-
- self._revs = {}
-
- revision_range_split_re = re.compile('[-:]')
-
- if isinstance(parm, types.DictType):
- self._revs = parm.copy()
- elif isinstance(parm, types.ListType):
- for R in parm:
- self._revs[int(R)] = 1
- else:
- parm = parm.strip()
- if parm:
- for R in parm.split(","):
- rev_or_revs = re.split(revision_range_split_re, R)
- if len(rev_or_revs) == 1:
- self._revs[int(rev_or_revs[0])] = 1
- elif len(rev_or_revs) == 2:
- for rev in range(int(rev_or_revs[0]),
- int(rev_or_revs[1])+1):
- self._revs[rev] = 1
- else:
- raise ValueError, 'Ill formatted revision range: ' + R
-
- def sorted(self):
- revnums = self._revs.keys()
- revnums.sort()
- return revnums
-
- def normalized(self):
- """Returns a normalized version of the revision set, which is an
- ordered list of couples (start,end), with the minimum number of
- intervals."""
- revnums = self.sorted()
- revnums.reverse()
- ret = []
- while revnums:
- s = e = revnums.pop()
- while revnums and revnums[-1] in (e, e+1):
- e = revnums.pop()
- ret.append((s, e))
- return ret
-
- def __str__(self):
- """Convert the revision set to a string, using its normalized form."""
- L = []
- for s,e in self.normalized():
- if s == e:
- L.append(str(s))
- else:
- L.append(str(s) + "-" + str(e))
- return ",".join(L)
-
- def __contains__(self, rev):
- return self._revs.has_key(rev)
-
- def __sub__(self, rs):
- """Compute subtraction as in sets."""
- revs = {}
- for r in self._revs.keys():
- if r not in rs:
- revs[r] = 1
- return RevisionSet(revs)
-
- def __and__(self, rs):
- """Compute intersections as in sets."""
- revs = {}
- for r in self._revs.keys():
- if r in rs:
- revs[r] = 1
- return RevisionSet(revs)
-
- def __nonzero__(self):
- return len(self._revs) != 0
-
- def __len__(self):
- """Return the number of revisions in the set."""
- return len(self._revs)
-
- def __iter__(self):
- return iter(self.sorted())
-
- def __or__(self, rs):
- """Compute set union."""
- revs = self._revs.copy()
- revs.update(rs._revs)
- return RevisionSet(revs)
-
-def merge_props_to_revision_set(merge_props, pathid):
- """A converter which returns a RevisionSet instance containing the
- revisions from PATH as known to BRANCH_PROPS. BRANCH_PROPS is a
- dictionary of pathid -> revision set branch integration information
- (as returned by get_merge_props())."""
- if not merge_props.has_key(pathid):
- error('no integration info available for path "%s"' % pathid)
- return RevisionSet(merge_props[pathid])
-
-def dict_from_revlist_prop(propvalue):
- """Given a property value as a string containing per-source revision
- lists, return a dictionary whose key is a source path identifier
- and whose value is the revisions for that source."""
- prop = {}
-
- # Multiple sources are separated by any whitespace.
- for L in propvalue.split():
- # We use rsplit to play safe and allow colons in pathids.
- pathid_str, revs = rsplit(L.strip(), ":", 1)
-
- pathid = PathIdentifier.from_pathid(pathid_str)
-
- # cache the "external" form we saw
- pathid.external_form = pathid_str
-
- prop[pathid] = revs
- return prop
-
-def get_revlist_prop(url_or_dir, propname, rev=None):
- """Given a repository URL or working copy path and a property
- name, extract the values of the property which store per-source
- revision lists and return a dictionary whose key is a source path
- identifier, and whose value is the revisions for that source."""
-
- # Note that propget does not return an error if the property does
- # not exist, it simply does not output anything. So we do not need
- # to check for LaunchError here.
- args = '--strict "%s" "%s"' % (propname, url_or_dir)
- if rev:
- args = '-r %s %s' % (rev, args)
- out = launchsvn('propget %s' % args, split_lines=False)
-
- return dict_from_revlist_prop(out)
-
-def get_merge_props(dir):
- """Extract the merged revisions."""
- return get_revlist_prop(dir, opts["prop"])
-
-def get_block_props(dir):
- """Extract the blocked revisions."""
- return get_revlist_prop(dir, opts["block-prop"])
-
-def get_blocked_revs(dir, source_pathid):
- p = get_block_props(dir)
- if p.has_key(source_pathid):
- return RevisionSet(p[source_pathid])
- return RevisionSet("")
-
-def format_merge_props(props, sep=" "):
- """Formats the hash PROPS as a string suitable for use as a
- Subversion property value."""
- assert sep in ["\t", "\n", " "] # must be a whitespace
- props = props.items()
- props.sort()
- L = []
- for h, r in props:
- L.append("%s:%s" % (h, r))
- return sep.join(L)
-
-def _run_propset(dir, prop, value):
- """Set the property 'prop' of directory 'dir' to value 'value'. We go
- through a temporary file to not run into command line length limits."""
- try:
- fd, fname = tempfile.mkstemp()
- f = os.fdopen(fd, "wb")
- except AttributeError:
- # Fallback for Python <= 2.3 which does not have mkstemp (mktemp
- # suffers from race conditions. Not that we care...)
- fname = tempfile.mktemp()
- f = open(fname, "wb")
-
- try:
- f.write(value)
- f.close()
- report("property data written to temp file: %s" % value)
- svn_command('propset "%s" -F "%s" "%s"' % (prop, fname, dir))
- finally:
- os.remove(fname)
-
-def set_props(dir, name, props):
- props = format_merge_props(props)
- if props:
- _run_propset(dir, name, props)
- else:
- # Check if NAME exists on DIR before trying to delete it.
- # As of 1.6 propdel no longer supports deleting a
- # non-existent property.
- out = launchsvn('propget "%s" "%s"' % (name, dir))
- if out:
- svn_command('propdel "%s" "%s"' % (name, dir))
-
-def set_merge_props(dir, props):
- set_props(dir, opts["prop"], props)
-
-def set_block_props(dir, props):
- set_props(dir, opts["block-prop"], props)
-
-def set_blocked_revs(dir, source_pathid, revs):
- props = get_block_props(dir)
- if revs:
- props[source_pathid] = str(revs)
- elif props.has_key(source_pathid):
- del props[source_pathid]
- set_block_props(dir, props)
-
-def is_url(url):
- """Check if url looks like a valid url."""
- return re.search(r"^[a-zA-Z][-+\.\w]*://[^\s]+$", url) is not None and url[:4] != 'uuid'
-
-def check_url(url):
- """Similar to is_url, but actually invoke get_svninfo to find out"""
- return get_svninfo(url) != {}
-
-def is_pathid(pathid):
- return isinstance(pathid, PathIdentifier)
-
-def is_wc(dir):
- """Check if a directory is a working copy."""
- return os.path.isdir(os.path.join(dir, ".svn")) or \
- os.path.isdir(os.path.join(dir, "_svn"))
-
-_cache_svninfo = {}
-def get_svninfo(target):
- """Extract the subversion information for a target (through 'svn info').
- This function uses an internal cache to let clients query information
- many times."""
- if _cache_svninfo.has_key(target):
- return _cache_svninfo[target]
- info = {}
- for L in launchsvn('info "%s"' % target):
- L = L.strip()
- if not L:
- continue
- key, value = L.split(": ", 1)
- info[key] = value.strip()
- _cache_svninfo[target] = info
- return info
-
-def target_to_url(target):
- """Convert working copy path or repos URL to a repos URL."""
- if is_wc(target):
- info = get_svninfo(target)
- return info["URL"]
- return target
-
-_cache_reporoot = {}
-def get_repo_root(target):
- """Compute the root repos URL given a working-copy path, or a URL."""
- # Try using "svn info WCDIR". This works only on SVN clients >= 1.3
- if not is_url(target):
- try:
- info = get_svninfo(target)
- root = info["Repository Root"]
- _cache_reporoot[root] = None
- return root
- except KeyError:
- pass
- url = target_to_url(target)
- assert url[-1] != '/'
- else:
- url = target
-
- # Go through the cache of the repository roots. This avoids extra
- # server round-trips if we are asking the root of different URLs
- # in the same repository (the cache in get_svninfo() cannot detect
- # that of course and would issue a remote command).
- assert is_url(url)
- for r in _cache_reporoot:
- if url.startswith(r):
- return r
-
- # Try using "svn info URL". This works only on SVN clients >= 1.2
- try:
- info = get_svninfo(url)
- # info may be {}, in which case we'll see KeyError here
- root = info["Repository Root"]
- _cache_reporoot[root] = None
- return root
- except (KeyError, LaunchError):
- pass
-
- # Constrained to older svn clients, we are stuck with this ugly
- # trial-and-error implementation. It could be made faster with a
- # binary search.
- while url:
- temp = os.path.dirname(url)
- try:
- launchsvn('proplist "%s"' % temp)
- except LaunchError:
- _cache_reporoot[url] = None
- return rstrip(url, "/")
- url = temp
-
- error("svn repos root of %s not found" % target)
-
-class SvnLogParser:
- """
- Parse the "svn log", going through the XML output and using pulldom (which
- would even allow streaming the command output).
- """
- def __init__(self, xml):
- self._events = pulldom.parseString(xml)
- def __getitem__(self, idx):
- for event, node in self._events:
- if event == pulldom.START_ELEMENT and node.tagName == "logentry":
- self._events.expandNode(node)
- return self.SvnLogRevision(node)
- raise IndexError, "Could not find 'logentry' tag in xml"
-
- class SvnLogRevision:
- def __init__(self, xmlnode):
- self.n = xmlnode
- def revision(self):
- return int(self.n.getAttribute("revision"))
- def author(self):
- return self.n.getElementsByTagName("author")[0].firstChild.data
- def paths(self):
- return [self.SvnLogPath(n)
- for n in self.n.getElementsByTagName("path")]
-
- class SvnLogPath:
- def __init__(self, xmlnode):
- self.n = xmlnode
- def action(self):
- return self.n.getAttribute("action")
- def pathid(self):
- return self.n.firstChild.data
- def copyfrom_rev(self):
- try: return self.n.getAttribute("copyfrom-rev")
- except KeyError: return None
- def copyfrom_pathid(self):
- try: return self.n.getAttribute("copyfrom-path")
- except KeyError: return None
-
-def get_copyfrom(target):
- """Get copyfrom info for a given target (it represents the
- repository-relative path from where it was branched). NOTE:
- repos root has no copyfrom info. In this case None is returned.
-
- Returns the:
- - source file or directory from which the copy was made
- - revision from which that source was copied
- - revision in which the copy was committed
- """
- repos_path = PathIdentifier.from_target(target).repo_relative_path
- for chg in SvnLogParser(launchsvn('log -v --xml --stop-on-copy "%s"'
- % target, split_lines=False)):
- for p in chg.paths():
- if p.action() == 'A' and p.pathid() == repos_path:
- # These values will be None if the corresponding elements are
- # not found in the log.
- return p.copyfrom_pathid(), p.copyfrom_rev(), chg.revision()
- return None,None,None
-
-def get_latest_rev(url):
- """Get the latest revision of the repository of which URL is part."""
- try:
- info = get_svninfo(url)
- if not info.has_key("Revision"):
- error("Not a valid URL: %s" % url)
- return info["Revision"]
- except LaunchError:
- # Alternative method for latest revision checking (for svn < 1.2)
- report('checking latest revision of "%s"' % url)
- L = launchsvn('proplist --revprop -r HEAD "%s"' % opts["source-url"])[0]
- rev = re.search("revision (\d+)", L).group(1)
- report('latest revision of "%s" is %s' % (url, rev))
- return rev
-
-def get_created_rev(url):
- """Lookup the revision at which the path identified by the
- provided URL was first created."""
- oldest_rev = -1
- report('determining oldest revision for URL "%s"' % url)
- ### TODO: Refactor this to use a modified RevisionLog class.
- lines = None
- cmd = "log -r1:HEAD --stop-on-copy -q " + url
- try:
- lines = launchsvn(cmd + " --limit=1")
- except LaunchError:
- # Assume that --limit isn't supported by the installed 'svn'.
- lines = launchsvn(cmd)
- if lines and len(lines) > 1:
- i = lines[1].find(" ")
- if i != -1:
- oldest_rev = int(lines[1][1:i])
- if oldest_rev == -1:
- error('unable to determine oldest revision for URL "%s"' % url)
- return oldest_rev
-
-def get_commit_log(url, revnum):
- """Return the log message for a specific integer revision
- number."""
- out = launchsvn("log --incremental -r%d %s" % (revnum, url))
- return recode_stdout_to_file("".join(out[1:]))
-
-def construct_merged_log_message(url, revnums):
- """Return a commit log message containing all the commit messages
- in the specified revisions at the given URL. The separator used
- in this log message is determined by searching for the longest
- svnmerge separator existing in the commit log messages and
- extending it by one more separator. This results in a new commit
- log message that is clearer in describing merges that contain
- other merges. Trailing newlines are removed from the embedded
- log messages."""
- messages = ['']
- longest_sep = ''
- for r in revnums.sorted():
- message = get_commit_log(url, r)
- if message:
- message = re.sub(r'(\r\n|\r|\n)', "\n", message)
- message = rstrip(message, "\n") + "\n"
- messages.append(prefix_lines(LOG_LINE_PREFIX, message))
- for match in LOG_SEPARATOR_RE.findall(message):
- sep = match[1]
- if len(sep) > len(longest_sep):
- longest_sep = sep
-
- longest_sep += LOG_SEPARATOR + "\n"
- messages.append('')
- return longest_sep.join(messages)
-
-def get_default_source(branch_target, branch_props):
- """Return the default source for branch_target (given its branch_props).
- Error out if there is ambiguity."""
- if not branch_props:
- error("no integration info available")
-
- props = branch_props.copy()
- pathid = PathIdentifier.from_target(branch_target)
-
- # To make bidirectional merges easier, find the target's
- # repository local path so it can be removed from the list of
- # possible integration sources.
- if props.has_key(pathid):
- del props[pathid]
-
- if len(props) > 1:
- err_msg = "multiple sources found. "
- err_msg += "Explicit source argument (-S/--source) required.\n"
- err_msg += "The merge sources available are:"
- for prop in props:
- err_msg += "\n " + str(prop)
- error(err_msg)
-
- return props.keys()[0]
-
-def should_find_reflected(branch_dir):
- should_find_reflected = opts["bidirectional"]
-
- # If the source has integration info for the target, set find_reflected
- # even if --bidirectional wasn't specified
- if not should_find_reflected:
- source_props = get_merge_props(opts["source-url"])
- should_find_reflected = source_props.has_key(PathIdentifier.from_target(branch_dir))
-
- return should_find_reflected
-
-def analyze_revs(target_pathid, url, begin=1, end=None,
- find_reflected=False):
- """For the source of the merges in the source URL being merged into
- target_pathid, analyze the revisions in the interval begin-end (which
- defaults to 1-HEAD), to find out which revisions are changes in
- the url, which are changes elsewhere (so-called 'phantom'
- revisions), optionally which are reflected changes (to avoid
- conflicts that can occur when doing bidirectional merging between
- branches), and which revisions initialize merge tracking against other
- branches. Return a tuple of four RevisionSet's:
- (real_revs, phantom_revs, reflected_revs, initialized_revs).
-
- NOTE: To maximize speed, if "end" is not provided, the function is
- not able to find phantom revisions following the last real
- revision in the URL.
- """
-
- begin = str(begin)
- if end is None:
- end = "HEAD"
- else:
- end = str(end)
- if long(begin) > long(end):
- return RevisionSet(""), RevisionSet(""), \
- RevisionSet(""), RevisionSet("")
-
- logs[url] = RevisionLog(url, begin, end, find_reflected)
- revs = RevisionSet(logs[url].revs)
-
- if end == "HEAD":
- # If end is not provided, we do not know which is the latest revision
- # in the repository. So return the phantom revision set only up to
- # the latest known revision.
- end = str(list(revs)[-1])
-
- phantom_revs = RevisionSet("%s-%s" % (begin, end)) - revs
-
- if find_reflected:
- reflected_revs = logs[url].merge_metadata().changed_revs(target_pathid)
- reflected_revs += logs[url].block_metadata().changed_revs(target_pathid)
- else:
- reflected_revs = []
-
- initialized_revs = RevisionSet(logs[url].merge_metadata().initialized_revs())
- reflected_revs = RevisionSet(reflected_revs)
-
- return revs, phantom_revs, reflected_revs, initialized_revs
-
-def analyze_source_revs(branch_target, source_url, **kwargs):
- """For the given branch and source, extract the real and phantom
- source revisions."""
- branch_url = target_to_url(branch_target)
- branch_pathid = PathIdentifier.from_target(branch_target)
-
- # Extract the latest repository revision from the URL of the branch
- # directory (which is already cached at this point).
- end_rev = get_latest_rev(source_url)
-
- # Calculate the base of analysis. If there is a "1-XX" interval in the
- # merged_revs, we do not need to check those.
- base = 1
- r = opts["merged-revs"].normalized()
- if r and r[0][0] == 1:
- base = r[0][1] + 1
-
- # See if the user filtered the revision set. If so, we are not
- # interested in something outside that range.
- if opts["revision"]:
- revs = RevisionSet(opts["revision"]).sorted()
- if base < revs[0]:
- base = revs[0]
- if end_rev > revs[-1]:
- end_rev = revs[-1]
-
- return analyze_revs(branch_pathid, source_url, base, end_rev, **kwargs)
-
-def minimal_merge_intervals(revs, phantom_revs):
- """Produce the smallest number of intervals suitable for merging. revs
- is the RevisionSet which we want to merge, and phantom_revs are phantom
- revisions which can be used to concatenate intervals, thus minimizing the
- number of operations."""
- revnums = revs.normalized()
- ret = []
-
- cur = revnums.pop()
- while revnums:
- next = revnums.pop()
- assert next[1] < cur[0] # otherwise it is not ordered
- assert cur[0] - next[1] > 1 # otherwise it is not normalized
- for i in range(next[1]+1, cur[0]):
- if i not in phantom_revs:
- ret.append(cur)
- cur = next
- break
- else:
- cur = (next[0], cur[1])
-
- ret.append(cur)
- ret.reverse()
- return ret
-
-def display_revisions(revs, display_style, revisions_msg, source_url):
- """Show REVS as dictated by DISPLAY_STYLE, either numerically, in
- log format, or as diffs. When displaying revisions numerically,
- prefix output with REVISIONS_MSG when in verbose mode. Otherwise,
- request logs or diffs using SOURCE_URL."""
- if display_style == "revisions":
- if revs:
- report(revisions_msg)
- print revs
- elif display_style == "logs":
- for start,end in revs.normalized():
- svn_command('log --incremental -v -r %d:%d %s' % \
- (start, end, source_url))
- elif display_style in ("diffs", "summarize"):
- if display_style == 'summarize':
- summarize = '--summarize '
- else:
- summarize = ''
-
- for start, end in revs.normalized():
- print
- if start == end:
- print "%s: changes in revision %d follow" % (NAME, start)
- else:
- print "%s: changes in revisions %d-%d follow" % (NAME,
- start, end)
- print
-
- # Note: the starting revision number to 'svn diff' is
- # NOT inclusive so we have to subtract one from ${START}.
- svn_command("diff -r %d:%d %s %s" % (start - 1, end, summarize,
- source_url))
- else:
- assert False, "unhandled display style: %s" % display_style
-
-def action_init(target_dir, target_props):
- """Initialize for merges."""
- # Check that directory is ready for being modified
- check_dir_clean(target_dir)
-
- target_pathid = PathIdentifier.from_target(target_dir)
- source_pathid = opts['source-pathid']
- if source_pathid == target_pathid:
- error("cannot init integration source path '%s'\nIts path identifier does not "
- "differ from the path identifier of the current directory, '%s'."
- % (source_pathid, target_pathid))
-
- source_url = opts['source-url']
-
- # If the user hasn't specified the revisions to use, see if the
- # "source" is a copy from the current tree and if so, we can use
- # the version data obtained from it.
- revision_range = opts["revision"]
- if not revision_range:
- # If source was originally copied from target, and we are merging
- # changes from source to target (the copy target is the merge source,
- # and the copy source is the merge target), then we want to mark as
- # integrated up to the rev in which the copy was committed which
- # created the merge source:
- cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(source_url)
-
- cf_pathid = None
- if cf_source:
- cf_url = get_repo_root(source_url) + cf_source
- if is_url(cf_url) and check_url(cf_url):
- cf_pathid = PathIdentifier.from_target(cf_url)
-
- if target_pathid == cf_pathid:
- report('the source "%s" was copied from "%s" in rev %s and committed in rev %s' %
- (source_url, target_dir, cf_rev, copy_committed_in_rev))
- revision_range = "1-" + str(copy_committed_in_rev)
-
- if not revision_range:
- # If the reverse is true: copy source is the merge source, and
- # the copy target is the merge target, then we want to mark as
- # integrated up to the specific rev of the merge target from
- # which the merge source was copied. (Longer discussion at:
- # http://subversion.tigris.org/issues/show_bug.cgi?id=2810 )
- cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(target_dir)
-
- cf_pathid = None
- if cf_source:
- cf_url = get_repo_root(target_dir) + cf_source
- if is_url(cf_url) and check_url(cf_url):
- cf_pathid = PathIdentifier.from_target(cf_url)
-
- source_pathid = PathIdentifier.from_target(source_url)
- if source_pathid == cf_pathid:
- report('the target "%s" was copied the source "%s" in rev %s and committed in rev %s' %
- (target_dir, source_url, cf_rev, copy_committed_in_rev))
- revision_range = "1-" + cf_rev
-
- # When neither the merge source nor target is a copy of the other, and
- # the user did not specify a revision range, then choose a default which is
- # the current revision; saying, in effect, "everything has been merged, so
- # mark as integrated up to the latest rev on source url).
- if not revision_range:
- revision_range = "1-" + get_latest_rev(source_url)
-
- revs = RevisionSet(revision_range)
-
- report('marking "%s" as already containing revisions "%s" of "%s"' %
- (target_dir, revs, source_url))
-
- revs = str(revs)
- # If the local svnmerge-integrated property already has an entry
- # for the source-pathid, simply error out.
- if not opts["force"] and target_props.has_key(source_pathid):
- error('Repository-relative path %s has already been initialized at %s\n'
- 'Use --force to re-initialize' % (source_pathid, target_dir))
- # set the pathid's external_form based on the user's options
- source_pathid.external_form = source_pathid.format(opts['location-type'])
-
- revs = str(revs)
- target_props[source_pathid] = revs
-
- # Set property
- set_merge_props(target_dir, target_props)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Initialized merge tracking via "%s" with revisions "%s" from ' \
- % (NAME, revs)
- print >>f, '%s' % source_url
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_avail(branch_dir, branch_props):
- """Show commits available for merges."""
- source_revs, phantom_revs, reflected_revs, initialized_revs = \
- analyze_source_revs(branch_dir, opts["source-url"],
- find_reflected=
- should_find_reflected(branch_dir))
- report('skipping phantom revisions: %s' % phantom_revs)
- if reflected_revs:
- report('skipping reflected revisions: %s' % reflected_revs)
- report('skipping initialized revisions: %s' % initialized_revs)
-
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- avail_revs = source_revs - opts["merged-revs"] - blocked_revs - \
- reflected_revs - initialized_revs
-
- # Compose the set of revisions to show
- revs = RevisionSet("")
- report_msg = "revisions available to be merged are:"
- if "avail" in opts["avail-showwhat"]:
- revs |= avail_revs
- if "blocked" in opts["avail-showwhat"]:
- revs |= blocked_revs
- report_msg = "revisions blocked are:"
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs = revs & RevisionSet(opts["revision"])
-
- display_revisions(revs, opts["avail-display"],
- report_msg,
- opts["source-url"])
-
-def action_integrated(branch_dir, branch_props):
- """Show change sets already merged. This set of revisions is
- calculated from taking svnmerge-integrated property from the
- branch, and subtracting any revision older than the branch
- creation revision."""
- # Extract the integration info for the branch_dir
- branch_props = get_merge_props(branch_dir)
- revs = merge_props_to_revision_set(branch_props, opts["source-pathid"])
-
- # Lookup the oldest revision on the branch path.
- oldest_src_rev = get_created_rev(opts["source-url"])
-
- # Subtract any revisions which pre-date the branch.
- report("subtracting revisions which pre-date the source URL (%d)" %
- oldest_src_rev)
- revs = revs - RevisionSet(range(1, oldest_src_rev))
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs = revs & RevisionSet(opts["revision"])
-
- display_revisions(revs, opts["integrated-display"],
- "revisions already integrated are:", opts["source-url"])
-
-def action_merge(branch_dir, branch_props):
- """Record merge meta data, and do the actual merge (if not
- requested otherwise via --record-only)."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- source_revs, phantom_revs, reflected_revs, initialized_revs = \
- analyze_source_revs(branch_dir, opts["source-url"],
- find_reflected=
- should_find_reflected(branch_dir))
-
- if opts["revision"]:
- revs = RevisionSet(opts["revision"])
- else:
- revs = source_revs
-
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- merged_revs = opts["merged-revs"]
-
- # Show what we're doing
- if opts["verbose"]: # just to avoid useless calculations
- if merged_revs & revs:
- report('"%s" already contains revisions %s' % (branch_dir,
- merged_revs & revs))
- if phantom_revs:
- report('memorizing phantom revision(s): %s' % phantom_revs)
- if reflected_revs:
- report('memorizing reflected revision(s): %s' % reflected_revs)
- if blocked_revs & revs:
- report('skipping blocked revisions(s): %s' % (blocked_revs & revs))
- if initialized_revs:
- report('skipping initialized revision(s): %s' % initialized_revs)
-
- # Compute final merge set.
- revs = revs - merged_revs - blocked_revs - reflected_revs - \
- phantom_revs - initialized_revs
- if not revs:
- report('no revisions to merge, exiting')
- return
-
- # When manually marking revisions as merged, we only update the
- # integration meta data, and don't perform an actual merge.
- record_only = opts["record-only"]
-
- if record_only:
- report('recording merge of revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
- else:
- report('merging in revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
-
- # Do the merge(s). Note: the starting revision number to 'svn merge'
- # is NOT inclusive so we have to subtract one from start.
- # We try to keep the number of merge operations as low as possible,
- # because it is faster and reduces the number of conflicts.
- old_block_props = get_block_props(branch_dir)
- merge_metadata = logs[opts["source-url"]].merge_metadata()
- block_metadata = logs[opts["source-url"]].block_metadata()
- for start,end in minimal_merge_intervals(revs, phantom_revs):
- if not record_only:
- # Preset merge/blocked properties to the source value at
- # the start rev to avoid spurious property conflicts
- set_merge_props(branch_dir, merge_metadata.get(start - 1))
- set_block_props(branch_dir, block_metadata.get(start - 1))
- # Do the merge
- svn_command("merge --force -r %d:%d %s %s" % \
- (start - 1, end, opts["source-url"], branch_dir))
- # TODO: to support graph merging, add logic to merge the property
- # meta-data manually
-
- # Update the set of merged revisions.
- merged_revs = merged_revs | revs | reflected_revs | phantom_revs | initialized_revs
- branch_props[opts["source-pathid"]] = str(merged_revs)
- set_merge_props(branch_dir, branch_props)
- # Reset the blocked revs
- set_block_props(branch_dir, old_block_props)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- if record_only:
- print >>f, 'Recorded merge of revisions %s via %s from ' % \
- (revs, NAME)
- else:
- print >>f, 'Merged revisions %s via %s from ' % \
- (revs, NAME)
- print >>f, '%s' % opts["source-url"]
- if opts["commit-verbose"]:
- print >>f
- print >>f, construct_merged_log_message(opts["source-url"], revs),
-
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_block(branch_dir, branch_props):
- """Block revisions."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- source_revs, phantom_revs, reflected_revs, initialized_revs = \
- analyze_source_revs(branch_dir, opts["source-url"])
- revs_to_block = source_revs - opts["merged-revs"]
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs_to_block = RevisionSet(opts["revision"]) & revs_to_block
-
- if not revs_to_block:
- error('no available revisions to block')
-
- # Change blocked information
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- blocked_revs = blocked_revs | revs_to_block
- set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Blocked revisions %s via %s' % (revs_to_block, NAME)
- if opts["commit-verbose"]:
- print >>f
- print >>f, construct_merged_log_message(opts["source-url"],
- revs_to_block),
-
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_unblock(branch_dir, branch_props):
- """Unblock revisions."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
- revs_to_unblock = blocked_revs
-
- # Limit to revisions specified by -r (if any)
- if opts["revision"]:
- revs_to_unblock = revs_to_unblock & RevisionSet(opts["revision"])
-
- if not revs_to_unblock:
- error('no available revisions to unblock')
-
- # Change blocked information
- blocked_revs = blocked_revs - revs_to_unblock
- set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Unblocked revisions %s via %s' % (revs_to_unblock, NAME)
- if opts["commit-verbose"]:
- print >>f
- print >>f, construct_merged_log_message(opts["source-url"],
- revs_to_unblock),
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-def action_rollback(branch_dir, branch_props):
- """Rollback previously integrated revisions."""
-
- # Make sure the revision arguments are present
- if not opts["revision"]:
- error("The '-r' option is mandatory for rollback")
-
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- # Extract the integration info for the branch_dir
- branch_props = get_merge_props(branch_dir)
- # Get the list of all revisions already merged into this source-pathid.
- merged_revs = merge_props_to_revision_set(branch_props,
- opts["source-pathid"])
-
- # At which revision was the src created?
- oldest_src_rev = get_created_rev(opts["source-url"])
- src_pre_exist_range = RevisionSet("1-%d" % oldest_src_rev)
-
- # Limit to revisions specified by -r (if any)
- revs = merged_revs & RevisionSet(opts["revision"])
-
- # make sure there's some revision to rollback
- if not revs:
- report("Nothing to rollback in revision range r%s" % opts["revision"])
- return
-
- # If even one specified revision lies outside the lifetime of the
- # merge source, error out.
- if revs & src_pre_exist_range:
- err_str = "Specified revision range falls out of the rollback range.\n"
- err_str += "%s was created at r%d" % (opts["source-pathid"],
- oldest_src_rev)
- error(err_str)
-
- record_only = opts["record-only"]
-
- if record_only:
- report('recording rollback of revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
- else:
- report('rollback of revision(s) %s from "%s"' %
- (revs, opts["source-url"]))
-
- # Do the reverse merge(s). Note: the starting revision number
- # to 'svn merge' is NOT inclusive so we have to subtract one from start.
- # We try to keep the number of merge operations as low as possible,
- # because it is faster and reduces the number of conflicts.
- rollback_intervals = minimal_merge_intervals(revs, [])
- # rollback in the reverse order of merge
- rollback_intervals.reverse()
- for start, end in rollback_intervals:
- if not record_only:
- # Do the merge
- svn_command("merge --force -r %d:%d %s %s" % \
- (end, start - 1, opts["source-url"], branch_dir))
-
- # Write out commit message if desired
- # calculate the phantom revs first
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- if record_only:
- print >>f, 'Recorded rollback of revisions %s via %s from ' % \
- (revs , NAME)
- else:
- print >>f, 'Rolled back revisions %s via %s from ' % \
- (revs , NAME)
- print >>f, '%s' % opts["source-url"]
-
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
- # Update the set of merged revisions.
- merged_revs = merged_revs - revs
- branch_props[opts["source-pathid"]] = str(merged_revs)
- set_merge_props(branch_dir, branch_props)
-
-def action_uninit(branch_dir, branch_props):
- """Uninit SOURCE URL."""
- # Check branch directory is ready for being modified
- check_dir_clean(branch_dir)
-
- # If the source-pathid does not have an entry in the svnmerge-integrated
- # property, simply error out.
- if not branch_props.has_key(opts["source-pathid"]):
- error('Repository-relative path "%s" does not contain merge '
- 'tracking information for "%s"' \
- % (opts["source-pathid"], branch_dir))
-
- del branch_props[opts["source-pathid"]]
-
- # Set merge property with the selected source deleted
- set_merge_props(branch_dir, branch_props)
-
- # Set blocked revisions for the selected source to None
- set_blocked_revs(branch_dir, opts["source-pathid"], None)
-
- # Write out commit message if desired
- if opts["commit-file"]:
- f = open(opts["commit-file"], "w")
- print >>f, 'Removed merge tracking for "%s" for ' % NAME
- print >>f, '%s' % opts["source-url"]
- f.close()
- report('wrote commit message to "%s"' % opts["commit-file"])
-
-###############################################################################
-# Command line parsing -- options and commands management
-###############################################################################
-
-class OptBase:
- def __init__(self, *args, **kwargs):
- self.help = kwargs["help"]
- del kwargs["help"]
- self.lflags = []
- self.sflags = []
- for a in args:
- if a.startswith("--"): self.lflags.append(a)
- elif a.startswith("-"): self.sflags.append(a)
- else:
- raise TypeError, "invalid flag name: %s" % a
- if kwargs.has_key("dest"):
- self.dest = kwargs["dest"]
- del kwargs["dest"]
- else:
- if not self.lflags:
- raise TypeError, "cannot deduce dest name without long options"
- self.dest = self.lflags[0][2:]
- if kwargs:
- raise TypeError, "invalid keyword arguments: %r" % kwargs.keys()
- def repr_flags(self):
- f = self.sflags + self.lflags
- r = f[0]
- for fl in f[1:]:
- r += " [%s]" % fl
- return r
-
-class Option(OptBase):
- def __init__(self, *args, **kwargs):
- self.default = kwargs.setdefault("default", 0)
- del kwargs["default"]
- self.value = kwargs.setdefault("value", None)
- del kwargs["value"]
- OptBase.__init__(self, *args, **kwargs)
- def apply(self, state, value):
- assert value == ""
- if self.value is not None:
- state[self.dest] = self.value
- else:
- state[self.dest] += 1
-
-class OptionArg(OptBase):
- def __init__(self, *args, **kwargs):
- self.default = kwargs["default"]
- del kwargs["default"]
- self.metavar = kwargs.setdefault("metavar", None)
- del kwargs["metavar"]
- OptBase.__init__(self, *args, **kwargs)
-
- if self.metavar is None:
- if self.dest is not None:
- self.metavar = self.dest.upper()
- else:
- self.metavar = "arg"
- if self.default:
- self.help += " (default: %s)" % self.default
- def apply(self, state, value):
- assert value is not None
- state[self.dest] = value
- def repr_flags(self):
- r = OptBase.repr_flags(self)
- return r + " " + self.metavar
-
-class CommandOpts:
- class Cmd:
- def __init__(self, *args):
- self.name, self.func, self.usage, self.help, self.opts = args
- def short_help(self):
- return self.help.split(".")[0]
- def __str__(self):
- return self.name
- def __call__(self, *args, **kwargs):
- return self.func(*args, **kwargs)
-
- def __init__(self, global_opts, common_opts, command_table, version=None):
- self.progname = NAME
- self.version = version.replace("%prog", self.progname)
- self.cwidth = console_width() - 2
- self.ctable = command_table.copy()
- self.gopts = global_opts[:]
- self.copts = common_opts[:]
- self._add_builtins()
- for k in self.ctable.keys():
- cmd = self.Cmd(k, *self.ctable[k])
- opts = []
- for o in cmd.opts:
- if isinstance(o, types.StringType) or \
- isinstance(o, types.UnicodeType):
- o = self._find_common(o)
- opts.append(o)
- cmd.opts = opts
- self.ctable[k] = cmd
-
- def _add_builtins(self):
- self.gopts.append(
- Option("-h", "--help", help="show help for this command and exit"))
- if self.version is not None:
- self.gopts.append(
- Option("-V", "--version", help="show version info and exit"))
- self.ctable["help"] = (self._cmd_help,
- "help [COMMAND]",
- "Display help for a specific command. If COMMAND is omitted, "
- "display brief command description.",
- [])
-
- def _cmd_help(self, cmd=None, *args):
- if args:
- self.error("wrong number of arguments", "help")
- if cmd is not None:
- cmd = self._command(cmd)
- self.print_command_help(cmd)
- else:
- self.print_command_list()
-
- def _paragraph(self, text, width=78):
- chunks = re.split("\s+", text.strip())
- chunks.reverse()
- lines = []
- while chunks:
- L = chunks.pop()
- while chunks and len(L) + len(chunks[-1]) + 1 <= width:
- L += " " + chunks.pop()
- lines.append(L)
- return lines
-
- def _paragraphs(self, text, *args, **kwargs):
- pars = text.split("\n\n")
- lines = self._paragraph(pars[0], *args, **kwargs)
- for p in pars[1:]:
- lines.append("")
- lines.extend(self._paragraph(p, *args, **kwargs))
- return lines
-
- def _print_wrapped(self, text, indent=0):
- text = self._paragraphs(text, self.cwidth - indent)
- print text.pop(0)
- for t in text:
- print " " * indent + t
-
- def _find_common(self, fl):
- for o in self.copts:
- if fl in o.lflags+o.sflags:
- return o
- assert False, fl
-
- def _compute_flags(self, opts, check_conflicts=True):
- back = {}
- sfl = ""
- lfl = []
- for o in opts:
- sapp = lapp = ""
- if isinstance(o, OptionArg):
- sapp, lapp = ":", "="
- for s in o.sflags:
- if check_conflicts and back.has_key(s):
- raise RuntimeError, "option conflict: %s" % s
- back[s] = o
- sfl += s[1:] + sapp
- for l in o.lflags:
- if check_conflicts and back.has_key(l):
- raise RuntimeError, "option conflict: %s" % l
- back[l] = o
- lfl.append(l[2:] + lapp)
- return sfl, lfl, back
-
- def _extract_command(self, args):
- """
- Try to extract the command name from the argument list. This is
- non-trivial because we want to allow command-specific options even
- before the command itself.
- """
- opts = self.gopts[:]
- for cmd in self.ctable.values():
- opts.extend(cmd.opts)
- sfl, lfl, _ = self._compute_flags(opts, check_conflicts=False)
-
- lopts,largs = getopt.getopt(args, sfl, lfl)
- if not largs:
- return None
- return self._command(largs[0])
-
- def _fancy_getopt(self, args, opts, state=None):
- if state is None:
- state= {}
- for o in opts:
- if not state.has_key(o.dest):
- state[o.dest] = o.default
-
- sfl, lfl, back = self._compute_flags(opts)
- try:
- lopts,args = getopt.gnu_getopt(args, sfl, lfl)
- except AttributeError:
- # Before Python 2.3, there was no gnu_getopt support.
- # So we can't parse intermixed positional arguments
- # and options.
- lopts,args = getopt.getopt(args, sfl, lfl)
-
- for o,v in lopts:
- back[o].apply(state, v)
- return state, args
-
- def _command(self, cmd):
- if not self.ctable.has_key(cmd):
- self.error("unknown command: '%s'" % cmd)
- return self.ctable[cmd]
-
- def parse(self, args):
- if not args:
- self.print_small_help()
- sys.exit(0)
-
- cmd = None
- try:
- cmd = self._extract_command(args)
- opts = self.gopts[:]
- if cmd:
- opts.extend(cmd.opts)
- args.remove(cmd.name)
- state, args = self._fancy_getopt(args, opts)
- except getopt.GetoptError, e:
- self.error(e, cmd)
-
- # Handle builtins
- if self.version is not None and state["version"]:
- self.print_version()
- sys.exit(0)
- if state["help"]: # special case for --help
- if cmd:
- self.print_command_help(cmd)
- sys.exit(0)
- cmd = self.ctable["help"]
- else:
- if cmd is None:
- self.error("command argument required")
- if str(cmd) == "help":
- cmd(*args)
- sys.exit(0)
- return cmd, args, state
-
- def error(self, s, cmd=None):
- print >>sys.stderr, "%s: %s" % (self.progname, s)
- if cmd is not None:
- self.print_command_help(cmd)
- else:
- self.print_small_help()
- sys.exit(1)
- def print_small_help(self):
- print "Type '%s help' for usage" % self.progname
- def print_usage_line(self):
- print "usage: %s <subcommand> [options...] [args...]\n" % self.progname
- def print_command_list(self):
- print "Available commands (use '%s help COMMAND' for more details):\n" \
- % self.progname
- cmds = self.ctable.keys()
- cmds.sort()
- indent = max(map(len, cmds))
- for c in cmds:
- h = self.ctable[c].short_help()
- print " %-*s " % (indent, c),
- self._print_wrapped(h, indent+6)
- def print_command_help(self, cmd):
- cmd = self.ctable[str(cmd)]
- print 'usage: %s %s\n' % (self.progname, cmd.usage)
- self._print_wrapped(cmd.help)
- def print_opts(opts, self=self):
- if not opts: return
- flags = [o.repr_flags() for o in opts]
- indent = max(map(len, flags))
- for f,o in zip(flags, opts):
- print " %-*s :" % (indent, f),
- self._print_wrapped(o.help, indent+5)
- print '\nCommand options:'
- print_opts(cmd.opts)
- print '\nGlobal options:'
- print_opts(self.gopts)
-
- def print_version(self):
- print self.version
-
-###############################################################################
-# Options and Commands description
-###############################################################################
-
-global_opts = [
- Option("-F", "--force",
- help="force operation even if the working copy is not clean, or "
- "there are pending updates"),
- Option("-n", "--dry-run",
- help="don't actually change anything, just pretend; "
- "implies --show-changes"),
- Option("-s", "--show-changes",
- help="show subversion commands that make changes"),
- Option("-v", "--verbose",
- help="verbose mode: output more information about progress"),
- OptionArg("-u", "--username",
- default=None,
- help="invoke subversion commands with the supplied username"),
- OptionArg("-p", "--password",
- default=None,
- help="invoke subversion commands with the supplied password"),
- OptionArg("-c", "--config-dir", metavar="DIR",
- default=None,
- help="cause subversion commands to consult runtime config directory DIR"),
-]
-
-common_opts = [
- Option("-b", "--bidirectional",
- value=True,
- default=False,
- help="remove reflected and initialized revisions from merge candidates. "
- "Not required but may be specified to speed things up slightly"),
- OptionArg("-f", "--commit-file", metavar="FILE",
- default="svnmerge-commit-message.txt",
- help="set the name of the file where the suggested log message "
- "is written to"),
- Option("-M", "--record-only",
- value=True,
- default=False,
- help="do not perform an actual merge of the changes, yet record "
- "that a merge happened"),
- OptionArg("-r", "--revision",
- metavar="REVLIST",
- default="",
- help="specify a revision list, consisting of revision numbers "
- 'and ranges separated by commas, e.g., "534,537-539,540"'),
- OptionArg("-S", "--source", "--head",
- default=None,
- help="specify a merge source for this branch. It can be either "
- "a working directory path, a full URL, or an unambiguous "
- "substring of one of the locations for which merge tracking was "
- "already initialized. Needed only to disambiguate in case of "
- "multiple merge sources"),
-]
-
-command_table = {
- "init": (action_init,
- "init [OPTION...] [SOURCE]",
- """Initialize merge tracking from SOURCE on the current working
- directory.
-
- If SOURCE is specified, all the revisions in SOURCE are marked as already
- merged; if this is not correct, you can use --revision to specify the
- exact list of already-merged revisions.
-
- If SOURCE is omitted, then it is computed from the "svn cp" history of the
- current working directory (searching back for the branch point); in this
- case, %s assumes that no revision has been integrated yet since
- the branch point (unless you teach it with --revision).""" % NAME,
- [
- "-f", "-r", # import common opts
- OptionArg("-L", "--location-type",
- dest="location-type",
- default="path",
- help="Use this type of location identifier in the new " +
- "Subversion properties; 'uuid', 'url', or 'path' " +
- "(default)"),
- ]),
-
- "avail": (action_avail,
- "avail [OPTION...] [PATH]",
- """Show unmerged revisions available for PATH as a revision list.
- If --revision is given, the revisions shown will be limited to those
- also specified in the option.
-
- When svnmerge is used to bidirectionally merge changes between a
- branch and its source, it is necessary to not merge the same changes
- forth and back: e.g., if you committed a merge of a certain
- revision of the branch into the source, you do not want that commit
- to appear as available to merged into the branch (as the code
- originated in the branch itself!). svnmerge will automatically
- exclude these so-called "reflected" revisions.""",
- [
- Option("-A", "--all",
- dest="avail-showwhat",
- value=["blocked", "avail"],
- default=["avail"],
- help="show both available and blocked revisions (aka ignore "
- "blocked revisions)"),
- "-b",
- Option("-B", "--blocked",
- dest="avail-showwhat",
- value=["blocked"],
- help="show the blocked revision list (see '%s block')" % NAME),
- Option("-d", "--diff",
- dest="avail-display",
- value="diffs",
- default="revisions",
- help="show corresponding diff instead of revision list"),
- Option("--summarize",
- dest="avail-display",
- value="summarize",
- help="show summarized diff instead of revision list"),
- Option("-l", "--log",
- dest="avail-display",
- value="logs",
- help="show corresponding log history instead of revision list"),
- "-r",
- "-S",
- ]),
-
- "integrated": (action_integrated,
- "integrated [OPTION...] [PATH]",
- """Show merged revisions available for PATH as a revision list.
- If --revision is given, the revisions shown will be limited to
- those also specified in the option.""",
- [
- Option("-d", "--diff",
- dest="integrated-display",
- value="diffs",
- default="revisions",
- help="show corresponding diff instead of revision list"),
- Option("-l", "--log",
- dest="integrated-display",
- value="logs",
- help="show corresponding log history instead of revision list"),
- "-r",
- "-S",
- ]),
-
- "rollback": (action_rollback,
- "rollback [OPTION...] [PATH]",
- """Rollback previously merged in revisions from PATH. The
- --revision option is mandatory, and specifies which revisions
- will be rolled back. Only the previously integrated merges
- will be rolled back.
-
- When manually rolling back changes, --record-only can be used to
- instruct %s that a manual rollback of a certain revision
- already happened, so that it can record it and offer that
- revision for merge henceforth.""" % (NAME),
- [
- "-f", "-r", "-S", "-M", # import common opts
- ]),
-
- "merge": (action_merge,
- "merge [OPTION...] [PATH]",
- """Merge in revisions into PATH from its source. If --revision is omitted,
- all the available revisions will be merged. In any case, already merged-in
- revisions will NOT be merged again.
-
- When svnmerge is used to bidirectionally merge changes between a
- branch and its source, it is necessary to not merge the same changes
- forth and back: e.g., if you committed a merge of a certain
- revision of the branch into the source, you do not want that commit
- to appear as available to merged into the branch (as the code
- originated in the branch itself!). svnmerge will automatically
- exclude these so-called "reflected" revisions.
-
- When manually merging changes across branches, --record-only can
- be used to instruct %s that a manual merge of a certain revision
- already happened, so that it can record it and not offer that
- revision for merge anymore. Conversely, when there are revisions
- which should not be merged, use '%s block'.""" % (NAME, NAME),
- [
- "-b", "-f", "-r", "-S", "-M", # import common opts
- ]),
-
- "block": (action_block,
- "block [OPTION...] [PATH]",
- """Block revisions within PATH so that they disappear from the available
- list. This is useful to hide revisions which will not be integrated.
- If --revision is omitted, it defaults to all the available revisions.
-
- Do not use this option to hide revisions that were manually merged
- into the branch. Instead, use '%s merge --record-only', which
- records that a merge happened (as opposed to a merge which should
- not happen).""" % NAME,
- [
- "-f", "-r", "-S", # import common opts
- ]),
-
- "unblock": (action_unblock,
- "unblock [OPTION...] [PATH]",
- """Revert the effect of '%s block'. If --revision is omitted, all the
- blocked revisions are unblocked""" % NAME,
- [
- "-f", "-r", "-S", # import common opts
- ]),
-
- "uninit": (action_uninit,
- "uninit [OPTION...] [PATH]",
- """Remove merge tracking information from PATH. It cleans any kind of merge
- tracking information (including the list of blocked revisions). If there
- are multiple sources, use --source to indicate which source you want to
- forget about.""",
- [
- "-f", "-S", # import common opts
- ]),
-}
-
-
-def main(args):
- global opts
-
- # Initialize default options
- opts = default_opts.copy()
- logs.clear()
-
- optsparser = CommandOpts(global_opts, common_opts, command_table,
- version="%%prog r%s\n modified: %s\n\n"
- "Copyright (C) 2004,2005 Awarix Inc.\n"
- "Copyright (C) 2005, Giovanni Bajo"
- % (__revision__, __date__))
-
- cmd, args, state = optsparser.parse(args)
- opts.update(state)
-
- source = opts.get("source", None)
- branch_dir = "."
-
- if str(cmd) == "init":
- if len(args) == 1:
- source = args[0]
- elif len(args) > 1:
- optsparser.error("wrong number of parameters", cmd)
- elif str(cmd) in command_table.keys():
- if len(args) == 1:
- branch_dir = args[0]
- elif len(args) > 1:
- optsparser.error("wrong number of parameters", cmd)
- else:
- assert False, "command not handled: %s" % cmd
-
- # Validate branch_dir
- if not is_wc(branch_dir):
- if str(cmd) == "avail":
- info = None
- # it should be noted here that svn info does not error exit
- # if an invalid target is specified to it (as is
- # intuitive). so the try, except code is not absolutely
- # necessary. but, I retain it to indicate the intuitive
- # handling.
- try:
- info = get_svninfo(branch_dir)
- except LaunchError:
- pass
- # test that we definitely targeted a subversion directory,
- # mirroring the purpose of the earlier is_wc() call
- if info is None or not info.has_key("Node Kind") or info["Node Kind"] != "directory":
- error('"%s" is neither a valid URL, nor a working directory' % branch_dir)
- else:
- error('"%s" is not a subversion working directory' % branch_dir)
-
- # give out some hints as to potential pathids
- PathIdentifier.hint(branch_dir)
- if source: PathIdentifier.hint(source)
-
- # Extract the integration info for the branch_dir
- branch_props = get_merge_props(branch_dir)
-
- # Calculate source_url and source_path
- report("calculate source path for the branch")
- if not source:
- if str(cmd) == "init":
- cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(branch_dir)
- if not cf_source:
- error('no copyfrom info available. '
- 'Explicit source argument (-S/--source) required.')
- opts["source-url"] = get_repo_root(branch_dir) + cf_source
- opts["source-pathid"] = PathIdentifier.from_target(opts["source-url"])
-
- if not opts["revision"]:
- opts["revision"] = "1-" + cf_rev
- else:
- opts["source-pathid"] = get_default_source(branch_dir, branch_props)
- opts["source-url"] = opts["source-pathid"].get_url()
-
- assert is_pathid(opts["source-pathid"])
- assert is_url(opts["source-url"])
- else:
- # The source was given as a command line argument and is stored in
- # SOURCE. Ensure that the specified source does not end in a /,
- # otherwise it's easy to have the same source path listed more
- # than once in the integrated version properties, with and without
- # trailing /'s.
- source = rstrip(source, "/")
- if not is_wc(source) and not is_url(source):
- # Check if it is a substring of a pathid recorded
- # within the branch properties.
- found = []
- for pathid in branch_props.keys():
- if pathid.match_substring(source):
- found.append(pathid)
- if len(found) == 1:
- # (assumes pathid is a repository-relative-path)
- source_pathid = found[0]
- source = source_pathid.get_url()
- else:
- error('"%s" is neither a valid URL, nor an unambiguous '
- 'substring of a repository path, nor a working directory'
- % source)
- else:
- source_pathid = PathIdentifier.from_target(source)
-
- source_pathid = PathIdentifier.from_target(source)
- if str(cmd) == "init" and \
- source_pathid == PathIdentifier.from_target("."):
- error("cannot init integration source path '%s'\n"
- "Its repository-relative path must differ from the "
- "repository-relative path of the current directory."
- % source_pathid)
- opts["source-pathid"] = source_pathid
- opts["source-url"] = target_to_url(source)
-
- # Sanity check source_url
- assert is_url(opts["source-url"])
- # SVN does not support non-normalized URL (and we should not
- # have created them)
- assert opts["source-url"].find("/..") < 0
-
- report('source is "%s"' % opts["source-url"])
-
- # Get previously merged revisions (except when command is init)
- if str(cmd) != "init":
- opts["merged-revs"] = merge_props_to_revision_set(branch_props,
- opts["source-pathid"])
-
- # Perform the action
- cmd(branch_dir, branch_props)
-
-
-if __name__ == "__main__":
- try:
- main(sys.argv[1:])
- except LaunchError, (ret, cmd, out):
- err_msg = "command execution failed (exit code: %d)\n" % ret
- err_msg += cmd + "\n"
- err_msg += "".join(out)
- error(err_msg)
- except KeyboardInterrupt:
- # Avoid traceback on CTRL+C
- print "aborted by user"
- sys.exit(1)
diff --git a/testing/subversion/svnserve b/testing/subversion/svnserve
deleted file mode 100755
index 670fee742..000000000
--- a/testing/subversion/svnserve
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/svnserve
-
-PID=`pidof -o %PPID /usr/bin/svnserve`
-case "$1" in
- start)
- stat_busy "Starting svnserve"
- if [ -z "$PID" ]; then
- if [ -n "$SVNSERVE_USER" ]; then
- su -s '/bin/sh' $SVNSERVE_USER -c "/usr/bin/svnserve -d $SVNSERVE_ARGS" &
- else
- /usr/bin/svnserve -d $SVNSERVE_ARGS &
- fi
- fi
- if [ ! -z "$PID" -o $? -gt 0 ]; then
- stat_fail
- else
- add_daemon svnserve
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping svnserve"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon svnserve
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
diff --git a/testing/subversion/svnserve.conf b/testing/subversion/svnserve.conf
deleted file mode 100644
index 37fb7ea10..000000000
--- a/testing/subversion/svnserve.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# Parameters to be passed to svnserve
-#
-#SVNSERVE_ARGS="-r /path/to/some/repos"
-SVNSERVE_ARGS=""
-
-#SVNSERVE_USER="svn"
diff --git a/testing/texlive-bin/09-texlive-fonts.conf b/testing/texlive-bin/09-texlive-fonts.conf
new file mode 100644
index 000000000..f870fbd7a
--- /dev/null
+++ b/testing/texlive-bin/09-texlive-fonts.conf
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+ <dir>/usr/share/texmf-dist/fonts/opentype</dir>
+ <dir>/usr/share/texmf-dist/fonts/truetype</dir>
+ <dir>/usr/local/share/texmf/fonts/opentype</dir>
+ <dir>/usr/local/share/texmf/fonts/truetype</dir>
+</fontconfig>
+
diff --git a/testing/texlive-bin/PKGBUILD b/testing/texlive-bin/PKGBUILD
new file mode 100644
index 000000000..442882ad9
--- /dev/null
+++ b/testing/texlive-bin/PKGBUILD
@@ -0,0 +1,335 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: francois <francois.archlinux.org>
+
+pkgname=texlive-bin
+pkgver=2011.0
+_luatex_ver=0.70.1
+pkgrel=1
+pkgdesc="TeX Live binaries"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('t1lib' 'gd' 'libgraphite' 'poppler' 'libsigsegv' 'zziplib')
+makedepends=('perl' 'clisp' 'ffcall')
+optdepends=('ed: for texconfig')
+provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam')
+conflicts=('pdfjam')
+options=('!libtool')
+url='http://tug.org/texlive/'
+install="texlive.install"
+source=('texmf.cnf'
+ 'fix-fontforge-encoding.patch'
+ '09-texlive-fonts.conf'
+ 'archlinux-build.patch'
+ 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-source-20110531.tar.xz'
+ 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-texmf-20110531.tar.xz'
+ "http://foundry.supelec.fr/gf/download/frsrelease/392/1730/luatex-beta-${_luatex_ver}.tar.bz2"
+)
+backup=(etc/texmf/web2c/texmf.cnf \
+ etc/texmf/chktex/chktexrc \
+ etc/texmf/web2c/mktex.cnf \
+ etc/texmf/web2c/updmap.cfg \
+ etc/texmf/web2c/fmtutil.cnf \
+ etc/texmf/tex/generic/config/language.dat \
+ etc/texmf/tex/generic/config/language.def \
+ etc/texmf/tex/generic/config/pdftexconfig.tex \
+ etc/texmf/ttf2pk/ttf2pk.cfg \
+ etc/texmf/dvips/config/config.ps \
+ etc/texmf/dvipdfmx/dvipdfmx.cfg \
+ etc/texmf/dvipdfm/config/config \
+ etc/texmf/xdvi/XDvi)
+
+md5sums=('ff30d6813babd2e41c414365eea9c147'
+ 'bfb9716aa00c86c08cd31e5b32edeb98'
+ '393a4bf67adc7ca5df2b386759d1a637'
+ '94ef5571a54262790ab64d6d044dd10c'
+ 'cd31edd460cdc3224281ccb30a4ea38d'
+ 'd6338f70c6b8acde6509076ead4b9f13'
+ 'c9348d4381170204b1a1b0440d8b6918')
+
+build() {
+ if [ "${CARCH}" = "x86_64" ]; then
+ export CFLAGS="${CFLAGS} -fPIC"
+ export CXXFLAGS="${CXXFLAGS} -fPIC"
+ fi
+
+ cd $srcdir
+ # Building LuaTeX
+ cd luatex-beta-${_luatex_ver}
+ patch -p0 -i ../fix-fontforge-encoding.patch
+ (cd source && ./texk/web2c/luatexdir/getluatexsvnversion.sh)
+ mkdir build
+ cd build
+ ../source/configure --prefix=/usr -C \
+ --disable-native-texlive-build \
+ --with-banner-add="/Arch Linux" \
+ --enable-cxx-runtime-hack \
+ --disable-all-pkgs \
+ --disable-dump-share \
+ --disable-ptex \
+ --enable-luatex \
+ --without-system-ptexenc \
+ --with-system-graphite \
+ --without-system-icu \
+ --without-system-kpathsea \
+ --with-system-freetype2 \
+ --with-system-poppler \
+ --with-freetype2-libdir=/usr/lib \
+ --with-freetype2-include=/usr/include/freetype2 \
+ --with-system-gd \
+ --with-system-libpng \
+ --without-system-teckit \
+ --with-system-zlib \
+ --with-system-zziplib \
+ --with-system-t1lib \
+ --disable-shared \
+ --disable-largefile \
+ --disable-ipc \
+ --without-mf-x-toolkit \
+ --without-x
+ make
+ make -C libs/obsdcompat
+ make -C texk/kpathsea
+ make -C texk/web2c luatex
+
+ cd "$srcdir"
+ # this patch removes spurious error message with locale "xx_YY.utf8"
+ patch -p0 -i fix-fontforge-encoding.patch
+ #############################################################
+ ### configure
+ cd source
+ patch -Np1 -i ${srcdir}/archlinux-build.patch
+ for _dir in texk/tetex texk/texlive texk/tex4htk \
+ utils/ps2eps utils/chktex utils/psutils utils/xindy; do
+ (cd ${_dir} && automake) || true
+ done
+ ## prevent compiling Xdvi with libXp
+ sed -i~ 's|-lXp ||' texk/xdvik/configure
+ test ! -d Work && mkdir Work
+ cd Work
+ echo "--> Initial configuration..."
+ # we use temporary prefix to avoid messing the existing $pkgdir/usr/share/texmf tree
+ ../configure --prefix=/usr -C \
+ --datarootdir=/usr/share \
+ --datadir=/usr/share \
+ --mandir=/usr/share/man \
+ --disable-native-texlive-build \
+ --with-banner-add="/Arch Linux" \
+ --disable-multiplatform \
+ --disable-dialog \
+ --disable-psutils \
+ --disable-t1utils \
+ --disable-bibtexu \
+ --disable-xz \
+ --with-system-zlib \
+ --with-system-zziplib \
+ --with-system-pnglib \
+ --with-system-ncurses \
+ --with-system-t1lib \
+ --with-system-gd \
+ --with-system-poppler \
+ --with-system-xpdf \
+ --with-system-freetype2 \
+ --with-system-graphite \
+ --with-freetype2-libdir=/usr/lib \
+ --with-freetype2-include=/usr/include/freetype2 \
+ --with-xdvi-x-toolkit=xaw \
+ --disable-dump-share \
+ --disable-aleph \
+ --disable-luatex \
+ --with-clisp-runtime=default \
+ --enable-xindy --disable-xindy-rules --disable-xindy-docs
+ #############################################################
+ ### make
+ echo "-------------------------------------------------------"
+ echo "--> Building the whole beast ..."
+ echo "-------------------------------------------------------"
+ make
+}
+
+package() {
+ cd $srcdir
+ #############################################################
+ ### install texmf tree
+ echo "-------------------------------------------------------"
+ echo "--> installing the texmf tree"
+ echo "-------------------------------------------------------"
+ install -m755 -d $pkgdir/usr/share
+ cp -r texmf $pkgdir/usr/share/
+ install -d -m755 $pkgdir/etc/texmf/web2c
+ install -d -m755 $pkgdir/etc/texmf/chktex
+ install -d -m755 $pkgdir/etc/texmf/dvips/config
+ install -d -m755 $pkgdir/etc/texmf/dvipdfm/config
+ install -d -m755 $pkgdir/etc/texmf/dvipdfmx
+ install -d -m755 $pkgdir/etc/texmf/tex/generic/config
+ install -d -m755 $pkgdir/etc/texmf/ttf2pk
+ install -d -m755 $pkgdir/etc/texmf/xdvi
+ install -d -m755 $pkgdir/etc/fonts/conf.avail
+ install -m644 $srcdir/09-texlive-fonts.conf $pkgdir/etc/fonts/conf.avail/
+ # replace upstream texmf.cnf with ours
+ rm -f $pkgdir/usr/share/texmf/web2c/texmf.cnf
+ install -m644 $srcdir/texmf.cnf $pkgdir/etc/texmf/web2c/texmf.cnf
+ # since the location of texmf.cnf is hard-wired to be under /usr/share/texmf/web2c
+ # we make a symlink from /etc/texmf/web2c/texmf.cnf to the latter
+ ln -s /etc/texmf/web2c/texmf.cnf $pkgdir/usr/share/texmf/web2c/texmf.cnf
+ # fix location of TEXMFCACHE for luatools
+ sed -i 's#texlive2010#texlive#' $pkgdir/usr/share/texmf/web2c/texmfcnf.lua
+ ## remove aleph from fmtutil.cnf
+ sed -i -e '/aleph/d' $pkgdir/usr/share/texmf/web2c/fmtutil.cnf
+ # move man files to /usr/share/man
+ for i in 1 5; do
+ install -d -m755 $pkgdir/usr/share/man/man$i
+ mv $pkgdir/usr/share/texmf/doc/man/man$i/*.$i $pkgdir/usr/share/man/man$i/
+ done
+ # move info files to /usr/share/info
+ install -d -m755 $pkgdir/usr/share/info
+ mv $pkgdir/usr/share/texmf/doc/info/*.info $pkgdir/usr/share/info/
+ rm -rf $pkgdir/usr/share/texmf/doc/{man,info}
+ # copy config files to $TEXMFCONFIG tree
+ cp -a $pkgdir/usr/share/texmf/chktex/chktexrc \
+ $pkgdir/etc/texmf/chktex/
+ cp -a $pkgdir/usr/share/texmf/web2c/mktex.cnf \
+ $pkgdir/etc/texmf/web2c/
+ cp -a $pkgdir/usr/share/texmf/web2c/updmap.cfg \
+ $pkgdir/etc/texmf/web2c/
+ cp -a $pkgdir/usr/share/texmf/web2c/fmtutil.cnf \
+ $pkgdir/etc/texmf/web2c/
+ cp -a $pkgdir/usr/share/texmf/dvips/config/config.ps \
+ $pkgdir/etc/texmf/dvips/config/
+ cp -a $pkgdir/usr/share/texmf/dvipdfm/config/config \
+ $pkgdir/etc/texmf/dvipdfm/config/
+ cp -a $pkgdir/usr/share/texmf/dvipdfmx/dvipdfmx.cfg \
+ $pkgdir/etc/texmf/dvipdfmx/
+ cp -a $pkgdir/usr/share/texmf/tex/generic/config/pdftexconfig.tex \
+ $pkgdir/etc/texmf/tex/generic/config/
+ cp -a $pkgdir/usr/share/texmf/tex/generic/config/language.dat \
+ $pkgdir/etc/texmf/tex/generic/config/
+ cp -a $pkgdir/usr/share/texmf/tex/generic/config/language.def \
+ $pkgdir/etc/texmf/tex/generic/config/
+ cp -a $pkgdir/usr/share/texmf/ttf2pk/ttf2pk.cfg \
+ $pkgdir/etc/texmf/ttf2pk/
+ cp -a $pkgdir/usr/share/texmf/xdvi/XDvi \
+ $pkgdir/etc/texmf/xdvi/
+ # remove TL specific warnings in the language.{dat,def} files:
+ sed -i -e '/DO NOT EDIT/,+3 d' $pkgdir/etc/texmf/tex/generic/config/language.*
+ # clean updmap.cfg
+ sed -i '/^\(Map\|MixedMap\)/d' $pkgdir/etc/texmf/web2c/updmap.cfg
+ sed -i '/^#! \(Map\|MixedMap\)/d' $pkgdir/etc/texmf/web2c/updmap.cfg
+
+ #############################################################
+ ### install
+ cd source
+ # fixes for xindy
+ find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \;
+
+ echo "-------------------------------------------------------"
+ echo "--> Proceeding with make install ..."
+ echo "-------------------------------------------------------"
+ cd Work
+ make DESTDIR=${pkgdir} texmf=$pkgdir/usr/share/texmf install
+ rm -rf ${pkgdir}/usr/{texmf,texmf-dist}
+
+ ## install luatex binary
+ install -m755 $srcdir/luatex-beta-${_luatex_ver}/build/texk/web2c/luatex $pkgdir/usr/bin/
+ cd $pkgdir/usr/bin
+ /bin/ln -s luatex texlua
+ /bin/ln -s luatex texluac
+
+ ## install Perl libraries
+ mkdir -p $pkgdir/usr/share/tlpkg/TeXLive
+ install -m644 ${srcdir}/source/utils/biber/TeXLive/*.pm $pkgdir/usr/share/tlpkg/TeXLive
+
+ # create symlinks for formats
+ echo "--> Create symlinks for TeX formats ..."
+ PATH="$PATH:${pkgdir}/usr/bin" texlinks -f $pkgdir/usr/share/texmf/web2c/fmtutil.cnf $pkgdir/usr/bin/
+ #############################################################
+ # remove dangling symlinks
+ _bibtexextra_scripts="bibexport"
+ _core_scripts="
+afm2afm
+arlatex
+autoinst
+bundledoc
+cmap2enc
+de-macro
+dviasm
+epstopdf
+findhyph
+font2afm
+fragmaster
+installfont-tl
+latex2man
+latexdiff
+latexdiff-vc
+latexmk
+latexrevise
+listings-ext.sh
+mkjobtexmf
+mkluatexfontdb
+mkt1font
+mptopdf
+ot2kpx
+pdf180
+pdf270
+pdf90
+pdfatfi
+pdfbook
+pdfcrop
+pdfflip
+pdfjam
+pdfjam-pocketmod
+pdfjam-slides3up
+pdfjam-slides6up
+pdfjoin
+pdfnup
+pdfpun
+pfm2kpx
+pkfix
+pkfix-helper
+purifyeps
+repstopdf
+rpdfcrop
+showglyphs
+sty2dtx
+texcount
+texdef
+texdiff
+texdirflatten
+texloganalyser
+thumbpdf
+vpl2ovp
+vpl2vpl
+"
+ _htmlxml_scripts="ht htcontext htlatex htmex httex httexi htxelatex htxetex mk4ht"
+ _langextra_scripts="ebong"
+ _langgreek_scripts="mkgrkindex"
+ _latexextra_scripts="authorindex \
+makeglossaries \
+pdfannotextractor \
+pdfthumb \
+perltex \
+ppower4 \
+ps4pdf \
+splitindex \
+svn-multi \
+vpe"
+ _music_scripts="musixtex musixflx"
+ _pictures_scripts="cachepic epspdf epspdftk fig4latex mathspic"
+ _pstricks_scripts="pst2pdf"
+ _science_scripts="ulqda"
+ for s in \
+ ${_bibtexextra_scripts} \
+ ${_core_scripts} \
+ ${_htmlxml_scripts} \
+ ${_langextra_scripts} \
+ ${_langgreek_scripts} \
+ ${_latexextra_scripts} \
+ ${_music_scripts} \
+ ${_pictures_scripts} \
+ ${_pstricks_scripts} \
+ ${_science_scripts} \
+ tlmgr; do
+ rm -f $pkgdir/usr/bin/$s
+ done
+ ###################################################################
+}
+
diff --git a/testing/texlive-bin/archlinux-build.patch b/testing/texlive-bin/archlinux-build.patch
new file mode 100644
index 000000000..accb97a7a
--- /dev/null
+++ b/testing/texlive-bin/archlinux-build.patch
@@ -0,0 +1,40 @@
+diff -ur source.old/texk/am/script_links.am source/texk/am/script_links.am
+--- source.old/texk/am/script_links.am 2011-05-02 13:54:33.000000000 +0200
++++ source/texk/am/script_links.am 2011-06-05 11:22:53.118216353 +0200
+@@ -51,8 +51,8 @@
+ # We support both multiplatform and non-multiplatform builds.
+ install-links:
+ case "$(bindir)" in \
+- */bin) $(MAKE) $(AM_MAKEFLAGS) REL=.. TYPE=$(TYPE) EXT=$(EXT) make-links;; \
+- */bin/*) $(MAKE) $(AM_MAKEFLAGS) REL=../.. TYPE=$(TYPE) EXT=$(EXT) make-links;; \
++ */bin) $(MAKE) $(AM_MAKEFLAGS) REL=$(datadir) TYPE=$(TYPE) EXT=$(EXT) make-links;; \
++ */bin/*) $(MAKE) $(AM_MAKEFLAGS) REL=$(datadir) TYPE=$(TYPE) EXT=$(EXT) make-links;; \
+ *) echo "strange directory '$(bindir)' for linked $(TYPE) scripts" >&2; \
+ exit 1;; \
+ esac
+diff -ur source.old/texk/tetex/Makefile.am source/texk/tetex/Makefile.am
+--- source.old/texk/tetex/Makefile.am 2011-05-31 11:47:04.000000000 +0200
++++ source/texk/tetex/Makefile.am 2011-06-05 10:28:40.287025375 +0200
+@@ -35,7 +35,7 @@
+
+ include $(srcdir)/../am/script_links.am
+
+-texmfdir = ${prefix}/$(scriptsdir)
++texmfdir = $(datadir)/$(scriptsdir)
+ dist_texmf_SCRIPTS = $(perl_scripts:=.pl) $(shell_scripts:=.sh)
+
+ if !WIN32
+diff -ur source.old/texk/texlive/linked_scripts/Makefile.am source/texk/texlive/linked_scripts/Makefile.am
+--- source.old/texk/texlive/linked_scripts/Makefile.am 2011-05-31 11:47:04.000000000 +0200
++++ source/texk/texlive/linked_scripts/Makefile.am 2011-06-05 09:41:50.997250443 +0200
+@@ -165,8 +165,8 @@
+ done
+ else !WIN32
+ case "$(bindir)" in \
+- */bin) $(MAKE) $(AM_MAKEFLAGS) REL=.. install-links;; \
+- */bin/*) $(MAKE) $(AM_MAKEFLAGS) REL=../.. install-links;; \
++ */bin) $(MAKE) $(AM_MAKEFLAGS) REL=$(datadir) install-links;; \
++ */bin/*) $(MAKE) $(AM_MAKEFLAGS) REL=$(datadir) install-links;; \
+ *) echo "strange directory '$(bindir)' for linked scripts" >&2; \
+ exit 1;; \
+ esac
diff --git a/testing/texlive-bin/fix-fontforge-encoding.patch b/testing/texlive-bin/fix-fontforge-encoding.patch
new file mode 100644
index 000000000..8104b3289
--- /dev/null
+++ b/testing/texlive-bin/fix-fontforge-encoding.patch
@@ -0,0 +1,12 @@
+--- source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c.orig 2009-09-30 19:27:00.935039526 +0200
++++ source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c 2009-09-30 19:28:04.908364646 +0200
+@@ -495,6 +495,9 @@
+ { "Big5HKSCS", e_big5hkscs },
+ { "Big5-HKSCS", e_big5hkscs },
+ { "UTF-8", e_utf8 },
++ { "utf-8", e_utf8 },
++ { "UTF8", e_utf8 },
++ { "utf8", e_utf8 },
+ { "ISO-10646/UTF-8", e_utf8 },
+ { "ISO_10646/UTF-8", e_utf8 },
+ { "UCS2", e_unicode },
diff --git a/testing/texlive-bin/texlive.install b/testing/texlive-bin/texlive.install
new file mode 100644
index 000000000..9307c536b
--- /dev/null
+++ b/testing/texlive-bin/texlive.install
@@ -0,0 +1,18 @@
+post_install() {
+ echo ">>> texlive: updating the filename database..."
+ usr/bin/mktexlsr
+ echo -n "creating all formats..."
+ usr/bin/fmtutil-sys --all 1>/dev/null
+ echo " done."
+ echo " (logs are under /var/lib/texmf/web2c/<engine>/<formatname>.log)"
+}
+
+post_upgrade() {
+ echo ">>> texlive: updating the filename database..."
+ usr/bin/mktexlsr
+ echo -n "recreating all formats..."
+ usr/bin/fmtutil-sys --all 1>/dev/null
+ echo " done."
+ echo " (logs are under /var/lib/texmf/web2c/<engine>/<formatname>.log)"
+}
+
diff --git a/testing/texlive-bin/texmf.cnf b/testing/texlive-bin/texmf.cnf
new file mode 100644
index 000000000..423d93e09
--- /dev/null
+++ b/testing/texlive-bin/texmf.cnf
@@ -0,0 +1,676 @@
+% texmf.cnf for TeXLive/Arch Linux -- runtime path configuration file for kpathsea.
+% Public domain.
+%
+% If you modify this original file, YOUR CHANGES WILL BE LOST when it is
+% updated. Instead, put your changes -- and only your changes, not an
+% entire copy of the full texmf.cnf! -- in ../../texmf.cnf. That is, if
+% this file is installed in /some/path/to/texlive/2011/texmf/web2c/texmf.cnf,
+% add your custom settings to /some/path/to/texlive/2011/texmf.cnf.
+%
+% What follows is a super-summary of what this .cnf file can
+% contain. Please read the Kpathsea manual for more information.
+%
+% Any identifier (sticking to A-Za-z_ for names is safest) can be assigned.
+% The `=' (and surrounding spaces) is optional.
+% $foo (or ${foo}) in a value expands to the envvar or cnf value of foo.
+% Long lines can be continued with a \.
+%
+% Earlier entries (in the same or another file) override later ones, and
+% an environment variable foo overrides any texmf.cnf definition of foo.
+%
+% All definitions are read before anything is expanded, so you can use
+% variables before they are defined.
+%
+% If a variable assignment is qualified with `.PROGRAM', it is ignored
+% unless the current executable (last filename component of argv[0]) is
+% named PROGRAM. This foo.PROGRAM construct is not recognized on the
+% right-hand side. For environment variables, use FOO_PROGRAM.
+%
+% Which file formats use which paths for searches is described in the
+% various programs' and the Kpathsea documentation (http://tug.org/kpathsea).
+%
+% // means to search subdirectories (recursively).
+% A leading !! means to look only in the ls-R db, never on the disk.
+% In this file, either ; or : can be used to separate path components.
+% A leading/trailing/doubled path separator in the paths will be
+% expanded into the compile-time default. Probably not what you want.
+%
+% Brace notation is supported, for example: /usr/local/{mytex,othertex}
+% expands to /usr/local/mytex:/usr/local/othertex. We make extensive
+% use of this.
+
+
+% Part 1: Search paths and directories.
+
+% This is the parent directory of our several trees, i.e.,
+% /usr/local/texlive/YYYY in the original TeX Live distribution.
+%
+% All trees must be organized according to the TeX Directory Structure
+% (http://tug.org/tds), or files may not be found.
+%
+% Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share.
+TEXMFROOT = $SELFAUTODIR/share
+
+% The tree containing runtime files related to the specific
+% distribution and version.
+TEXMFMAIN = $TEXMFROOT/texmf
+
+% The main tree of packages, distribution-agnostic:
+TEXMFDIST = $TEXMFROOT/texmf-dist
+
+% Local additions to the distribution trees.
+TEXMFLOCAL = /usr/local/share/texmf
+
+% TEXMFSYSVAR, where *-sys store cached runtime data.
+TEXMFSYSVAR = /var/lib/texmf
+
+% TEXMFSYSCONFIG, where *-sys store configuration data.
+TEXMFSYSCONFIG = /etc/texmf
+
+% Per-user texmf tree(s) -- organized per the TDS, as usual. To define
+% more than one per-user tree, set this to a list of directories in
+% braces, as described above. (This used to be HOMETEXMF.) ~ expands
+% to %USERPROFILE% on Windows, $HOME otherwise.
+TEXMFHOME = ~/texmf
+
+% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
+TEXMFVAR = ~/.texlive/texmf-var
+
+% TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data.
+TEXMFCONFIG = ~/.texlive/texmf-config
+
+% List all the texmf trees.
+%
+% For texconfig to work properly, TEXMFCONFIG and TEXMFVAR should be named
+% explicitly and before all other trees.
+%
+% TEXMFLOCAL follows TEXMFMAIN (and precedes TEXMFDIST) because the
+% files in TEXMFMAIN are tightly coupled with the particular version of
+% the distribution, such as configuration files. Overriding them would
+% be more likely to cause trouble than help. On the other hand, the
+% bulk of packages and fonts are in TEXMFDIST, and locally-installed
+% versions should take precedence over those -- although it is generally
+% a source of confusion to have different versions of a package
+% installed, whatever the trees, so try to avoid it.
+TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
+
+% Where to look for ls-R files. There need not be an ls-R in the
+% directories in this path, but if there is one, Kpathsea will use it.
+% By default, this is only the !! elements of TEXMF, so that mktexlsr
+% does not create ls-R files in the non-!! elements -- because if an
+% ls-R is present, it will be used, and the disk will not be searched.
+% This is arguably a bug in kpathsea.
+TEXMFDBS = {!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
+
+% The system trees. These are the trees that are shared by all users.
+% If a tree appears in this list, the mktex* scripts will use
+% VARTEXFONTS for generated files, if the original tree isn't writable;
+% otherwise the current working directory is used.
+SYSTEXMF = $TEXMFSYSVAR;$TEXMFMAIN;$TEXMFLOCAL;$TEXMFDIST
+
+% Where generated fonts may be written. This tree is used when the sources
+% were found in a system tree and either that tree wasn't writable, or the
+% varfonts feature was enabled in MT_FEATURES in mktex.cnf.
+VARTEXFONTS = $TEXMFVAR/fonts
+
+% On some systems, there will be a system tree which contains all the font
+% files that may be created as well as the formats. For example
+% TEXMFVAR = /var/lib/texmf
+% is used in many distros. In this case, set VARTEXFONTS like this
+%VARTEXFONTS = $TEXMFVAR/fonts
+% and do not mention it in TEXMFDBS (but _do_ mention TEXMFVAR).
+%
+% Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below
+% one of the TEXMF directories (avoids overlapping ls-R files).
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Usually you will not need to edit any of the following variables.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% WEB2C is for Web2C specific files. The current directory may not be
+% a good place to look for them.
+WEB2C = $TEXMF/web2c
+
+% TEXINPUTS is for TeX input files -- i.e., anything to be found by \input
+% or \openin, including .sty, .eps, etc. We specify paths for all known
+% formats, past or present. Not all of them are built these days.
+
+% Plain TeX. Have the command tex check all directories as a last
+% resort, we may have plain-compatible stuff anywhere.
+TEXINPUTS.tex = .;$TEXMF/tex/{plain,generic,}//
+
+% Fontinst needs to read afm files.
+TEXINPUTS.fontinst = .;$TEXMF/{tex,fonts/afm}//
+
+% Other plain-based formats.
+TEXINPUTS.amstex = .;$TEXMF/tex/{amstex,plain,generic,}//
+TEXINPUTS.csplain = .;$TEXMF/tex/{csplain,plain,generic,}//
+TEXINPUTS.eplain = .;$TEXMF/tex/{eplain,plain,generic,}//
+TEXINPUTS.ftex = .;$TEXMF/tex/{formate,plain,generic,}//
+TEXINPUTS.mex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.texinfo = .;$TEXMF/tex/{texinfo,plain,generic,}//
+
+% LaTeX 2e specific macros are stored in latex/, macros that can only be
+% used with 2.09 in latex209/. In addition, we look in the directory
+% latex209, useful for macros that were written for 2.09 and do not
+% mention 2e at all, but can be used with 2e.
+TEXINPUTS.cslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}//
+TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.latex209 = .;$TEXMF/tex/{latex209,generic,latex,}//
+TEXINPUTS.olatex = .;$TEXMF/tex/{latex,generic,}//
+
+% MLTeX.
+TEXINPUTS.frlatex = .;$TEXMF/tex/{french,latex,generic,}//
+TEXINPUTS.frtex = .;$TEXMF/tex/{french,plain,generic,}//
+TEXINPUTS.mllatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.mltex = .;$TEXMF/tex/{plain,generic,}//
+
+% e-TeX.
+TEXINPUTS.elatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.etex = .;$TEXMF/tex/{plain,generic,}//
+
+% pdfTeX.
+TEXINPUTS.pdfcslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}//
+TEXINPUTS.pdfcsplain = .;$TEXMF/tex/{csplain,plain,generic,}//
+TEXINPUTS.pdflatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.pdfmex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.utf8mex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.pdftex = .;$TEXMF/tex/{plain,generic,}//
+TEXINPUTS.pdftexinfo = .;$TEXMF/tex/{texinfo,plain,generic,}//
+TEXINPUTS.pdfamstex = .;$TEXMF/tex/{amstex,plain,generic,}//
+
+% pdfeTeX.
+TEXINPUTS.pdfelatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.pdfetex = .;$TEXMF/tex/{plain,generic,}//
+
+% pdfxTeX.
+TEXINPUTS.pdfxlatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.pdfxmex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.pdfxtex = .;$TEXMF/tex/{plain,generic,}//
+
+% LuaTeX.
+TEXINPUTS.lualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
+TEXINPUTS.luatex = .;$TEXMF/tex/{luatex,plain,generic,}//
+TEXINPUTS.dvilualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
+TEXINPUTS.dviluatex = .;$TEXMF/tex/{luatex,plain,generic,}//
+
+% XeTeX.
+TEXINPUTS.xelatex = .;$TEXMF/tex/{xelatex,latex,xetex,generic,}//
+TEXINPUTS.xeplain = .;$TEXMF/tex/{xeplain,eplain,plain,xetex,generic,}//
+TEXINPUTS.xetex = .;$TEXMF/tex/{xetex,plain,generic,}//
+
+
+% ConTeXt.
+TEXINPUTS.context = .;$TEXMF/tex/{context,plain,generic,}//
+
+% jadetex.
+TEXINPUTS.jadetex = .;$TEXMF/tex/{jadetex,latex,generic,}//
+TEXINPUTS.pdfjadetex = .;$TEXMF/tex/{jadetex,latex,generic,}//
+
+% XMLTeX.
+TEXINPUTS.xmltex = .;$TEXMF/tex/{xmltex,latex,generic,}//
+TEXINPUTS.pdfxmltex = .;$TEXMF/tex/{xmltex,latex,generic,}//
+
+% Miscellany, no longer built.
+TEXINPUTS.lamstex = .;$TEXMF/tex/{lamstex,plain,generic,}//
+TEXINPUTS.lollipop = .;$TEXMF/tex/{lollipop,plain,generic,}//
+TEXINPUTS.frpdflatex = .;$TEXMF/tex/{french,latex,generic,}//
+TEXINPUTS.frpdftex = .;$TEXMF/tex/{french,plain,generic,}//
+
+% Earlier entries override later ones, so put this generic one last.
+TEXINPUTS = .;$TEXMF/tex/{$progname,generic,}//
+
+% ttf2tfm.
+TTF2TFMINPUTS = .;$TEXMF/ttf2pk//
+
+% Metafont, MetaPost inputs.
+MFINPUTS = .;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source//
+MPINPUTS = .;$TEXMF/metapost//
+
+% Dump files (fmt/base/mem) for vir{tex,mf,mp} to read.
+% We want to find the engine-specific file, e.g., cont-en.fmt can
+% exist under both pdftex/ and xetex/. But just in case some formats
+% end up without an engine directory, look directly in web2c/ too.
+% We repeat the same definition three times because of the way fmtutil
+% is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats
+% will not be found.
+TEXFORMATS = .;$TEXMF/web2c{/$engine,}
+MFBASES = .;$TEXMF/web2c{/$engine,}
+MPMEMS = .;$TEXMF/web2c{/$engine,}
+%
+% As of 2008, pool files don't exist any more (the strings are compiled
+% into the binaries), but just in case something expects to find these:
+TEXPOOL = .;$TEXMF/web2c
+MFPOOL = ${TEXPOOL}
+MPPOOL = ${TEXPOOL}
+
+% support the original xdvi. Must come before the generic settings.
+PKFONTS.XDvi = .;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}//
+VFFONTS.XDvi = .;$TEXMF/%s
+PSHEADERS.XDvi = .;$TEXMF/%q{dvips,fonts/type1}//
+TEXPICTS.XDvi = .;$TEXMF/%q{dvips,tex}//
+
+% Device-independent font metric files.
+VFFONTS = .;$TEXMF/fonts/vf//
+TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//
+
+% The $MAKETEX_MODE below means the drivers will not use a cx font when
+% the mode is ricoh. If no mode is explicitly specified, kpse_prog_init
+% sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual.
+% The modeless part guarantees that bitmaps for PostScript fonts are found.
+PKFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}//
+
+% Similarly for the GF format, which only remains in existence because
+% Metafont outputs it (and MF isn't going to change).
+GFFONTS = .;$TEXMF/fonts/gf/$MAKETEX_MODE//
+
+% A backup for PKFONTS and GFFONTS. Not used for anything.
+GLYPHFONTS = .;$TEXMF/fonts
+
+% A place to puth everything that doesn't fit the other font categories.
+MISCFONTS = .;$TEXMF/fonts/misc//
+
+% font name map files. This isn't just fonts/map// because ConTeXt
+% wants support for having files with the same name in the different
+% subdirs. Maybe if the programs ever get unified to accepting the same
+% map file syntax the definition can be simplified again.
+TEXFONTMAPS = .;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//
+
+% BibTeX bibliographies and style files. bibtex8 also uses these.
+BIBINPUTS = .;$TEXMF/bibtex/bib//
+BSTINPUTS = .;$TEXMF/bibtex/{bst,csf}//
+
+% MlBibTeX.
+MLBIBINPUTS = .;$TEXMF/bibtex/bib/{mlbib,}//
+MLBSTINPUTS = .;$TEXMF/bibtex/{mlbst,bst}//
+
+% MFT style files.
+MFTINPUTS = .;$TEXMF/mft//
+
+% PostScript headers and prologues (.pro); unfortunately, some programs
+% also use this for acessing font files (enc, type1, truetype)
+TEXPSHEADERS = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3}}//
+TEXPSHEADERS.gsftopk = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3,truetype}}//
+
+% OSFONTDIR is to provide a convenient hook for allowing TeX to find
+% fonts installed on the system (outside of TeX). An empty default
+% value would add "//" to the search paths, so we give it a dummy value.
+% OSFONTDIR = /usr/share/fonts
+
+% PostScript Type 1 outline fonts.
+T1FONTS = .;$TEXMF/fonts/type1//;$OSFONTDIR//
+
+% PostScript AFM metric files.
+AFMFONTS = .;$TEXMF/fonts/afm//;$OSFONTDIR//
+
+% TrueType outline fonts.
+TTFONTS = .;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR//
+
+% Opentype outline fonts.
+OPENTYPEFONTS = .;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR//
+
+% Type 42 outline fonts.
+T42FONTS = .;$TEXMF/fonts/type42//
+
+% Ligature definition files.
+LIGFONTS = .;$TEXMF/fonts/lig//
+
+% Dvips' config.* files (this name should not start with `TEX'!).
+TEXCONFIG = $TEXMF/dvips//
+
+% Makeindex style (.ist) files.
+INDEXSTYLE = .;$TEXMF/makeindex//
+
+% Font encoding files (.enc).
+ENCFONTS = .;$TEXMF/fonts/enc//
+
+% CMap files.
+CMAPFONTS = .;$TEXMF/fonts/cmap//
+
+% Subfont definition files.
+SFDFONTS = .;$TEXMF/fonts/sfd//
+
+% OpenType outline fonts.
+OPENTYPEFONTS = .;$TEXMF/fonts/opentype//
+
+% OpenType feature files (.fea).
+FONTFEATURES=.;$TEXMF/fonts/fea//
+
+% .cid and .cidmap
+FONTCIDMAPS=.;$TEXMF/fonts/cid//
+
+% pdftex config files:
+PDFTEXCONFIG = .;$TEXMF/pdftex/{$progname,}//
+
+% Used by DMP (ditroff-to-mpx), called by makempx -troff.
+TRFONTS = /usr{/local,}/share/groff/{current/font,site-font}/devps
+MPSUPPORT = .;$TEXMF/metapost/support
+
+% For xdvi to find mime.types and .mailcap, if they do not exist in
+% ~. These are single directories, not paths.
+% (But the default mime.types, at least, may well suffice.)
+MIMELIBDIR = /etc
+MAILCAPLIBDIR = /etc
+
+% Default settings for fontconfig library, used by Windows versions of
+% xetex/xdvipdfmx. On Unixish systems, fontconfig ignores this.
+FONTCONFIG_FILE=fonts.conf
+FONTCONFIG_PATH=$TEXMFSYSVAR/fonts/conf
+FC_CACHEDIR=$TEXMFSYSVAR/fonts/cache
+
+% TeX documentation and source files, for use with texdoc and kpsewhich.
+TEXDOCS = $TEXMF/doc//
+TEXSOURCES = .;$TEXMF/source//
+
+% Web and CWeb input paths.
+WEBINPUTS = .;$TEXMF/web//
+CWEBINPUTS = .;$TEXMF/cweb//
+
+% Omega-related fonts and other files.
+OFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}//
+OPLFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/opl//
+OVFFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}//
+OVPFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovp//
+OTPINPUTS = .;$TEXMF/omega/otp//
+OCPINPUTS = .;$TEXMF/omega/ocp//
+
+% Some additional input variables for several programs. If you add
+% a program that uses the `other text files' or `other binary files'
+% search formats, you'll want to add their variables here as well.
+T4HTINPUTS = .;$TEXMF/tex4ht//
+
+%% t4ht utility, sharing files with TeX4ht
+TEX4HTFONTSET=alias,iso8859,unicode
+TEX4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}//
+
+% TeXworks editor configuration and settings
+TW_LIBPATH = $TEXMFCONFIG/texworks
+TW_INIPATH = $TW_LIBPATH
+
+% For security, do not look in . for dvipdfmx.cfg, since the D option
+% would allow command execution.
+DVIPDFMXINPUTS = $TEXMF/dvipdfmx
+
+% Find scripts that are distributed/installed in the texmf tree.
+
+% Lua needs to look in TEXINPUTS for lua scripts distributed with packages.
+LUAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXINPUTS
+
+% Lua needs to look for binary lua libraries distributed with packages.
+CLUAINPUTS = .;$SELFAUTOLOC/lib/{$progname,$engine,}/lua//
+
+% Architecture independent executables.
+TEXMFSCRIPTS = $TEXMF/scripts/{$progname,$engine,}//
+
+% Other languages.
+JAVAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/java//
+PERLINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/perl//
+PYTHONINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/python//
+RUBYINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/ruby//
+
+
+%% The mktex* scripts rely on KPSE_DOT. Do not set it in the environment.
+% KPSE_DOT = .
+
+% This definition isn't used from this .cnf file itself (that would be
+% paradoxical), but the compile-time default in paths.h is built from it.
+% The SELFAUTO* variables are set automatically from the location of
+% argv[0], in kpse_set_program_name.
+%
+% This main texmf.cnf file is installed, for a release YYYY, in a
+% directory such as /usr/local/texlive/YYYY/texmf/web2c/texmf.cnf.
+% Since this file is subject to future updates, the TeX Live installer
+% or human administrator may also create a file
+% /usr/local/texlive/YYYY/texmf.cnf; any settings in this latter file
+% will take precedence over the distributed one under texmf/web2c.
+%
+% For security reasons, it is better not to include . in this path.
+%
+TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}
+
+% kpathsea 3.5.3 and later sets these at runtime. To avoid empty
+% expansions from binaries linked against an earlier version of the
+% library, we set $progname and $engine to something non-empty:
+progname = unsetprogname
+engine = unsetengine
+
+
+% Part 2: Options.
+
+% If this option is set to true, `tex a.b' will look first for a.b.tex
+% (within each path element), and then for a.b, i.e., we try standard
+% extensions first. If this is false, we first look for a.b and then
+% a.b.tex, i.e., we try the name as-is first.
+%
+% Both names are always tried; the difference is the order in which they
+% are tried. The setting applies to all searches, not just .tex.
+%
+% This setting only affects names being looked up which *already* have
+% an extension. A name without an extension (e.g., `tex story') will
+% always have an extension added first.
+%
+% The default is true, because we already avoid adding the standard
+% extension(s) in the usual cases. E.g., babel.sty will only look for
+% babel.sty, not babel.sty.tex, regardless of this setting.
+try_std_extension_first = t
+
+% Enable system commands via \write18{...}. When enabled fully (set to
+% t), obviously insecure. When enabled partially (set to p), only the
+% commands listed in shell_escape_commands are allowed. Although this
+% is not fully secure either, it is much better, and so useful that we
+% enable it for everything but bare tex.
+shell_escape = p
+
+% No spaces in this command list.
+%
+% The programs listed here are as safe as any we know: they either do
+% not write any output files, respect openout_any, or have hard-coded
+% restrictions similar or higher to openout_any=p. They also have no
+% features to invoke arbitrary other programs, and no known exploitable
+% bugs. All to the best of our knowledge. They also have practical use
+% for being called from TeX.
+%
+shell_escape_commands = \
+bibtex,bibtex8,\
+kpsewhich,\
+makeindex,\
+repstopdf,\
+
+% we'd like to allow:
+% dvips - but external commands can be executed, need at least -R1.
+% epspdf, ps2pdf, pstopdf - need to respect openout_any,
+% and gs -dSAFER must be used and check for shell injection with filenames.
+% (img)convert (ImageMagick) - delegates.mgk possible misconfig, besides,
+% without Unix convert it hardly seems worth it, and Windows convert
+% is something completely different that destroys filesystems, so skip.
+% pygmentize - but is the filter feature insecure?
+% ps4pdf - but it calls an unrestricted latex.
+% rpdfcrop - maybe ok, but let's get experience with repstopdf first.
+% texindy,xindy - but is the module feature insecure?
+% ulqda - but requires optional SHA1.pm, so why bother.
+% tex, latex, etc. - need to forbid --shell-escape, and inherit openout_any.
+
+% plain TeX should remain unenhanced.
+shell_escape.tex = f
+shell_escape.initex = f
+
+% This is used by the Windows script wrapper for restricting searching
+% for the purportedly safe shell_escape_commands above to system
+% directories.
+TEXMF_RESTRICTED_SCRIPTS = \
+ {!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}/scripts/{$progname,$engine,}//
+
+% Allow TeX \openin, \openout, or \input on filenames starting with `.'
+% (e.g., .rhosts) or outside the current tree (e.g., /etc/passwd)?
+% a (any) : any file can be opened.
+% r (restricted) : disallow opening "dotfiles".
+% p (paranoid) : as `r' and disallow going to parent directories, and
+% restrict absolute paths to be under $TEXMFOUTPUT.
+openout_any = p
+openin_any = a
+
+% Write .log/.dvi/etc. files here, if the current directory is unwritable.
+%TEXMFOUTPUT = /tmp
+
+% If a dynamic file creation fails, log the command to this file, in
+% either the current directory or TEXMFOUTPUT. Set to the
+% empty string or 0 to avoid logging.
+MISSFONT_LOG = missfont.log
+
+% Set to a colon-separated list of words specifying warnings to suppress.
+% To suppress everything, use TEX_HUSH = all; this is currently equivalent to
+% TEX_HUSH = checksum:lostchar:readable:special
+% To suppress nothing, use TEX_HUSH = none or do not set the variable at all.
+TEX_HUSH = none
+
+% Allow TeX, and MF to parse the first line of an input file for
+% the %&format construct.
+parse_first_line = t
+
+% But don't parse the first line if invoked as "tex", since we want that
+% to remain Knuth-compatible. The src_specials and
+% file_line_error_style settings, as well as the options -enctex,
+% -mltex, -8bit, etc., also affect this, but they are all off by default.
+parse_first_line.tex = f
+parse_first_line.initex = f
+
+% Control file:line:error style messages.
+file_line_error_style = f
+
+% Enable the mktex... scripts by default? These must be set to 0 or 1.
+% Particular programs can and do override these settings, for example
+% dvips's -M option. Your first chance to specify whether the scripts
+% are invoked by default is at configure time.
+%
+% These values are ignored if the script names are changed; e.g., if you
+% set DVIPSMAKEPK to `foo', what counts is the value of the environment
+% variable/config value `FOO', not the `MKTEXPK' value.
+%
+%MKTEXTEX = 0
+%MKTEXPK = 0
+%MKTEXMF = 0
+%MKTEXTFM = 0
+%MKTEXFMT = 0
+%MKOCP = 0
+%MKOFM = 0
+
+% Used by makempx to run TeX. We use "etex" because MetaPost is
+% expecting DVI, and not "tex" because we want first line parsing.
+TEX = etex
+
+% These variables specify the external program called for the
+% interactive `e' option. %d is replaced by the line number and %s by
+% the current filename. The default is specified at compile-time, and
+% we let that stay in place since different platforms like different values.
+%TEXEDIT = vi +%d "%s"
+%MFEDIT = ${TEXEDIT}
+%MPEDIT = ${TEXEDIT}
+
+% The default `codepage and sort order' file for BibTeX8, when none is
+% given as command line option or environment variable.
+BIBTEX_CSFILE = 88591lat.csf
+
+% Part 3: Array and other sizes for TeX (and Metafont).
+%
+% If you want to change some of these sizes only for a certain TeX
+% variant, the usual dot notation works, e.g.,
+% main_memory.hugetex = 20000000
+%
+% If a change here appears to be ignored, try redumping the format file.
+
+% Memory. Must be less than 8,000,000 total.
+%
+% main_memory is relevant only to initex, extra_mem_* only to non-ini.
+% Thus, have to redump the .fmt file after changing main_memory; to add
+% to existing fmt files, increase extra_mem_*. (To get an idea of how
+% much, try \tracingstats=2 in your TeX source file;
+% web2c/tests/memtest.tex might also be interesting.)
+%
+% To increase space for boxes (as might be needed by, e.g., PiCTeX),
+% increase extra_mem_bot.
+%
+% For some xy-pic samples, you may need as much as 700000 words of memory.
+% For the vast majority of documents, 60000 or less will do.
+%
+main_memory = 3000000 % words of inimemory available; also applies to inimf&mp
+extra_mem_top = 0 % extra high memory for chars, tokens, etc.
+extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc.
+
+% ConTeXt needs lots of memory.
+extra_mem_top.context = 2000000
+extra_mem_bot.context = 4000000
+
+% Words of font info for TeX (total size of all TFM files, approximately).
+% Must be >= 20000 and <= 147483647 (without tex.ch changes).
+font_mem_size = 3000000
+
+% Total number of fonts. Must be >= 50 and <= 9000 (without tex.ch changes).
+font_max = 9000
+
+% Extra space for the hash table of control sequences.
+hash_extra = 200000
+
+% Max number of characters in all strings, including all error messages,
+% help texts, font names, control sequences. These values apply to TeX.
+pool_size = 3250000
+% Minimum pool space after TeX's own strings; must be at least
+% 25000 less than pool_size, but doesn't need to be nearly that large.
+string_vacancies = 90000
+% Maximum number of strings.
+max_strings = 500000
+% min pool space left after loading .fmt
+pool_free = 47500
+
+% Buffer size. TeX uses the buffer to contain input lines, but macro
+% expansion works by writing material into the buffer and reparsing the
+% line. As a consequence, certain constructs require the buffer to be
+% very large, even though most documents can be handled with a small value.
+buf_size = 200000
+
+% Hyphenation trie. The maximum possible is 4194303 (ssup_trie_size in
+% the sources), but we don't need that much. The value here suffices
+% for all known free hyphenation patterns to be loaded simultaneously
+% (as TeX Live does).
+%
+trie_size = 1000000
+
+hyph_size = 8191 % prime number of hyphenation exceptions, >610, <32767.
+ % http://primes.utm.edu/curios/page.php/8191.html
+nest_size = 500 % simultaneous semantic levels (e.g., groups)
+max_in_open = 15 % simultaneous input files and error insertions,
+ % also applies to MetaPost
+param_size = 10000 % simultaneous macro parameters, also applies to MP
+save_size = 50000 % for saving values outside current group
+stack_size = 5000 % simultaneous input sources
+
+% These work best if they are the same as the I/O buffer size, but it
+% doesn't matter much. Must be a multiple of 8.
+dvi_buf_size = 16384 % TeX
+gf_buf_size = 16384 % MF
+
+% It's probably inadvisable to change these. At any rate, we must have:
+% 45 < error_line < 255;
+% 30 < half_error_line < error_line - 15;
+% 60 <= max_print_line;
+% These apply to TeX, Metafont, and MetaPost.
+error_line = 79
+half_error_line = 50
+max_print_line = 79
+
+% Metafont only.
+screen_width.mf = 1664
+screen_depth.mf = 1200
+
+% BibTeX only (max_strings also determines hash_size and hash_prime).
+ent_str_size = 250
+glob_str_size = 5000
+max_strings.bibtex = 35307
+max_strings.bibtex8 = 35307
+max_strings.bibtexu = 35307
+max_strings.pbibtex = 35307
+
+% GFtype only.
+line_length.gftype = 500
+max_rows.gftype = 8191
+max_cols.gftype = 8191
diff --git a/testing/twisted/PKGBUILD b/testing/twisted/PKGBUILD
new file mode 100644
index 000000000..d25475b8d
--- /dev/null
+++ b/testing/twisted/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 126682 2011-06-06 14:53:30Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=twisted
+pkgver=11.0.0
+pkgrel=1
+pkgdesc="Asynchronous networking framework written in Python."
+arch=('i686' 'x86_64')
+url="http://twistedmatrix.com/"
+license=('MIT')
+depends=('python2' 'pycrypto' 'zope-interface')
+optdepends=('python2-pyopenssl'
+ 'python-soappy:for twisted.web.soap')
+install=twisted.install
+source=(http://twistedmatrix.com/Releases/Twisted/${pkgver%.*}/Twisted-${pkgver}.tar.bz2)
+md5sums=('d7f94a1609a1b8f3b8c8d0146d4cfe54')
+
+build() {
+ cd "${srcdir}/Twisted-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/Twisted-${pkgver}"
+ python2 setup.py install --prefix=/usr --root=${pkgdir} --optimize=1
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.7/site-packages/twisted/trial/test/scripttest.py
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.7/site-packages/twisted/mail/test/pop3testserver.py
+}
diff --git a/testing/twisted/twisted.install b/testing/twisted/twisted.install
new file mode 100644
index 000000000..8e93ffd3c
--- /dev/null
+++ b/testing/twisted/twisted.install
@@ -0,0 +1,11 @@
+post_install() {
+ python2 -c 'from twisted.plugin import IPlugin, getPlugins; list(getPlugins(IPlugin))' >/dev/null 2>&1 || return 1
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ find /usr/lib/python2.7/site-packages/twisted/plugins -name dropin.cache | xargs -r rm -f
+}
diff --git a/testing/udev/81-arch.rules b/testing/udev/81-arch.rules
deleted file mode 100644
index cd4e3e9b4..000000000
--- a/testing/udev/81-arch.rules
+++ /dev/null
@@ -1,83 +0,0 @@
-# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
-# do not edit this file, it will be overwritten on update
-#
-# There are a number of modifiers that are allowed to be used in some
-# of the different fields. They provide the following subsitutions:
-#
-# %n the "kernel number" of the device.
-# For example, 'sda3' has a "kernel number" of '3'
-# %k the kernel name for the device.
-# %M the kernel major number for the device
-# %m the kernel minor number for the device
-# %b the bus id for the device
-# %c the string returned by the PROGRAM
-# %s{filename} the content of a sysfs attribute.
-# %% the '%' char itself.
-#
-# There are a number of modifiers that are allowed to be used in some of the
-# fields. See the udev man page for a full description of them.
-# global stuff
-#
-
-# permission for sg devices
-KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660"
-
-# permissions for IDE CD devices
-SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical"
-
-# permissions for SCSI CD devices
-SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical"
-SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical"
-
-# permissions for removable devices like cardreaders or sticks
-KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="0", GROUP="storage"
-
-# permissions for firewire external drives
-KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage"
-
-# permissions for usb to scsi external adapters
-KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="7", GROUP="storage"
-
-# permissions for ide storage like pcmcia card readers
-ACTION!="add", GOTO="pcmcia_end"
-SUBSYSTEM!="block", GOTO="pcmcia_end"
-KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode"
-KERNEL=="hd*", IMPORT{parent}=="ID_*"
-KERNEL=="hd*", ENV{ID_TYPE}=="generic", GROUP="storage"
-LABEL="pcmcia_end"
-
-# permissions for SCSI scanners
-SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner"
-
-# mem
-KERNEL=="ram0", SYMLINK+="ramdisk"
-KERNEL=="ram1", SYMLINK+="ram"
-
-# video4linux
-
-KERNEL=="vbi0", SYMLINK+="vbi"
-KERNEL=="radio0", SYMLINK+="radio"
-KERNEL=="radio[0-9]*", GROUP="video"
-KERNEL=="video0", SYMLINK+="video"
-KERNEL=="vtx0", SYMLINK+="vtx"
-
-# video devices
-### xorg resets those permissions, adjust your xorg.conf!
-KERNEL=="3dfx*", GROUP="video"
-KERNEL=="fb[0-9]*", GROUP="video"
-
-# misc
-KERNEL=="sgi_fetchop", MODE="0666"
-KERNEL=="sonypi", MODE="0666"
-
-# USB devices
-KERNEL=="legousbtower*", MODE="0666"
-
-# kbd devices
-KERNEL=="kbd", MODE="0664"
-
-# miscellaneous
-KERNEL=="rtc|rtc0", GROUP="audio", MODE="0664"
-#######################################
-# Permissions and Symlinks - end
-#######################################
diff --git a/testing/udev/PKGBUILD b/testing/udev/PKGBUILD
deleted file mode 100644
index b80fd7707..000000000
--- a/testing/udev/PKGBUILD
+++ /dev/null
@@ -1,101 +0,0 @@
-# $Id: PKGBUILD 126202 2011-06-02 14:49:12Z tomegun $
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
-# Maintainer: Tom Gundersen <teg@jklm.no>
-
-pkgbase="udev"
-pkgname=('udev' 'udev-compat')
-pkgver=171
-pkgrel=2
-arch=(i686 x86_64)
-url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
-license=('GPL')
-groups=('base')
-# older initscripts versions required start_udev
-options=(!makeflags !libtool)
-makedepends=('glibc' 'coreutils' 'util-linux' 'pciutils' 'libusb-compat' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection')
-source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.tar.bz2
- 81-arch.rules
- static-audio-nodes-group.patch
- static-nodes-permissions.patch)
-
-build() {
- cd $srcdir/$pkgbase-$pkgver
- # fix https://bugs.archlinux.org/task/24362 (will be in udev-172)
- patch -Np1 -i ../static-audio-nodes-group.patch
- patch -Np1 -i ../static-nodes-permissions.patch
- ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\
- --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system\
- --disable-rule-generator
- make
-}
-
-package_udev() {
- pkgdesc="The userspace dev tools (udev)"
- depends=('glibc' 'coreutils' 'util-linux' 'libusb-compat' 'glib2'
- 'module-init-tools>=3.11' 'pciutils')
- install=udev.install
- backup=(etc/udev/udev.conf
- etc/modprobe.d/framebuffer_blacklist.conf)
- conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07')
- replaces=('devfsd')
-
- cd $srcdir/$pkgbase-$pkgver
- make DESTDIR=${pkgdir} install
- # Install our rule for permissions and symlinks
- install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules
-
- # create framebuffer blacklist
- mkdir -p $pkgdir/etc/modprobe.d/
- for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko.gz' -exec basename {} .ko.gz \;); do
- echo "blacklist $mod"
- done | sort -u > $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf
-
- # create static devices in /lib/udev/devices/
- mkdir ${pkgdir}/lib/udev/devices/pts
- mkdir ${pkgdir}/lib/udev/devices/shm
-
- mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1
- mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3
- mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5
- mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11
-
- ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd
- ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin
- ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout
- ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr
- ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core
-
- # these static devices are created for convenience, to autoload the modules if necessary
- # /dev/loop0
- mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0
- chgrp disk ${pkgdir}/lib/udev/devices/loop0
- # /dev/net/tun
- mkdir ${pkgdir}/lib/udev/devices/net
- mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200
- # /dev/fuse
- mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229
- # /dev/ppp
- mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0
-
- # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
- for i in $pkgdir/lib/udev/rules.d/*.rules; do
- sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g;
- s#GROUP="tape"#GROUP="storage"#g;
- s#GROUP="cdrom"#GROUP="optical"#g' $i
- done
-}
-
-package_udev-compat() {
- pkgdesc="The userspace dev tools (udev) - additional rules for older kernels"
- depends=('udev')
- groups=('')
- cd $srcdir/$pkgbase-$pkgver
- install -d -m755 ${pkgdir}/lib/${pkgbase}/rules.d
- install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
-}
-md5sums=('bdf4617284be2ecac11767437417e209'
- '6ee44e3feb8e0f037947e7d4ca273f12'
- '4f625aea95a5597afd8cdf189421f193'
- 'f9e50b8dfcd2215f5423ff9bc04ecf68')
diff --git a/testing/udev/static-audio-nodes-group.patch b/testing/udev/static-audio-nodes-group.patch
deleted file mode 100644
index b1fc4f935..000000000
--- a/testing/udev/static-audio-nodes-group.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 3e227830ad6494700e18ae03297e8fb833ff26bf Mon Sep 17 00:00:00 2001
-From: Kay Sievers <kay.sievers@vrfy.org>
-Date: Fri, 27 May 2011 02:50:29 +0200
-Subject: [PATCH] rules: apply 'audio' group of the static snd/{seq,timer}
- nodes
-
----
- rules/rules.d/50-udev-default.rules | 3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules
-index cd745ef..cacb533 100644
---- a/rules/rules.d/50-udev-default.rules
-+++ b/rules/rules.d/50-udev-default.rules
-@@ -38,7 +38,8 @@ SUBSYSTEM=="graphics", GROUP="video"
- SUBSYSTEM=="drm", GROUP="video"
-
- # sound
--SUBSYSTEM=="sound", GROUP="audio"
-+SUBSYSTEM=="sound", GROUP="audio", \
-+ OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"
-
- # DVB (video)
- SUBSYSTEM=="dvb", GROUP="video"
---
-1.7.5.3
-
diff --git a/testing/udev/static-nodes-permissions.patch b/testing/udev/static-nodes-permissions.patch
deleted file mode 100644
index 51e6ad6bc..000000000
--- a/testing/udev/static-nodes-permissions.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From c112873b5bc9ebbae39c32f502bc6211f33546cc Mon Sep 17 00:00:00 2001
-From: Kay Sievers <kay.sievers@vrfy.org>
-Date: Mon, 30 May 2011 02:12:02 +0200
-Subject: [PATCH 1/2] rules: static_node - use 0660 if group is given to get
- the cigar
-
->> On Tue, May 24, 2011 at 15:33, Tom Gundersen <teg@jklm.no> wrote:
->
-> Close, but no cigar. Looks like the static nodes are not assigned
-> permissions 0660 even if a gid is set (the nodes have perms 0600).
->
-> Cheers,
->
-> Tom
----
- udev/udev-rules.c | 10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/udev/udev-rules.c b/udev/udev-rules.c
-index 48395e7..56a258d 100644
---- a/udev/udev-rules.c
-+++ b/udev/udev-rules.c
-@@ -2709,8 +2709,9 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules)
- case TK_A_STATIC_NODE: {
- char filename[UTIL_PATH_SIZE];
- struct stat stats;
-+
- /* we assure, that the permissions tokens are sorted before the static token */
-- if (mode == 0 && uid == 0 && gid == 0)
-+ if (uid == 0 && gid == 0)
- goto next;
- util_strscpyl(filename, sizeof(filename), udev_get_dev_path(rules->udev), "/",
- &rules->buf[cur->key.value_off], NULL);
-@@ -2718,14 +2719,19 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules)
- goto next;
- if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
- goto next;
-- if (mode != 0 && mode != (stats.st_mode & 0777)) {
-+
-+ if (mode == 0 && gid > 0)
-+ mode = 0660;
-+ if (mode != (stats.st_mode & 0777)) {
- chmod(filename, mode);
- info(rules->udev, "chmod '%s' %#o\n", filename, mode);
- }
-+
- if ((uid != 0 && uid != stats.st_uid) || (gid != 0 && gid != stats.st_gid)) {
- chown(filename, uid, gid);
- info(rules->udev, "chown '%s' %u %u\n", filename, uid, gid);
- }
-+
- utimensat(AT_FDCWD, filename, NULL, 0);
- break;
- }
---
-1.7.5.2
-
diff --git a/testing/udev/udev.install b/testing/udev/udev.install
deleted file mode 100644
index 5c02dd15b..000000000
--- a/testing/udev/udev.install
+++ /dev/null
@@ -1,65 +0,0 @@
-# arg 1: the new package version
-# arg 2: the old package version
-
-post_upgrade() {
- if [ "$(vercmp $2 100)" -lt 0 ]; then
- echo "ATTENTION UDEV:"
- echo "----------"
- echo "udev >=098 rules syntax has changed, please update your own rules."
- echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules."
- echo "Please read the instructions carefully before reboot."
- echo "They are located in /etc/udev/readme-udev-arch.txt"
- echo "----------"
- fi
- if [ "$(vercmp $2 169)" -lt 0 ]; then
- echo "ATTENTION UDEV:"
- echo "---------------"
- echo "Kernel 2.6.32 or newer is now required."
- echo "OSS emulation modules are not loaded by default, add to rc.conf if needed."
- echo "Arch specific cd symlinks are now no longer created."
- echo "cd and net persistent rules will no longer be autogenerated,"
- echo "see <https://wiki.archlinux.org/index.php/Udev> for details."
- echo "Errors are now logged (possibly to the console) by default."
- echo "---------------"
- fi
- if [ "$(vercmp $2 172)" -lt 0 ]; then
- echo "ATTENTION UDEV:"
- echo "---------------"
- echo "Arch's custom blacklisting logic has been removed. MOD_AUTOLOAD and"
- echo "blacklisting in MODULES no longer works."
- echo "See 'man modprobe.conf' for a replacement to blacklisting."
- echo "To disable a module mod1 on the kernel command line, use"
- echo "mod1.disable=1"
- echo "or"
- echo "modprobe.blacklist=mod1"
- echo " --"
- echo "The following modules are no longer unconditionally loaded:"
- echo " pcspkr irtty-sir analog lp ppdev ide-generic"
- echo "Add them to MODULES in rc.conf if you need them."
- echo "---------------"
- fi
-}
-
-post_install() {
- # If a ramfs is mounted, we still need to make sure that /dev/{console,null,zero} exist
- # The Archlinux installer bind-mounts /dev to /mnt/dev, thus making the real /dev invisible
- ROOTDIR=""
- [ "$(stat -c %D /)" != "$(stat -c %D /dev)" ] && ROOTDIR=$(mktemp -d /tmp/udevinstall.XXXXXX)
- [ -n "${ROOTDIR}" ] && mount --bind / ${ROOTDIR}
- if [ ! -c ${ROOTDIR}/dev/console ]; then
- rm -f ${ROOTDIR}/dev/console
- mknod -m600 ${ROOTDIR}/dev/console c 5 1
- fi
- if [ ! -c ${ROOTDIR}/dev/null ]; then
- rm -f ${ROOTDIR}/dev/null
- mknod -m644 ${ROOTDIR}/dev/null c 1 3
- fi
- if [ ! -c ${ROOTDIR}/dev/zero ]; then
- rm -f ${ROOTDIR}/dev/zero
- mknod -m644 ${ROOTDIR}/dev/zero c 1 5
- fi
- if [ -n "${ROOTDIR}" ]; then
- umount ${ROOTDIR}
- rmdir ${ROOTDIR}
- fi
-}
diff --git a/extra/valgrind/PKGBUILD b/testing/valgrind/PKGBUILD
index ce2961653..a181f374c 100644
--- a/extra/valgrind/PKGBUILD
+++ b/testing/valgrind/PKGBUILD
@@ -1,20 +1,22 @@
-# $Id: PKGBUILD 110184 2011-02-17 12:26:47Z allan $
+# $Id: PKGBUILD 126782 2011-06-07 10:02:00Z allan $
# Maintainer: Dan McGee <dan@archlinux.org>
# Maintainer: Allan McRae <allan@archlinux.org>
pkgname=valgrind
pkgver=3.6.1
-pkgrel=1
+pkgrel=2
pkgdesc="A tool to help find memory-management problems in programs"
-arch=('i686' 'x86_64' 'mips64el')
+arch=('i686' 'x86_64')
license=('GPL')
url="http://valgrind.org/"
-depends=('glibc>=2.13' 'glibc<2.14' 'perl')
+depends=('glibc>=2.14' 'glibc<2.15' 'perl')
makedepends=('gdb')
options=('!emptydirs')
source=(http://valgrind.org/downloads/${pkgname}-${pkgver}.tar.bz2
+ valgrind-3.6.1-glibc-2.14.patch
glibc-patch-version.patch)
md5sums=('2c3aa122498baecc9d69194057ca88f5'
+ '560032ce5d27ef0c7c1af32c3fd45833'
'b657f0ebdde3d9aefc9fd16f9e653702')
build() {
@@ -23,6 +25,9 @@ build() {
# make sure our CFLAGS are respected
sed -i -e 's:^CFLAGS="-Wno-long-long":CFLAGS="$CFLAGS -Wno-long-long":' configure.in
+ # glibc-2.14 compatibility
+ patch -Np1 -i ${srcdir}/valgrind-3.6.1-glibc-2.14.patch
+
# prevent need to rebuild with glibc patch level version bumps
patch -Np1 -i ${srcdir}/glibc-patch-version.patch
diff --git a/extra/valgrind/glibc-patch-version.patch b/testing/valgrind/glibc-patch-version.patch
index 2c6830aef..2c6830aef 100644
--- a/extra/valgrind/glibc-patch-version.patch
+++ b/testing/valgrind/glibc-patch-version.patch
diff --git a/testing/valgrind/valgrind-3.6.1-glibc-2.14.patch b/testing/valgrind/valgrind-3.6.1-glibc-2.14.patch
new file mode 100644
index 000000000..7fd217016
--- /dev/null
+++ b/testing/valgrind/valgrind-3.6.1-glibc-2.14.patch
@@ -0,0 +1,67 @@
+--- valgrind/configure.in.jj 2010-10-21 03:14:02.000000000 +0200
++++ valgrind/configure.in 2010-11-05 17:09:18.674455299 +0100
+@@ -749,6 +759,13 @@ case "${GLIBC_VERSION}" in
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
++ 2.14)
++ AC_MSG_RESULT(2.14 family)
++ AC_DEFINE([GLIBC_2_14], 1, [Define to 1 if you're using glibc 2.14.x])
++ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ ;;
+ aix5)
+ AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
+ AC_DEFINE([AIX5_LIBC], 1, [Define to 1 if you're using AIX 5.1 or 5.2 or 5.3])
+@@ -762,7 +779,7 @@ case "${GLIBC_VERSION}" in
+
+ *)
+ AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
+- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.13])
++ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.14])
+ AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION])
+ AC_MSG_ERROR([or Darwin libc])
+ ;;
+--- valgrind/config.h.in.jj 2010-10-20 22:20:49.000000000 +0200
++++ valgrind/config.h.in 2010-11-05 17:08:33.863454886 +0100
+@@ -33,6 +33,9 @@
+ /* Define to 1 if you're using glibc 2.13.x */
+ #undef GLIBC_2_13
+
++/* Define to 1 if you're using glibc 2.14.x */
++#undef GLIBC_2_14
++
+ /* Define to 1 if you're using glibc 2.2.x */
+ #undef GLIBC_2_2
+
+--- valgrind/configure.jj 2010-10-21 03:16:18.000000000 +0200
++++ valgrind/configure 2010-11-05 17:09:39.163455396 +0100
+@@ -6367,6 +6389,18 @@ $as_echo "#define GLIBC_2_13 1" >>confde
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
++ 2.14)
++ echo "$as_me:$LINENO: result: 2.14 family" >&5
++echo "${ECHO_T}2.14 family" >&6
++
++cat >>confdefs.h <<\_ACEOF
++#define GLIBC_2_14 1
++_ACEOF
++
++ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ ;;
+ aix5)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX 5.1 or 5.2 or 5.3" >&5
+ $as_echo "AIX 5.1 or 5.2 or 5.3" >&6; }
+@@ -6387,7 +6421,7 @@ $as_echo "#define DARWIN_LIBC 1" >>confd
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
+ $as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
+- as_fn_error "Valgrind requires glibc version 2.2 - 2.13" "$LINENO" 5
++ as_fn_error "Valgrind requires glibc version 2.2 - 2.14" "$LINENO" 5
+ as_fn_error "or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION" "$LINENO" 5
+ as_fn_error "or Darwin libc" "$LINENO" 5
+ ;;
diff --git a/testing/vim/PKGBUILD b/testing/vim/PKGBUILD
deleted file mode 100644
index 603de624a..000000000
--- a/testing/vim/PKGBUILD
+++ /dev/null
@@ -1,198 +0,0 @@
-# $Id: PKGBUILD 125313 2011-05-25 20:09:55Z heftig $
-# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Maintainer: tobias [ tobias at archlinux org ]
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
-
-pkgbase=vim
-pkgname=(vim gvim vim-runtime)
-_topver=7.3
-_patchlevel=206
-pkgver=${_topver}.${_patchlevel}
-__hgrev=e9538cfd0d9c
-pkgrel=1
-arch=('i686' 'x86_64')
-license=('custom:vim')
-url="http://www.vim.org"
-makedepends=('gpm' 'perl' 'python2>=2.7.1' 'ruby' 'libxt' 'desktop-file-utils' 'gtk2'
- 'gettext' 'pkgconfig' 'mercurial' 'rsync' 'sed')
-source=(pythoncomplete.vim::http://www.vim.org/scripts/download_script.php\?src_id=10872
- vimrc archlinux.vim gvim.desktop)
-md5sums=('6e7adfbd5d26c1d161030ec203a7f243'
- 'e57777374891063b9ca48a1fe392ac05'
- '10353a61aadc3f276692d0e17db1478e'
- '4b83e5fe0e534c53daaba91dd1cd4cbb')
-
-__hgroot='http://vim.googlecode.com/hg/'
-__hgrepo='vim'
-__hgbranch='default'
-
-_versiondir="vim${_topver//./}"
-
-##### Build #####
-
-build() {
- cd ${srcdir}
-
- msg2 'Checking out source from Mercurial...'
-
- if [[ -d ${__hgrepo} ]]; then
- cd ${__hgrepo}
- hg pull -b ${__hgbranch}|| warning 'hg pull failed!'
- hg update -r ${__hgrev}
- else
- hg clone -b ${__hgbranch} -u ${__hgrev} "${__hgroot}${__hgrepo}" ${__hgrepo}
- cd ${__hgrepo}
- fi
-
- if (( $(hg id -n) < $(hg id -nr ${__hgbranch}) )); then
- warning 'You are not building the latest revision!'
- warning "Consider updating __hgrev to $(hg id -r ${__hgbranch})."
- sleep 10
- fi
-
- cd ..
- rm -rf vim-build gvim-build
- rsync -a --exclude='.hg/' ${__hgrepo}/ vim-build
-
- msg2 'Patching...'
-
- # define the place for the global (g)vimrc file (set to /etc/vimrc)
- sed -i 's|^.*\(#define SYS_.*VIMRC_FILE.*"\) .*$|\1|' \
- vim-build/src/feature.h
- sed -i 's|^.*\(#define VIMRC_FILE.*"\) .*$|\1|' \
- vim-build/src/feature.h
- # fix python name
- sed -i -e 's|vi_cv_path_python, python|vi_cv_path_python, python2|' \
- vim-build/src/configure.in
- (cd vim-build/src && autoconf)
-
- msg2 'Building...'
-
- cp -a vim-build gvim-build
-
- cd ${srcdir}/vim-build
-
- ./configure --prefix=/usr --localstatedir=/var/lib/vim \
- --mandir=/usr/share/man --with-compiledby=ArchLinux \
- --with-features=big --enable-gpm --enable-acl --with-x=no \
- --disable-gui --enable-multibyte --enable-cscope \
- --disable-netbeans --enable-perlinterp --disable-pythoninterp \
- --disable-rubyinterp
-
- make
-
- cd ${srcdir}/gvim-build
-
- ./configure --prefix=/usr --localstatedir=/var/lib/vim \
- --mandir=/usr/share/man --with-compiledby=ArchLinux \
- --with-features=big --enable-gpm --enable-acl --with-x=yes \
- --enable-gui=gtk2 --enable-multibyte --enable-cscope \
- --enable-netbeans --enable-perlinterp --enable-pythoninterp \
- --enable-rubyinterp
-
- make
-}
-
-##### Packaging #####
-
-package_vim() {
- pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor'
- depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm' 'perl')
- conflicts=('gvim')
-
- cd ${srcdir}/vim-build
- make -j1 VIMRCLOC=/etc DESTDIR=${pkgdir} install
-
- # provided by (n)vi in core
- rm ${pkgdir}/usr/bin/{ex,view}
-
- # delete some manpages
- find ${pkgdir}/usr/share/man -type d -name 'man1' 2>/dev/null | \
- while read _mandir; do
- cd ${_mandir}
- rm -f ex.1 view.1 # provided by (n)vi
- rm -f evim.1 # this does not make sense if we have no GUI
- done
-
- # Runtime provided by runtime package
- rm -r ${pkgdir}/usr/share/vim
-
- # license
- install -dm755 ${pkgdir}/usr/share/licenses/vim
- ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \
- ${pkgdir}/usr/share/licenses/vim/license.txt
-}
-
-package_gvim() {
- pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor (with advanced features, such as a GUI)'
- depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm' 'perl' 'python2>=2.7.1' 'ruby' 'libxt'
- 'desktop-file-utils' 'gtk2')
- provides=("vim=${pkgver}-${pkgrel}")
- conflicts=('vim')
- install=gvim.install
-
- cd ${srcdir}/gvim-build
- make -j1 VIMRCLOC=/etc DESTDIR=${pkgdir} install
-
- # provided by (n)vi in core
- rm ${pkgdir}/usr/bin/{ex,view}
-
- # delete some manpages
- find ${pkgdir}/usr/share/man -type d -name 'man1' 2>/dev/null | \
- while read _mandir; do
- cd ${_mandir}
- rm -f ex.1 view.1 # provided by (n)vi
- done
-
- # Move the runtime for later packaging
- mv ${pkgdir}/usr/share/vim ${srcdir}/runtime-install
-
- # freedesktop links
- install -Dm644 ${srcdir}/gvim.desktop \
- ${pkgdir}/usr/share/applications/gvim.desktop
- install -Dm644 runtime/vim48x48.png ${pkgdir}/usr/share/pixmaps/gvim.png
-
- # license
- install -dm755 ${pkgdir}/usr/share/licenses/gvim
- ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \
- ${pkgdir}/usr/share/licenses/gvim/license.txt
-}
-
-package_vim-runtime() {
- pkgdesc='Runtime for vim and gvim'
- backup=(etc/vimrc)
-
- # Install the runtime split from gvim
- install -dm755 ${pkgdir}/usr/share
- mv ${srcdir}/runtime-install ${pkgdir}/usr/share/vim
-
- # Don't forget logtalk.dict
- install -Dm644 ${srcdir}/gvim-build/runtime/ftplugin/logtalk.dict \
- ${pkgdir}/usr/share/vim/${_versiondir}/ftplugin/logtalk.dict
-
- # fix FS#17216
- sed -i 's|messages,/var|messages,/var/log/messages.log,/var|' \
- ${pkgdir}/usr/share/vim/${_versiondir}/filetype.vim
-
- # patch filetype.vim for better handling of pacman related files
- sed -i "s/rpmsave/pacsave/;s/rpmnew/pacnew/;s/,\*\.ebuild/\0,PKGBUILD*,*.install/" \
- ${pkgdir}/usr/share/vim/${_versiondir}/filetype.vim
- sed -i "/find the end/,+3{s/changelog_date_entry_search/changelog_date_end_entry_search/}" \
- ${pkgdir}/usr/share/vim/${_versiondir}/ftplugin/changelog.vim
-
- # make Aaron happy
- install -Dm644 ${srcdir}/pythoncomplete.vim \
- ${pkgdir}/usr/share/vim/${_versiondir}/autoload/pythoncomplete.vim
-
- # rc files
- install -Dm644 ${srcdir}/vimrc ${pkgdir}/etc/vimrc
- install -Dm644 ${srcdir}/archlinux.vim \
- ${pkgdir}/usr/share/vim/vimfiles/archlinux.vim
-
- # license
- install -dm755 ${pkgdir}/usr/share/licenses/vim-runtime
- ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \
- ${pkgdir}/usr/share/licenses/vim-runtime/license.txt
-}
-
-# vim:set sw=2 sts=2 et:
diff --git a/testing/vim/archlinux.vim b/testing/vim/archlinux.vim
deleted file mode 100644
index 148bb930f..000000000
--- a/testing/vim/archlinux.vim
+++ /dev/null
@@ -1,26 +0,0 @@
-" The ArchLinux global vimrc - setting only a few sane defaults
-"
-" Maintainer: Tobias Kieslich [tobias funnychar archlinux dot org]
-"
-" NEVER EDIT THIS FILE, IT'S OVERWRITTEN UPON UPGRADES, GLOBAL CONFIGURATION
-" SHALL BE DONE IN /etc/vimrc, USER SPECIFIC CONFIGURATION IN ~/.vimrc
-
-" Normally we use vim-extensions. If you want true vi-compatibility
-" remove change the following statements
-set nocompatible " Use Vim defaults instead of 100% vi compatibility
-set backspace=indent,eol,start " more powerful backspacing
-
-" Now we set some defaults for the editor
-set history=50 " keep 50 lines of command line history
-set ruler " show the cursor position all the time
-
-" Suffixes that get lower priority when doing tab completion for filenames.
-" These are files we are not likely to want to edit or read.
-set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
-
-
-if has('gui_running')
- " Make shift-insert work like in Xterm
- map <S-Insert> <MiddleMouse>
- map! <S-Insert> <MiddleMouse>
-endif
diff --git a/testing/vim/gvim.desktop b/testing/vim/gvim.desktop
deleted file mode 100644
index 56fd61b8f..000000000
--- a/testing/vim/gvim.desktop
+++ /dev/null
@@ -1,42 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Name=gVim
-Name[eo]=VIM-fasado
-Name[sv]=gVim
-Name[xx]=xx
-Comment=GTK2 enhanced vim text editor
-Comment[ar]=محرر نصوص
-Comment[bg]=Текст Редактор
-Comment[de]=Texteditor
-Comment[el]=Διορθωτής Κειμένου
-Comment[eo]=Tekstredaktilo
-Comment[et]=Tekstiredaktor
-Comment[eu]=Testu Editorea
-Comment[fi]=Tekstieditori
-Comment[he]=עורך טקסט
-Comment[is]=Textaritill
-Comment[ja]=テキストエディタ
-Comment[lt]=Teksto redaktorius
-Comment[mt]=Editur tat-test
-Comment[pt_BR]=Editor de Texto
-Comment[ro]=Editor de text
-Comment[ru]=редактор
-Comment[sk]=Textový editor
-Comment[sl]=Urejevalnik besedil
-Comment[ta]=¯¨Ã ¦¾¡ÌôÀ¡Ç÷
-Comment[tr]=Metin Düzenleyici
-Comment[uk]=Редактор текстів
-Comment[vi]=Trình soạn văn bản
-Comment[xx]=xx
-Comment[zh_CN]=文本编辑器
-Comment[zh_TW]=文字編輯器
-GenericName=Text Editor
-Type=Application
-TryExec=gvim
-Exec=gvim %u
-Icon=gvim
-Terminal=false
-X-MultipleArgs=false
-Categories=GTK;Application;Utility;TextEditor;
-MimeType=application/mathml+xml;application/xhtml+xml;application/x-perl;application/x-python;application/x-shellscript;audio/x-mpegurl;audio/x-scpls;image/svg+xml;message/news;message/rfc822;text/calendar;text/css;text/english;text/html;text/mrml;text/plain;text/rdf;text/rss;text/rtf;text/sgml;text/vnd.wap.wml;text/x-adasrc;text/x-bibtex;text/x-chdr;text/x-c++hdr;text/x-csrc;text/x-c++src;text/x-c;text/x-objc;text/x-csv;text/x-diff;text/x-java;text/x-katefilelist;text/x-latex;text/x-log;text/x-lyx;text/x-makefile;text/xmcd;text/xml;text/x-moc;text/x-mswinurl;text/x-objcsrc;text/x-pascal;text/x-perl;text/x-php;text/x-php-source;text/x-python;text/x-tcl;text/x-tex;text/x-vcalendar;text/x-vcard;text/x-xslfo;text/x-xslt;
diff --git a/testing/vim/gvim.install b/testing/vim/gvim.install
deleted file mode 100644
index 0a8d3b0a9..000000000
--- a/testing/vim/gvim.install
+++ /dev/null
@@ -1,13 +0,0 @@
-post_install() {
- echo -n "Updating desktop and mime database..."
- update-desktop-database -q
- echo "done."
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- post_install $1
-}
diff --git a/testing/vim/vimrc b/testing/vim/vimrc
deleted file mode 100644
index 92d3ff980..000000000
--- a/testing/vim/vimrc
+++ /dev/null
@@ -1,16 +0,0 @@
-" All system-wide defaults are set in $VIMRUNTIME/archlinux.vim (usually just
-" /usr/share/vim/vimfiles/archlinux.vim) and sourced by the call to :runtime
-" you can find below. If you wish to change any of those settings, you should
-" do it in this file (/etc/vimrc), since archlinux.vim will be overwritten
-" everytime an upgrade of the vim packages is performed. It is recommended to
-" make changes after sourcing archlinux.vim since it alters the value of the
-" 'compatible' option.
-
-" This line should not be removed as it ensures that various options are
-" properly set to work with the Vim-related packages.
-runtime! archlinux.vim
-
-" If you prefer the old-style vim functionalty, add 'runtime! vimrc_example.vim'
-" Or better yet, read /usr/share/vim/vim72/vimrc_example.vim or the vim manual
-" and configure vim to your own liking!
-
diff --git a/testing/weechat/PKGBUILD b/testing/weechat/PKGBUILD
deleted file mode 100644
index 7e2144efc..000000000
--- a/testing/weechat/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 125306 2011-05-25 19:29:12Z foutrelis $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: lucke <lucke at o2 dot pl>
-
-pkgname=weechat
-pkgver=0.3.5
-pkgrel=2
-pkgdesc="Fast, light and extensible IRC client (curses UI)"
-arch=('i686' 'x86_64')
-url="http://www.weechat.org/"
-license=('GPL')
-depends=('gnutls')
-makedepends=('cmake' 'pkgconfig' 'perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell')
-optdepends=('perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell')
-options=('!libtool')
-source=("http://www.weechat.org/files/src/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('0d2a089bfbfa550e0c65618a171fb3c4')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- mkdir build
- cd build
- cmake .. -DPREFIX=/usr \
- -DPYTHON_EXECUTABLE=/usr/bin/python2 \
- -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}/build"
-
- make DESTDIR="${pkgdir}/" install
-}
diff --git a/testing/xorg-server/10-quirks.conf b/testing/xorg-server/10-quirks.conf
deleted file mode 100644
index 7afad22dc..000000000
--- a/testing/xorg-server/10-quirks.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-# Collection of quirks and blacklist/whitelists for specific devices.
-
-
-# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
-# http://bugs.freedesktop.org/show_bug.cgi?id=22442
-Section "InputClass"
- Identifier "ThinkPad HDAPS accelerometer blacklist"
- MatchProduct "ThinkPad HDAPS accelerometer data"
- Option "Ignore" "on"
-EndSection
diff --git a/testing/xorg-server/PKGBUILD b/testing/xorg-server/PKGBUILD
deleted file mode 100644
index 274da6f98..000000000
--- a/testing/xorg-server/PKGBUILD
+++ /dev/null
@@ -1,196 +0,0 @@
-# $Id: PKGBUILD 125811 2011-05-30 08:49:25Z jgc $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgbase=xorg-server
-pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
-pkgver=1.10.2
-pkgrel=2
-arch=('i686' 'x86_64')
-license=('custom')
-url="http://xorg.freedesktop.org"
-makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto' 'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util')
-options=('!libtool')
-source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
- git-fixes.patch
- bg-none-revert.patch
- xserver-1.10-pointer-barriers.patch
- xorg-redhat-die-ugly-pattern-die-die-die.patch
- autoconfig-nvidia.patch
- xvfb-run
- xvfb-run.1
- 10-quirks.conf)
-sha1sums=('fd831b3c6297d1a68830c602d767752d87b9ca54'
- '6dd2bcd9d8b17d1a50ed8c15eb1cba480558e695'
- '629c6d8d52126eab81ee1b72a9e4209535f8cb81'
- '1b95e91384a57d966428c7db98ed06f4cc562f91'
- '0efcdf61bde3c0cd813072b94e2b30ab922775b9'
- 'f9328fd7bc931bb02c8909ecfcef35403de33782'
- 'c94f742d3f9cabf958ae58e4015d9dd185aabedc'
- '6838fc00ef4618c924a77e0fb03c05346080908a'
- '993798f3d22ad672d769dae5f48d1fa068d5578f')
-
-build() {
- cd "${srcdir}/${pkgbase}-${pkgver}"
- # Get rid of the ugly pattern
- patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch"
-
- # Add pointer barrier support, patch from Fedora
- patch -Np1 -i "${srcdir}/xserver-1.10-pointer-barriers.patch"
-
- # Patches from ~ajax/xserver xserver-next branch
- patch -Np1 -i "${srcdir}/bg-none-revert.patch"
-
- # Upstream fixes from 1.10 branch
- patch -Np1 -i "${srcdir}/git-fixes.patch"
-
- # Use nouveau/nv/nvidia drivers for nvidia devices
- patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch"
-
- autoreconf
- ./configure --prefix=/usr \
- --enable-ipv6 \
- --enable-dri \
- --enable-dmx \
- --enable-xvfb \
- --enable-xnest \
- --enable-composite \
- --enable-xcsecurity \
- --enable-xorg \
- --enable-xephyr \
- --enable-glx-tls \
- --enable-kdrive \
- --enable-install-setuid \
- --enable-config-udev \
- --disable-config-dbus \
- --enable-record \
- --disable-xfbdev \
- --disable-xfake \
- --disable-static \
- --sysconfdir=/etc/X11 \
- --localstatedir=/var \
- --with-xkb-path=/usr/share/X11/xkb \
- --with-xkb-output=/var/lib/xkb \
- --with-fontrootdir=/usr/share/fonts
- make
-
- sed -e 's/^DMX_SUBDIRS =.*/DMX_SUBDIRS =/' \
- -e 's/^XVFB_SUBDIRS =.*/XVFB_SUBDIRS =/' \
- -e 's/^XNEST_SUBDIRS =.*/XNEST_SUBDIRS = /' \
- -e 's/^KDRIVE_SUBDIRS =.*/KDRIVE_SUBDIRS =/' \
- -i hw/Makefile
-}
-
-package_xorg-server-common() {
- pkgdesc="Xorg server common files"
- depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc')
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
- install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
- install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
-
- make -C xkb DESTDIR="${pkgdir}" install-data
-
- install -m755 -d "${pkgdir}/usr/share/man/man1"
- install -m644 doc/man/Xserver.1 "${pkgdir}/usr/share/man/man1/"
-
- install -m755 -d "${pkgdir}/usr/lib/xorg"
- install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/"
-}
-
-package_xorg-server() {
- pkgdesc="Xorg X server"
- depends=(libxdmcp libxfont udev libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-evdev)
- backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
- provides=('x-server')
- groups=('xorg')
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- install -m755 -d "${pkgdir}/etc/X11"
- mv "${pkgdir}/usr/share/X11/xorg.conf.d" "${pkgdir}/etc/X11/"
- install -m644 "${srcdir}/10-quirks.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
-
- rmdir "${pkgdir}/usr/share/X11"
-
- # Needed for non-mesa drivers, libgl will restore it
- mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
- "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"
-
- rm -rf "${pkgdir}/var"
-
- rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
- rm -f "${pkgdir}/usr/lib/xorg/protocol.txt"
-
- install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server"
- ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server/COPYING"
-
- rm -rf "${pkgdir}/usr/lib/pkgconfig"
- rm -rf "${pkgdir}/usr/include"
- rm -rf "${pkgdir}/usr/share/aclocal"
-}
-
-package_xorg-server-xephyr() {
- pkgdesc="A nested X server that runs as an X application"
- depends=(libxfont libgl libgcrypt libxv pixman xorg-server-common)
-
- cd "${srcdir}/${pkgbase}-${pkgver}/hw/kdrive"
- make DESTDIR="${pkgdir}" install
-
- install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
- ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xephyr/COPYING"
-}
-
-package_xorg-server-xvfb() {
- pkgdesc="Virtual framebuffer X server"
- depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common)
-
- cd "${srcdir}/${pkgbase}-${pkgver}/hw/vfb"
- make DESTDIR="${pkgdir}" install
-
- install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
- install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"
-
- install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xvfb"
- ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xvfb/COPYING"
-}
-
-package_xorg-server-xnest() {
- pkgdesc="A nested X server that runs as an X application"
- depends=(libxfont libxext libgcrypt pixman xorg-server-common)
-
- cd "${srcdir}/${pkgbase}-${pkgver}/hw/xnest"
- make DESTDIR="${pkgdir}" install
-
- install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
- ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xnest/COPYING"
-}
-
-package_xorg-server-xdmx() {
- pkgdesc="Distributed Multihead X Server and utilities"
- depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)
-
- cd "${srcdir}/${pkgbase}-${pkgver}/hw/dmx"
- make DESTDIR="${pkgdir}" install
-
- install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
- ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xdmx/COPYING"
-}
-
-package_xorg-server-devel() {
- pkgdesc="Development files for the X.Org X server"
- depends=(xproto randrproto renderproto xextproto inputproto kbproto fontsproto videoproto dri2proto xineramaproto xorg-util-macros pixman libpciaccess)
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-
- rm -rf "${pkgdir}/usr/bin"
- rm -rf "${pkgdir}/usr/share/man"
- rm -rf "${pkgdir}/usr/share/doc"
- rm -rf "${pkgdir}/usr/share/X11"
- rm -rf "${pkgdir}/usr/lib/xorg"
- rm -rf "${pkgdir}/var"
-
- install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
- ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
-}
diff --git a/testing/xorg-server/autoconfig-nvidia.patch b/testing/xorg-server/autoconfig-nvidia.patch
deleted file mode 100644
index c56586d54..000000000
--- a/testing/xorg-server/autoconfig-nvidia.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From a685b5cf34532cef96fc9b05f735088ac0c0c7ad Mon Sep 17 00:00:00 2001
-From: Fedora X Ninjas <x@fedoraproject.org>
-Date: Tue, 16 Feb 2010 11:38:17 +1000
-Subject: [PATCH 08/17] autoconfig: select nouveau by default for NVIDIA GPUs
-
-Also, don't treat DRI setup failure as an error for nouveau.
-
-Modified by Archlinux:
-Append nvidia driver to the list of prefered drivers
----
- glx/glxdri.c | 7 +++++--
- glx/glxdri2.c | 7 +++++--
- hw/xfree86/common/xf86AutoConfig.c | 19 ++++++++++++++++++-
- 3 files changed, 28 insertions(+), 5 deletions(-)
-
---- a/glx/glxdri.c
-+++ b/glx/glxdri.c
-@@ -978,6 +978,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
- const __DRIconfig **driConfigs;
- const __DRIextension **extensions;
- int i;
-+ int from = X_ERROR;
-
- if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") ||
- !DRIQueryDirectRenderingCapable(pScreen, &isCapable) ||
-@@ -1057,7 +1058,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
-
- screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
- if (screen->driver == NULL) {
-- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n",
-+ if (!strcmp(driverName, "nouveau"))
-+ from = X_INFO;
-+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n",
- filename, dlerror());
- goto handle_error;
- }
-@@ -1193,7 +1196,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
-
- free(screen);
-
-- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
-+ LogMessage(from, "AIGLX: reverting to software rendering\n");
-
- return NULL;
- }
---- a/glx/glxdri2.c
-+++ b/glx/glxdri2.c
-@@ -708,6 +708,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
- const __DRIextension **extensions;
- const __DRIconfig **driConfigs;
- int i;
-+ int from = X_ERROR;
-
- screen = calloc(1, sizeof *screen);
- if (screen == NULL)
-@@ -734,7 +735,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
-
- screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
- if (screen->driver == NULL) {
-- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n",
-+ if (!strcmp(driverName, "nouveau"))
-+ from = X_INFO;
-+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n",
- filename, dlerror());
- goto handle_error;
- }
-@@ -826,7 +829,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
-
- free(screen);
-
-- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
-+ LogMessage(from, "AIGLX: reverting to software rendering\n");
-
- return NULL;
- }
---- a/hw/xfree86/common/xf86pciBus.c
-+++ b/hw/xfree86/common/xf86pciBus.c
-@@ -1123,7 +1123,25 @@ videoPtrToDriverList(struct pci_device *
- break;
- case 0x102b: driverList[0] = "mga"; break;
- case 0x10c8: driverList[0] = "neomagic"; break;
-- case 0x10de: case 0x12d2: driverList[0] = "nv"; break;
-+ case 0x10de: case 0x12d2:
-+ switch (dev->device_id) {
-+ /* NV1 */
-+ case 0x0008:
-+ case 0x0009:
-+ driverList[0] = "vesa";
-+ break;
-+ /* NV3 */
-+ case 0x0018:
-+ case 0x0019:
-+ driverList[0] = "nv";
-+ break;
-+ default:
-+ driverList[0] = "nouveau";
-+ driverList[1] = "nv";
-+ driverList[2] = "nvidia";
-+ break;
-+ }
-+ break;
- case 0x1106: driverList[0] = "openchrome"; break;
- case 0x1b36: driverList[0] = "qxl"; break;
- case 0x1163: driverList[0] = "rendition"; break;
diff --git a/testing/xorg-server/bg-none-revert.patch b/testing/xorg-server/bg-none-revert.patch
deleted file mode 100644
index 1a38f1f41..000000000
--- a/testing/xorg-server/bg-none-revert.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 3bc6ed2d8c9028ec28015d05b60af67a194f3694 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 29 Mar 2011 14:09:46 +0000
-Subject: Revert "composite: Don't backfill non-bg-None windows"
-
-This reverts commit 6dd775f57d2f94f0ddaee324aeec33b9b66ed5bc.
-
-Bugzilla: https://bugs.freedesktop.org/34427
-
-Acked-by: Alex Deucher <alexdeucher@gmail.com>
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-diff --git a/composite/compalloc.c b/composite/compalloc.c
-index e4064f6..7164c0d 100644
---- a/composite/compalloc.c
-+++ b/composite/compalloc.c
-@@ -508,17 +508,6 @@ compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin)
- return Success;
- }
-
--static int
--bgNoneVisitWindow(WindowPtr pWin, void *null)
--{
-- if (pWin->backgroundState != BackgroundPixmap)
-- return WT_WALKCHILDREN;
-- if (pWin->background.pixmap != None)
-- return WT_WALKCHILDREN;
--
-- return WT_STOPWALKING;
--}
--
- static PixmapPtr
- compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
- {
-@@ -539,21 +528,6 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
- if (!map)
- return pPixmap;
-
-- /*
-- * If there's no bg=None in the tree, we're done.
-- *
-- * We could optimize this more by collection the regions of all the
-- * bg=None subwindows and feeding that in as the clip for the
-- * CopyArea below, but since window trees are shallow these days it
-- * might not be worth the effort.
-- */
-- if (TraverseTree(pWin, bgNoneVisitWindow, NULL) == WT_NOMATCH)
-- return pPixmap;
--
-- /*
-- * Copy bits from the parent into the new pixmap so that it will
-- * have "reasonable" contents in case for background None areas.
-- */
- if (pParent->drawable.depth == pWin->drawable.depth)
- {
- GCPtr pGC = GetScratchGC (pWin->drawable.depth, pScreen);
---
-cgit v0.8.3-6-g21f6
diff --git a/testing/xorg-server/git-fixes.patch b/testing/xorg-server/git-fixes.patch
deleted file mode 100644
index 3eadd81ba..000000000
--- a/testing/xorg-server/git-fixes.patch
+++ /dev/null
@@ -1,318 +0,0 @@
-From 613e0e9ef74c4542ed458200165adbcdfdf3cd17 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Wed, 13 Apr 2011 18:51:30 +0000
-Subject: Send events that were missing from RRSelectInput
-
-The RANDR spec (randrproto.txt) specifies that RRSelectInput will send out
-events corresponding to the event mask, if there have been changes to
-CRTCs or outputs. Only screen events were being generated, however.
-
-Fixes http://bugs.freedesktop.org/21760
-
-Signed-off-by: Federico Mena Quintero <federico@novell.com>
-Reviewd-by: Keith Packard <keithp@keithp.com>
-Signed-off-by: Keith Packard <keithp@keithp.com>
-(cherry picked from commit b2997431fd426ab318bc5dfd2cd43956d733ebec)
----
-diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c
-index ac4d2ac..2135504 100644
---- a/randr/rrdispatch.c
-+++ b/randr/rrdispatch.c
-@@ -146,7 +146,7 @@ ProcRRSelectInput (ClientPtr client)
- /*
- * Now see if the client needs an event
- */
-- if (pScrPriv && (pRREvent->mask & RRScreenChangeNotifyMask))
-+ if (pScrPriv)
- {
- pTimes = &((RRTimesPtr) (pRRClient + 1))[pScreen->myNum];
- if (CompareTimeStamps (pTimes->setTime,
-@@ -154,7 +154,35 @@ ProcRRSelectInput (ClientPtr client)
- CompareTimeStamps (pTimes->configTime,
- pScrPriv->lastConfigTime) != 0)
- {
-- RRDeliverScreenEvent (client, pWin, pScreen);
-+ if (pRREvent->mask & RRScreenChangeNotifyMask)
-+ {
-+ RRDeliverScreenEvent (client, pWin, pScreen);
-+ }
-+
-+ if (pRREvent->mask & RRCrtcChangeNotifyMask)
-+ {
-+ int i;
-+
-+ for (i = 0; i < pScrPriv->numCrtcs; i++)
-+ {
-+ RRDeliverCrtcEvent (client, pWin, pScrPriv->crtcs[i]);
-+ }
-+ }
-+
-+ if (pRREvent->mask & RROutputChangeNotifyMask)
-+ {
-+ int i;
-+
-+ for (i = 0; i < pScrPriv->numOutputs; i++)
-+ {
-+ RRDeliverOutputEvent (client, pWin, pScrPriv->outputs[i]);
-+ }
-+ }
-+
-+ /* We don't check for RROutputPropertyNotifyMask, as randrproto.txt doesn't
-+ * say if there ought to be notifications of changes to output properties
-+ * if those changes occurred before the time RRSelectInput is called.
-+ */
- }
- }
- }
---
-cgit v0.8.3-6-g21f6
-From 50b9d3142ff90af2f7fa35b7b1bf9e5a07723dbd Mon Sep 17 00:00:00 2001
-From: Aaron Plattner <aplattner@nvidia.com>
-Date: Tue, 24 May 2011 23:02:42 +0000
-Subject: randr: check rotated virtual size limits correctly
-
-Commit d1107918d4626268803b54033a07405122278e7f introduced checks to
-the RandR path that cause RRSetScreenConfig requests to fail if the
-size is too large. Unfortunately, when RandR 1.1 rotation is enabled
-it compares the rotated screen dimensions to the unrotated limits,
-which causes 90- and 270-degree rotation to fail unless your screen
-happens to be square:
-
- X Error of failed request: BadValue (integer parameter out of range for operation)
- Major opcode of failed request: 153 (RANDR)
- Minor opcode of failed request: 2 (RRSetScreenConfig)
- Value in failed request: 0x780
- Serial number of failed request: 14
- Current serial number in output stream: 14
-
-Fix this by moving the check above the code that swaps the dimensions
-based on the rotation.
-
-Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
-Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
-Tested-by: Robert Hooker <robert.hooker@canonical.com>
-Tested-by: Kent Baxley <kent.baxley@canonical.com>
-Signed-off-by: Keith Packard <keithp@keithp.com>
-(cherry picked from commit b6c7b9b2f39e970cedb6bc1e073f901e28cb0fa3)
----
-diff --git a/randr/rrscreen.c b/randr/rrscreen.c
-index 1bc1a9e..da6d48d 100644
---- a/randr/rrscreen.c
-+++ b/randr/rrscreen.c
-@@ -910,12 +910,6 @@ ProcRRSetScreenConfig (ClientPtr client)
- */
- width = mode->mode.width;
- height = mode->mode.height;
-- if (rotation & (RR_Rotate_90|RR_Rotate_270))
-- {
-- width = mode->mode.height;
-- height = mode->mode.width;
-- }
--
- if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
- client->errorValue = width;
- free(pData);
-@@ -927,6 +921,12 @@ ProcRRSetScreenConfig (ClientPtr client)
- return BadValue;
- }
-
-+ if (rotation & (RR_Rotate_90|RR_Rotate_270))
-+ {
-+ width = mode->mode.height;
-+ height = mode->mode.width;
-+ }
-+
- if (width != pScreen->width || height != pScreen->height)
- {
- int c;
---
-cgit v0.8.3-6-g21f6
-From 4bfb22e7667c4cd55da5e7a31af29ce5769ecc65 Mon Sep 17 00:00:00 2001
-From: Aaron Plattner <aplattner@nvidia.com>
-Date: Mon, 18 Apr 2011 15:23:48 +0000
-Subject: linux: Retry VT ioctls while errno == EINTR
-
-When the smart scheduler is enabled, the VT ioctls (particularly
-VT_WAITACTIVE) can be interrupted by the smart scheduler's SIGALRMs.
-Previously, this caused the server to immediately continue on to
-ScreenInit, almost certainly causing a crash or failure because the X
-server that owned the VT hadn't finished cleaning up. As of commit
-7ee965a300c9eddcc1acacf9414cfe3e589222a8, it causes a FatalError
-instead.
-
-Retrying the ioctl as long as it fails with errno == EINTR fixes the
-problem and allows server regenerations to trigger VT switches that
-actually succeed.
-
-Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
-Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-Reviewed-by: Cyril Brulebois <kibi@debian.org>
-Signed-off-by: Keith Packard <keithp@keithp.com>
-(cherry picked from commit 88c4622b594a1725d0cee86bc82ad640d241c520)
----
-diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
-index 9c71a42..77dfb2f 100644
---- a/hw/xfree86/os-support/linux/lnx_init.c
-+++ b/hw/xfree86/os-support/linux/lnx_init.c
-@@ -62,17 +62,21 @@ drain_console(int fd, void *closure)
- static void
- switch_to(int vt, const char *from)
- {
-- if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt) < 0)
-- FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno));
-+ int ret;
-
-- if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt) < 0)
-- FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno));
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));
-+ if (ret < 0)
-+ FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno));
-+
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));
-+ if (ret < 0)
-+ FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno));
- }
-
- void
- xf86OpenConsole(void)
- {
-- int i, fd = -1;
-+ int i, fd = -1, ret;
- struct vt_mode VT;
- struct vt_stat vts;
- MessageType from = X_PROBED;
-@@ -107,17 +111,19 @@ xf86OpenConsole(void)
-
- if (ShareVTs)
- {
-- if (ioctl(fd, VT_GETSTATE, &vts) == 0)
-- xf86Info.vtno = vts.v_active;
-- else
-- FatalError("xf86OpenConsole: Cannot find the current"
-- " VT (%s)\n", strerror(errno));
-+ SYSCALL(ret = ioctl(fd, VT_GETSTATE, &vts));
-+ if (ret < 0)
-+ FatalError("xf86OpenConsole: Cannot find the current"
-+ " VT (%s)\n", strerror(errno));
-+ xf86Info.vtno = vts.v_active;
- } else {
-- if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
-- (xf86Info.vtno == -1))
-- FatalError("xf86OpenConsole: Cannot find a free VT: %s\n",
-- strerror(errno));
-- }
-+ SYSCALL(ret = ioctl(fd, VT_OPENQRY, &xf86Info.vtno));
-+ if (ret < 0)
-+ FatalError("xf86OpenConsole: Cannot find a free VT: "
-+ "%s\n", strerror(errno));
-+ if (xf86Info.vtno == -1)
-+ FatalError("xf86OpenConsole: Cannot find a free VT\n");
-+ }
- close(fd);
- }
-
-@@ -159,7 +165,8 @@ xf86OpenConsole(void)
- * Linux doesn't switch to an active vt after the last close of a vt,
- * so we do this ourselves by remembering which is active now.
- */
-- if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0)
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts));
-+ if (ret < 0)
- xf86Msg(X_WARNING,"xf86OpenConsole: VT_GETSTATE failed: %s\n",
- strerror(errno));
- else
-@@ -171,7 +178,7 @@ xf86OpenConsole(void)
- * Detach from the controlling tty to avoid char loss
- */
- if ((i = open("/dev/tty",O_RDWR)) >= 0) {
-- ioctl(i, TIOCNOTTY, 0);
-+ SYSCALL(ioctl(i, TIOCNOTTY, 0));
- close(i);
- }
- }
-@@ -186,9 +193,10 @@ xf86OpenConsole(void)
- */
- switch_to(xf86Info.vtno, "xf86OpenConsole");
-
-- if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0)
-- FatalError("xf86OpenConsole: VT_GETMODE failed %s\n",
-- strerror(errno));
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT));
-+ if (ret < 0)
-+ FatalError("xf86OpenConsole: VT_GETMODE failed %s\n",
-+ strerror(errno));
-
- signal(SIGUSR1, xf86VTRequest);
-
-@@ -196,20 +204,23 @@ xf86OpenConsole(void)
- VT.relsig = SIGUSR1;
- VT.acqsig = SIGUSR1;
-
-- if (ioctl(xf86Info.consoleFd, VT_SETMODE, &VT) < 0)
-- FatalError("xf86OpenConsole: VT_SETMODE VT_PROCESS failed: %s\n",
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_SETMODE, &VT));
-+ if (ret < 0)
-+ FatalError("xf86OpenConsole: VT_SETMODE VT_PROCESS failed: %s\n",
- strerror(errno));
--
-- if (ioctl(xf86Info.consoleFd, KDSETMODE, KD_GRAPHICS) < 0)
-- FatalError("xf86OpenConsole: KDSETMODE KD_GRAPHICS failed %s\n",
-- strerror(errno));
-+
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSETMODE, KD_GRAPHICS));
-+ if (ret < 0)
-+ FatalError("xf86OpenConsole: KDSETMODE KD_GRAPHICS failed %s\n",
-+ strerror(errno));
-
- tcgetattr(xf86Info.consoleFd, &tty_attr);
-- ioctl(xf86Info.consoleFd, KDGKBMODE, &tty_mode);
-+ SYSCALL(ioctl(xf86Info.consoleFd, KDGKBMODE, &tty_mode));
-
-- if (ioctl(xf86Info.consoleFd, KDSKBMODE, K_RAW) < 0)
-- FatalError("xf86OpenConsole: KDSKBMODE K_RAW failed %s\n",
-- strerror(errno));
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSKBMODE, K_RAW));
-+ if (ret < 0)
-+ FatalError("xf86OpenConsole: KDSKBMODE K_RAW failed %s\n",
-+ strerror(errno));
-
- nTty = tty_attr;
- nTty.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP);
-@@ -241,6 +252,7 @@ void
- xf86CloseConsole(void)
- {
- struct vt_mode VT;
-+ int ret;
-
- if (ShareVTs) {
- close(xf86Info.consoleFd);
-@@ -253,20 +265,23 @@ xf86CloseConsole(void)
- };
-
- /* Back to text mode ... */
-- if (ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT) < 0)
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT));
-+ if (ret < 0)
- xf86Msg(X_WARNING, "xf86CloseConsole: KDSETMODE failed: %s\n",
- strerror(errno));
-
-- ioctl(xf86Info.consoleFd, KDSKBMODE, tty_mode);
-+ SYSCALL(ioctl(xf86Info.consoleFd, KDSKBMODE, tty_mode));
- tcsetattr(xf86Info.consoleFd, TCSANOW, &tty_attr);
-
-- if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0)
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT));
-+ if (ret < 0)
- xf86Msg(X_WARNING, "xf86CloseConsole: VT_GETMODE failed: %s\n",
- strerror(errno));
- else {
- /* set dflt vt handling */
- VT.mode = VT_AUTO;
-- if (ioctl(xf86Info.consoleFd, VT_SETMODE, &VT) < 0)
-+ SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_SETMODE, &VT));
-+ if (ret < 0)
- xf86Msg(X_WARNING, "xf86CloseConsole: VT_SETMODE failed: %s\n",
- strerror(errno));
- }
---
-cgit v0.8.3-6-g21f6
diff --git a/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch b/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
deleted file mode 100644
index 4e782f1c6..000000000
--- a/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Remove the default root window grey stipple pattern, replacing it with
-blackness.
-
---- xc/programs/Xserver/dix/window.c.die-ugly-pattern-die-die-die Tue Feb 12 16:33:04 2002
-+++ xc/programs/Xserver/dix/window.c Tue Feb 12 16:45:32 2002
-@@ -119,8 +119,8 @@
- *
- ******/
-
--static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11};
--static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88};
-+static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00};
-+static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00};
-
- int screenIsSaved = SCREEN_SAVER_OFF;
-
diff --git a/testing/xorg-server/xserver-1.10-pointer-barriers.patch b/testing/xorg-server/xserver-1.10-pointer-barriers.patch
deleted file mode 100644
index 099565436..000000000
--- a/testing/xorg-server/xserver-1.10-pointer-barriers.patch
+++ /dev/null
@@ -1,1054 +0,0 @@
-From 14f1112bec18ccece8e732fe6c200a56546230c7 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Thu, 17 Mar 2011 13:56:17 -0400
-Subject: [PATCH] CRTC confine and pointer barriers
-
----
- dix/events.c | 7 +
- dix/getevents.c | 12 +-
- include/dix.h | 1 +
- include/protocol-versions.h | 2 +-
- mi/mipointer.c | 16 ++-
- mi/mipointer.h | 6 +
- randr/randr.c | 2 +
- randr/randrstr.h | 4 +
- randr/rrcrtc.c | 155 ++++++++++++++++
- test/Makefile.am | 4 +-
- xfixes/cursor.c | 408 ++++++++++++++++++++++++++++++++++++++++++-
- xfixes/xfixes.c | 24 ++-
- xfixes/xfixes.h | 17 ++
- xfixes/xfixesint.h | 16 ++
- 14 files changed, 658 insertions(+), 16 deletions(-)
-
-diff --git a/dix/events.c b/dix/events.c
-index 07f8b05..d2be84f 100644
---- a/dix/events.c
-+++ b/dix/events.c
-@@ -328,6 +328,13 @@ IsMaster(DeviceIntPtr dev)
- return dev->type == MASTER_POINTER || dev->type == MASTER_KEYBOARD;
- }
-
-+Bool
-+IsFloating(DeviceIntPtr dev)
-+{
-+ return GetMaster(dev, MASTER_KEYBOARD) == NULL;
-+}
-+
-+
- /**
- * Max event opcode.
- */
-diff --git a/dix/getevents.c b/dix/getevents.c
-index 794df42..c66e516 100644
---- a/dix/getevents.c
-+++ b/dix/getevents.c
-@@ -812,7 +812,11 @@ accelPointer(DeviceIntPtr dev, int first, int num, int *valuators, CARD32 ms)
- * miPointerSetPosition() and then scale back into device coordinates (if
- * needed). miPSP will change x/y if the screen was crossed.
- *
-+ * The coordinates provided are always absolute. The parameter mode whether
-+ * it was relative or absolute movement that landed us at those coordinates.
-+ *
- * @param dev The device to be moved.
-+ * @param mode Movement mode (Absolute or Relative)
- * @param x Pointer to current x-axis value, may be modified.
- * @param y Pointer to current y-axis value, may be modified.
- * @param x_frac Fractional part of current x-axis value, may be modified.
-@@ -824,7 +828,8 @@ accelPointer(DeviceIntPtr dev, int first, int num, int *valuators, CARD32 ms)
- * @param screeny_frac Fractional part of screen y coordinate, as above.
- */
- static void
--positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac,
-+positionSprite(DeviceIntPtr dev, int mode,
-+ int *x, int *y, float x_frac, float y_frac,
- ScreenPtr scr, int *screenx, int *screeny, float *screenx_frac, float *screeny_frac)
- {
- int old_screenx, old_screeny;
-@@ -863,7 +868,7 @@ positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac,
- old_screeny = *screeny;
- /* This takes care of crossing screens for us, as well as clipping
- * to the current screen. */
-- miPointerSetPosition(dev, screenx, screeny);
-+ _miPointerSetPosition(dev, mode, screenx, screeny);
-
- if (dev->u.master) {
- dev->u.master->last.valuators[0] = *screenx;
-@@ -1193,7 +1198,8 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
-
- set_raw_valuators(raw, &mask, raw->valuators.data);
-
-- positionSprite(pDev, &x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac);
-+ positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
-+ &x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac);
- updateHistory(pDev, &mask, ms);
-
- /* Update the valuators with the true value sent to the client*/
-diff --git a/include/dix.h b/include/dix.h
-index 12e4b59..3f99098 100644
---- a/include/dix.h
-+++ b/include/dix.h
-@@ -570,6 +570,7 @@ extern Bool _X_EXPORT IsPointerDevice( DeviceIntPtr dev);
- extern Bool _X_EXPORT IsKeyboardDevice(DeviceIntPtr dev);
- extern Bool IsPointerEvent(InternalEvent *event);
- extern _X_EXPORT Bool IsMaster(DeviceIntPtr dev);
-+extern _X_EXPORT Bool IsFloating(DeviceIntPtr dev);
-
- extern _X_HIDDEN void CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
- extern _X_HIDDEN int CorePointerProc(DeviceIntPtr dev, int what);
-diff --git a/include/protocol-versions.h b/include/protocol-versions.h
-index 1d33bdd..1dc66ad 100644
---- a/include/protocol-versions.h
-+++ b/include/protocol-versions.h
-@@ -126,7 +126,7 @@
- #define SERVER_XF86VIDMODE_MINOR_VERSION 2
-
- /* Fixes */
--#define SERVER_XFIXES_MAJOR_VERSION 4
-+#define SERVER_XFIXES_MAJOR_VERSION 5
- #define SERVER_XFIXES_MINOR_VERSION 0
-
- /* X Input */
-diff --git a/mi/mipointer.c b/mi/mipointer.c
-index 554397a..85f1949 100644
---- a/mi/mipointer.c
-+++ b/mi/mipointer.c
-@@ -229,6 +229,10 @@ miPointerSetCursorPosition(DeviceIntPtr pDev, ScreenPtr pScreen,
- SetupScreen (pScreen);
-
- GenerateEvent = generateEvent;
-+
-+ if (pScreen->ConstrainCursorHarder)
-+ pScreen->ConstrainCursorHarder(pDev, pScreen, Absolute, &x, &y);
-+
- /* device dependent - must pend signal and call miPointerWarpCursor */
- (*pScreenPriv->screenFuncs->WarpCursor) (pDev, pScreen, x, y);
- if (!generateEvent)
-@@ -484,7 +488,7 @@ miPointerMoveNoEvent (DeviceIntPtr pDev, ScreenPtr pScreen,
- }
-
- void
--miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
-+_miPointerSetPosition(DeviceIntPtr pDev, int mode, int *x, int *y)
- {
- miPointerScreenPtr pScreenPriv;
- ScreenPtr pScreen;
-@@ -529,6 +533,9 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
- if (*y >= pPointer->limits.y2)
- *y = pPointer->limits.y2 - 1;
-
-+ if (pScreen->ConstrainCursorHarder)
-+ pScreen->ConstrainCursorHarder(pDev, pScreen, mode, x, y);
-+
- if (pPointer->x == *x && pPointer->y == *y &&
- pPointer->pScreen == pScreen)
- return;
-@@ -536,6 +543,13 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
- miPointerMoveNoEvent(pDev, pScreen, *x, *y);
- }
-
-+/* ABI hack */
-+void
-+miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
-+{
-+ _miPointerSetPosition(pDev, Absolute, x, y);
-+}
-+
- void
- miPointerGetPosition(DeviceIntPtr pDev, int *x, int *y)
- {
-diff --git a/mi/mipointer.h b/mi/mipointer.h
-index 3c86110..6b6010c 100644
---- a/mi/mipointer.h
-+++ b/mi/mipointer.h
-@@ -131,6 +131,12 @@ extern _X_EXPORT void miPointerGetPosition(
-
- /* Moves the cursor to the specified position. May clip the co-ordinates:
- * x and y are modified in-place. */
-+extern _X_EXPORT void _miPointerSetPosition(
-+ DeviceIntPtr pDev,
-+ int mode,
-+ int *x,
-+ int *y);
-+
- extern _X_EXPORT void miPointerSetPosition(
- DeviceIntPtr pDev,
- int *x,
-diff --git a/randr/randr.c b/randr/randr.c
-index 6077705..d337129 100644
---- a/randr/randr.c
-+++ b/randr/randr.c
-@@ -270,6 +270,8 @@ Bool RRScreenInit(ScreenPtr pScreen)
-
- wrap (pScrPriv, pScreen, CloseScreen, RRCloseScreen);
-
-+ pScreen->ConstrainCursorHarder = RRConstrainCursorHarder;
-+
- pScrPriv->numOutputs = 0;
- pScrPriv->outputs = NULL;
- pScrPriv->numCrtcs = 0;
-diff --git a/randr/randrstr.h b/randr/randrstr.h
-index 7ea6080..d8dd37d 100644
---- a/randr/randrstr.h
-+++ b/randr/randrstr.h
-@@ -297,6 +297,7 @@ typedef struct _rrScrPriv {
- int rate;
- int size;
- #endif
-+ Bool discontiguous;
- } rrScrPrivRec, *rrScrPrivPtr;
-
- extern _X_EXPORT DevPrivateKeyRec rrPrivKeyRec;
-@@ -700,6 +701,9 @@ ProcRRGetPanning (ClientPtr client);
- int
- ProcRRSetPanning (ClientPtr client);
-
-+void
-+RRConstrainCursorHarder (DeviceIntPtr, ScreenPtr, int, int *, int *);
-+
- /* rrdispatch.c */
- extern _X_EXPORT Bool
- RRClientKnowsRates (ClientPtr pClient);
-diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
-index 98206a2..d4d8f2a 100644
---- a/randr/rrcrtc.c
-+++ b/randr/rrcrtc.c
-@@ -1,5 +1,6 @@
- /*
- * Copyright © 2006 Keith Packard
-+ * Copyright 2010 Red Hat, Inc
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
-@@ -22,6 +23,7 @@
-
- #include "randrstr.h"
- #include "swaprep.h"
-+#include "mipointer.h"
-
- RESTYPE RRCrtcType;
-
-@@ -292,6 +294,92 @@ RRCrtcPendingProperties (RRCrtcPtr crtc)
- return FALSE;
- }
-
-+static void
-+crtc_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom)
-+{
-+ *left = crtc->x;
-+ *top = crtc->y;
-+
-+ switch (crtc->rotation) {
-+ case RR_Rotate_0:
-+ case RR_Rotate_180:
-+ default:
-+ *right = crtc->x + crtc->mode->mode.width;
-+ *bottom = crtc->y + crtc->mode->mode.height;
-+ return;
-+ case RR_Rotate_90:
-+ case RR_Rotate_270:
-+ *right = crtc->x + crtc->mode->mode.height;
-+ *bottom = crtc->y + crtc->mode->mode.width;
-+ return;
-+ }
-+}
-+
-+/* overlapping counts as adjacent */
-+static Bool
-+crtcs_adjacent(const RRCrtcPtr a, const RRCrtcPtr b)
-+{
-+ /* left, right, top, bottom... */
-+ int al, ar, at, ab;
-+ int bl, br, bt, bb;
-+ int cl, cr, ct, cb; /* the overlap, if any */
-+
-+ crtc_bounds(a, &al, &ar, &at, &ab);
-+ crtc_bounds(b, &bl, &br, &bt, &bb);
-+
-+ cl = max(al, bl);
-+ cr = min(ar, br);
-+ ct = max(at, bt);
-+ cb = min(ab, bb);
-+
-+ return (cl <= cr) && (ct <= cb);
-+}
-+
-+/* Depth-first search and mark all CRTCs reachable from cur */
-+static void
-+mark_crtcs (rrScrPrivPtr pScrPriv, int *reachable, int cur)
-+{
-+ int i;
-+ reachable[cur] = TRUE;
-+ for (i = 0; i < pScrPriv->numCrtcs; ++i) {
-+ if (reachable[i] || !pScrPriv->crtcs[i]->mode)
-+ continue;
-+ if (crtcs_adjacent(pScrPriv->crtcs[cur], pScrPriv->crtcs[i]))
-+ mark_crtcs(pScrPriv, reachable, i);
-+ }
-+}
-+
-+static void
-+RRComputeContiguity (ScreenPtr pScreen)
-+{
-+ rrScrPriv(pScreen);
-+ Bool discontiguous = TRUE;
-+ int i, n = pScrPriv->numCrtcs;
-+
-+ int *reachable = calloc(n, sizeof(int));
-+ if (!reachable)
-+ goto out;
-+
-+ /* Find first enabled CRTC and start search for reachable CRTCs from it */
-+ for (i = 0; i < n; ++i) {
-+ if (pScrPriv->crtcs[i]->mode) {
-+ mark_crtcs(pScrPriv, reachable, i);
-+ break;
-+ }
-+ }
-+
-+ /* Check that all enabled CRTCs were marked as reachable */
-+ for (i = 0; i < n; ++i)
-+ if (pScrPriv->crtcs[i]->mode && !reachable[i])
-+ goto out;
-+
-+ discontiguous = FALSE;
-+
-+out:
-+ free(reachable);
-+ pScrPriv->discontiguous = discontiguous;
-+}
-+
- /*
- * Request that the Crtc be reconfigured
- */
-@@ -306,6 +394,7 @@ RRCrtcSet (RRCrtcPtr crtc,
- {
- ScreenPtr pScreen = crtc->pScreen;
- Bool ret = FALSE;
-+ Bool recompute = TRUE;
- rrScrPriv(pScreen);
-
- /* See if nothing changed */
-@@ -318,6 +407,7 @@ RRCrtcSet (RRCrtcPtr crtc,
- !RRCrtcPendingProperties (crtc) &&
- !RRCrtcPendingTransform (crtc))
- {
-+ recompute = FALSE;
- ret = TRUE;
- }
- else
-@@ -381,6 +471,10 @@ RRCrtcSet (RRCrtcPtr crtc,
- RRPostPendingProperties (outputs[o]);
- }
- }
-+
-+ if (recompute)
-+ RRComputeContiguity(pScreen);
-+
- return ret;
- }
-
-@@ -1349,3 +1443,64 @@ ProcRRGetCrtcTransform (ClientPtr client)
- free(reply);
- return Success;
- }
-+
-+void
-+RRConstrainCursorHarder(DeviceIntPtr pDev, ScreenPtr pScreen, int mode, int *x, int *y)
-+{
-+ rrScrPriv (pScreen);
-+ int i;
-+
-+ /* intentional dead space -> let it float */
-+ if (pScrPriv->discontiguous)
-+ return;
-+
-+ /* if we're moving inside a crtc, we're fine */
-+ for (i = 0; i < pScrPriv->numCrtcs; i++) {
-+ RRCrtcPtr crtc = pScrPriv->crtcs[i];
-+
-+ int left, right, top, bottom;
-+
-+ if (!crtc->mode)
-+ continue;
-+
-+ crtc_bounds(crtc, &left, &right, &top, &bottom);
-+
-+ if ((*x >= left) && (*x <= right) && (*y >= top) && (*y <= bottom))
-+ return;
-+ }
-+
-+ /* if we're trying to escape, clamp to the CRTC we're coming from */
-+ for (i = 0; i < pScrPriv->numCrtcs; i++) {
-+ RRCrtcPtr crtc = pScrPriv->crtcs[i];
-+ int nx, ny;
-+ int left, right, top, bottom;
-+
-+ if (!crtc->mode)
-+ continue;
-+
-+ crtc_bounds(crtc, &left, &right, &top, &bottom);
-+ miPointerGetPosition(pDev, &nx, &ny);
-+
-+ if ((nx >= left) && (nx <= right) && (ny >= top) && (ny <= bottom)) {
-+ if ((*x <= left) || (*x >= right)) {
-+ int dx = *x - nx;
-+
-+ if (dx > 0)
-+ *x = right;
-+ else if (dx < 0)
-+ *x = left;
-+ }
-+
-+ if ((*y <= top) || (*y >= bottom)) {
-+ int dy = *y - ny;
-+
-+ if (dy > 0)
-+ *y = bottom;
-+ else if (dy < 0)
-+ *y = top;
-+ }
-+
-+ return;
-+ }
-+ }
-+}
-diff --git a/test/Makefile.am b/test/Makefile.am
-index 456221e..ccdb859 100644
---- a/test/Makefile.am
-+++ b/test/Makefile.am
-@@ -1,6 +1,6 @@
- if UNITTESTS
- SUBDIRS= . xi2
--check_PROGRAMS = xkb input xtest
-+check_PROGRAMS = xkb input xtest list fixes
- check_LTLIBRARIES = libxservertest.la
-
- TESTS=$(check_PROGRAMS)
-@@ -16,6 +16,8 @@ endif
- xkb_LDADD=$(TEST_LDADD)
- input_LDADD=$(TEST_LDADD)
- xtest_LDADD=$(TEST_LDADD)
-+list_LDADD=$(TEST_LDADD)
-+fixes_LDADD=$(TEST_LDADD)
-
- libxservertest_la_LIBADD = \
- $(XSERVER_LIBS) \
-diff --git a/xfixes/cursor.c b/xfixes/cursor.c
-index fb608f6..5c55c95 100644
---- a/xfixes/cursor.c
-+++ b/xfixes/cursor.c
-@@ -1,5 +1,6 @@
- /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright 2010 Red Hat, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
-@@ -50,13 +51,16 @@
- #include "cursorstr.h"
- #include "dixevents.h"
- #include "servermd.h"
-+#include "mipointer.h"
- #include "inputstr.h"
- #include "windowstr.h"
- #include "xace.h"
-+#include "list.h"
-
- static RESTYPE CursorClientType;
- static RESTYPE CursorHideCountType;
- static RESTYPE CursorWindowType;
-+RESTYPE PointerBarrierType;
- static CursorPtr CursorCurrent[MAXDEVICES];
-
- static DevPrivateKeyRec CursorScreenPrivateKeyRec;
-@@ -107,6 +111,14 @@ typedef struct _CursorHideCountRec {
- XID resource;
- } CursorHideCountRec;
-
-+typedef struct PointerBarrierClient *PointerBarrierClientPtr;
-+
-+struct PointerBarrierClient {
-+ ScreenPtr screen;
-+ struct PointerBarrier barrier;
-+ struct list entry;
-+};
-+
- /*
- * Wrap DisplayCursor to catch cursor change events
- */
-@@ -114,7 +126,9 @@ typedef struct _CursorHideCountRec {
- typedef struct _CursorScreen {
- DisplayCursorProcPtr DisplayCursor;
- CloseScreenProcPtr CloseScreen;
-+ ConstrainCursorHarderProcPtr ConstrainCursorHarder;
- CursorHideCountPtr pCursorHideCounts;
-+ struct list barriers;
- } CursorScreenRec, *CursorScreenPtr;
-
- #define GetCursorScreen(s) ((CursorScreenPtr)dixLookupPrivate(&(s)->devPrivates, CursorScreenPrivateKey))
-@@ -184,9 +198,11 @@ CursorCloseScreen (int index, ScreenPtr pScreen)
- Bool ret;
- CloseScreenProcPtr close_proc;
- DisplayCursorProcPtr display_proc;
-+ ConstrainCursorHarderProcPtr constrain_proc;
-
- Unwrap (cs, pScreen, CloseScreen, close_proc);
- Unwrap (cs, pScreen, DisplayCursor, display_proc);
-+ Unwrap (cs, pScreen, ConstrainCursorHarder, constrain_proc);
- deleteCursorHideCountsForScreen(pScreen);
- ret = (*pScreen->CloseScreen) (index, pScreen);
- free(cs);
-@@ -1029,6 +1045,391 @@ CursorFreeWindow (pointer data, XID id)
- return 1;
- }
-
-+static BOOL
-+barrier_is_horizontal(const struct PointerBarrier *barrier)
-+{
-+ return barrier->y1 == barrier->y2;
-+}
-+
-+static BOOL
-+barrier_is_vertical(const struct PointerBarrier *barrier)
-+{
-+ return barrier->x1 == barrier->x2;
-+}
-+
-+/**
-+ * @return The set of barrier movement directions the movement vector
-+ * x1/y1 → x2/y2 represents.
-+ */
-+int
-+barrier_get_direction(int x1, int y1, int x2, int y2)
-+{
-+ int direction = 0;
-+
-+ /* which way are we trying to go */
-+ if (x2 > x1)
-+ direction |= BarrierPositiveX;
-+ if (x2 < x1)
-+ direction |= BarrierNegativeX;
-+ if (y2 > y1)
-+ direction |= BarrierPositiveY;
-+ if (y2 < y1)
-+ direction |= BarrierNegativeY;
-+
-+ return direction;
-+}
-+
-+/**
-+ * Test if the barrier may block movement in the direction defined by
-+ * x1/y1 → x2/y2. This function only tests whether the directions could be
-+ * blocked, it does not test if the barrier actually blocks the movement.
-+ *
-+ * @return TRUE if the barrier blocks the direction of movement or FALSE
-+ * otherwise.
-+ */
-+BOOL
-+barrier_is_blocking_direction(const struct PointerBarrier *barrier, int direction)
-+{
-+ /* Barriers define which way is ok, not which way is blocking */
-+ return (barrier->directions & direction) != direction;
-+}
-+
-+/**
-+ * Test if the movement vector x1/y1 → x2/y2 is intersecting with the
-+ * barrier. A movement vector with the startpoint or endpoint on the barrier
-+ * itself counts as intersecting.
-+ *
-+ * @param x1 X start coordinate of movement vector
-+ * @param y1 Y start coordinate of movement vector
-+ * @param x2 X end coordinate of movement vector
-+ * @param y2 Y end coordinate of movement vector
-+ * @param[out] distance The distance between the start point and the
-+ * intersection with the barrier (if applicable).
-+ * @return TRUE if the barrier intersects with the given vector
-+ */
-+BOOL
-+barrier_is_blocking(const struct PointerBarrier *barrier,
-+ int x1, int y1, int x2, int y2,
-+ double *distance)
-+{
-+ BOOL rc = FALSE;
-+ float ua, ub, ud;
-+ int dir = barrier_get_direction(x1, y1, x2, y2);
-+
-+ /* Algorithm below doesn't handle edge cases well, hence the extra
-+ * checks. */
-+ if (barrier_is_vertical(barrier)) {
-+ /* handle immediate barrier adjacency, moving away */
-+ if (dir & BarrierPositiveX && x1 == barrier->x1)
-+ return FALSE;
-+ if (dir & BarrierNegativeX && x1 == (barrier->x1 - 1))
-+ return FALSE;
-+ /* startpoint on barrier */
-+ if (x1 == barrier->x1 && y1 >= barrier->y1 && y1 <= barrier->y2) {
-+ *distance = 0;
-+ return TRUE;
-+ }
-+ /* endpoint on barrier */
-+ if (x2 == barrier->x1 && y2 >= barrier->y1 && y2 <= barrier->y2) {
-+ *distance = abs(x2 - x1);
-+ return TRUE;
-+ }
-+ } else {
-+ /* handle immediate barrier adjacency, moving away */
-+ if (dir & BarrierPositiveY && y1 == barrier->y1)
-+ return FALSE;
-+ if (dir & BarrierNegativeY && y1 == (barrier->y1 - 1))
-+ return FALSE;
-+ /* startpoint on barrier */
-+ if (y1 == barrier->y1 && x1 >= barrier->x1 && x1 <= barrier->x2) {
-+ *distance = 0;
-+ return TRUE;
-+ }
-+ /* endpoint on barrier */
-+ if (y2 == barrier->y1 && x2 >= barrier->x1 && x2 <= barrier->x2) {
-+ *distance = abs(y2 - y1);
-+ return TRUE;
-+ }
-+ }
-+
-+ /* not an edge case, compute distance */
-+ ua = 0;
-+ ud = (barrier->y2 - barrier->y1) * (x2 - x1) - (barrier->x2 - barrier->x1) * (y2 - y1);
-+ if (ud != 0) {
-+ ua = ((barrier->x2 - barrier->x1) * (y1 - barrier->y1) -
-+ (barrier->y2 - barrier->y1) * (x1 - barrier->x1)) / ud;
-+ ub = ((x2 - x1) * (y1 - barrier->y1) -
-+ (y2 - y1) * (x1 - barrier->x1)) / ud;
-+ if (ua < 0 || ua > 1 || ub < 0 || ub > 1)
-+ ua = 0;
-+ }
-+
-+ if (ua > 0 && ua <= 1)
-+ {
-+ double ix = barrier->x1 + ua * (barrier->x2 - barrier->x1);
-+ double iy = barrier->y1 + ua * (barrier->y2 - barrier->y1);
-+
-+ *distance = sqrt(pow(x1 - ix, 2) + pow(y1 - iy, 2));
-+ rc = TRUE;
-+ }
-+
-+ return rc;
-+}
-+
-+/**
-+ * Find the nearest barrier that is blocking movement from x1/y1 to x2/y2.
-+ *
-+ * @param dir Only barriers blocking movement in direction dir are checked
-+ * @param x1 X start coordinate of movement vector
-+ * @param y1 Y start coordinate of movement vector
-+ * @param x2 X end coordinate of movement vector
-+ * @param y2 Y end coordinate of movement vector
-+ * @return The barrier nearest to the movement origin that blocks this movement.
-+ */
-+static struct PointerBarrier*
-+barrier_find_nearest(CursorScreenPtr cs, int dir,
-+ int x1, int y1, int x2, int y2)
-+{
-+ struct PointerBarrierClient *c;
-+ struct PointerBarrier *nearest = NULL;
-+ double min_distance = INT_MAX; /* can't get higher than that in X anyway */
-+
-+ list_for_each_entry(c, &cs->barriers, entry) {
-+ struct PointerBarrier *b = &c->barrier;
-+ double distance;
-+
-+ if (!barrier_is_blocking_direction(b, dir))
-+ continue;
-+
-+ if (barrier_is_blocking(b, x1, y1, x2, y2, &distance))
-+ {
-+ if (min_distance > distance)
-+ {
-+ min_distance = distance;
-+ nearest = b;
-+ }
-+ }
-+ }
-+
-+ return nearest;
-+}
-+
-+/**
-+ * Clamp to the given barrier given the movement direction specified in dir.
-+ *
-+ * @param barrier The barrier to clamp to
-+ * @param dir The movement direction
-+ * @param[out] x The clamped x coordinate.
-+ * @param[out] y The clamped x coordinate.
-+ */
-+void
-+barrier_clamp_to_barrier(struct PointerBarrier *barrier, int dir, int *x, int *y)
-+{
-+ if (barrier_is_vertical(barrier)) {
-+ if ((dir & BarrierNegativeX) & ~barrier->directions)
-+ *x = barrier->x1;
-+ if ((dir & BarrierPositiveX) & ~barrier->directions)
-+ *x = barrier->x1 - 1;
-+ }
-+ if (barrier_is_horizontal(barrier))
-+ {
-+ if ((dir & BarrierNegativeY) & ~barrier->directions)
-+ *y = barrier->y1;
-+ if ((dir & BarrierPositiveY) & ~barrier->directions)
-+ *y = barrier->y1 - 1;
-+ }
-+}
-+
-+static void
-+CursorConstrainCursorHarder(DeviceIntPtr dev, ScreenPtr screen, int mode, int *x, int *y)
-+{
-+ CursorScreenPtr cs = GetCursorScreen(screen);
-+
-+ if (!list_is_empty(&cs->barriers) && !IsFloating(dev) && mode == Relative) {
-+ int ox, oy;
-+ int dir;
-+ struct PointerBarrier *nearest = NULL;
-+
-+ /* where are we coming from */
-+ miPointerGetPosition(dev, &ox, &oy);
-+
-+ /* How this works:
-+ * Given the origin and the movement vector, get the nearest barrier
-+ * to the origin that is blocking the movement.
-+ * Clamp to that barrier.
-+ * Then, check from the clamped position to the original
-+ * destination, again finding the nearest barrier and clamping.
-+ */
-+ dir = barrier_get_direction(ox, oy, *x, *y);
-+
-+ nearest = barrier_find_nearest(cs, dir, ox, oy, *x, *y);
-+ if (nearest) {
-+ barrier_clamp_to_barrier(nearest, dir, x, y);
-+
-+ if (barrier_is_vertical(nearest)) {
-+ dir &= ~(BarrierNegativeX | BarrierPositiveX);
-+ ox = *x;
-+ } else if (barrier_is_horizontal(nearest)) {
-+ dir &= ~(BarrierNegativeY | BarrierPositiveY);
-+ oy = *y;
-+ }
-+
-+ nearest = barrier_find_nearest(cs, dir, ox, oy, *x, *y);
-+ if (nearest) {
-+ barrier_clamp_to_barrier(nearest, dir, x, y);
-+ }
-+ }
-+ }
-+
-+ if (cs->ConstrainCursorHarder) {
-+ screen->ConstrainCursorHarder = cs->ConstrainCursorHarder;
-+ screen->ConstrainCursorHarder(dev, screen, mode, x, y);
-+ screen->ConstrainCursorHarder = CursorConstrainCursorHarder;
-+ }
-+}
-+
-+static struct PointerBarrierClient *
-+CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client,
-+ xXFixesCreatePointerBarrierReq *stuff)
-+{
-+ CursorScreenPtr cs = GetCursorScreen(screen);
-+ struct PointerBarrierClient *ret = malloc(sizeof(*ret));
-+
-+ if (ret) {
-+ ret->screen = screen;
-+ ret->barrier.x1 = min(stuff->x1, stuff->x2);
-+ ret->barrier.x2 = max(stuff->x1, stuff->x2);
-+ ret->barrier.y1 = min(stuff->y1, stuff->y2);
-+ ret->barrier.y2 = max(stuff->y1, stuff->y2);
-+ ret->barrier.directions = stuff->directions & 0x0f;
-+ if (barrier_is_horizontal(&ret->barrier))
-+ ret->barrier.directions &= ~(BarrierPositiveX | BarrierNegativeX);
-+ if (barrier_is_vertical(&ret->barrier))
-+ ret->barrier.directions &= ~(BarrierPositiveY | BarrierNegativeY);
-+ list_add(&ret->entry, &cs->barriers);
-+ }
-+
-+ return ret;
-+}
-+
-+int
-+ProcXFixesCreatePointerBarrier (ClientPtr client)
-+{
-+ int err;
-+ WindowPtr pWin;
-+ struct PointerBarrierClient *barrier;
-+ struct PointerBarrier b;
-+ REQUEST (xXFixesCreatePointerBarrierReq);
-+
-+ REQUEST_SIZE_MATCH(xXFixesCreatePointerBarrierReq);
-+ LEGAL_NEW_RESOURCE(stuff->barrier, client);
-+
-+ err = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
-+ if (err != Success) {
-+ client->errorValue = stuff->window;
-+ return err;
-+ }
-+
-+ /* This sure does need fixing. */
-+ if (stuff->num_devices)
-+ return BadImplementation;
-+
-+ b.x1 = stuff->x1;
-+ b.x2 = stuff->x2;
-+ b.y1 = stuff->y1;
-+ b.y2 = stuff->y2;
-+
-+ if (!barrier_is_horizontal(&b) && !barrier_is_vertical(&b))
-+ return BadValue;
-+
-+ /* no 0-sized barriers */
-+ if (barrier_is_horizontal(&b) && barrier_is_vertical(&b))
-+ return BadValue;
-+
-+ if (!(barrier = CreatePointerBarrierClient(pWin->drawable.pScreen,
-+ client, stuff)))
-+ return BadAlloc;
-+
-+ if (!AddResource(stuff->barrier, PointerBarrierType, &barrier->barrier))
-+ return BadAlloc;
-+
-+ return Success;
-+}
-+
-+int
-+SProcXFixesCreatePointerBarrier (ClientPtr client)
-+{
-+ int n;
-+ REQUEST(xXFixesCreatePointerBarrierReq);
-+
-+ swaps(&stuff->length, n);
-+ REQUEST_SIZE_MATCH(xXFixesCreatePointerBarrierReq);
-+ swapl(&stuff->barrier, n);
-+ swapl(&stuff->window, n);
-+ swaps(&stuff->x1, n);
-+ swaps(&stuff->y1, n);
-+ swaps(&stuff->x2, n);
-+ swaps(&stuff->y2, n);
-+ swapl(&stuff->directions, n);
-+ return ProcXFixesVector[stuff->xfixesReqType](client);
-+}
-+
-+static int
-+CursorFreeBarrier(void *data, XID id)
-+{
-+ struct PointerBarrierClient *b = NULL, *barrier;
-+ ScreenPtr screen;
-+ CursorScreenPtr cs;
-+
-+ barrier = container_of(data, struct PointerBarrierClient, barrier);
-+ screen = barrier->screen;
-+ cs = GetCursorScreen(screen);
-+
-+ /* find and unlink from the screen private */
-+ list_for_each_entry(b, &cs->barriers, entry) {
-+ if (b == barrier) {
-+ list_del(&b->entry);
-+ break;
-+ }
-+ }
-+
-+ free(barrier);
-+ return Success;
-+}
-+
-+int
-+ProcXFixesDestroyPointerBarrier (ClientPtr client)
-+{
-+ int err;
-+ void *barrier;
-+ REQUEST (xXFixesDestroyPointerBarrierReq);
-+
-+ REQUEST_SIZE_MATCH(xXFixesDestroyPointerBarrierReq);
-+
-+ err = dixLookupResourceByType((void **)&barrier, stuff->barrier,
-+ PointerBarrierType, client,
-+ DixDestroyAccess);
-+ if (err != Success) {
-+ client->errorValue = stuff->barrier;
-+ return err;
-+ }
-+
-+ FreeResource(stuff->barrier, RT_NONE);
-+ return Success;
-+}
-+
-+int
-+SProcXFixesDestroyPointerBarrier (ClientPtr client)
-+{
-+ int n;
-+ REQUEST(xXFixesDestroyPointerBarrierReq);
-+
-+ swaps(&stuff->length, n);
-+ REQUEST_SIZE_MATCH(xXFixesDestroyPointerBarrierReq);
-+ swapl(&stuff->barrier, n);
-+ return ProcXFixesVector[stuff->xfixesReqType](client);
-+}
-+
- Bool
- XFixesCursorInit (void)
- {
-@@ -1048,8 +1449,10 @@ XFixesCursorInit (void)
- cs = (CursorScreenPtr) calloc(1, sizeof (CursorScreenRec));
- if (!cs)
- return FALSE;
-+ list_init(&cs->barriers);
- Wrap (cs, pScreen, CloseScreen, CursorCloseScreen);
- Wrap (cs, pScreen, DisplayCursor, CursorDisplayCursor);
-+ Wrap (cs, pScreen, ConstrainCursorHarder, CursorConstrainCursorHarder);
- cs->pCursorHideCounts = NULL;
- SetCursorScreen (pScreen, cs);
- }
-@@ -1059,7 +1462,10 @@ XFixesCursorInit (void)
- "XFixesCursorHideCount");
- CursorWindowType = CreateNewResourceType(CursorFreeWindow,
- "XFixesCursorWindow");
-+ PointerBarrierType = CreateNewResourceType(CursorFreeBarrier,
-+ "XFixesPointerBarrier");
-
-- return CursorClientType && CursorHideCountType && CursorWindowType;
-+ return CursorClientType && CursorHideCountType && CursorWindowType &&
-+ PointerBarrierType;
- }
-
-diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
-index e8c7bf1..a57884b 100644
---- a/xfixes/xfixes.c
-+++ b/xfixes/xfixes.c
-@@ -1,5 +1,6 @@
- /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright 2010 Red Hat, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
-@@ -47,10 +48,6 @@
-
- #include "xfixesint.h"
- #include "protocol-versions.h"
--/*
-- * Must use these instead of the constants from xfixeswire.h. They advertise
-- * what we implement, not what the protocol headers define.
-- */
-
- static unsigned char XFixesReqCode;
- int XFixesEventBase;
-@@ -97,11 +94,12 @@ ProcXFixesQueryVersion(ClientPtr client)
-
- /* Major version controls available requests */
- static const int version_requests[] = {
-- X_XFixesQueryVersion, /* before client sends QueryVersion */
-- X_XFixesGetCursorImage, /* Version 1 */
-- X_XFixesChangeCursorByName, /* Version 2 */
-- X_XFixesExpandRegion, /* Version 3 */
-- X_XFixesShowCursor, /* Version 4 */
-+ X_XFixesQueryVersion, /* before client sends QueryVersion */
-+ X_XFixesGetCursorImage, /* Version 1 */
-+ X_XFixesChangeCursorByName, /* Version 2 */
-+ X_XFixesExpandRegion, /* Version 3 */
-+ X_XFixesShowCursor, /* Version 4 */
-+ X_XFixesDestroyPointerBarrier, /* Version 5 */
- };
-
- #define NUM_VERSION_REQUESTS (sizeof (version_requests) / sizeof (version_requests[0]))
-@@ -142,6 +140,9 @@ int (*ProcXFixesVector[XFixesNumberRequests])(ClientPtr) = {
- /*************** Version 4 ****************/
- ProcXFixesHideCursor,
- ProcXFixesShowCursor,
-+/*************** Version 5 ****************/
-+ ProcXFixesCreatePointerBarrier,
-+ ProcXFixesDestroyPointerBarrier,
- };
-
- static int
-@@ -205,6 +206,9 @@ static int (*SProcXFixesVector[XFixesNumberRequests])(ClientPtr) = {
- /*************** Version 4 ****************/
- SProcXFixesHideCursor,
- SProcXFixesShowCursor,
-+/*************** Version 5 ****************/
-+ SProcXFixesCreatePointerBarrier,
-+ SProcXFixesDestroyPointerBarrier,
- };
-
- static int
-@@ -260,6 +264,8 @@ XFixesExtensionInit(void)
- EventSwapVector[XFixesEventBase + XFixesCursorNotify] =
- (EventSwapPtr) SXFixesCursorNotifyEvent;
- SetResourceTypeErrorValue(RegionResType, XFixesErrorBase + BadRegion);
-+ SetResourceTypeErrorValue(PointerBarrierType,
-+ XFixesErrorBase + BadBarrier);
- }
- }
-
-diff --git a/xfixes/xfixes.h b/xfixes/xfixes.h
-index 1638350..5765e64 100644
---- a/xfixes/xfixes.h
-+++ b/xfixes/xfixes.h
-@@ -30,6 +30,7 @@
- #include "resource.h"
-
- extern _X_EXPORT RESTYPE RegionResType;
-+extern _X_EXPORT RESTYPE PointerBarrierType;
- extern _X_EXPORT int XFixesErrorBase;
-
- #define VERIFY_REGION(pRegion, rid, client, mode) \
-@@ -51,5 +52,21 @@ extern _X_EXPORT int XFixesErrorBase;
- extern _X_EXPORT RegionPtr
- XFixesRegionCopy (RegionPtr pRegion);
-
-+struct PointerBarrier {
-+ CARD16 x1, x2, y1, y2;
-+ CARD32 directions;
-+};
-+
-+
-+extern int
-+barrier_get_direction(int, int, int, int);
-+extern BOOL
-+barrier_is_blocking(const struct PointerBarrier*, int, int, int, int, double*);
-+extern BOOL
-+barrier_is_blocking_direction(const struct PointerBarrier*, int);
-+extern void
-+barrier_clamp_to_barrier(struct PointerBarrier *barrier, int dir, int *x, int *y);
-+
-+
-
- #endif /* _XFIXES_H_ */
-diff --git a/xfixes/xfixesint.h b/xfixes/xfixesint.h
-index d005369..6ba276e 100644
---- a/xfixes/xfixesint.h
-+++ b/xfixes/xfixesint.h
-@@ -1,5 +1,6 @@
- /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright 2010 Red Hat, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
-@@ -278,6 +279,21 @@ ProcXFixesShowCursor (ClientPtr client);
- int
- SProcXFixesShowCursor (ClientPtr client);
-
-+/* Version 5 */
-+
-+int
-+ProcXFixesCreatePointerBarrier (ClientPtr client);
-+
-+int
-+SProcXFixesCreatePointerBarrier (ClientPtr client);
-+
-+int
-+ProcXFixesDestroyPointerBarrier (ClientPtr client);
-+
-+int
-+SProcXFixesDestroyPointerBarrier (ClientPtr client);
-+
-+/* Xinerama */
- extern int (*PanoramiXSaveXFixesVector[XFixesNumberRequests])(ClientPtr);
- void PanoramiXFixesInit (void);
- void PanoramiXFixesReset (void);
---
-1.7.4
-
diff --git a/testing/xorg-server/xvfb-run b/testing/xorg-server/xvfb-run
deleted file mode 100644
index 4c2f4e0d3..000000000
--- a/testing/xorg-server/xvfb-run
+++ /dev/null
@@ -1,180 +0,0 @@
-#!/bin/sh
-
-# $Id: xvfb-run 2027 2004-11-16 14:54:16Z branden $
-
-# This script starts an instance of Xvfb, the "fake" X server, runs a command
-# with that server available, and kills the X server when done. The return
-# value of the command becomes the return value of this script.
-#
-# If anyone is using this to build a Debian package, make sure the package
-# Build-Depends on xvfb, xbase-clients, and xfonts-base.
-
-set -e
-
-PROGNAME=xvfb-run
-SERVERNUM=99
-AUTHFILE=
-ERRORFILE=/dev/null
-STARTWAIT=3
-XVFBARGS="-screen 0 640x480x8"
-LISTENTCP="-nolisten tcp"
-XAUTHPROTO=.
-
-# Query the terminal to establish a default number of columns to use for
-# displaying messages to the user. This is used only as a fallback in the event
-# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the
-# script is running, and this cannot, only being calculated once.)
-DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true
-if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then
- DEFCOLUMNS=80
-fi
-
-# Display a message, wrapping lines at the terminal width.
-message () {
- echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS}
-}
-
-# Display an error message.
-error () {
- message "error: $*" >&2
-}
-
-# Display a usage message.
-usage () {
- if [ -n "$*" ]; then
- message "usage error: $*"
- fi
- cat <<EOF
-Usage: $PROGNAME [OPTION ...] COMMAND
-Run COMMAND (usually an X client) in a virtual X server environment.
-Options:
--a --auto-servernum try to get a free server number, starting at
- --server-num
--e FILE --error-file=FILE file used to store xauth errors and Xvfb
- output (default: $ERRORFILE)
--f FILE --auth-file=FILE file used to store auth cookie
- (default: ./.Xauthority)
--h --help display this usage message and exit
--n NUM --server-num=NUM server number to use (default: $SERVERNUM)
--l --listen-tcp enable TCP port listening in the X server
--p PROTO --xauth-protocol=PROTO X authority protocol name to use
- (default: xauth command's default)
--s ARGS --server-args=ARGS arguments (other than server number and
- "-nolisten tcp") to pass to the Xvfb server
- (default: "$XVFBARGS")
--w DELAY --wait=DELAY delay in seconds to wait for Xvfb to start
- before running COMMAND (default: $STARTWAIT)
-EOF
-}
-
-# Find a free server number by looking at .X*-lock files in /tmp.
-find_free_servernum() {
- # Sadly, the "local" keyword is not POSIX. Leave the next line commented in
- # the hope Debian Policy eventually changes to allow it in /bin/sh scripts
- # anyway.
- #local i
-
- i=$SERVERNUM
- while [ -f /tmp/.X$i-lock ]; do
- i=$(($i + 1))
- done
- echo $i
-}
-
-# Clean up files
-clean_up() {
- if [ -e "$AUTHFILE" ]; then
- XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
- fi
- if [ -n "$XVFB_RUN_TMPDIR" ]; then
- if ! rm -r "$XVFB_RUN_TMPDIR"; then
- error "problem while cleaning up temporary directory"
- exit 5
- fi
- fi
-}
-
-# Parse the command line.
-ARGS=$(getopt --options +ae:f:hn:lp:s:w: \
- --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
- --name "$PROGNAME" -- "$@")
-GETOPT_STATUS=$?
-
-if [ $GETOPT_STATUS -ne 0 ]; then
- error "internal error; getopt exited with status $GETOPT_STATUS"
- exit 6
-fi
-
-eval set -- "$ARGS"
-
-while :; do
- case "$1" in
- -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;;
- -e|--error-file) ERRORFILE="$2"; shift ;;
- -f|--auth-file) AUTHFILE="$2"; shift ;;
- -h|--help) SHOWHELP="yes" ;;
- -n|--server-num) SERVERNUM="$2"; shift ;;
- -l|--listen-tcp) LISTENTCP="" ;;
- -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;;
- -s|--server-args) XVFBARGS="$2"; shift ;;
- -w|--wait) STARTWAIT="$2"; shift ;;
- --) shift; break ;;
- *) error "internal error; getopt permitted \"$1\" unexpectedly"
- exit 6
- ;;
- esac
- shift
-done
-
-if [ "$SHOWHELP" ]; then
- usage
- exit 0
-fi
-
-if [ -z "$*" ]; then
- usage "need a command to run" >&2
- exit 2
-fi
-
-if ! which xauth >/dev/null; then
- error "xauth command not found"
- exit 3
-fi
-
-# tidy up after ourselves
-trap clean_up EXIT
-
-# If the user did not specify an X authorization file to use, set up a temporary
-# directory to house one.
-if [ -z "$AUTHFILE" ]; then
- XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)"
- AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
-fi
-
-# Start Xvfb.
-MCOOKIE=$(mcookie)
-XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
-add :$SERVERNUM $XAUTHPROTO $MCOOKIE
-EOF
-XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
- 2>&1 &
-XVFBPID=$!
-sleep "$STARTWAIT"
-if ! kill -0 $XVFBPID 2>/dev/null; then
- echo "Xvfb failed to start" >&2
- exit 1
-fi
-
-# Start the command and save its exit status.
-set +e
-DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
-RETVAL=$?
-set -e
-
-# Kill Xvfb now that the command has exited.
-kill $XVFBPID
-
-# Return the executed command's exit status.
-exit $RETVAL
-
-# vim:set ai et sts=4 sw=4 tw=80:
diff --git a/testing/xorg-server/xvfb-run.1 b/testing/xorg-server/xvfb-run.1
deleted file mode 100644
index 137d3a196..000000000
--- a/testing/xorg-server/xvfb-run.1
+++ /dev/null
@@ -1,282 +0,0 @@
-.\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $
-.\"
-.\" Copyright 1998-2004 Branden Robinson <branden@debian.org>.
-.\"
-.\" This is free software; you may redistribute it and/or modify
-.\" it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2,
-.\" or (at your option) any later version.
-.\"
-.\" This is distributed in the hope that it will be useful, but
-.\" WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public License with
-.\" the Debian operating system, in /usr/share/common-licenses/GPL; if
-.\" not, write to the Free Software Foundation, Inc., 59 Temple Place,
-.\" Suite 330, Boston, MA 02111-1307 USA
-.\"
-.\" We need the URL macro from groff's www macro package, but also want
-.\" things to work all right for people who don't have it. So we define
-.\" our own URL macro and let the www macro package override it if it's
-.\" available.
-.de URL
-\\$2 \(laURL: \\$1 \(ra\\$3
-..
-.if \n[.g] .mso www.tmac
-.TH xvfb\-run 1 "2004\-11\-12" "Debian Project"
-.SH NAME
-xvfb\-run \- run specified X client or command in a virtual X server environment
-.SH SYNOPSIS
-.B xvfb\-run
-[
-.I options
-]
-.I command
-.SH DESCRIPTION
-.B xvfb\-run
-is a wrapper for the
-.BR Xvfb (1x)
-command which simplifies the task of running commands (typically an X
-client, or a script containing a list of clients to be run) within a virtual
-X server environment.
-.PP
-.B xvfb\-run
-sets up an X authority file (or uses an existing user\-specified one),
-writes a cookie to it (see
-.BR xauth (1x))
-and then starts the
-.B Xvfb
-X server as a background process.
-The process ID of
-.B Xvfb
-is stored for later use.
-The specified
-.I command
-is then run using the X display corresponding to the
-.B Xvfb
-server
-just started and the X authority file created earlier.
-.PP
-When the
-.I command
-exits, its status is saved, the
-.B Xvfb
-server is killed (using the process ID stored earlier), the X authority
-cookie removed, and the authority file deleted (if the user did not specify
-one to use).
-.B xvfb\-run
-then exits with the exit status of
-.IR command .
-.PP
-.B xvfb\-run
-requires the
-.B xauth
-command to function.
-.SH OPTIONS
-.TP
-.B \-a\fR,\fB \-\-auto\-servernum
-Try to get a free server number, starting at 99, or the argument to
-.BR \-\-server\-num .
-.TP
-.BI \-e\ file \fR,\fB\ \-\-error\-file= file
-Store output from
-.B xauth
-and
-.B Xvfb
-in
-.IR file .
-The default is
-.IR /dev/null .
-.TP
-.BI \-f\ file \fR,\fB\ \-\-auth\-file= file
-Store X authentication data in
-.IR file .
-By default, a temporary directory called
-.IR xvfb\-run. PID
-(where PID is the process ID of
-.B xvfb\-run
-itself) is created in the directory specified by the environment variable
-.B TMPDIR
-(or
-.I /tmp
-if that variable is null or unset), and the
-.BR tempfile (1)
-command is used to create a file in that temporary directory called
-.IR Xauthority .
-.TP
-.B \-h\fR,\fB \-\-help
-Display a usage message and exit.
-.TP
-.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber
-Use
-.I servernumber
-as the server number (but see the
-.B \-a\fR,\fB \-\-auto\-servernum
-option above).
-The default is 99.
-.TP
-.B \-l\fR,\fB \-\-listen\-tcp
-Enable TCP port listening in the X server.
-For security reasons (to avoid denial\-of\-service attacks or exploits),
-TCP port listening is disabled by default.
-.TP
-.BI \-p\ protocolname \fR,\fB\ \-\-xauth\-protocol= protocolname
-Use
-.I protocolname
-as the X authority protocol to use.
-The default is \(oq.\(cq, which
-.B xauth
-interprets as its own default protocol, which is MIT\-MAGIC\-COOKIE\-1.
-.TP
-.BI \-s\ arguments \fR,\fB\ \-\-server\-args= arguments
-Pass
-.I arguments
-to the
-.B Xvfb
-server.
-Be careful to quote any whitespace characters that may occur within
-.I arguments
-to prevent them from regarded as separators for
-.BR xvfb\-run 's
-own arguments.
-Also, note that specification of \(oq\-nolisten tcp\(cq in
-.I arguments
-may override the function of
-.BR xvfb\-run 's
-own
-.B \-l\fR,\fB \-\-listen\-tcp
-option, and that specification of the server number (e.g., \(oq:1\(cq) may
-be ignored because of the way the X server parses its argument list.
-Use the
-.B xvfb\-run
-option
-.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber
-to achieve the latter function.
-The default is \(oq\-screen 0 640x480x8\(cq.
-.TP
-.BI \-w\ delay \fR,\fB\ \-\-wait= delay
-Wait
-.I delay
-seconds after launching
-.B Xvfb
-before attempting to start the specified command.
-The default is 3.
-.SH ENVIRONMENT
-.TP
-.B COLUMNS
-indicates the width of the terminal device in character cells.
-This value is used for formatting diagnostic messages.
-If not set, the terminal is queried using
-.BR stty (1)
-to determine its width.
-If that fails, a value of \(oq80\(cq is assumed.
-.TP
-.B TMPDIR
-specifies the directory in which to place
-.BR xvfb\-run 's
-temporary directory for storage of the X authority file; only used if the
-.B \-f
-or
-.B \-\-auth\-file
-options are not specified.
-.SH "OUTPUT FILES"
-.PP
-Unless the
-.B \-f
-or
-.B \-\-auth\-file
-options are specified, a temporary
-directory and file within it are created (and deleted) to store the X
-authority cookies used by the
-.B Xvfb
-server and client(s) run under it.
-See
-.BR tempfile (1).
-If \-f or \-\-auth\-file are used, then the specified X authority file is
-only written to, not created or deleted (though
-.B xauth
-creates an authority file itself if told to use use that does not already
-exist).
-.PP
-An error file with a user\-specified name is also created if the
-.B \-e
-or
-.B \-\-error\-file
-options are specifed; see above.
-.SH "EXIT STATUS"
-.B xvfb\-run
-uses its exit status as well as output to standard error to communicate
-diagnostics.
-The exit status of \(oq1\(cq is not used, and should be interpreted as failure
-of the specified command.
-.TP
-0
-.B xvfb\-run
-only uses this exit status if the
-.B \-h\fR,\fB \-\-help
-option is given.
-In all other situations, this may be interpreted as success of the specified
-command.
-.TP
-2
-No command to run was specified.
-.TP
-3
-The
-.B xauth
-command is not available.
-.TP
-4
-The temporary directory that was going to be used already exists; since
-.B xvfb\-run
-produces a uniquely named directory, this may indicate an attempt by another
-process on the system to exploit a temporary file race condition.
-.TP
-5
-A problem was encountered while cleaning up the temporary directory.
-.TP
-6
-A problem was encountered while using
-.BR getopt (1)
-to parse the command\-line arguments.
-.SH EXAMPLES
-.TP
-.B xvfb\-run \-\-auto\-servernum \-\-server\-num=1 xlogo
-runs the
-.BR xlogo (1x)
-demonstration client inside the
-.B Xvfb
-X server on the first available server number greater than or equal to 1.
-.TP
-.B xvfb\-run \-\-server\-args="\-screen 0 1024x768x24" ico \-faces
-runs the
-.BR ico (1x)
-demonstration client (and passes it the
-.B \-faces
-argument) inside the
-.B Xvfb
-X server, configured with a root window of 1024 by 768 pixels and a color
-depth of 24 bits.
-.PP
-Note that the demo X clients used in the above examples will not exit on
-their own, so they will have to be killed before
-.B xvfb\-run
-will exit.
-.SH BUGS
-See
-.URL "http://bugs.debian.org/xvfb" "the Debian Bug Tracking System" .
-If you wish to report a bug in
-.BR xvfb\-run ,
-please use the
-.BR reportbug (1)
-command.
-.SH AUTHOR
-.B xfvb\-run
-was written by Branden Robinson and Jeff Licquia with sponsorship from
-Progeny Linux Systems.
-.SH "SEE ALSO"
-.BR Xvfb (1x),
-.BR xauth (1x)
-.\" vim:set et tw=80:
diff --git a/testing/yp-tools/PKGBUILD b/testing/yp-tools/PKGBUILD
deleted file mode 100644
index 8cf4b6960..000000000
--- a/testing/yp-tools/PKGBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# $Id: PKGBUILD 126193 2011-06-02 14:34:36Z bisson $
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: dorphell <dorphell@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgname=yp-tools
-pkgver=2.12
-pkgrel=2
-pkgdesc='Linux NIS Tools'
-arch=('i686' 'x86_64')
-url='http://www.linux-nis.org/nis/yp-tools/'
-license=('GPL2')
-depends=('ypbind-mt')
-source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz")
-sha1sums=('10b0ef5d4c5723e0716d7a1431a900c0ba6ef703')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
-}
diff --git a/testing/ypbind-mt/PKGBUILD b/testing/ypbind-mt/PKGBUILD
deleted file mode 100644
index 45cf58258..000000000
--- a/testing/ypbind-mt/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id: PKGBUILD 126308 2011-06-04 12:37:21Z bisson $
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgname=ypbind-mt
-pkgver=1.33
-pkgrel=2
-pkgdesc='Linux NIS daemon'
-arch=('i686' 'x86_64')
-url='http://www.linux-nis.org/nis/ypbind-mt/'
-license=('GPL2')
-depends=('rpcbind' 'openslp')
-optdepends=('yp-tools: to set a domain name')
-backup=('etc/yp.conf' 'etc/conf.d/ypbind' 'etc/conf.d/nisdomainname')
-source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz"
- 'nisdomainname.conf'
- 'ypbind.conf'
- 'ypbind')
-sha1sums=('49f578d15aa5d4f4130a2e96cd9c0e519263fc88'
- 'eb00aecc0679e25a36b007e797f4468b40cb3e8e'
- '07dee386d001fb9e9e6b76dda8af5b2092e5a4a2'
- '112fc2aedfe3f761325b69647b7938bc1be5bfcd')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr --disable-dbus-nm
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
- install -D -m644 etc/yp.conf "$pkgdir"/etc/yp.conf
- install -D -m755 ../ypbind "$pkgdir"/etc/rc.d/ypbind
- install -D -m644 ../ypbind.conf "$pkgdir"/etc/conf.d/ypbind
- install -D -m644 ../nisdomainname.conf "$pkgdir"/etc/conf.d/nisdomainname
- install -d -m755 "$pkgdir"/var/yp/binding
-}
diff --git a/testing/ypbind-mt/nisdomainname.conf b/testing/ypbind-mt/nisdomainname.conf
deleted file mode 100644
index bbbbf8fc7..000000000
--- a/testing/ypbind-mt/nisdomainname.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# NIS domain to be set in /etc/rc.d/ypbind
-#
-NISDOMAINNAME=""
diff --git a/testing/ypbind-mt/ypbind b/testing/ypbind-mt/ypbind
deleted file mode 100755
index 6a5ef11e3..000000000
--- a/testing/ypbind-mt/ypbind
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-. /etc/conf.d/ypbind
-. /etc/conf.d/nisdomainname
-
-name=ypbind
-PID=$(pidof -o %PPID /usr/sbin/ypbind)
-
-case "$1" in
-start)
- stat_busy "Starting $name daemon"
- [[ -n $NISDOMAINNAME ]] && /usr/bin/domainname "$NISDOMAINNAME" &>/dev/null
- [[ -z "$PID" ]] && /usr/sbin/ypbind $YPBIND_ARGS &>/dev/null \
- && { add_daemon $name; stat_done; } \
- || { stat_fail; exit 1; }
- ;;
-stop)
- stat_busy "Stopping $name daemon"
- [[ -n "$PID" ]] && kill $PID &>/dev/null \
- && { rm_daemon $name; stat_done; } \
- || { stat_fail; exit 1; }
- ;;
-restart)
- $0 stop
- sleep 1
- $0 start
- ;;
-*)
- echo "usage: $0 {start|stop|restart}"
- exit 1
- ;;
-esac
diff --git a/testing/ypbind-mt/ypbind.conf b/testing/ypbind-mt/ypbind.conf
deleted file mode 100644
index fd0ebd491..000000000
--- a/testing/ypbind-mt/ypbind.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Parameters to be passed to ypbind
-#
-YPBIND_ARGS=""