summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-staging/bwbar/PKGBUILD24
-rw-r--r--community-staging/caph/PKGBUILD36
-rw-r--r--community-staging/caph/caph.desktop7
-rw-r--r--community-staging/clanlib/PKGBUILD37
-rw-r--r--community-staging/darktable/PKGBUILD46
-rw-r--r--community-staging/darktable/darktable.install23
-rw-r--r--community-staging/dia/PKGBUILD48
-rw-r--r--community-staging/dia/dia-overflow-fix.patch28
-rw-r--r--community-staging/dia/dia.install13
-rw-r--r--community-staging/dillo/PKGBUILD28
-rw-r--r--community-staging/directfb/DirectFB-1.4.9-libpng-1.5.patch244
-rw-r--r--community-staging/directfb/PKGBUILD31
-rw-r--r--community-staging/directfb/directfb.changelog40
-rw-r--r--community-staging/djview4/PKGBUILD38
-rw-r--r--community-staging/djview4/install13
-rw-r--r--community-staging/efax-gtk/PKGBUILD33
-rw-r--r--community-staging/efax-gtk/efax-gtk.install11
-rw-r--r--community-staging/fbgrab/PKGBUILD23
-rw-r--r--community-staging/fbreader/PKGBUILD30
-rw-r--r--community-staging/fbreader/build-fix.patch20
-rw-r--r--community-staging/fbshot/PKGBUILD22
-rw-r--r--community-staging/fbv/ChangeLog2
-rw-r--r--community-staging/fbv/PKGBUILD25
-rw-r--r--community-staging/fityk/PKGBUILD47
-rw-r--r--community-staging/fityk/fityk.install14
-rw-r--r--community-staging/flam3/PKGBUILD27
-rw-r--r--community-staging/flam3/flam3-3.0.1-libpng15.patch76
-rw-r--r--community-staging/fltk2/PKGBUILD28
-rw-r--r--community-staging/fox/PKGBUILD43
-rw-r--r--community-staging/freewrl/PKGBUILD39
-rw-r--r--community-staging/freewrl/build-fix.patch1201
-rw-r--r--community-staging/fxdesktop/PKGBUILD25
-rw-r--r--community-staging/fxprocessview/PKGBUILD32
-rw-r--r--community-staging/fxprocessview/build-fix.patch41
-rw-r--r--community-staging/geda-gaf/ChangeLog53
-rw-r--r--community-staging/geda-gaf/PKGBUILD38
-rw-r--r--community-staging/geda-gaf/geda-gaf.install19
-rw-r--r--community-staging/glpng/Makefile30
-rw-r--r--community-staging/glpng/PKGBUILD35
-rw-r--r--community-staging/glpng/libpng15.patch83
-rw-r--r--community-staging/glpng/license21
-rw-r--r--community-staging/gnustep-gui/ChangeLog2
-rw-r--r--community-staging/gnustep-gui/PKGBUILD28
-rw-r--r--community-staging/gpac/PKGBUILD43
-rw-r--r--community-staging/grafx2/PKGBUILD43
-rw-r--r--community-staging/grafx2/grafx2.desktop12
-rw-r--r--community-staging/grafx2/grafx2.install16
-rw-r--r--community-staging/gsql/PKGBUILD33
-rw-r--r--community-staging/gsql/gsql.install24
-rw-r--r--community-staging/htmldoc/PKGBUILD44
-rw-r--r--community-staging/icoutils/PKGBUILD27
-rw-r--r--community-staging/jwm/PKGBUILD27
-rw-r--r--community-staging/kovpn/ChangeLog2
-rw-r--r--community-staging/kovpn/PKGBUILD39
-rw-r--r--community-staging/kovpn/kovpn.install12
-rw-r--r--community-staging/leptonica/PKGBUILD36
-rw-r--r--community-staging/libinfinity/PKGBUILD31
-rw-r--r--community-staging/libmatchbox/PKGBUILD26
-rw-r--r--community-staging/libmatchbox/libpng15.patch23
-rw-r--r--community-staging/mtpaint/PKGBUILD36
-rw-r--r--community-staging/mtpaint/libpng15.patch21
-rw-r--r--community-staging/mtpaint/mtpaint.install13
-rw-r--r--community-staging/mypaint/PKGBUILD32
-rw-r--r--community-staging/mypaint/mypaint.install13
-rw-r--r--community-staging/openscenegraph/PKGBUILD38
-rw-r--r--community-staging/openscenegraph/osg-xine-1.2.patch14
-rw-r--r--community-staging/paraview/12859-VisItBrige-external-tiff-support.diff32
-rw-r--r--community-staging/paraview/PKGBUILD78
-rw-r--r--community-staging/paraview/fix-boost-graph-api-changes.diff42
-rw-r--r--community-staging/paraview/paraview.desktop10
-rw-r--r--community-staging/paraview/paraview.pngbin0 -> 367 bytes
-rw-r--r--community-staging/podofo/PKGBUILD34
-rw-r--r--community-staging/scantailor/PKGBUILD35
-rw-r--r--community-staging/scantailor/build-fix.patch16
-rw-r--r--community-staging/vtk/PKGBUILD116
-rw-r--r--community-staging/vtk/ffmpeg-0.8.diff66
-rw-r--r--community-staging/vtk/fix-boost-graph-api-changes.diff42
-rw-r--r--community-staging/vtk/fixkernelversioncheck.diff19
-rw-r--r--community-staging/xloadimage/PKGBUILD42
-rw-r--r--community-staging/xloadimage/enable-image-types.patch74
-rw-r--r--community-staging/xloadimage/license.txt19
-rw-r--r--community-staging/xloadimage/png15-tiff4.patch50
-rw-r--r--community-staging/xmoto/PKGBUILD43
-rw-r--r--community-staging/xmoto/xmoto-0.5.9-libpng15.patch10
-rw-r--r--community-staging/xmoto/xmoto.desktop13
-rw-r--r--community-staging/xmoto/xmoto.install15
-rw-r--r--community-staging/xnc/PKGBUILD29
-rw-r--r--community-staging/xnc/libpng15.patch63
-rw-r--r--community-staging/xnc/xnc-gcc44.patch72
-rw-r--r--community-staging/xplanet/PKGBUILD22
-rw-r--r--community-testing/balsa/PKGBUILD47
-rw-r--r--community-testing/balsa/balsa.install12
-rw-r--r--community-testing/balsa/gmime26.patch1372
-rw-r--r--community-testing/dbmail/PKGBUILD51
-rw-r--r--community-testing/dbmail/dbmail-2.2.10-pam-support.patch251
-rw-r--r--community-testing/dbmail/dbmail.conf.d9
-rw-r--r--community-testing/dbmail/dbmail.rc.d41
-rw-r--r--community-testing/libzdb/PKGBUILD21
-rw-r--r--community-testing/lilypond/PKGBUILD43
-rw-r--r--community-testing/lilypond/lilypond.install48
-rw-r--r--community-testing/lilypond/texlive-workaround.patch88
-rw-r--r--community-testing/pinot/PKGBUILD50
-rw-r--r--community-testing/pinot/pinot.changelog2
-rw-r--r--community-testing/pinot/pinot.install15
-rw-r--r--community/augeas/PKGBUILD7
-rw-r--r--community/balsa/PKGBUILD55
-rw-r--r--community/balsa/balsa.install7
-rw-r--r--community/balsa/gmime26.patch1372
-rw-r--r--community/c++-gtk-utils/PKGBUILD29
-rw-r--r--community/calibre/PKGBUILD6
-rw-r--r--community/cdfs/PKGBUILD14
-rw-r--r--community/cdfs/cdfs-3.0.patch274
-rw-r--r--community/cdfs/cdfs-3.2.patch12
-rw-r--r--community/cdfs/cdfs.install9
-rw-r--r--community/clucene/PKGBUILD10
-rw-r--r--community/converseen/PKGBUILD8
-rw-r--r--community/coq/PKGBUILD11
-rw-r--r--community/dmd/PKGBUILD89
-rw-r--r--community/efax-gtk/PKGBUILD10
-rw-r--r--community/expac/PKGBUILD6
-rw-r--r--community/ghemical/PKGBUILD6
-rw-r--r--community/gnash/PKGBUILD16
-rw-r--r--community/gnash/nodebug.patch48
-rw-r--r--community/grsync/PKGBUILD12
-rw-r--r--community/grsync/grsync.install2
-rw-r--r--community/gtkwave/PKGBUILD11
-rw-r--r--community/gtkwave/gtkwave.install2
-rw-r--r--community/ipset/PKGBUILD11
-rw-r--r--community/libcgns/PKGBUILD6
-rw-r--r--community/libdbi-drivers/PKGBUILD4
-rw-r--r--community/libopenraw/PKGBUILD7
-rw-r--r--community/libzdb/PKGBUILD21
-rw-r--r--community/lilypond/PKGBUILD4
-rw-r--r--community/linux-tools/PKGBUILD27
-rw-r--r--community/linux-tools/cpupower.conf28
-rw-r--r--community/linux-tools/cpupower.rc32
-rw-r--r--community/linux-tools/cpupower.service10
-rw-r--r--community/luarocks/PKGBUILD6
-rw-r--r--community/megaglest/PKGBUILD18
-rw-r--r--community/minidlna/PKGBUILD6
-rwxr-xr-xcommunity/minidlna/minidlna.rc51
-rw-r--r--community/open-vm-tools-modules/PKGBUILD8
-rw-r--r--community/open-vm-tools-modules/open-vm-tools-modules.install13
-rw-r--r--community/packagekit/PKGBUILD17
-rw-r--r--community/packagekit/alpm.patch3187
-rw-r--r--community/pax-utils/PKGBUILD32
-rw-r--r--community/pcsc-tools/PKGBUILD8
-rw-r--r--community/percona-server/PKGBUILD6
-rw-r--r--community/perl-file-rsyncp/PKGBUILD31
-rw-r--r--community/perl-io-dirent/PKGBUILD31
-rw-r--r--community/pgadmin3/PKGBUILD24
-rw-r--r--community/pinot/PKGBUILD4
-rw-r--r--community/pkgtools/PKGBUILD2
-rw-r--r--community/pokerth/PKGBUILD6
-rw-r--r--community/python2-basemap/PKGBUILD19
-rw-r--r--community/qtspim/PKGBUILD63
-rw-r--r--community/quagga/PKGBUILD4
-rw-r--r--community/quagga/quagga.install20
-rw-r--r--community/qucs/PKGBUILD4
-rw-r--r--community/r8168-lts/PKGBUILD8
-rw-r--r--community/r8168-lts/r8168-lts.install2
-rw-r--r--community/redis/PKGBUILD6
-rw-r--r--community/roxterm/PKGBUILD20
-rw-r--r--community/smalltalk/PKGBUILD20
-rw-r--r--community/springlobby/PKGBUILD9
-rw-r--r--community/springlobby/springlobby.install11
-rw-r--r--community/stk/PKGBUILD5
-rw-r--r--community/stk/stk.license39
-rw-r--r--community/stunnel/PKGBUILD12
-rw-r--r--community/tellico/PKGBUILD11
-rw-r--r--community/tellico/tellico.install2
-rw-r--r--community/tix/PKGBUILD4
-rw-r--r--community/tomoyo-tools/PKGBUILD8
-rw-r--r--community/twinkle/PKGBUILD11
-rw-r--r--community/vdrift/PKGBUILD7
-rw-r--r--community/vdrift/vdrift.install11
-rw-r--r--community/vhba-module/PKGBUILD11
-rw-r--r--community/vhba-module/vhba-module.install4
-rw-r--r--community/virtualbox-modules/PKGBUILD10
-rw-r--r--community/virtualbox-modules/virtualbox-archlinux-modules.install6
-rw-r--r--community/virtualbox-modules/virtualbox-modules.install6
-rw-r--r--community/xmonad/PKGBUILD5
-rw-r--r--core/coreutils/PKGBUILD10
-rw-r--r--core/dirmngr/PKGBUILD21
-rw-r--r--core/dirmngr/dirmngr.install20
-rw-r--r--core/gnupg/PKGBUILD36
-rw-r--r--core/gnupg/gnupg.install21
-rw-r--r--core/gnupg2/PKGBUILD30
-rw-r--r--core/gnupg2/gnupg2-2.0.16-security.patch11
-rw-r--r--core/gnupg2/gnupg2.install20
-rw-r--r--core/gpgme/PKGBUILD36
-rw-r--r--core/gpgme/gpgme.install18
-rw-r--r--core/hdparm/PKGBUILD10
-rw-r--r--core/inetutils/PKGBUILD9
-rw-r--r--core/libarchive/PKGBUILD21
-rw-r--r--core/libarchive/sparse-file.patch13
-rw-r--r--core/libassuan/PKGBUILD31
-rw-r--r--core/libassuan/libassuan.install20
-rw-r--r--core/libksba/PKGBUILD23
-rw-r--r--core/libksba/libksba.install20
-rw-r--r--core/openssl/PKGBUILD8
-rw-r--r--core/perl/PKGBUILD8
-rw-r--r--core/perl/digest_eval_hole.diff61
-rw-r--r--core/pinentry/PKGBUILD37
-rw-r--r--core/pinentry/gtk2-pinentry-segfault.patch11
-rw-r--r--core/pinentry/pinentry.install20
-rw-r--r--core/pth/PKGBUILD43
-rw-r--r--core/rpcbind/PKGBUILD6
-rw-r--r--extra/at-spi2-atk/PKGBUILD14
-rw-r--r--extra/at-spi2-core/PKGBUILD14
-rw-r--r--extra/audacity/PKGBUILD8
-rw-r--r--extra/audacity/audacity-1.3.13-ffmpeg.patch568
-rw-r--r--extra/bluez/PKGBUILD15
-rw-r--r--extra/cifs-utils/PKGBUILD11
-rw-r--r--extra/claws-mail-extra-plugins/PKGBUILD6
-rw-r--r--extra/clutter-gst/PKGBUILD6
-rw-r--r--extra/cmake/PKGBUILD4
-rw-r--r--extra/colord/PKGBUILD13
-rw-r--r--extra/cppunit/PKGBUILD27
-rw-r--r--extra/dhcp/PKGBUILD8
-rw-r--r--extra/ethtool/PKGBUILD6
-rw-r--r--extra/fontforge/PKGBUILD5
-rw-r--r--extra/gcin/PKGBUILD6
-rw-r--r--extra/git/PKGBUILD8
-rw-r--r--extra/gjs/PKGBUILD15
-rw-r--r--extra/gmime/PKGBUILD13
-rw-r--r--extra/gnome-shell/PKGBUILD28
-rw-r--r--extra/gnome-shell/revert-notificationdaemon-group-based-on-pid-and-titles.patch224
-rw-r--r--extra/gnucash/PKGBUILD14
-rw-r--r--extra/grilo-plugins/PKGBUILD4
-rw-r--r--extra/gvfs/PKGBUILD4
-rw-r--r--extra/hydrogen/PKGBUILD14
-rw-r--r--extra/hydrogen/install.patch12
-rw-r--r--extra/java7-openjdk/PKGBUILD235
-rw-r--r--extra/java7-openjdk/glibc2_15.diff232
-rw-r--r--extra/java7-openjdk/jre7-openjdk-headless.install15
-rw-r--r--extra/java7-openjdk/jre7-openjdk.install6
-rw-r--r--extra/kdeutils/PKGBUILD4
-rw-r--r--extra/libass/PKGBUILD6
-rw-r--r--extra/libassuan/PKGBUILD11
-rw-r--r--extra/libreoffice/PKGBUILD67
-rw-r--r--extra/lighttpd/PKGBUILD8
-rw-r--r--extra/lighttpd/lighttpd.conf2
-rw-r--r--extra/lighttpd/lighttpd.logrotate.d3
-rw-r--r--extra/lirc/PKGBUILD10
-rw-r--r--extra/lirc/lirc.install2
-rw-r--r--extra/mail-notification/PKGBUILD19
-rw-r--r--extra/mail-notification/mail-notification-5.4-gmime.patch63
-rw-r--r--extra/mail-notification/mail-notification-5.4-libx11.patch13
-rw-r--r--extra/mpg123/PKGBUILD9
-rw-r--r--extra/mutter/PKGBUILD20
-rw-r--r--extra/obexd/PKGBUILD6
-rw-r--r--extra/openjdk6/PKGBUILD37
-rw-r--r--extra/openjdk6/glibc2_15.diff236
-rw-r--r--extra/oxygen-gtk2/PKGBUILD32
-rw-r--r--extra/oxygen-gtk3/PKGBUILD29
-rw-r--r--extra/perl-dbd-mysql/PKGBUILD4
-rw-r--r--extra/php-suhosin/PKGBUILD12
-rw-r--r--extra/pyalpm/PKGBUILD6
-rw-r--r--extra/qemu-kvm/PKGBUILD21
-rw-r--r--extra/qemu/PKGBUILD18
-rw-r--r--extra/qtwebkit/PKGBUILD14
-rw-r--r--extra/rdesktop/PKGBUILD6
-rw-r--r--extra/rhythmbox/PKGBUILD20
-rw-r--r--extra/ristretto/PKGBUILD6
-rw-r--r--extra/sdl_image/PKGBUILD29
-rw-r--r--extra/sdl_mixer/PKGBUILD37
-rw-r--r--extra/sdl_net/PKGBUILD24
-rw-r--r--extra/sdl_ttf/PKGBUILD23
-rw-r--r--extra/spamassassin/PKGBUILD68
-rw-r--r--extra/spamassassin/spamd10
-rw-r--r--extra/tftp-hpa/PKGBUILD8
-rw-r--r--extra/totem-plparser/PKGBUILD16
-rw-r--r--extra/tumbler/PKGBUILD46
-rw-r--r--extra/uim/PKGBUILD6
-rw-r--r--extra/vim/PKGBUILD26
-rw-r--r--extra/whois/PKGBUILD6
-rw-r--r--extra/wipe/PKGBUILD24
-rw-r--r--extra/wireshark/PKGBUILD28
-rw-r--r--extra/wireshark/wireshark-gtk.install3
-rw-r--r--extra/xf86-input-wacom/PKGBUILD8
-rw-r--r--extra/xfce4-netload-plugin/PKGBUILD25
-rw-r--r--extra/xmlto/PKGBUILD8
-rw-r--r--extra/xmms/PKGBUILD10
-rw-r--r--extra/xscreensaver/PKGBUILD14
-rw-r--r--multilib-staging/binutils-multilib/PKGBUILD79
-rw-r--r--multilib-staging/binutils-multilib/binutils.install17
-rw-r--r--multilib-staging/chuck/PKGBUILD41
-rw-r--r--multilib-staging/gcc-multilib/PKGBUILD303
-rw-r--r--multilib-staging/gcc-multilib/gcc-ada.install20
-rw-r--r--multilib-staging/gcc-multilib/gcc-fortran.install16
-rw-r--r--multilib-staging/gcc-multilib/gcc-go.install20
-rw-r--r--multilib-staging/gcc-multilib/gcc-hash-style-both.patch122
-rw-r--r--multilib-staging/gcc-multilib/gcc-libs.install16
-rw-r--r--multilib-staging/gcc-multilib/gcc.install20
-rw-r--r--multilib-staging/gcc-multilib/gcc_pure64-multilib.patch24
-rw-r--r--multilib-staging/jack2-multilib/40-hpet-permissions.rules2
-rw-r--r--multilib-staging/jack2-multilib/99-audio.conf2
-rw-r--r--multilib-staging/jack2-multilib/PKGBUILD142
-rw-r--r--multilib-staging/lib32-cairo/PKGBUILD36
-rw-r--r--multilib-staging/lib32-cairo/cairo-1.10.0-buggy_gradients.patch13
-rw-r--r--multilib-staging/lib32-gdk-pixbuf2/PKGBUILD45
-rw-r--r--multilib-staging/lib32-gdk-pixbuf2/gdk-pixbuf2.install11
-rw-r--r--multilib-staging/lib32-glib2/PKGBUILD40
-rw-r--r--multilib-staging/lib32-glibc/PKGBUILD176
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.10-bz4781.patch42
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.14-revert-4768ae77.patch37
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.15-lddebug-scopes.patch27
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.15-math64crash.patch184
-rw-r--r--multilib-staging/lib32-glibc/glibc-2.15-revert-c5a0802a.patch229
-rw-r--r--multilib-staging/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib-staging/lib32-glibc/lib32-glibc.conf1
-rw-r--r--multilib-staging/lib32-gtk2/PKGBUILD57
-rw-r--r--multilib-staging/lib32-gtk2/gtk-modules-32.patch12
-rw-r--r--multilib-staging/lib32-gtk2/gtk2.install16
-rw-r--r--multilib-staging/lib32-gtk2/xid-collision-debug.patch15
-rw-r--r--multilib-staging/lib32-libcups/PKGBUILD38
-rw-r--r--multilib-staging/lib32-libpng/PKGBUILD50
-rw-r--r--multilib-staging/lib32-libtiff/PKGBUILD41
-rw-r--r--multilib-staging/lib32-libtiff/libtiff-CVE-2009-2285.patch22
-rw-r--r--multilib-staging/lib32-pango/PKGBUILD44
-rw-r--r--multilib-staging/lib32-pango/pango-modules-conffile.patch20
-rw-r--r--multilib-staging/lib32-pango/pango.install21
-rw-r--r--multilib-staging/lib32-qt/PKGBUILD86
-rw-r--r--multilib-staging/libtool-multilib/PKGBUILD73
-rw-r--r--multilib-staging/libtool-multilib/libtool.install22
-rw-r--r--multilib-testing/binutils-multilib/PKGBUILD79
-rw-r--r--multilib-testing/binutils-multilib/binutils.install17
-rw-r--r--multilib-testing/chuck/PKGBUILD41
-rw-r--r--multilib-testing/dev86/PKGBUILD52
-rw-r--r--multilib-testing/dev86/dev86-0.16.17-fortify.patch43
-rw-r--r--multilib-testing/dev86/dev86-pic.patch20
-rw-r--r--multilib-testing/gcc-multilib/PKGBUILD303
-rw-r--r--multilib-testing/gcc-multilib/gcc-ada.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-fortran.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc-go.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-hash-style-both.patch122
-rw-r--r--multilib-testing/gcc-multilib/gcc-libs.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc_pure64-multilib.patch24
-rw-r--r--multilib-testing/jack2-multilib/40-hpet-permissions.rules2
-rw-r--r--multilib-testing/jack2-multilib/99-audio.conf2
-rw-r--r--multilib-testing/jack2-multilib/PKGBUILD143
-rw-r--r--multilib-testing/lib32-gdk-pixbuf2/PKGBUILD45
-rw-r--r--multilib-testing/lib32-gdk-pixbuf2/gdk-pixbuf2.install11
-rw-r--r--multilib-testing/lib32-glib2/PKGBUILD40
-rw-r--r--multilib-testing/lib32-glibc/PKGBUILD176
-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.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch37
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch27
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-math64crash.patch184
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch229
-rw-r--r--multilib-testing/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib-testing/lib32-glibc/lib32-glibc.conf1
-rw-r--r--multilib-testing/lib32-gtk2/PKGBUILD57
-rw-r--r--multilib-testing/lib32-gtk2/gtk-modules-32.patch12
-rw-r--r--multilib-testing/lib32-gtk2/gtk2.install16
-rw-r--r--multilib-testing/lib32-gtk2/xid-collision-debug.patch15
-rw-r--r--multilib-testing/lib32-libxcb/PKGBUILD41
-rw-r--r--multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch12
-rw-r--r--multilib-testing/lib32-pango/PKGBUILD44
-rw-r--r--multilib-testing/lib32-pango/pango-modules-conffile.patch20
-rw-r--r--multilib-testing/lib32-pango/pango.install21
-rw-r--r--multilib-testing/libtool-multilib/PKGBUILD73
-rw-r--r--multilib-testing/libtool-multilib/libtool.install22
-rw-r--r--multilib-testing/nspluginwrapper/PKGBUILD51
-rw-r--r--multilib-testing/nspluginwrapper/fix_missing_lib.patch11
-rw-r--r--multilib-testing/nspluginwrapper/install5
-rw-r--r--multilib-testing/q4wine/PKGBUILD31
-rw-r--r--multilib-testing/q4wine/q4wine.desktop18
-rw-r--r--multilib-testing/wine/PKGBUILD145
-rw-r--r--multilib-testing/wine/wine.install12
-rw-r--r--multilib/gcc-multilib/gcc_pure64-multilib.patch24
-rw-r--r--multilib/nspluginwrapper/fix_missing_lib.patch11
-rw-r--r--staging/abiword/PKGBUILD80
-rw-r--r--staging/abiword/abiword-2.8.6-libpng15.patch100
-rw-r--r--staging/abiword/abiword-2.8.6-no-undefined.patch21
-rw-r--r--staging/abiword/abiword.install11
-rw-r--r--staging/abiword/compat_libwpg_0_9.patch371
-rw-r--r--staging/allegro/PKGBUILD36
-rw-r--r--staging/alsaplayer/PKGBUILD37
-rw-r--r--staging/alsaplayer/alsaplayer.install11
-rw-r--r--staging/amule/PKGBUILD44
-rw-r--r--staging/autopano-sift-c/PKGBUILD31
-rw-r--r--staging/cairo/PKGBUILD38
-rw-r--r--staging/cairo/cairo-1.10.0-buggy_gradients.patch13
-rw-r--r--staging/celestia/PKGBUILD50
-rw-r--r--staging/celestia/celestia-1.5.1-gcc44.patch20
-rw-r--r--staging/celestia/celestia-1.6.1-gcc46.patch13
-rw-r--r--staging/celestia/celestia-1.6.1-gentoo.patch23
-rw-r--r--staging/celestia/celestia-1.6.1-libpng15.patch14
-rw-r--r--staging/celestia/celestia-1.6.1-linking.patch54
-rw-r--r--staging/dvdauthor/PKGBUILD35
-rw-r--r--staging/dvdauthor/dvdauthor-0.7.0-libpng15.patch19
-rw-r--r--staging/enblend-enfuse/PKGBUILD39
-rw-r--r--staging/enblend-enfuse/enblend-4.0-libpng15.patch220
-rw-r--r--staging/enblend-enfuse/enblend-enfuse.install22
-rw-r--r--staging/enblend-enfuse/libpng-1.4.patch14
-rw-r--r--staging/fbida/PKGBUILD27
-rw-r--r--staging/feh/PKGBUILD29
-rw-r--r--staging/fltk/PKGBUILD62
-rw-r--r--staging/fltk/fltk-games.install11
-rw-r--r--staging/fltk/fltk.install12
-rw-r--r--staging/fontforge/PKGBUILD40
-rw-r--r--staging/fvwm/PKGBUILD33
-rw-r--r--staging/fvwm/fvwm.desktop7
-rw-r--r--staging/gd/PKGBUILD31
-rw-r--r--staging/gd/libpng14.patch12
-rw-r--r--staging/gdk-pixbuf2/PKGBUILD33
-rw-r--r--staging/gdk-pixbuf2/gdk-pixbuf2.install11
-rw-r--r--staging/gegl/PKGBUILD36
-rw-r--r--staging/gif2png/PKGBUILD36
-rw-r--r--staging/gif2png/gif2png-2.5.4-libpng15.patch43
-rw-r--r--staging/glhack/PKGBUILD54
-rw-r--r--staging/glhack/glhack-libpng15.patch11
-rw-r--r--staging/glhack/glhack.install24
-rw-r--r--staging/gmime/PKGBUILD32
-rw-r--r--staging/graphicsmagick/PKGBUILD55
-rw-r--r--staging/graphviz/LICENSE87
-rw-r--r--staging/graphviz/PKGBUILD51
-rw-r--r--staging/graphviz/install12
-rw-r--r--staging/grilo-plugins/PKGBUILD39
-rw-r--r--staging/gtkglext/PKGBUILD35
-rw-r--r--staging/gtkglext/gtk2.20.patch77
-rw-r--r--staging/hugin/PKGBUILD34
-rw-r--r--staging/hugin/hugin.install15
-rw-r--r--staging/imagemagick/PKGBUILD84
-rw-r--r--staging/imagemagick/perlmagick.rpath.patch10
-rw-r--r--staging/imlib/CAN-2004-1026.patch510
-rw-r--r--staging/imlib/PKGBUILD40
-rw-r--r--staging/imlib/aclocal-fixes.patch20
-rw-r--r--staging/imlib/debian-bug448360.patch92
-rw-r--r--staging/imlib/imlib-1.9.15-libpng15.patch142
-rw-r--r--staging/kdelibs3/PKGBUILD94
-rw-r--r--staging/kdelibs3/acinclude.patch66
-rw-r--r--staging/kdelibs3/kconf_updaterc2
-rwxr-xr-xstaging/kdelibs3/kde3.profile6
-rw-r--r--staging/kdelibs3/kde4-compatibility.patch1012
-rw-r--r--staging/kdelibs3/kdelibs3-missing-include.patch10
-rw-r--r--staging/kdelibs3/kdelibs3.install12
-rw-r--r--staging/kdelibs3/openssl.patch180
-rw-r--r--staging/lbreakout2/PKGBUILD44
-rw-r--r--staging/lbreakout2/lbreakout2.desktop10
-rw-r--r--staging/lbreakout2/lbreakout2.pngbin0 -> 1930 bytes
-rw-r--r--staging/lcms/PKGBUILD28
-rw-r--r--staging/lcms2/PKGBUILD27
-rw-r--r--staging/libgdiplus/PKGBUILD29
-rw-r--r--staging/libgdiplus/gdiplus-png14.patch20
-rw-r--r--staging/libgdiplus/libpng15.patch164
-rw-r--r--staging/libpano13/PKGBUILD27
-rw-r--r--staging/libpng/PKGBUILD41
-rw-r--r--staging/librsvg/PKGBUILD31
-rw-r--r--staging/librsvg/librsvg.install11
-rw-r--r--staging/libtiff/PKGBUILD33
-rw-r--r--staging/libunique3/PKGBUILD27
-rw-r--r--staging/libwmf/PKGBUILD40
-rw-r--r--staging/libwmf/libwmf-0.2.8.4-libpng-1.5.patch12
-rw-r--r--staging/libwmf/libwmf-0.2.8.4-useafterfree.patch10
-rw-r--r--staging/libwmf/libwmf.install13
-rw-r--r--staging/libxfcegui4/PKGBUILD38
-rw-r--r--staging/libxfcegui4/libxfcegui4.install14
-rw-r--r--staging/links/PKGBUILD47
-rw-r--r--staging/links/links.desktop7
-rw-r--r--staging/mail-notification/PKGBUILD85
-rw-r--r--staging/mail-notification/dont-update-cache.patch22
-rw-r--r--staging/mail-notification/mail-notification-5.4-add-fallback-icon.patch16
-rw-r--r--staging/mail-notification/mail-notification-5.4-camel_headers.patch36
-rw-r--r--staging/mail-notification/mail-notification-5.4-evolution-3-0-support.patch122
-rw-r--r--staging/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch12
-rw-r--r--staging/mail-notification/mail-notification-5.4-evolution.patch244
-rw-r--r--staging/mail-notification/mail-notification-5.4-gmime.patch63
-rw-r--r--staging/mail-notification/mail-notification-5.4-gtk3-support.patch1416
-rw-r--r--staging/mail-notification/mail-notification-5.4-icons.patch39
-rw-r--r--staging/mail-notification/mail-notification-5.4-kde-trayicon.patch72
-rw-r--r--staging/mail-notification/mail-notification-5.4-libx11.patch13
-rw-r--r--staging/mail-notification/mail-notification-5.4-popup-attach.patch45
-rw-r--r--staging/mail-notification/mail-notification-5.4-sasl_encode64.patch24
-rw-r--r--staging/mail-notification/mail-notification-5.4-weak.patch11
-rw-r--r--staging/mail-notification/mail-notification.install24
-rw-r--r--staging/mail-notification/remove-ubuntu-special-case.patch33
-rw-r--r--staging/neverball/PKGBUILD47
-rw-r--r--staging/neverball/neverball-1.5.4-underlink.patch22
-rw-r--r--staging/qrencode/PKGBUILD30
-rw-r--r--staging/qt/PKGBUILD126
-rw-r--r--staging/qt/assistant.desktop9
-rw-r--r--staging/qt/designer.desktop11
-rw-r--r--staging/qt/linguist.desktop10
-rw-r--r--staging/qt/qt.install12
-rw-r--r--staging/qt/qtconfig.desktop10
-rw-r--r--staging/qt3/PKGBUILD133
-rw-r--r--staging/qt3/eastern_asian_languagues.diff39
-rw-r--r--staging/qt3/gcc-4.6.patch33
-rw-r--r--staging/qt3/mysql.patch47
-rw-r--r--staging/qt3/qt-copy-kde-patches.tar.bz2bin0 -> 31498 bytes
-rw-r--r--staging/qt3/qt-font-default-subst.diff77
-rw-r--r--staging/qt3/qt-odbc.patch19
-rw-r--r--staging/qt3/qt-patches.tar.bz2bin0 -> 3708 bytes
-rw-r--r--staging/qt3/qt.install12
-rw-r--r--staging/qt3/qt.profile4
-rw-r--r--staging/qt3/qt3-png15.patch212
-rw-r--r--staging/qt3/utf8-bug-qt3.diff101
-rw-r--r--staging/rrdtool/PKGBUILD35
-rw-r--r--staging/scim-anthy/PKGBUILD27
-rw-r--r--staging/scim-chewing/PKGBUILD28
-rw-r--r--staging/scim-tables/PKGBUILD27
-rw-r--r--staging/sox/PKGBUILD37
-rw-r--r--staging/sox/sox-14.3.2-ffmpeg.patch40
-rw-r--r--staging/totem-plparser/PKGBUILD29
-rw-r--r--staging/transfig/LICENSE23
-rw-r--r--staging/transfig/PKGBUILD37
-rw-r--r--staging/transfig/transfig-3.2.5d-libpng-1.5.patch39
-rw-r--r--staging/tumbler/PKGBUILD44
-rw-r--r--staging/vice/PKGBUILD35
-rw-r--r--staging/vice/vice-2.3-x11video.patch11
-rw-r--r--staging/windowmaker-crm-git/PKGBUILD36
-rw-r--r--staging/windowmaker-crm-git/libpng-1.4.patch12
-rw-r--r--staging/windowmaker-crm-git/wmaker.desktop5
-rw-r--r--staging/windowmaker/PKGBUILD34
-rw-r--r--staging/windowmaker/libpng-1.4.patch12
-rw-r--r--staging/windowmaker/windowmaker-gcc4.patch.tar.bz2bin0 -> 39677 bytes
-rw-r--r--staging/windowmaker/wmaker.desktop5
-rw-r--r--staging/wv/PKGBUILD29
-rw-r--r--staging/wv/fix-soname.patch14
-rw-r--r--staging/wxgtk/PKGBUILD37
-rw-r--r--staging/xaos/PKGBUILD28
-rw-r--r--staging/xaos/xaos-3.5-libpng15.patch131
-rw-r--r--staging/xaos/xaos.install20
-rw-r--r--staging/xfce4-datetime-plugin/PKGBUILD33
-rw-r--r--staging/xfce4-notes-plugin/PKGBUILD34
-rw-r--r--staging/xfce4-notes-plugin/xfce4-notes-plugin.install12
-rw-r--r--staging/xfce4-quicklauncher-plugin/PKGBUILD50
-rw-r--r--staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch10
-rw-r--r--staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch103
-rw-r--r--staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch27
-rw-r--r--staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch12
-rw-r--r--staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch11
-rw-r--r--staging/xfce4-sensors-plugin/PKGBUILD38
-rw-r--r--staging/xfce4-sensors-plugin/xfce4-sensors-plugin.install11
-rw-r--r--staging/xfig/LICENSE33
-rw-r--r--staging/xfig/PKGBUILD65
-rw-r--r--staging/xfig/xfig-3.2.4-redhat.patch31
-rw-r--r--staging/xfig/xfig-3.2.5-color-resources.patch39
-rw-r--r--staging/xfig/xfig-3.2.5-enable-Xaw3d.patch18
-rw-r--r--staging/xfig/xfig-3.2.5-fhs.patch12
-rw-r--r--staging/xfig/xfig-3.2.5-missing-protos.patch11
-rw-r--r--staging/xfig/xfig-3.2.5-urwfonts.patch79
-rw-r--r--staging/xfig/xfig-3.2.5b-fix-eps-reading.patch46
-rw-r--r--staging/xfig/xfig-3.2.5b-libpng-1.5.patch70
-rw-r--r--staging/xfig/xfig.3.2.5-modularX.patch28
-rw-r--r--staging/xfig/xfig.desktop47
-rw-r--r--staging/xfig/xfig.install11
-rw-r--r--staging/xine-ui/PKGBUILD44
-rw-r--r--staging/xine-ui/fix_lirc.diff13
-rw-r--r--staging/xine-ui/lirc-check-a89347673097.patch64
-rw-r--r--staging/xine-ui/lirc-makefile-a68dd15ff7ae.patch19
-rw-r--r--staging/xine-ui/xine-ui-0.99.6-libpng15.patch13
-rw-r--r--staging/xine-ui/xine-ui-xdg.diff206
-rw-r--r--staging/xine-ui/xine-ui.install13
-rw-r--r--staging/zvbi/PKGBUILD38
-rw-r--r--staging/zvbi/fix-includes.patch36
-rw-r--r--staging/zvbi/zvbi-0.2.33-libpng15.patch21
-rw-r--r--testing/btrfs-progs/PKGBUILD6
-rw-r--r--testing/e2fsprogs/MIT-LICENSE25
-rw-r--r--testing/e2fsprogs/PKGBUILD47
-rw-r--r--testing/e2fsprogs/e2fsprogs.install20
-rw-r--r--testing/e2fsprogs/mke2fs.conf26
-rw-r--r--testing/fontforge/PKGBUILD40
-rw-r--r--testing/gmime/PKGBUILD32
-rw-r--r--testing/grilo-plugins/PKGBUILD39
-rw-r--r--testing/hdparm/PKGBUILD42
-rw-r--r--testing/hdparm/wiper.sh.2_6.max-ranges.patch84
-rw-r--r--testing/inetutils/PKGBUILD77
-rw-r--r--testing/inetutils/dnsdomainname3
-rw-r--r--testing/inetutils/domainname3
-rw-r--r--testing/inetutils/ftpd.conf4
-rw-r--r--testing/inetutils/ftpd.rc37
-rw-r--r--testing/inetutils/inetutils.install20
-rw-r--r--testing/inetutils/rexec.xinetd10
-rw-r--r--testing/inetutils/rlogin.xinetd10
-rw-r--r--testing/inetutils/rsh.xinetd10
-rw-r--r--testing/inetutils/talk.xinetd10
-rw-r--r--testing/inetutils/telnet.xinetd10
-rw-r--r--testing/kmod/PKGBUILD24
-rw-r--r--testing/libarchive/PKGBUILD13
-rw-r--r--testing/libarchive/sparse-file.patch13
-rw-r--r--testing/libxcb/PKGBUILD32
-rw-r--r--testing/libxcb/libxcb-1.1-no-pthread-stubs.patch12
-rw-r--r--testing/linux-lts/PKGBUILD273
-rw-r--r--testing/linux-lts/change-default-console-loglevel.patch12
-rw-r--r--testing/linux-lts/config5832
-rw-r--r--testing/linux-lts/config.x86_645571
-rw-r--r--testing/linux-lts/i915-fix-ghost-tv-output.patch26
-rw-r--r--testing/linux-lts/linux-lts.install62
-rw-r--r--testing/linux-lts/linux-lts.preset14
-rw-r--r--testing/mail-notification/PKGBUILD85
-rw-r--r--testing/mail-notification/dont-update-cache.patch22
-rw-r--r--testing/mail-notification/mail-notification-5.4-add-fallback-icon.patch16
-rw-r--r--testing/mail-notification/mail-notification-5.4-camel_headers.patch36
-rw-r--r--testing/mail-notification/mail-notification-5.4-evolution-3-0-support.patch122
-rw-r--r--testing/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch12
-rw-r--r--testing/mail-notification/mail-notification-5.4-evolution.patch244
-rw-r--r--testing/mail-notification/mail-notification-5.4-gmime.patch63
-rw-r--r--testing/mail-notification/mail-notification-5.4-gtk3-support.patch1416
-rw-r--r--testing/mail-notification/mail-notification-5.4-icons.patch39
-rw-r--r--testing/mail-notification/mail-notification-5.4-kde-trayicon.patch72
-rw-r--r--testing/mail-notification/mail-notification-5.4-libx11.patch13
-rw-r--r--testing/mail-notification/mail-notification-5.4-popup-attach.patch45
-rw-r--r--testing/mail-notification/mail-notification-5.4-sasl_encode64.patch24
-rw-r--r--testing/mail-notification/mail-notification-5.4-weak.patch11
-rw-r--r--testing/mail-notification/mail-notification.install24
-rw-r--r--testing/mail-notification/remove-ubuntu-special-case.patch33
-rw-r--r--testing/nilfs-utils/PKGBUILD27
-rw-r--r--testing/openssl/PKGBUILD70
-rw-r--r--testing/openssl/ca-dir.patch33
-rw-r--r--testing/openssl/fix-manpages.patch1920
-rw-r--r--testing/openssl/no-rpath.patch11
-rw-r--r--testing/perl/PKGBUILD8
-rw-r--r--testing/perl/digest_eval_hole.diff61
-rw-r--r--testing/rpcbind/PKGBUILD42
-rwxr-xr-xtesting/rpcbind/rpcbind39
-rw-r--r--testing/rpcbind/rpcbind-sunrpc.patch22
-rw-r--r--testing/sqlite3/PKGBUILD88
-rw-r--r--testing/sqlite3/license.txt33
-rw-r--r--testing/systemd/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch87
-rw-r--r--testing/systemd/0001-units-make-sure-syslog-socket-goes-away-early-during.patch26
-rw-r--r--testing/systemd/PKGBUILD18
-rw-r--r--testing/systemd/systemd.install16
-rw-r--r--testing/totem-plparser/PKGBUILD6
-rw-r--r--testing/udev/0001-udevd-kill-hanging-event-processes-after-30-seconds.patch162
-rw-r--r--testing/udev/PKGBUILD107
-rw-r--r--testing/udev/udev.install65
641 files changed, 47293 insertions, 1274 deletions
diff --git a/community-staging/bwbar/PKGBUILD b/community-staging/bwbar/PKGBUILD
new file mode 100644
index 000000000..9d2a2eba3
--- /dev/null
+++ b/community-staging/bwbar/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 62406 2012-01-19 19:54:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+
+pkgname=bwbar
+pkgver=1.2.3
+pkgrel=3
+arch=(i686 x86_64)
+pkgdesc="Generates text and graphical readout of the current bandwidth usage."
+url="http://www.kernel.org/pub/software/web/bwbar/"
+license=("GPL")
+depends=('libpng')
+#source=(http://www.kernel.org/pub/software/web/$pkgname/$pkgname-$pkgver.tar.gz)
+source=(http://arch.p5n.pp.ru/~sergej/dl/2011/$pkgname-$pkgver.tar.gz)
+md5sums=('766265ddf0615b552ff19d12f78be719')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i '1,1i#include <zlib.h>' bwbar.c
+ sed -i 's|png_ptr->jmpbuf|png_jmpbuf(png_ptr)|' bwbar.c
+ ./configure
+ make
+ install -D -m755 bwbar $pkgdir/usr/bin/bwbar
+}
diff --git a/community-staging/caph/PKGBUILD b/community-staging/caph/PKGBUILD
new file mode 100644
index 000000000..3ba543785
--- /dev/null
+++ b/community-staging/caph/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 62387 2012-01-19 18:48:33Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: jose <jose1711 [at] gmail (dot) com>
+
+pkgname=caph
+arch=('i686' 'x86_64')
+pkgver=1.1
+pkgrel=2
+pkgdesc="A sandbox game based on physics which uses doodles as a primary gameplay element"
+license=('GPL')
+url="http://sourceforge.net/projects/caphgame/"
+depends=('sdl' 'libgl' 'libpng')
+makedepends=('mesa')
+source=("http://sourceforge.net/projects/caphgame/files/caph/caphgame-${pkgver}/caph-${pkgver}.tar.bz2"
+ "caph.desktop")
+md5sums=('dbc2cfbb5cd98a77c5b731515d3a77b9'
+ '79c6448995026f77fd912dd109b50287')
+
+build() {
+ cd $srcdir/caph-${pkgver}/src
+ mkdir -p $pkgdir/usr/{bin,share/{caph/maps,doc/caph}}
+ ./confg
+ ./build
+}
+
+package() {
+ cd $srcdir/caph-${pkgver}/src
+ install -D -m755 ./caph $pkgdir/usr/bin/caph
+ install -D -m644 ../doc/caph/* $pkgdir/usr/share/doc/caph/ || true
+ install -D -m644 ../share/caph/* $pkgdir/usr/share/caph/ || true
+ install -D -m644 ../share/caph/maps/* $pkgdir/usr/share/caph/maps || true
+ install -D -m644 $srcdir/caph.desktop $pkgdir/usr/share/applications/caph.desktop
+ install -D -m644 ../share/caph/brush.png $pkgdir/usr/share/pixmaps/caph.png
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community-staging/caph/caph.desktop b/community-staging/caph/caph.desktop
new file mode 100644
index 000000000..6cc6c711c
--- /dev/null
+++ b/community-staging/caph/caph.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=Caph
+Comment=Sandbox game based on physics
+Exec=caph
+Icon=caph.png
+Categories=Game;LogicGame;
diff --git a/community-staging/clanlib/PKGBUILD b/community-staging/clanlib/PKGBUILD
new file mode 100644
index 000000000..60e6cada0
--- /dev/null
+++ b/community-staging/clanlib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 62388 2012-01-19 18:49:44Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=clanlib
+pkgver=2.3.4
+pkgrel=2
+pkgdesc="A multi-platform game development library."
+arch=('i686' 'x86_64')
+url="http://clanlib.org/"
+license=('zlib')
+depends=('alsa-lib' 'libjpeg' 'libmikmod' 'libpng' 'libvorbis' 'libxi' 'libxmu' 'mesa' 'sdl_gfx' 'freetype2' 'pcre' 'sqlite3')
+makedepends=('doxygen' 'graphviz')
+options=('!libtool')
+source=(http://clanlib.org/download/releases-2.0/ClanLib-${pkgver}.tgz)
+md5sums=('cc89f632aa194399e909bbbd13beca1b')
+
+build() {
+ cd ${srcdir}/ClanLib-${pkgver}
+
+ ./configure --prefix=/usr --enable-docs
+
+ make
+ # Somehow this breaks. :(
+ #make html
+}
+
+package() {
+ cd ${srcdir}/ClanLib-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ #make DESTDIR=${pkgdir} install-html
+
+ install -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community-staging/darktable/PKGBUILD b/community-staging/darktable/PKGBUILD
new file mode 100644
index 000000000..48c078e89
--- /dev/null
+++ b/community-staging/darktable/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 62299 2012-01-19 06:47:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Christian Himpel <chressie at gmail dot com>
+# Contributor: Johannes Hanika <hanatos at gmail dot com>
+
+pkgname=darktable
+pkgver=0.9.3
+_pkgver=0.9
+pkgrel=5
+pkgdesc="Utility to organize and develop raw images"
+arch=('i686' 'x86_64')
+url=http://darktable.sf.net/
+license=('GPL3')
+depends=('exiv2>=0.18' 'intltool>=0.40' 'lcms2' 'lensfun>=0.2.3' 'libglade' 'dbus-glib'
+ 'curl' 'libgnome-keyring' 'libgphoto2' 'libusb-compat' 'openexr' 'sqlite3')
+makedepends=('intltool>=0.40' 'cmake' 'librsvg')
+# 'gnome-doc-utils' 'libxslt' 'fop')
+optdepends=('librsvg')
+install=darktable.install
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/darktable/darktable/${_pkgver}/darktable-$pkgver.tar.gz)
+md5sums=('49253a3a2990a4bf8e0b0a19295f19bd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+# mv doc/usermanual/CMakeLists.tx doc/usermanual/CMakeLists.txt
+ mkdir -p build
+ cd build
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DDONT_INSTALL_GCONF_SCHEMAS=True \
+ -DBINARY_PACKAGE_BUILD=1 \
+ -DUSE_GCONF_BACKEND=Off \
+ -DBUILD_USERMANUAL=False \
+ ..
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/build
+ make DESTDIR=$pkgdir install
+ mv "${pkgdir}/usr/share/doc/darktable" "${pkgdir}/usr/share/doc/${pkgname}-${pkgver}"
+# mkdir -p "${pkgdir}/usr/share/gconf/schemas/"
+# mv "${pkgdir}/etc/gconf/schemas/darktable.schemas" "${pkgdir}/usr/share/gconf/schemas/"
+}
diff --git a/community-staging/darktable/darktable.install b/community-staging/darktable/darktable.install
new file mode 100644
index 000000000..9fd6af293
--- /dev/null
+++ b/community-staging/darktable/darktable.install
@@ -0,0 +1,23 @@
+pkgname=darktable
+
+post_install() {
+# usr/sbin/gconfpkg --install ${pkgname}
+ [ -x `which update-desktop-database` ] && update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+# usr/sbin/gconfpkg --uninstall ${pkgname}
+ true
+}
+
+post_remove() {
+ [ -x `which update-desktop-database` ] && update-desktop-database -q
+}
diff --git a/community-staging/dia/PKGBUILD b/community-staging/dia/PKGBUILD
new file mode 100644
index 000000000..0a2d5e7b5
--- /dev/null
+++ b/community-staging/dia/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 62396 2012-01-19 19:26:59Z spupykin $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+
+pkgname=dia
+pkgver=0.97.2
+pkgrel=2
+pkgdesc="A GTK+ based diagram creation program"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://live.gnome.org/Dia"
+install=dia.install
+depends=('libxslt' 'desktop-file-utils' 'libart-lgpl' 'gtk2')
+makedepends=('intltool' 'python2' 'docbook-xsl')
+optdepends=('python2')
+options=('!libtool' 'docs')
+source=("ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.97/${pkgname}-${pkgver}.tar.xz"
+ "dia-overflow-fix.patch")
+md5sums=('1e1180a513fb567709b09bc19f12105e'
+ '8fd9a2ad35b5a6fd8c758d7c73dbfe66')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export PYTHON=/usr/bin/python2
+ sed -i 's#python2\.1#python2 python2.1#' configure
+# patch -p1 <$srcdir/dia-overflow-fix.patch
+
+ ./configure --prefix=/usr \
+ --with-cairo \
+ --with-python \
+ --disable-gnome \
+ --with-hardbooks
+ sed -i 's#SUBDIRS = lib objects plug-ins shapes app bindings samples po sheets data doc tests installer#SUBDIRS = lib objects plug-ins shapes app bindings samples po sheets data tests installer#' Makefile
+ make
+ cd doc
+ make html
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ cd doc
+ make DESTDIR="${pkgdir}" install-html
+ ln -sf dia/html "${pkgdir}"/usr/share/dia/help
+}
diff --git a/community-staging/dia/dia-overflow-fix.patch b/community-staging/dia/dia-overflow-fix.patch
new file mode 100644
index 000000000..a6e64f3c6
--- /dev/null
+++ b/community-staging/dia/dia-overflow-fix.patch
@@ -0,0 +1,28 @@
+diff -wbBur dia-0.97.1/plug-ins/xfig/xfig-export.c dia-0.97.1.my/plug-ins/xfig/xfig-export.c
+--- dia-0.97.1/plug-ins/xfig/xfig-export.c 2009-11-07 17:28:34.000000000 +0300
++++ dia-0.97.1.my/plug-ins/xfig/xfig-export.c 2010-11-15 17:44:05.640896280 +0300
+@@ -417,6 +417,9 @@
+ if (text[i] > 127) {
+ newlen += 3;
+ }
++ if (text[i] == '\\') {
++ newlen += 1;
++ }
+ }
+ returntext = g_malloc(sizeof(char)*(newlen+1));
+ j = 0;
+@@ -1085,10 +1088,10 @@
+ figtext = figText(renderer, (unsigned char *) text);
+ /* xfig texts are specials */
+ fprintf(renderer->file, "4 %d %d %d 0 %d %s 0.0 6 0.0 0.0 %d %d %s\\001\n",
+- figAlignment(renderer, alignment),
+- figColor(renderer, color),
+- figDepth(renderer),
+- figFont(renderer),
++ (int)figAlignment(renderer, alignment),
++ (int)figColor(renderer, color),
++ (int)figDepth(renderer),
++ (int)figFont(renderer),
+ xfig_dtostr(d_buf, figFontSize(renderer)),
+ (int)figCoord(renderer, pos->x),
+ (int)figCoord(renderer, pos->y),
diff --git a/community-staging/dia/dia.install b/community-staging/dia/dia.install
new file mode 100644
index 000000000..a49438e1f
--- /dev/null
+++ b/community-staging/dia/dia.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community-staging/dillo/PKGBUILD b/community-staging/dillo/PKGBUILD
new file mode 100644
index 000000000..0bd758f9a
--- /dev/null
+++ b/community-staging/dillo/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 62398 2012-01-19 19:37:30Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=dillo
+pkgver=3.0.2
+pkgrel=2
+pkgdesc="A small, fast graphical web browser built on FLTK"
+arch=(i686 x86_64)
+url="http://www.dillo.org"
+license=('GPL')
+depends=('fltk' 'libjpeg' 'perl' 'openssl' 'libpng' 'gcc-libs' 'libxcursor'
+ 'libxi' 'libxinerama')
+backup=(etc/dillo/{dillorc,dpidrc})
+source=(http://www.dillo.org/download/$pkgname-$pkgver.tar.bz2)
+md5sums=('81b82112cefcc7d54fe2972a21f42930')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-cookies --enable-dlgui \
+ --enable-ssl
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/directfb/DirectFB-1.4.9-libpng-1.5.patch b/community-staging/directfb/DirectFB-1.4.9-libpng-1.5.patch
new file mode 100644
index 000000000..e428afbaf
--- /dev/null
+++ b/community-staging/directfb/DirectFB-1.4.9-libpng-1.5.patch
@@ -0,0 +1,244 @@
+From 83180b25e90721e717bf37c5332c22713508786e Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 20 Feb 2011 19:18:19 -0500
+Subject: [PATCH] png: add support for libpng 1.5.x
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ .../idirectfbimageprovider_png.c | 56 ++++++++++++-------
+ 1 files changed, 35 insertions(+), 21 deletions(-)
+
+diff --git a/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c b/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c
+index 6d65ea3..7d82c5c 100644
+--- a/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c
++++ b/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c
+@@ -207,7 +207,7 @@ Construct( IDirectFBImageProvider *thiz,
+ if (!data->png_ptr)
+ goto error;
+
+- if (setjmp( data->png_ptr->jmpbuf )) {
++ if (setjmp( png_jmpbuf( data->png_ptr ))) {
+ D_ERROR( "ImageProvider/PNG: Error reading header!\n" );
+ goto error;
+ }
+@@ -292,7 +292,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz,
+ rect = dst_data->area.wanted;
+ }
+
+- if (setjmp( data->png_ptr->jmpbuf )) {
++ if (setjmp( png_jmpbuf( data->png_ptr ))) {
+ D_ERROR( "ImageProvider/PNG: Error during decoding!\n" );
+
+ if (data->stage < STAGE_IMAGE)
+@@ -327,6 +327,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz,
+ }
+ else {
+ CoreSurfaceBufferLock lock;
++ png_byte bit_depth = png_get_bit_depth( data->png_ptr, data->info_ptr );
+
+ ret = dfb_surface_lock_buffer( dst_surface, CSBR_BACK, CSAID_CPU, CSAF_WRITE, &lock );
+ if (ret)
+@@ -334,7 +335,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz,
+
+ switch (data->color_type) {
+ case PNG_COLOR_TYPE_PALETTE:
+- if (dst_surface->config.format == DSPF_LUT8 && data->info_ptr->bit_depth == 8) {
++ if (dst_surface->config.format == DSPF_LUT8 && bit_depth == 8) {
+ /*
+ * Special indexed PNG to LUT8 loading.
+ */
+@@ -377,7 +378,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz,
+ }
+ else {
+ if (data->color_type == PNG_COLOR_TYPE_GRAY) {
+- int num = 1 << data->info_ptr->bit_depth;
++ int num = 1 << bit_depth;
+
+ for (x=0; x<num; x++) {
+ int value = x * 255 / (num - 1);
+@@ -386,7 +387,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz,
+ }
+ }
+
+- switch (data->info_ptr->bit_depth) {
++ switch (bit_depth) {
+ case 8:
+ for (y=0; y<data->height; y++) {
+ u8 *S = data->image + data->pitch * y;
+@@ -441,7 +442,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDirectFBImageProvider *thiz,
+
+ default:
+ D_ERROR( "ImageProvider/PNG: Unsupported indexed bit depth %d!\n",
+- data->info_ptr->bit_depth );
++ bit_depth );
+ }
+
+ dfb_scale_linear_32( image_argb, data->width, data->height,
+@@ -594,16 +595,26 @@ png_info_callback( png_structp png_read_ptr,
+ NULL, NULL, NULL );
+
+ if (png_get_valid( data->png_ptr, data->info_ptr, PNG_INFO_tRNS )) {
++ png_bytep trans;
++ png_color_16p trans_color;
++ int num_trans;
++
++ png_get_tRNS( data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color );
++
+ data->color_keyed = true;
+
+ /* generate color key based on palette... */
+ if (data->color_type == PNG_COLOR_TYPE_PALETTE) {
+ u32 key;
+- png_colorp palette = data->info_ptr->palette;
+- png_bytep trans = data->info_ptr->trans_alpha;
+- int num_colors = MIN( MAXCOLORMAPSIZE,
+- data->info_ptr->num_palette );
+- u8 cmap[3][num_colors];
++ png_colorp palette;
++ int num_colors;
++ u8 *cmap[3];
++
++ png_get_PLTE( data->png_ptr, data->info_ptr, &palette, &num_colors );
++ num_colors = MIN( MAXCOLORMAPSIZE, num_colors );
++ cmap[0] = alloca (num_colors);
++ cmap[1] = alloca (num_colors);
++ cmap[2] = alloca (num_colors);
+
+ for (i=0; i<num_colors; i++) {
+ cmap[0][i] = palette[i].red;
+@@ -613,7 +624,7 @@ png_info_callback( png_structp png_read_ptr,
+
+ key = FindColorKey( num_colors, &cmap[0][0] );
+
+- for (i=0; i<data->info_ptr->num_trans; i++) {
++ for (i=0; i<num_trans; i++) {
+ if (!trans[i]) {
+ palette[i].red = (key & 0xff0000) >> 16;
+ palette[i].green = (key & 0x00ff00) >> 8;
+@@ -625,20 +636,23 @@ png_info_callback( png_structp png_read_ptr,
+ }
+ else {
+ /* ...or based on trans rgb value */
+- png_color_16p trans = &data->info_ptr->trans_color;
+-
+- data->color_key = (((trans->red & 0xff00) << 8) |
+- ((trans->green & 0xff00)) |
+- ((trans->blue & 0xff00) >> 8));
++ data->color_key = (((trans_color->red & 0xff00) << 8) |
++ ((trans_color->green & 0xff00)) |
++ ((trans_color->blue & 0xff00) >> 8));
+ }
+ }
+
+ switch (data->color_type) {
+ case PNG_COLOR_TYPE_PALETTE: {
+- png_colorp palette = data->info_ptr->palette;
+- png_bytep trans = data->info_ptr->trans_alpha;
+- int num_trans = data->info_ptr->num_trans;
+- int num_colors = MIN( MAXCOLORMAPSIZE, data->info_ptr->num_palette );
++ png_colorp palette;
++ png_bytep trans;
++ png_color_16p trans_color;
++ int num_trans;
++ int num_colors;
++
++ png_get_PLTE( data->png_ptr, data->info_ptr, &palette, &num_colors );
++ num_colors = MIN( MAXCOLORMAPSIZE, num_colors );
++ png_get_tRNS( data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color );
+
+ for (i=0; i<num_colors; i++) {
+ data->colors[i].a = (i < num_trans) ? trans[i] : 0xff;
+--
+1.7.4.1
+
+From 7a2a36fada3ecdd7f48fcfd782a552598477a8f5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 20 Feb 2011 19:38:50 -0500
+Subject: [PATCH] tools: add support for libpng 1.5.x
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ tools/directfb-csource.c | 20 +++++++++++++-------
+ tools/mkdfiff.c | 2 +-
+ tools/mkdgifft.cpp | 2 +-
+ 3 files changed, 15 insertions(+), 9 deletions(-)
+
+diff --git a/tools/directfb-csource.c b/tools/directfb-csource.c
+index 8f2cbf0..487ea3c 100644
+--- a/tools/directfb-csource.c
++++ b/tools/directfb-csource.c
+@@ -338,7 +338,7 @@ static DFBResult load_image (const char *filename,
+ if (!png_ptr)
+ goto cleanup;
+
+- if (setjmp (png_ptr->jmpbuf)) {
++ if (setjmp (png_jmpbuf (png_ptr))) {
+ if (desc->preallocated[0].data) {
+ free (desc->preallocated[0].data);
+ desc->preallocated[0].data = NULL;
+@@ -405,17 +405,22 @@ static DFBResult load_image (const char *filename,
+ }
+
+ switch (src_format) {
+- case DSPF_LUT8:
+- if (info_ptr->num_palette) {
++ case DSPF_LUT8: {
++ png_colorp png_palette;
++ int num_palette;
++
++ png_get_PLTE( png_ptr, info_ptr, &png_palette, &num_palette );
++
++ if (num_palette) {
+ png_byte *alpha;
+ int i, num;
+
+- *palette_size = MIN (info_ptr->num_palette, 256);
++ *palette_size = MIN (num_palette, 256);
+ for (i = 0; i < *palette_size; i++) {
+ palette[i].a = 0xFF;
+- palette[i].r = info_ptr->palette[i].red;
+- palette[i].g = info_ptr->palette[i].green;
+- palette[i].b = info_ptr->palette[i].blue;
++ palette[i].r = png_palette[i].red;
++ palette[i].g = png_palette[i].green;
++ palette[i].b = png_palette[i].blue;
+ }
+ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) {
+ png_get_tRNS (png_ptr, info_ptr, &alpha, &num, NULL);
+@@ -424,6 +429,7 @@ static DFBResult load_image (const char *filename,
+ }
+ }
+ break;
++ }
+ case DSPF_RGB32:
+ png_set_filler (png_ptr, 0xFF,
+ #ifdef WORDS_BIGENDIAN
+diff --git a/tools/mkdfiff.c b/tools/mkdfiff.c
+index 68a3b4f..edb58a7 100644
+--- a/tools/mkdfiff.c
++++ b/tools/mkdfiff.c
+@@ -97,7 +97,7 @@ load_image (const char *filename,
+ if (!png_ptr)
+ goto cleanup;
+
+- if (setjmp (png_ptr->jmpbuf)) {
++ if (setjmp (png_jmpbuf (png_ptr))) {
+ if (desc->preallocated[0].data) {
+ free (desc->preallocated[0].data);
+ desc->preallocated[0].data = NULL;
+diff --git a/tools/mkdgifft.cpp b/tools/mkdgifft.cpp
+index 96e4220..d4b6bf4 100644
+--- a/tools/mkdgifft.cpp
++++ b/tools/mkdgifft.cpp
+@@ -595,7 +595,7 @@ load_image (const char *filename,
+ if (!png_ptr)
+ goto cleanup;
+
+- if (setjmp (png_ptr->jmpbuf)) {
++ if (setjmp (png_jmpbuf (png_ptr))) {
+ if (desc->preallocated[0].data) {
+ free (desc->preallocated[0].data);
+ desc->preallocated[0].data = NULL;
+--
+1.7.4.1
+
diff --git a/community-staging/directfb/PKGBUILD b/community-staging/directfb/PKGBUILD
new file mode 100644
index 000000000..8232fd4df
--- /dev/null
+++ b/community-staging/directfb/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 62433 2012-01-20 01:45:50Z ebelanger $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=directfb
+pkgver=1.4.14
+pkgrel=2
+pkgdesc="A thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system on top of the Linux Framebuffer Device"
+arch=('i686' 'x86_64')
+url="http://www.directfb.org"
+license=('LGPL')
+depends=('gcc-libs' 'libjpeg' 'sdl' 'sysfsutils' 'libpng' 'freetype2')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://www.directfb.org/downloads/Core/DirectFB-${pkgver%.*}/DirectFB-${pkgver}.tar.gz DirectFB-1.4.9-libpng-1.5.patch)
+md5sums=('de0745d25a6ac9e337d4d5572df85471'
+ '84f3181e96692efc5ff68e5dac19541f')
+
+build() {
+ cd "${srcdir}/DirectFB-${pkgver}"
+ patch -p1 -i ../DirectFB-1.4.9-libpng-1.5.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-static --enable-zlib \
+ --enable-x11 --enable-sdl --disable-vnc --disable-osx \
+ --enable-video4linux2 --enable-voodoo
+ make
+}
+
+package() {
+ cd "${srcdir}/DirectFB-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community-staging/directfb/directfb.changelog b/community-staging/directfb/directfb.changelog
new file mode 100644
index 000000000..721fd1deb
--- /dev/null
+++ b/community-staging/directfb/directfb.changelog
@@ -0,0 +1,40 @@
+2010-11-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * directfb 1.4.11-1
+ * Upstream update
+
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * directfb 1.4.5-1
+ * Upstream update
+
+2010-01-20 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.3-1
+ * Upstream update
+
+2009-11-08 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.2-1
+ * Upstream update
+
+2009-07-13 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.1-1
+ * Upstream update
+
+2009-05-03 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.8-1
+ * Upstream update
+
+2009-03-06 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.7-1
+ * Upstream update
+
+2008-07-29 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.0-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/community-staging/djview4/PKGBUILD b/community-staging/djview4/PKGBUILD
new file mode 100644
index 000000000..a2600bec6
--- /dev/null
+++ b/community-staging/djview4/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 62347 2012-01-19 14:18:32Z bisson $
+# Contributor: Paulo Matias <matias.archlinux-br.org>
+# Contributor: Leslie P. Polzer <polzer.gnu.org>
+# Contributor: erm67 <erm67.yahoo.it>
+# Contributor: Daniel J Griffiths
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=djview4
+pkgver=4.8
+pkgrel=2
+pkgdesc='Portable DjVu viewer and browser plugin'
+url='http://djvu.sourceforge.net/djview4.html'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('qt' 'djvulibre')
+source=("http://downloads.sourceforge.net/djvu/djview-${pkgver}.tar.gz")
+sha1sums=('266d207afb63a1ee63eed054190bf88888fda572')
+
+install=install
+
+build() {
+ cd "${srcdir}/djview-${pkgver}"
+ QTDIR=/usr ./configure --prefix=/usr
+ sed 's/netscape/mozilla/g' -i nsdejavu/Makefile
+ sed 's/swap/rofl_swap/g' -i src/qdjvuwidget.cpp
+ make
+}
+
+package() {
+ cd "${srcdir}/djview-${pkgver}"
+ make DESTDIR="${pkgdir}" install-djview install-nsdejavu
+
+ cd desktopfiles
+ install -Dm644 hi32-djview4.png "${pkgdir}"/usr/share/icons/hicolor/32x32/apps/djvulibre-djview4.png
+ install -Dm644 hi64-djview4.png "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/djvulibre-djview4.png
+ install -Dm644 hi64-djview4.png "${pkgdir}"/usr/share/pixmaps/djvulibre-djview4.png
+ install -Dm644 djvulibre-djview4.desktop "${pkgdir}"/usr/share/applications/djvulibre-djview4.desktop
+}
diff --git a/community-staging/djview4/install b/community-staging/djview4/install
new file mode 100644
index 000000000..f2bd04ceb
--- /dev/null
+++ b/community-staging/djview4/install
@@ -0,0 +1,13 @@
+post_install() {
+ if type xdg-icon-resource &>/dev/null; then
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community-staging/efax-gtk/PKGBUILD b/community-staging/efax-gtk/PKGBUILD
new file mode 100644
index 000000000..faf04dd39
--- /dev/null
+++ b/community-staging/efax-gtk/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 62427 2012-01-19 22:13:20Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=efax-gtk
+pkgver=3.2.9
+pkgrel=2
+pkgdesc="A GUI front end for the 'efax' fax program"
+arch=('i686' 'x86_64')
+url="http://efax-gtk.sourceforge.net/"
+license=('GPL')
+depends=('dbus-glib' 'ghostscript' 'c++-gtk-utils')
+makedepends=('pkg-config')
+optdepends=('heirloom-mailx: to use the mail_fax script')
+backup=('etc/efax-gtkrc')
+install=efax-gtk.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.src.tgz")
+md5sums=('57fac8815c8f49fc7415d3558eb3f842')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-spooldir=/usr/bin
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -m 755 mail_fax print_fax "${pkgdir}/usr/bin"
+}
diff --git a/community-staging/efax-gtk/efax-gtk.install b/community-staging/efax-gtk/efax-gtk.install
new file mode 100644
index 000000000..69e30acd6
--- /dev/null
+++ b/community-staging/efax-gtk/efax-gtk.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community-staging/fbgrab/PKGBUILD b/community-staging/fbgrab/PKGBUILD
new file mode 100644
index 000000000..2c19d04c5
--- /dev/null
+++ b/community-staging/fbgrab/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 62335 2012-01-19 09:22:30Z spupykin $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=fbgrab
+pkgver=1.0
+pkgrel=6
+pkgdesc="A framebuffer screenshot grabber"
+arch=(i686 x86_64)
+url="http://hem.bredband.net/gmogmo/fbgrab/"
+license=("GPL")
+depends=('libpng')
+makedepends=('libpng')
+source=(http://hem.bredband.net/gmogmo/fbgrab/fbgrab-1.0.tar.gz)
+md5sums=('7af4d8774684182ed690d5da82d6d234')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ sed -i '1,1i#include <zlib.h>' fbgrab.c
+ gcc -g -Wall fbgrab.c -lpng -lz -o fbgrab
+ strip fbgrab
+ install -D -m755 $startdir/src/$pkgname-$pkgver/fbgrab $startdir/pkg/usr/bin/fbgrab
+ install -D -m644 $startdir/src/$pkgname-$pkgver/fbgrab.1.man $startdir/pkg/usr/share/man/man1/fbgrab.1
+}
diff --git a/community-staging/fbreader/PKGBUILD b/community-staging/fbreader/PKGBUILD
new file mode 100644
index 000000000..3f0e64cc3
--- /dev/null
+++ b/community-staging/fbreader/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 62331 2012-01-19 09:20:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=fbreader
+pkgver=0.12.10
+pkgrel=3
+pkgdesc="An e-book reader for Linux"
+arch=('i686' 'x86_64')
+url="http://www.fbreader.org/"
+license=('GPL')
+depends=('fribidi' 'bzip2' 'curl' 'gtk2' 'liblinebreak' 'sqlite3')
+source=(http://www.fbreader.org/files/sources/fbreader-sources-$pkgver.tgz
+ build-fix.patch)
+md5sums=('da9ec4721efdb0ec0aaa182bff16ad82'
+ '66ac17d8640625b6d2a806de4aa4e76c')
+
+build() {
+ export CPPFLAGS="-I/usr/include/cairo"
+ export TARGET_ARCH=desktop
+ export UI_TYPE=gtk
+ export TARGET_STATUS=release
+ export srcdir
+
+ cd $srcdir/fbreader-$pkgver
+ patch -p0 makefiles/config.mk <$srcdir/build-fix.patch
+ sed -i 's#Library::Library &Library::Instance()#Library \&Library::Instance()#' fbreader/src/library/Library.cpp
+ make INSTALLDIR=/usr
+ make INSTALLDIR=/usr DESTDIR=$pkgdir install
+}
diff --git a/community-staging/fbreader/build-fix.patch b/community-staging/fbreader/build-fix.patch
new file mode 100644
index 000000000..7316464b8
--- /dev/null
+++ b/community-staging/fbreader/build-fix.patch
@@ -0,0 +1,20 @@
+--- config.mk.orig 2010-02-23 18:22:10.000000000 +0000
++++ config.mk 2010-02-28 13:55:11.000000000 +0000
+@@ -21,7 +21,7 @@
+ ARCHIVER_LIBS ?= -lz -lbz2
+ NETWORK_LIBS ?= -lcurl
+
+-CFLAGS += -DINSTALLDIR=\"$(INSTALLDIR_MACRO)\" -DBASEDIR=\"$(SHAREDIR_MACRO)\" -DLIBDIR=\"$(LIBDIR_MACRO)\" -DIMAGEDIR=\"$(IMAGEDIR_MACRO)\" -DAPPIMAGEDIR=\"$(APPIMAGEDIR_MACRO)\" -DVERSION=\"$(VERSION)\"
++CFLAGS += -I$(srcdir)/liblinebreak-20080321 -DINSTALLDIR=\"$(INSTALLDIR_MACRO)\" -DBASEDIR=\"$(SHAREDIR_MACRO)\" -DLIBDIR=\"$(LIBDIR_MACRO)\" -DIMAGEDIR=\"$(IMAGEDIR_MACRO)\" -DAPPIMAGEDIR=\"$(APPIMAGEDIR_MACRO)\" -DVERSION=\"$(VERSION)\"
+ ifeq "$(ZLSHARED)" "yes"
+ CFLAGS += -fPIC -DZLSHARED
+ endif
+@@ -38,6 +38,8 @@
+ LDFLAGS += -pg
+ endif
+
++LDFLAGS += -L$(srcdir)/liblinebreak-20080321/DebugDir
++
+ ZINCLUDE = -I $(ROOTDIR)/zlibrary/core/include -I $(ROOTDIR)/zlibrary/text/include
+
+ ZLSHARED ?= yes
diff --git a/community-staging/fbshot/PKGBUILD b/community-staging/fbshot/PKGBUILD
new file mode 100644
index 000000000..b807e4e09
--- /dev/null
+++ b/community-staging/fbshot/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 62337 2012-01-19 09:23:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: sp42b <sp42b|a_t|gmx.net>
+
+pkgname=fbshot
+pkgver=0.3
+pkgrel=4
+pkgdesc="Takes screenshots (PNG) from your framebuffer device (e.g. console)."
+arch=('i686' 'x86_64')
+url="http://www.sfires.net/fbshot/"
+license=('GPL')
+depends=('libpng')
+source=(http://www.sfires.net/stuff/fbshot/$pkgname-$pkgver.tar.gz)
+md5sums=('2cc6cc25cdc4cd447a8b0a9662907635')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i '1,1i#include <zlib.h>' fbshot.c
+ make
+ install -Dm755 fbshot $pkgdir/usr/bin/fbshot
+ install -Dm644 fbshot.1.man $pkgdir/usr/share/man/man1/fbshot.1
+}
diff --git a/community-staging/fbv/ChangeLog b/community-staging/fbv/ChangeLog
new file mode 100644
index 000000000..7fd5bbf99
--- /dev/null
+++ b/community-staging/fbv/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community-staging/fbv/PKGBUILD b/community-staging/fbv/PKGBUILD
new file mode 100644
index 000000000..53fb5d756
--- /dev/null
+++ b/community-staging/fbv/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 62339 2012-01-19 09:24:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Aectann <aectann@infoline.su>
+
+pkgname=fbv
+pkgver=1.0b
+pkgrel=5
+pkgdesc="FrameBuffer image viewer"
+arch=('i686' 'x86_64')
+url="http://s-tech.elsat.net.pl/fbv/"
+license=('GPL')
+depends=('libpng' 'libungif' 'libjpeg')
+source=(http://s-tech.elsat.net.pl/fbv/$pkgname-$pkgver.tar.gz)
+md5sums=('3e466375b930ec22be44f1041e77b55d')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ sed -i 's|LIBS.*|LIBS=-lpng -ljpeg -lungif -lgif|' Make.conf
+ sed -i 's|setjmp(png_ptr->jmpbuf)|setjmp(png_jmpbuf(png_ptr))|' png.c
+ make
+ mkdir -p $pkgdir/usr/bin
+ mkdir -p $pkgdir/usr/share/man/man1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-staging/fityk/PKGBUILD b/community-staging/fityk/PKGBUILD
new file mode 100644
index 000000000..9c95247c7
--- /dev/null
+++ b/community-staging/fityk/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Cuneyt Unlu <unlucu AT gmail.com>
+
+pkgname=fityk
+pkgver=1.1.1
+pkgrel=4
+pkgdesc='A program for nonlinear fitting of analytical functions to data.'
+arch=('i686' 'x86_64')
+url='http://www.unipress.waw.pl/fityk/'
+license=('GPL')
+depends=('xylib' 'shared-mime-info' 'lua' 'gnuplot' 'desktop-file-utils') # wxgtk supplied by statically linked wxWidgets
+makedepends=('boost' 'git' 'python-sphinx' 'swig' 'subversion')
+options=('!libtool')
+install='fityk.install'
+
+build() {
+ # daily snapshot because fityk requires a version that hasn't been released yet...
+ svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk wxWidgets
+
+ cd wxWidgets
+ ./configure --prefix=${srcdir}/usr --disable-shared --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys
+ make
+ make install
+
+ cd ${srcdir}
+ git clone git://github.com/wojdyr/fityk.git
+ cd fityk
+ git checkout v${pkgver}
+ #cd ${pkgname}-${pkgver}
+
+ # disable xyconvert because wxwidgets>=2.9 is needed (dev version) and it isn't standard with arch yet
+ #--disable-xyconvert \
+ ./autogen.sh \
+ --prefix=/usr \
+ --without-doc \
+ --with-wx-prefix=${srcdir}/usr
+ #./configure \
+
+ make
+}
+
+package() {
+ cd fityk
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community-staging/fityk/fityk.install b/community-staging/fityk/fityk.install
new file mode 100644
index 000000000..df476d572
--- /dev/null
+++ b/community-staging/fityk/fityk.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-mime-database /usr/share/mime
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-mime-database /usr/share/mime
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-mime-database /usr/share/mime
+ update-desktop-database -q
+}
diff --git a/community-staging/flam3/PKGBUILD b/community-staging/flam3/PKGBUILD
new file mode 100644
index 000000000..d81af3d7c
--- /dev/null
+++ b/community-staging/flam3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 62278 2012-01-18 22:53:38Z ebelanger $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=flam3
+pkgver=3.0.1
+pkgrel=2
+pkgdesc="Tools to create/display fractal flames: algorithmically generated images and animations"
+arch=('i686' 'x86_64')
+url="http://flam3.com/"
+license=('GPL3')
+depends=('libjpeg' 'libpng' 'libxml2')
+options=('!libtool')
+source=(http://flam3.googlecode.com/files/${pkgname}-${pkgver}.tar.gz flam3-3.0.1-libpng15.patch)
+sha1sums=('8814515f2e49e034e47cf97e9d2c0e932844abb9'
+ '17ece6cc00899e5135dad2bc79f97dfbd73107a6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ patch -p1 -i ../../flam3-3.0.1-libpng15.patch
+ ./configure --prefix=/usr --enable-shared
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community-staging/flam3/flam3-3.0.1-libpng15.patch b/community-staging/flam3/flam3-3.0.1-libpng15.patch
new file mode 100644
index 000000000..61f905589
--- /dev/null
+++ b/community-staging/flam3/flam3-3.0.1-libpng15.patch
@@ -0,0 +1,76 @@
+http://code.google.com/p/flam3/issues/detail?id=8
+
+--- src/png.c
++++ src/png.c
+@@ -142,7 +142,7 @@
+ }
+ if (setjmp(png_jmpbuf(png_ptr))) {
+ if (png_image) {
+- for (y = 0 ; y < info_ptr->height ; y++)
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++)
+ free (png_image[y]);
+ free (png_image);
+ }
+@@ -161,19 +161,19 @@
+ png_set_sig_bytes (png_ptr, SIG_CHECK_SIZE);
+ png_read_info (png_ptr, info_ptr);
+
+- if (8 != info_ptr->bit_depth) {
++ if (8 != png_get_bit_depth(png_ptr, info_ptr)) {
+ fprintf(stderr, "bit depth type must be 8, not %d.\n",
+- info_ptr->bit_depth);
++ png_get_bit_depth(png_ptr, info_ptr));
+ return 0;
+ }
+
+- *width = info_ptr->width;
+- *height = info_ptr->height;
++ *width = png_get_image_width(png_ptr, info_ptr);
++ *height = png_get_image_height(png_ptr, info_ptr);
+ p = q = malloc(4 * *width * *height);
+- png_image = (png_byte **)malloc (info_ptr->height * sizeof (png_byte*));
++ png_image = (png_byte **)malloc (png_get_image_height(png_ptr, info_ptr) * sizeof (png_byte*));
+
+- linesize = info_ptr->width;
+- switch (info_ptr->color_type) {
++ linesize = png_get_image_width(png_ptr, info_ptr);
++ switch (png_get_color_type(png_ptr, info_ptr)) {
+ case PNG_COLOR_TYPE_RGB:
+ linesize *= 3;
+ break;
+@@ -182,21 +182,21 @@
+ break;
+ default:
+ fprintf(stderr, "color type must be RGB or RGBA not %d.\n",
+- info_ptr->color_type);
++ png_get_color_type(png_ptr, info_ptr));
+ return 0;
+ }
+
+- for (y = 0 ; y < info_ptr->height ; y++) {
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) {
+ png_image[y] = malloc (linesize);
+ }
+ png_read_image (png_ptr, png_image);
+ png_read_end (png_ptr, info_ptr);
+
+- for (y = 0 ; y < info_ptr->height ; y++) {
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) {
+ unsigned char *s = png_image[y];
+- for (x = 0 ; x < info_ptr->width ; x++) {
++ for (x = 0 ; x < png_get_image_width(png_ptr, info_ptr) ; x++) {
+
+- switch (info_ptr->color_type) {
++ switch (png_get_color_type(png_ptr, info_ptr)) {
+ case PNG_COLOR_TYPE_RGB:
+ p[0] = s[0];
+ p[1] = s[1];
+@@ -217,7 +217,7 @@
+ }
+ }
+
+- for (y = 0 ; y < info_ptr->height ; y++)
++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++)
+ free (png_image[y]);
+ free (png_image);
+ png_destroy_read_struct (&png_ptr, &info_ptr, (png_infopp)NULL);
diff --git a/community-staging/fltk2/PKGBUILD b/community-staging/fltk2/PKGBUILD
new file mode 100644
index 000000000..4df613913
--- /dev/null
+++ b/community-staging/fltk2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 62329 2012-01-19 09:03:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=fltk2
+pkgver=2.0
+_pkgver=2.0.x-alpha-r9166
+pkgrel=8
+pkgdesc="Graphical user interface toolkit for X"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.fltk.org/"
+depends=('libjpeg' 'libpng' 'gcc-libs' 'libxft' 'libxext' 'libxi' 'libxinerama')
+makedepends=('mesa')
+source=(http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/fltk/snapshots/fltk-${_pkgver}.tar.bz2)
+md5sums=('d5e7cd859d2aeb9bb6e13ee298e8b2aa')
+
+build() {
+ cd $srcdir/fltk-${_pkgver}
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared
+ patch -p0 src/filename_list.cxx <<EOF
+66c66
+< int n = scandir(d, list, 0, (int(*)(const void*,const void*))sort);
+---
+> int n = scandir(d, list, 0, (int(*)(const dirent64**,const dirent64**))sort);
+EOF
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-staging/fox/PKGBUILD b/community-staging/fox/PKGBUILD
new file mode 100644
index 000000000..8c087c309
--- /dev/null
+++ b/community-staging/fox/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 62305 2012-01-19 07:32:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=fox
+pkgver=1.6.44
+pkgrel=2
+pkgdesc="Free Objects for X: GUI Toolkit for C++"
+arch=('i686' 'x86_64')
+url="http://www.fox-toolkit.org/"
+license=('LGPL' 'custom')
+depends=('bzip2' 'libxcursor' 'libxft' 'libxrandr' 'mesa' 'libxi' 'libpng' 'libtiff')
+optdepends=('perl')
+options=('!libtool')
+source=(http://ftp.fox-toolkit.org/pub/fox-$pkgver.tar.gz)
+md5sums=('6ccc8cbcfa6e4c8b6e4deeeb39c36434')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ export CPPFLAGS="$CPPFLAGS -I/usr/include/freetype2"
+ ./configure --prefix=/usr \
+ --enable-release \
+ --with-xft=yes \
+ --with-opengl=yes \
+ --with-xim \
+ --with-xshm \
+ --with-shape \
+ --with-xcursor \
+ --with-xrender \
+ --with-xrandr \
+ --with-xfixes \
+ --with-xinput
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ cd ${srcdir}/${pkgname}-${pkgver}/tests
+ make ControlPanel
+ install -m755 ${srcdir}/${pkgname}-${pkgver}/tests/.libs/ControlPanel ${pkgdir}/usr/bin/
+ install -Dm644 ../LICENSE_ADDENDUM ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community-staging/freewrl/PKGBUILD b/community-staging/freewrl/PKGBUILD
new file mode 100644
index 000000000..4399a72f2
--- /dev/null
+++ b/community-staging/freewrl/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 62333 2012-01-19 09:21:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=freewrl
+pkgver=1.22.10
+pkgrel=8
+pkgdesc="VRML viewer"
+arch=('i686' 'x86_64')
+url="http://freewrl.sourceforge.net/"
+license=('GPL')
+depends=('java-runtime' 'libxaw' 'glew' 'freeglut' 'curl' 'freetype2' 'imlib2' 'sox'
+ 'unzip' 'imagemagick' 'libxml2' 'ttf-bitstream-vera' 'lesstif' 'js')
+makedepends=('java-environment')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2
+ build-fix.patch)
+md5sums=('07fd8f193d14799ffb95a59a4887fc88'
+ '52e4b6aacebcaf18cbec8975e0eb7fd8')
+
+build() {
+ . /etc/profile.d/jre.sh
+ . /etc/profile.d/jdk.sh
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ export JAVASCRIPT_ENGINE_CFLAGS="-I/usr/include/js -DXP_UNIX -DJS_THREADSAFE $(pkg-config --cflags nspr)"
+ export JAVASCRIPT_ENGINE_LIBS="$(pkg-config --libs nspr) -lmozjs185"
+ ./configure \
+ --prefix=/usr --with-fontsdir=/usr/share/fonts/TTF --enable-libeai \
+ --enable-libcurl --with-expat=/usr --with-target=x11 --disable-plugin \
+ --disable-mozilla-js --disable-xulrunner-js --disable-firefox-js \
+ --disable-seamonkey-js
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-staging/freewrl/build-fix.patch b/community-staging/freewrl/build-fix.patch
new file mode 100644
index 000000000..c0de71d07
--- /dev/null
+++ b/community-staging/freewrl/build-fix.patch
@@ -0,0 +1,1201 @@
+diff -wbBur freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c
+--- freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c 2010-08-19 06:20:36.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c 2011-07-04 01:19:07.000000000 +0400
+@@ -54,7 +54,7 @@
+ #include "ColladaParser.h"
+
+ #if HAVE_EXPAT_H
+-# include <expat.h>
++# include </usr/include/expat.h>
+ #endif
+
+ #define PROTOINSTANCE_MAX_LEVELS 10
+diff -wbBur freewrl-1.22.10/src/lib/world_script/fieldGet.c freewrl-1.22.10.my/src/lib/world_script/fieldGet.c
+--- freewrl-1.22.10/src/lib/world_script/fieldGet.c 2010-10-13 23:45:26.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/fieldGet.c 2011-07-04 20:21:21.000000000 +0400
+@@ -412,7 +412,7 @@
+ /* create a new SFFloat object */
+
+ fp = (float *)fp_in;
+- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp));
++ newjsval = JS_NewJSVal(cx,(double)*fp);
+ fp_in = offsetPointer_deref(float *,fp_in,elementlen);
+
+ /* put this object into the MF class */
+@@ -449,7 +449,7 @@
+ /* create a new SFTime object */
+
+ fp = (float *)fp_in;
+- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp));
++ newjsval = JS_NewJSVal(cx,(double)*fp);
+ fp_in = offsetPointer_deref(float *,fp_in,elementlen);
+
+ /* put this object into the MF class */
+diff -wbBur freewrl-1.22.10/src/lib/world_script/fieldSet.c freewrl-1.22.10.my/src/lib/world_script/fieldSet.c
+--- freewrl-1.22.10/src/lib/world_script/fieldSet.c 2010-09-22 00:00:25.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/fieldSet.c 2011-07-04 20:03:53.000000000 +0400
+@@ -748,7 +748,7 @@
+
+ #ifdef SETFIELDVERBOSE
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+ printf ("start of setField_javascriptEventOut, to %ld:%d = %p, fieldtype %d string %s\n",(long)tn, tptr, memptr, fieldType, strp);
+ #endif
+
+@@ -813,7 +813,7 @@
+ case FIELDTYPE_SFImage: {
+ /* the string should be saved as an SFImage */
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+
+ Parser_scanStringValueToMem(tn, tptr, FIELDTYPE_SFImage, strp, FALSE);
+ break;
+@@ -824,7 +824,7 @@
+ uintptr_t *newptr;
+
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+
+ /* copy the string over, delete the old one, if need be */
+ /* printf ("fieldSet SFString, tn %d tptr %d offset from struct %d\n",
+@@ -844,7 +844,7 @@
+ struct X3D_Node *mynode;
+
+ strval = JS_ValueToString(scriptContext, JSglobal_return_val);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(scriptContext, strval);
+
+ /* we will have at least one node here, in an ascii string */
+ while ((*strp > '\0') && (*strp <= ' ')) strp ++;
+@@ -1227,7 +1227,7 @@
+ JSString *_tmpStr;
+
+ _tmpStr = JS_ValueToString(cx, mainElement);
+- strp = JS_GetStringBytes(_tmpStr);
++ strp = JS_EncodeString(scriptContext, _tmpStr);
+ printf ("sub element %d is \"%s\" \n",i,strp);
+
+ if (JSVAL_IS_OBJECT(mainElement)) printf ("sub element %d is an OBJECT\n",i);
+@@ -1329,7 +1329,7 @@
+ JSString *strval;
+
+ strval = JS_ValueToString(cx, mainElement);
+- strp = JS_GetStringBytes(strval);
++ strp = JS_EncodeString(cx, strval);
+
+ #ifdef SETFIELDVERBOSE
+ printf ("getJSMultiNumType, got string %s\n",strp);
+@@ -1441,7 +1441,7 @@
+ return;
+ }
+ strval = JS_ValueToString(cx, _v);
+- valStr = JS_GetStringBytes(strval);
++ valStr = JS_EncodeString(cx, strval);
+
+ /* printf ("new string %d is %s\n",i,valStr); */
+
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsUtils.c freewrl-1.22.10.my/src/lib/world_script/jsUtils.c
+--- freewrl-1.22.10/src/lib/world_script/jsUtils.c 2010-06-03 23:38:37.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsUtils.c 2011-07-04 20:21:44.000000000 +0400
+@@ -134,7 +134,7 @@
+ nf = OBJECT_TO_JSVAL(me);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf)));
++ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf)));
+ #endif
+
+ if (!setSFNodeField (cx, par, pf, &nf)) {
+@@ -197,7 +197,7 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, *newval);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ oldS = (struct Uni_String *) *((uintptr_t *)Data);
+
+@@ -305,12 +305,12 @@
+
+ case FIELDTYPE_SFFloat: {
+ memcpy ((void *) &fl, Data, datalen);
+- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)fl));
++ *newval = JS_NewJSVal(cx,(double)fl);
+ break;
+ }
+ case FIELDTYPE_SFTime: {
+ memcpy ((void *) &dl, Data, datalen);
+- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,dl));
++ *newval = JS_NewJSVal(cx,dl);
+ break;
+ }
+ case FIELDTYPE_SFBool:
+@@ -824,7 +824,7 @@
+ struct X3D_Node *node;
+
+ _idStr = JS_ValueToString(context, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(context, _idStr);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("\ngetSFNodeField called on name %s object %u\n",_id_c, obj);
+@@ -912,7 +912,7 @@
+
+ /* get the id field... */
+
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("\nsetSFNodeField called on name %s object %u, jsval %u\n",_id_c, obj, *vp);
+@@ -1131,10 +1131,10 @@
+ char *_id_c = "(no value in string)";
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ /* printf ("hmmm...js_SetPropertyCheck called on string \"%s\" object %u, jsval %u\n",_id_c, obj, *vp); */
+ } else if (JSVAL_IS_DOUBLE(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyCheck called on double %s object %u, jsval %u\n",_id_c, obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1192,7 +1192,7 @@
+ /* get the id field... */
+
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_GetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1211,7 +1211,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1229,7 +1229,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug1 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1247,7 +1247,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
+ printf ("...js_SetPropertyDebug2 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1265,7 +1265,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug3 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1283,7 +1283,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug4 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1301,7 +1301,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug5 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1319,7 +1319,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug6 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1337,7 +1337,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug7 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1355,7 +1355,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug8 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+@@ -1373,7 +1373,7 @@
+
+ /* get the id field... */
+ if (JSVAL_IS_STRING(id)) {
+- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
++ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
+ printf ("\n...js_SetPropertyDebug9 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
+ } else if (JSVAL_IS_INT(id)) {
+ num = JSVAL_TO_INT(id);
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c 2010-08-02 23:55:57.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c 2011-07-04 20:06:25.000000000 +0400
+@@ -336,7 +336,7 @@
+ return JS_FALSE;
+ }
+ _str = JS_ValueToString(context, argv[0]);
+- _costr = JS_GetStringBytes(_str);
++ _costr = JS_EncodeString(context, _str);
+
+ /* sanitize string, for the EAI_RW call (see EAI_RW code) */
+ tptr = _costr;
+@@ -385,10 +385,10 @@
+ return JS_FALSE;
+ }
+ _str[0] = JS_ValueToString(context, argv[0]);
+- _costr[0] = JS_GetStringBytes(_str[0]);
++ _costr[0] = JS_EncodeString(context, _str[0]);
+
+ _str[1] = JS_ValueToString(context, argv[1]);
+- _costr[1] = JS_GetStringBytes(_str[1]);
++ _costr[1] = JS_EncodeString(context, _str[1]);
+
+ /* we use the EAI code for this - so reformat this for the EAI format */
+ {
+@@ -575,7 +575,7 @@
+ /* third parameter should be a string */
+ if (JSVAL_IS_STRING(argv[2])) {
+ _str[1] = JSVAL_TO_STRING(argv[2]);
+- fieldStr = JS_GetStringBytes(_str[1]);
++ fieldStr = JS_EncodeString(context, _str[1]);
+ #ifdef JSVERBOSE
+ printf ("field string is :%s:\n",fieldStr);
+ #endif
+@@ -590,7 +590,7 @@
+
+ /* get the URL listing as a string */
+ _str[0] = JS_ValueToString(context, argv[0]);
+- _costr0 = JS_GetStringBytes(_str[0]);
++ _costr0 = JS_EncodeString(context, _str[0]);
+
+
+ #ifdef JSVERBOSE
+@@ -690,7 +690,7 @@
+ for (count=0; count < argc; count++) {
+ if (JSVAL_IS_STRING(argv[count])) {
+ _str = JSVAL_TO_STRING(argv[count]);
+- _id_c = JS_GetStringBytes(_str);
++ _id_c = JS_EncodeString(context, _str);
+ #if defined(AQUA) || defined(_MSC_VER)
+ BrowserPrintConsoleMessage(_id_c); /* statusbar hud */
+ consMsgCount = 0; /* reset the "Maximum" count */
+@@ -850,7 +850,7 @@
+
+ /* parameter should be a string */
+ if (JSVAL_IS_STRING(argv[0])) {
+- target = JS_GetStringBytes( JSVAL_TO_STRING(argv[0]));
++ target = JS_EncodeString(context, JSVAL_TO_STRING(argv[0]));
+ #ifdef JSVERBOSE
+ printf ("field string is %s\n",target);
+ #endif
+@@ -930,7 +930,7 @@
+
+ /* parameters should be a string */
+ if (JSVAL_IS_STRING(argv[0])) {
+- targetDevice = JS_GetStringBytes( JSVAL_TO_STRING(argv[0]));
++ targetDevice = JS_EncodeString(cx, JSVAL_TO_STRING(argv[0]));
+ #ifdef JSVERBOSE
+ printf ("field string is %s\n",targetDevice);
+ #endif
+@@ -939,7 +939,7 @@
+ return -1;
+ }
+ if (JSVAL_IS_STRING(argv[1])) {
+- targetController = JS_GetStringBytes( JSVAL_TO_STRING(argv[1]));
++ targetController = JS_EncodeString(cx, JSVAL_TO_STRING(argv[1]));
+ #ifdef JSVERBOSE
+ printf ("field string is %s\n",targetController);
+ #endif
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c 2010-09-22 23:40:48.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c 2011-07-04 20:08:03.000000000 +0400
+@@ -935,7 +935,7 @@
+ printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd);
+ return JS_FALSE;
+ }
+- val = DOUBLE_TO_JSVAL(dp);
++ val = DOUBLE_TO_JSVAL(*dp);
+
+ }
+ }
+@@ -1108,7 +1108,7 @@
+
+ printf ("HAVE STRING HERE!\n");
+ _str = JS_ValueToString(cx, id);
+- asciiStr = JS_GetStringBytes(_str);
++ asciiStr = JS_EncodeString(context, _str);
+ printf ("we have as a parameter :%s:\n",asciiStr);
+ #endif
+
+@@ -1185,7 +1185,7 @@
+ if (_tmpStr==NULL) {
+ _tmp_valStr = "NULL";
+ } else {
+- _tmp_valStr = JS_GetStringBytes(_tmpStr);
++ _tmp_valStr = JS_EncodeString(cx, _tmpStr);
+ }
+ }
+
+@@ -1281,7 +1281,7 @@
+ #endif
+
+ str = JS_ValueToString(cx, id);
+- p = JS_GetStringBytes(str);
++ p = JS_EncodeString(cx, str);
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf("\tid string %s\n ",p);
+ #endif
+@@ -1368,12 +1368,12 @@
+ char * _c;
+ printf ("doMFSetProperty, for object %u, vp %u\n", obj,*vp);
+ _str = JS_ValueToString(cx, id);
+- _c = JS_GetStringBytes(_str);
++ _c = JS_EncodeString(cx, _str);
+ printf ("id is %s\n",_c);
+
+ _sstr = JS_ValueToString(cx, *vp);
+ printf ("looking up value for %d %x object %p\n",*vp,*vp,obj);
+- _cc = JS_GetStringBytes(_sstr);
++ _cc = JS_EncodeString(cx, _sstr);
+ printf("\tdoMFSetProperty:%d: obj = %p, id = %s, vp = %s\n",type,
+ obj, _c, _cc);
+ if (JSVAL_IS_OBJECT(*vp)) { printf ("doMFSet, vp is an OBJECT\n"); }
+@@ -1397,7 +1397,7 @@
+
+ if (!JS_ValueToInt32(cx, *vp, &i)) {
+ _sstr = JS_ValueToString(cx, *vp);
+- _cc = JS_GetStringBytes(_sstr);
++ _cc = JS_EncodeString(cx, _sstr);
+ printf ("can not convert %s to an integer in doMFAddProperty for type %d\n",_cc,type);
+ return JS_FALSE;
+ }
+@@ -1408,7 +1408,7 @@
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("doMFSetProperty - ensure that this is a DOUBLE ");
+ _sstr = JS_ValueToString(cx, *vp);
+- _cc = JS_GetStringBytes(_sstr);
++ _cc = JS_EncodeString(cx, _sstr);
+ printf ("value is %s \n",_cc);
+ #endif
+
+@@ -1420,7 +1420,7 @@
+ printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+
+ }
+ }
+@@ -1511,7 +1511,7 @@
+ nf = OBJECT_TO_JSVAL(me);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf)));
++ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf)));
+ #endif
+
+ if (!setSFNodeField (cx, par, pf, &nf)) {
+@@ -1535,7 +1535,7 @@
+ unsigned int i, j = 0;
+
+ _str = JS_ValueToString(cx, *vp);
+- _buff = JS_GetStringBytes(_str);
++ _buff = JS_EncodeString(cx, _str);
+ _buff_len = strlen(_buff) + 1;
+
+ #ifdef JSVRMLCLASSESVERBOSE
+@@ -1719,14 +1719,14 @@
+ size_t len = 0;
+
+ _idStr = JS_ValueToString(context, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(context, _idStr);
+
+ /* "register" this ECMA value for routing changed flag stuff */
+ setInECMATable(context, _id_c);
+
+ if (JSVAL_IS_STRING(*vp)) {
+ _vpStr = JS_ValueToString(context, *vp);
+- _vp_c = JS_GetStringBytes(_vpStr);
++ _vp_c = JS_EncodeString(context, _vpStr);
+
+ len = strlen(_vp_c);
+
+@@ -1752,7 +1752,7 @@
+ } else {
+ #ifdef JSVRMLCLASSESVERBOSE
+ _vpStr = JS_ValueToString(context, *vp);
+- _vp_c = JS_GetStringBytes(_vpStr);
++ _vp_c = JS_EncodeString(cx, _vpStr);
+ printf("setECMANative: obj = %p, id = \"%s\", vp = %s\n",
+ obj, _id_c, _vp_c);
+ #endif
+@@ -1770,9 +1770,9 @@
+ JSString *_idStr, *_vpStr;
+ char *_id_c, *_vp_c;
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _vpStr = JS_ValueToString(cx, *vp);
+- _vp_c = JS_GetStringBytes(_vpStr);
++ _vp_c = JS_EncodeString(cx, _vpStr);
+ printf("getAssignProperty: obj = %p, id = \"%s\", vp = %s\n",
+ obj, _id_c, _vp_c);
+ printf ("what is vp? \n");
+@@ -1803,7 +1803,7 @@
+
+ if (JSVAL_IS_STRING(id)) {
+ _str = JSVAL_TO_STRING(id);
+- _id_c = JS_GetStringBytes(_str);
++ _id_c = JS_EncodeString(cx, _str);
+ if (!JS_ConvertValue(cx, *vp, JSTYPE_OBJECT, &newVal)) {
+ printf( "JS_ConvertValue failed in setAssignProperty.\n");
+ return JS_FALSE;
+@@ -1834,9 +1834,9 @@
+ if (JSVAL_IS_DOUBLE(id)) printf ("id is an DOUBLE\n");
+ if (JSVAL_IS_INT(id)) printf ("id is an INT\n");
+
+- printf ("id is %s\n",JS_GetStringBytes(JS_ValueToString(cx,id)));
+- printf ("initVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,initVal)));
+- printf ("newVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,newVal)));
++ printf ("id is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,id)));
++ printf ("initVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,initVal)));
++ printf ("newVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,newVal)));
+
+ #endif
+
+@@ -1859,7 +1859,7 @@
+ } else {
+ #ifdef JSVRMLCLASSESVERBOSE
+ _str = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_str);
++ _id_c = JS_EncodeString(cx, _str);
+ printf("setAssignProperty: obj = %p, id = \"%s\"\n",
+ obj, _id_c);
+ #endif
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h
+--- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h 2010-10-13 23:45:26.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h 2011-07-04 20:24:53.000000000 +0400
+@@ -30,6 +30,21 @@
+ #ifndef __FREEWRL_JS_VRML_CLASSES_H__
+ #define __FREEWRL_JS_VRML_CLASSES_H__
+
++static inline jsval JS_NewJSVal(JSContext *cx, jsdouble d)
++{
++ jsval ret;
++ JS_NewNumberValue(cx, d, &ret);
++ return ret;
++}
++
++static inline jsdouble * JS_NewDouble(JSContext *cx, jsdouble d)
++{
++ static jsdouble ret;
++ jsval rv;
++ JS_NewNumberValue(cx, d, &rv);
++ ret = JSVAL_TO_DOUBLE(rv);
++ return &ret;
++}
+
+ #ifndef UNUSED
+ #define UNUSED(v) ((void) v)
+@@ -80,14 +95,14 @@
+
+
+ #define SET_JS_TICKTIME_FALSE(possibleRetVal) { jsval zimbo; \
+- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \
++ zimbo = JS_NewJSVal(cx, TickTime); \
+ if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
+ printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \
+ return possibleRetVal; \
+ }}
+
+ #define SET_JS_TICKTIME() { jsval zimbo; \
+- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \
++ zimbo = JS_NewJSVal(cx, TickTime); \
+ if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
+ printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \
+ return FALSE; \
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c 2010-09-22 23:40:48.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c 2011-07-04 20:08:44.000000000 +0400
+@@ -596,7 +596,7 @@
+ return;
+ }
+
+- val = DOUBLE_TO_JSVAL(dp);
++ val = DOUBLE_TO_JSVAL(*dp);
+
+ if (!JS_SetElement(cx, obj, (jsint) i, &val)) {
+ printf( "JS_DefineElement failed for arg %u in VrmlMatrixSetTransform.\n", i);
+@@ -1212,7 +1212,7 @@
+ /*
+ if (JSVAL_IS_STRING(id)==TRUE) {
+ printf(" is a common string :%s:\n",
+- JS_GetStringBytes(JS_ValueToString(cx, id)));
++ JS_EncodeString(cx, JS_ValueToString(cx, id)));
+ }
+ if (JSVAL_IS_OBJECT(id)==TRUE) {
+ printf (" parameter is an object\n");
+@@ -1231,7 +1231,7 @@
+ _index = JSVAL_TO_INT(id);
+
+ if (_index >= _length) {
+- *vp = DOUBLE_TO_JSVAL(&zerojsdouble);
++ *vp = DOUBLE_TO_JSVAL(zerojsdouble);
+ if (!JS_DefineElement(cx, obj, (jsint) _index, *vp, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_CHECK, JSPROP_ENUMERATE)) {
+ printf( "JS_DefineElement failed in VrmlMatrixGetProperty.\n");
+ return JS_FALSE;
+@@ -1331,7 +1331,7 @@
+ printf("MFStringAddProperty: vp = %p\n", obj);
+ if (JSVAL_IS_STRING(*vp)==TRUE) {
+ printf(" is a common string :%s:\n",
+- JS_GetStringBytes(JS_ValueToString(cx, *vp)));
++ JS_EncodeString(cx, JS_ValueToString(cx, *vp)));
+ }
+ if (JSVAL_IS_OBJECT(*vp)==TRUE) {
+ printf (" parameter is an object\n");
+@@ -1345,7 +1345,7 @@
+ printf("MFStringAddProperty: id = %p\n", obj);
+ if (JSVAL_IS_STRING(id)==TRUE) {
+ printf(" is a common string :%s:\n",
+- JS_GetStringBytes(JS_ValueToString(cx, id)));
++ JS_EncodeString(cx, JS_ValueToString(cx, id)));
+ }
+ if (JSVAL_IS_OBJECT(id)==TRUE) {
+ printf (" parameter is an object\n");
+@@ -1494,7 +1494,7 @@
+ if (JSVAL_IS_STRING(argv[i])==TRUE) {
+ printf (" Common String, is");
+ _str = JS_ValueToString(cx, argv[i]);
+- printf (JS_GetStringBytes(_str));
++ printf (JS_EncodeString(cx, _str));
+ printf ("..");
+
+ }
+diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c
+--- freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c 2010-09-25 00:22:05.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c 2011-07-04 20:09:01.000000000 +0400
+@@ -161,7 +161,7 @@
+ printf( "JS_NewDouble failed for %f in SFColorGetHSV.\n", xp[i]);
+ return JS_FALSE;
+ }
+- _v = DOUBLE_TO_JSVAL(dp);
++ _v = DOUBLE_TO_JSVAL(*dp);
+ JS_SetElement(cx, result, (jsint)i, &_v);
+ }
+
+@@ -336,7 +336,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -346,7 +346,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -356,7 +356,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -387,13 +387,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+
+ }
+@@ -422,18 +422,18 @@
+ *rval = OBJECT_TO_JSVAL(_arrayObj);
+
+ /* construct new double before conversion? */
+- _v = DOUBLE_TO_JSVAL(&hue);
++ _v = DOUBLE_TO_JSVAL(hue);
+ if (!JS_SetElement(cx, _arrayObj, 0, &_v)) {
+ printf( "JS_SetElement failed for hue in SFColorRGBAGetHSV.\n");
+ return JS_FALSE;
+ }
+- _v = DOUBLE_TO_JSVAL(&saturation);
++ _v = DOUBLE_TO_JSVAL(saturation);
+ if (!JS_SetElement(cx, _arrayObj, 1, &_v)) {
+ printf( "JS_SetElement failed for saturation in SFColorRGBAGetHSV.\n");
+ return JS_FALSE;
+ }
+
+- _v = DOUBLE_TO_JSVAL(&value);
++ _v = DOUBLE_TO_JSVAL(value);
+ if (!JS_SetElement(cx, _arrayObj, 2, &_v)) {
+ printf( "JS_SetElement failed for value in SFColorRGBAGetHSV.\n");
+ return JS_FALSE;
+@@ -601,7 +601,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -611,7 +611,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -621,7 +621,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -631,7 +631,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -662,16 +662,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(_val);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(_val);
+ break;
+
+ }
+@@ -983,7 +983,7 @@
+ } else if (argc == 1) {
+ /* is this a string, or a number indicating a node? */
+ myStr = JS_ValueToString(cx, argv[0]);
+- cString = JS_GetStringBytes(myStr);
++ cString = JS_EncodeString(cx, myStr);
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("SFNodeConstr, argc =1l string %s\n",cString);
+ #endif
+@@ -1067,13 +1067,13 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, argv[0]);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ /* printf ("first string :%s:\n",_id_c); */
+
+ cString = STRDUP(_id_c);
+
+ _idStr = JS_ValueToString(cx, argv[1]);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ /* printf ("second string :%s:\n",_id_c); */
+
+ if (sscanf (_id_c,"%p",&newHandle) != 1) {
+@@ -1190,7 +1190,7 @@
+ jsval rval;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf ("start of SFNodeGetProperty... id is %s\n",_id_c);
+@@ -1264,10 +1264,10 @@
+
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ _valStr = JS_ValueToString(cx, *vp);
+- _val_c = JS_GetStringBytes(_valStr);
++ _val_c = JS_EncodeString(cx, _valStr);
+
+ #ifdef JSVRMLCLASSESVERBOSE
+ printf("SFNodeSetProperty: obj = %p, id = %s, vp = %s\n",
+@@ -1904,7 +1904,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -1914,7 +1914,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -1924,7 +1924,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -1934,7 +1934,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -1969,16 +1969,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -2051,7 +2051,7 @@
+ * it get created in javascript? */
+ if (param_isString) {
+ _str = JS_ValueToString(cx, *argv);
+- charString = JS_GetStringBytes(_str);
++ charString = JS_EncodeString(cx, _str);
+
+ if (sscanf(charString, "%lf %lf",
+ &(pars[0]), &(pars[1])) != 2) {
+@@ -2143,7 +2143,7 @@
+ printf( "JS_NewDouble failed for %f in SFVec2f.\n",d);
+ return JS_FALSE;
+ }
+- *rval = DOUBLE_TO_JSVAL(dp);
++ *rval = DOUBLE_TO_JSVAL(*dp);
+ }
+
+ #ifdef JSVRMLCLASSESVERBOSE
+@@ -2332,7 +2332,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -2342,7 +2342,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ }
+@@ -2373,13 +2373,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -2458,7 +2458,7 @@
+ * it get created in javascript? */
+ if (param_isString) {
+ _str = JS_ValueToString(cx, *argv);
+- charString = JS_GetStringBytes(_str);
++ charString = JS_EncodeString(cx, _str);
+
+ if (sscanf(charString, "%lf %lf %lf",
+ &(pars[0]), &(pars[1]), &(pars[2])) != 3) {
+@@ -2580,7 +2580,7 @@
+ printf( "JS_NewDouble failed for %f in SFVec3f.\n",d);
+ return JS_FALSE;
+ }
+- *rval = DOUBLE_TO_JSVAL(dp);
++ *rval = DOUBLE_TO_JSVAL(*dp);
+ }
+ #ifdef JSVRMLCLASSESVERBOSE
+ if (retSFVec3f){
+@@ -2792,9 +2792,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -2813,7 +2813,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -2823,7 +2823,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -2833,7 +2833,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -2869,13 +2869,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -2949,7 +2949,7 @@
+ * it get created in javascript? */
+ if (param_isString) {
+ _str = JS_ValueToString(cx, *argv);
+- charString = JS_GetStringBytes(_str);
++ charString = JS_EncodeString(cx, _str);
+
+ if (sscanf(charString, "%lf %lf %lf",
+ &(pars[0]), &(pars[1]), &(pars[2])) != 3) {
+@@ -3071,7 +3071,7 @@
+ printf( "JS_NewDouble failed for %f in SFVec3d.\n",d);
+ return JS_FALSE;
+ }
+- *rval = DOUBLE_TO_JSVAL(dp);
++ *rval = DOUBLE_TO_JSVAL(*dp);
+ }
+ #ifdef JSVRMLCLASSESVERBOSE
+ if (retSFVec3d){
+@@ -3282,9 +3282,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -3303,7 +3303,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -3313,7 +3313,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -3323,7 +3323,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -3359,13 +3359,13 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -3513,9 +3513,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -3534,7 +3534,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -3544,7 +3544,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -3554,7 +3554,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -3564,7 +3564,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -3600,16 +3600,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+@@ -3758,9 +3758,9 @@
+ char *_id_c;
+
+ _idStr = JS_ValueToString(cx, id);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+ _idStr = JS_ValueToString(cx, *vp);
+- _id_c = JS_GetStringBytes(_idStr);
++ _id_c = JS_EncodeString(cx, _idStr);
+
+ #endif
+
+@@ -3779,7 +3779,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 1:
+ d = (ptr->v).c[1];
+@@ -3789,7 +3789,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 2:
+ d = (ptr->v).c[2];
+@@ -3799,7 +3799,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ case 3:
+ d = (ptr->v).c[3];
+@@ -3809,7 +3809,7 @@
+ d);
+ return JS_FALSE;
+ }
+- *vp = DOUBLE_TO_JSVAL(dp);
++ *vp = DOUBLE_TO_JSVAL(*dp);
+ break;
+ }
+ } else {
+@@ -3845,16 +3845,16 @@
+ if (JSVAL_IS_INT(id)) {
+ switch (JSVAL_TO_INT(id)) {
+ case 0:
+- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 1:
+- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 2:
+- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ case 3:
+- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
++ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
+ break;
+ }
+ }
+diff -wbBur freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c
+--- freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c 2010-09-22 20:54:59.000000000 +0400
++++ freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c 2011-07-04 01:19:07.000000000 +0400
+@@ -54,7 +54,7 @@
+ #include "X3DProtoScript.h"
+
+ #if HAVE_EXPAT_H
+-# include <expat.h>
++# include </usr/include/expat.h>
+ #endif
+ //#define X3DPARSERVERBOSE 1
+
diff --git a/community-staging/fxdesktop/PKGBUILD b/community-staging/fxdesktop/PKGBUILD
new file mode 100644
index 000000000..8e691467c
--- /dev/null
+++ b/community-staging/fxdesktop/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 62325 2012-01-19 08:58:33Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sander Jansen <sander@knology.net>
+
+pkgname=fxdesktop
+pkgver=0.1.12
+pkgrel=5
+pkgdesc="Lightweight Desktop Environment"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/fxdesktop/"
+license=('GPL')
+depends=('fox>=1.6.0' )
+source=(http://archlinux-stuff.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('9489e7369b5e052e0b6836a3b0670832')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # Override default flags
+ export CFLAGS="-Wall -O2 -pipe"
+ export CXXFLAGS="-Wall -O2 -pipe"
+ [ "$CARCH" = "x86_64" ] && (sed -i -e 's|lib64|lib|g' build/config.linux_x86_64)
+ # Compile
+ ./gb --prefix=/usr
+ ./gb --package-root=$pkgdir/usr install
+}
diff --git a/community-staging/fxprocessview/PKGBUILD b/community-staging/fxprocessview/PKGBUILD
new file mode 100644
index 000000000..e5c049e53
--- /dev/null
+++ b/community-staging/fxprocessview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 62327 2012-01-19 08:59:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sander Jansen <sander@knology.net>
+
+pkgname=fxprocessview
+pkgver=0.5.0
+pkgrel=4
+pkgdesc="Process Viewer"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('fox>=1.4.0')
+url="http://code.google.com/p/fxdesktop/"
+source=(http://archlinux-stuff.googlecode.com/files/$pkgname-$pkgver.tar.gz \
+ build-fix.patch)
+md5sums=('5d3cc8d7aec770997c281a743ddfda5a'
+ '2d2c3d54dcd2404149955f12cccb21a5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # Override default flags
+ export CFLAGS="-Wall -O2 -pipe"
+ export CXXFLAGS="-Wall -O2 -pipe"
+ # Compile
+ patch -Np1 <../build-fix.patch
+ ./gb
+ # gb does not return valid error code
+ [ -f src/fxprocessview ]
+ # make sure destination exists
+ mkdir -p $pkgdir/usr/bin
+ # Install
+ ./gb install --package-root=$pkgdir/usr
+}
diff --git a/community-staging/fxprocessview/build-fix.patch b/community-staging/fxprocessview/build-fix.patch
new file mode 100644
index 000000000..7c883454c
--- /dev/null
+++ b/community-staging/fxprocessview/build-fix.patch
@@ -0,0 +1,41 @@
+diff -wbBur fxprocessview-0.5.0/src/processlist.cpp fxprocessview-0.5.0.my/src/processlist.cpp
+--- fxprocessview-0.5.0/src/processlist.cpp 2005-07-15 06:39:17.000000000 +0400
++++ fxprocessview-0.5.0.my/src/processlist.cpp 2007-03-07 19:21:34.000000000 +0300
+@@ -696,7 +696,7 @@
+
+ long FXProcessList::onCmdUserMode(FXObject* sender,FXSelector,void* ){
+ if (userfilter.empty()){
+- userfilter=FXFile::getCurrentUserName();
++ userfilter=FXSystem::currentUserName();
+ }
+ else {
+ userfilter="";
+@@ -942,12 +942,17 @@
+
+
+
+- FXint num_processes = FXFile::listFiles(dirlist,"/proc","[0123456789]*",LIST_MATCH_ALL|LIST_NO_FILES|LIST_NO_PARENT);
++ FXint num_processes = FXDir::listFiles(dirlist,"/proc","[0123456789]*",FXDir::MatchAll | FXDir::NoFiles | FXDir::NoParent);
+ task_total=num_processes;
+ for (FXint i=0;i<num_processes;i++){
+
+ /// Check the Owner
+- owner = FXFile::owner("/proc/" + dirlist[i]);
++ FXStat stat;
++ FXStat::statFile("/proc/" + dirlist[i], stat);
++ owner = FXSystem::userName(stat.user());
++
++// owner = FXSystem::userName(FXStat::user("/proc/" + dirlist[i]));
++
+ if (!userfilter.empty() && (owner!=userfilter)) continue;
+
+ /// Read in Process Stat
+@@ -1027,7 +1032,7 @@
+ }
+
+ filename = "/proc/" + dirlist[i] + "/cmdline";
+- if (FXFile::exists(filename)) {
++ if (FXStat::exists(filename)) {
+ fp = fopen(filename.text(),"r");
+ if (fp) {
+ if (fgets(buffer,80,fp)!=NULL){
diff --git a/community-staging/geda-gaf/ChangeLog b/community-staging/geda-gaf/ChangeLog
new file mode 100644
index 000000000..c8b902cc5
--- /dev/null
+++ b/community-staging/geda-gaf/ChangeLog
@@ -0,0 +1,53 @@
+2012-01-19 Kyle Keen <keenerd@gmail.com>
+ * 1.6.2-2
+ - libpng15 rebuild
+
+2010-12-26 Stefan Husmann <stefan-husmann@t-online.de>
+ * 1.6.1-2
+ - adopted, moved to [community]
+ - added some optional dependencies
+ - added some sed-commands for python2 compatibility
+
+2010-02-14 Jared Casper <jaredcasper@gmail.com>
+ * 1.6.1-1
+ - Version bump
+
+2009-10-10 Jared Casper <jaredcasper@gmail.com>
+ * 1.6.0-2
+ - Fixed a bug causing icon problems
+
+2009-10-05 Jared Casper <jaredcasper@gmail.com>
+ * 1.6.0-1
+ - Merged with geda-libs and renamed to geda-gaf to match up with
+ the release tarball name
+
+2009-05-03 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.3-2
+ - Added gettext dep (noted by sergej)
+ - Added '|| return 1's to configure and make commands
+ - A bit of other random cleanup of deps
+
+2009-01-03 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.3-1
+ - Version bump
+ - Fix dependencies (s/=>/>=/)
+
+2008-12-20 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.2-1
+ - Version bump
+ - Update from comments
+
+2008-09-28 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.1-1
+ - Version bump
+ - Added icon cache update
+ - Added icon cache and desktop update to post_update
+
+2008-05-07 Jared Casper <jaredcasper@gmail.com>
+
+ * 1.4.0-1
+ - adopted by Jared Casper
+ - Update PKGBUILD to current standards and latest version (1.4.0)
+ - add configure options and install script to handle desktop issues
+ - added ChangeLog
+
diff --git a/community-staging/geda-gaf/PKGBUILD b/community-staging/geda-gaf/PKGBUILD
new file mode 100644
index 000000000..b3e6278b9
--- /dev/null
+++ b/community-staging/geda-gaf/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=geda-gaf
+pkgver=1.6.2
+pkgrel=2
+pkgdesc="gEDA/gaf suite - Contains gschem, gnetlist, gsymcheck, gattrib, utilities and documentation from the gEDA project"
+arch=('i686' 'x86_64')
+url="http://www.gpleda.org"
+license=('GPL')
+depends=('gtk2' 'guile' 'libstroke' 'shared-mime-info' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'perlxml' 'flex' 'gawk')
+optdepends=('python2: for two of the commands (garchive, tragesym)'
+ 'gawk: for sw2asc')
+replaces=('geda-suite' 'geda-libs')
+install=geda-gaf.install
+source=(http://geda.seul.org/release/v1.6/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('35ae86aebc174ec1fc03863fde4c843c')
+
+build ()
+{
+ cd "$srcdir/$pkgname-$pkgver/"
+ ./configure --prefix=/usr --disable-update-xdg-database
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/"
+ make DESTDIR="$pkgdir/" install
+ sed -i 's+/usr/bin/env python+/usr/bin/env python2+' \
+ "$pkgdir/usr/bin/garchive"
+ sed -i 's+/usr/bin/python+/usr/bin/python2+' \
+ "$pkgdir/usr/bin/tragesym"
+ sed -i 's+/usr/bin/python+/usr/bin/python2+' \
+ "$pkgdir/usr/share/doc/$pkgname/examples/lightning_detector/bom"
+}
+
diff --git a/community-staging/geda-gaf/geda-gaf.install b/community-staging/geda-gaf/geda-gaf.install
new file mode 100644
index 000000000..ad5e587cc
--- /dev/null
+++ b/community-staging/geda-gaf/geda-gaf.install
@@ -0,0 +1,19 @@
+post_install() {
+if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ echo Updating icon cache...
+ /usr/bin/gtk-update-icon-cache -f -t /usr/share/icons/hicolor
+fi
+if [ -x /usr/bin/update-desktop-database ]; then
+ echo Updating desktop database..
+ /usr/bin/update-desktop-database /usr/share/applications
+fi
+update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+post_install
+}
+
+post_remove() {
+post_install
+} \ No newline at end of file
diff --git a/community-staging/glpng/Makefile b/community-staging/glpng/Makefile
new file mode 100644
index 000000000..d6772798f
--- /dev/null
+++ b/community-staging/glpng/Makefile
@@ -0,0 +1,30 @@
+CFLAGS+=-fPIC -Iinclude
+LDFLAGS+=-lpng -lGL
+SHAREDLIBFLAGS=-shared
+DESTDIR=/usr/local
+LIB=lib
+
+all: libglpng.a libglpng.so.1.45
+
+libglpng.a: glpng.o
+ ar rv $@ $<
+
+libglpng.so.1.45: glpng.o
+ gcc $(CFLAGS) $(SHAREDLIBFLAGS) -Wl,-soname=libglpng.so.1 -Wl,--whole-archive $< -Wl,--no-whole-archive $(LDFLAGS) -o $@
+
+glpng.o: src/glpng.c
+ gcc $(CFLAGS) -c $<
+
+clean:
+ rm glpng.o libglpng.*
+
+install:
+ for i in include include/GL $(LIB); do \
+ install -m 755 -d $(DESTDIR)/$$i; \
+ done
+ install -p -m 644 include/GL/glpng.h $(DESTDIR)/include/GL
+ install -m 755 libglpng.* $(DESTDIR)/$(LIB)
+ ln -s libglpng.so.1.45 $(DESTDIR)/$(LIB)/libglpng.so.1
+ ln -s libglpng.so.1.45 $(DESTDIR)/$(LIB)/libglpng.so
+
+.PHONY: clean install
diff --git a/community-staging/glpng/PKGBUILD b/community-staging/glpng/PKGBUILD
new file mode 100644
index 000000000..c2530ae09
--- /dev/null
+++ b/community-staging/glpng/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 62385 2012-01-19 18:48:18Z jelle $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=glpng
+pkgver=1.45
+pkgrel=5
+pkgdesc="Toolkit for loading PNG images as OpenGL textures"
+arch=('i686' 'x86_64')
+url="http://www.fifi.org/doc/libglpng-dev/glpng.html"
+license=('custom')
+depends=('libpng' 'libgl')
+makedepends=('mesa')
+source=(http://ftp.de.debian.org/debian/pool/main/libg/libglpng/libglpng_${pkgver}.orig.tar.gz
+ Makefile
+ libpng15.patch
+ license)
+build() {
+ cd "$srcdir/libglpng-1.45.orig"
+
+ patch -Np1 -i "$srcdir/libpng15.patch"
+
+ cp "$srcdir/Makefile" .
+ make libglpng.so.1.45
+}
+
+package() {
+ cd "$srcdir/libglpng-1.45.orig"
+ make DESTDIR="$pkgdir/usr" install
+ install -Dm644 "$srcdir/license" \
+ "$pkgdir/usr/share/licenses/glpng/license"
+}
+md5sums=('9e0daad8e39fbf3179c73c0d3f74f104'
+ '0b24e9cb527d4ed1c43dd743d49d2b54'
+ 'f3f0c0a3f867c5856d922c18677ef2a2'
+ 'cd066652a6e5dbd7c1fc303b8e03417a')
diff --git a/community-staging/glpng/libpng15.patch b/community-staging/glpng/libpng15.patch
new file mode 100644
index 000000000..89e9bf67e
--- /dev/null
+++ b/community-staging/glpng/libpng15.patch
@@ -0,0 +1,83 @@
+diff -aur libglpng-1.45.orig/include/GL/glpng.h libglpng-1.45.new/include/GL/glpng.h
+--- libglpng-1.45.orig/include/GL/glpng.h 2000-07-10 21:27:00.000000000 +0200
++++ libglpng-1.45.new/include/GL/glpng.h 2012-01-19 19:34:43.994280259 +0100
+@@ -57,7 +57,7 @@
+ #define PNG_SIMPLEMIPMAP PNG_SIMPLEMIPMAPS
+
+ /* Transparency parameters */
+-#define PNG_CALLBACK -3 /* Call the callback function to generate alpha */
++#define PNG_CALLBACKT -3 /* Call the callback function to generate alpha */
+ #define PNG_ALPHA -2 /* Use alpha channel in PNG file, if there is one */
+ #define PNG_SOLID -1 /* No transparency */
+ #define PNG_STENCIL 0 /* Sets alpha to 0 for r=g=b=0, 1 otherwise */
+diff -aur libglpng-1.45.orig/src/glpng.c libglpng-1.45.new/src/glpng.c
+--- libglpng-1.45.orig/src/glpng.c 2000-07-10 21:27:10.000000000 +0200
++++ libglpng-1.45.new/src/glpng.c 2012-01-19 19:39:37.379311651 +0100
+@@ -29,7 +29,7 @@
+ #include <GL/gl.h>
+ #include <stdlib.h>
+ #include <math.h>
+-#include "png/png.h"
++#include <png.h>
+
+ /* Used to decide if GL/gl.h supports the paletted extension */
+ #ifdef GL_COLOR_INDEX1_EXT
+@@ -113,6 +113,7 @@
+ }
+ }
+
++#ifdef _WIN32
+ static int ExtSupported(const char *x) {
+ static const GLubyte *ext = NULL;
+ const char *c;
+@@ -129,6 +130,7 @@
+
+ return 0;
+ }
++#endif
+
+ #define GET(o) ((int)*(data + (o)))
+
+@@ -269,14 +271,14 @@
+ if (pinfo == NULL) return 0;
+
+ fread(header, 1, 8, fp);
+- if (!png_check_sig(header, 8)) return 0;
++ if (!png_sig_cmp(header, 0, 8)) return 0;
+
+ png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ info = png_create_info_struct(png);
+ endinfo = png_create_info_struct(png);
+
+ // DH: added following lines
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf(png)))
+ {
+ png_destroy_read_struct(&png, &info, &endinfo);
+ return 0;
+@@ -373,14 +375,14 @@
+ png_uint_32 i;
+
+ fread(header, 1, 8, fp);
+- if (!png_check_sig(header, 8)) return 0;
++ if (png_sig_cmp(header, 0, 8)) return 0;
+
+ png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ info = png_create_info_struct(png);
+ endinfo = png_create_info_struct(png);
+
+ // DH: added following lines
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf(png)))
+ {
+ png_destroy_read_struct(&png, &info, &endinfo);
+ return 0;
+@@ -559,7 +561,7 @@
+ #define ALPHA *q
+
+ switch (trans) {
+- case PNG_CALLBACK:
++ case PNG_CALLBACKT:
+ FORSTART
+ ALPHA = AlphaCallback((unsigned char) r, (unsigned char) g, (unsigned char) b);
+ FOREND
diff --git a/community-staging/glpng/license b/community-staging/glpng/license
new file mode 100644
index 000000000..a526262b5
--- /dev/null
+++ b/community-staging/glpng/license
@@ -0,0 +1,21 @@
+/*
+ * PNG loader library for OpenGL v1.45 (10/07/00)
+ * by Ben Wyatt ben@wyatt100.freeserve.co.uk
+ * Using LibPNG 1.0.2 and ZLib 1.1.3
+ *
+ * This software is provided 'as-is', without any express or implied warranty.
+ * In no event will the author be held liable for any damages arising from the
+ * use of this software.
+ *
+ * Permission is hereby granted to use, copy, modify, and distribute this
+ * source code, or portions hereof, for any purpose, without fee, subject to
+ * the following restrictions:
+ *
+ * 1. The origin of this source code must not be misrepresented. You must not
+ * claim that you wrote the original software. If you use this software in
+ * a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered versions must be plainly marked as such and must not be
+ * misrepresented as being the original source.
+ * 3. This notice must not be removed or altered from any source distribution.
+ */
diff --git a/community-staging/gnustep-gui/ChangeLog b/community-staging/gnustep-gui/ChangeLog
new file mode 100644
index 000000000..15622ab88
--- /dev/null
+++ b/community-staging/gnustep-gui/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* version upgrade
diff --git a/community-staging/gnustep-gui/PKGBUILD b/community-staging/gnustep-gui/PKGBUILD
new file mode 100644
index 000000000..584d5a038
--- /dev/null
+++ b/community-staging/gnustep-gui/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 62400 2012-01-19 19:38:10Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=gnustep-gui
+pkgver=0.20.0
+pkgrel=3
+pkgdesc="The GNUstep GUI class library"
+arch=('i686' 'x86_64')
+url="http://www.gnustep.org/"
+license=('LGPL')
+depends=('gnustep-base' 'libungif' 'aspell' 'gcc-libs' 'libcups' 'audiofile' 'libsndfile' 'giflib' 'libao')
+makedepends=('gcc-objc')
+conflicts=('gnustep-gui-svn')
+groups=('gnustep-core')
+options=('!makeflags')
+source=(ftp://ftp.gnustep.org/pub/gnustep/core/$pkgname-$pkgver.tar.gz)
+md5sums=('0d3765aa97db1dd20bdbd0690f4aca6b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ . /etc/profile.d/GNUstep.sh
+ ./configure --prefix=/usr --sysconfdir=/etc/GNUstep
+ sed -i 's|#include "GNUstepBase/preface.h"|//#include "GNUstepBase/preface.h" |' Source/GSGuiPrivate.h
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-staging/gpac/PKGBUILD b/community-staging/gpac/PKGBUILD
new file mode 100644
index 000000000..dec36fb2e
--- /dev/null
+++ b/community-staging/gpac/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 62409 2012-01-19 20:53:21Z ebelanger $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gpac
+pkgver=3824
+pkgrel=2
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+arch=('i686' 'x86_64')
+url="http://gpac.sourceforge.net"
+license=('LGPL')
+depends=('ffmpeg' 'libjpeg' 'libpng' 'mesa')
+makedepends=('jack' 'a52dec' 'freetype2' 'libxv' 'faad2' 'libmad')
+optdepends=('jack: for jack support' 'a52dec: for A52 support'
+ 'faad2: for AAC support' 'libmad: for mp3 support')
+options=('!makeflags')
+source=(ftp://ftp.archlinux.org/other/community/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('bf7039c2585d539475babc7996851627efd7ec59')
+
+# source PKGBUILD && mksource
+mksource() {
+ [[ -x /usr/bin/svn ]] || (echo "svn not found. Install subversion." && return 1)
+ _svnver=$pkgver
+ _svntrunk="https://gpac.svn.sourceforge.net/svnroot/gpac/trunk/gpac"
+ _svnmod="$pkgname-$pkgver"
+ mkdir ${pkgname}-$pkgver
+ pushd ${pkgname}-$pkgver
+ svn co $_svntrunk --config-dir ./ -r $_svnver $_svnmod
+ echo "#define GPAC_SVN_REVISION \"$_svnver\"" > ${pkgname}-$pkgver/include/gpac/version.h
+ find . -depth -type d -name .svn -exec rm -rf {} \;
+ tar -cJf ../${pkgname}-$pkgver.tar.xz ${pkgname}-$pkgver/*
+ popd
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --X11-path=/usr --use-js=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install install-lib
+}
diff --git a/community-staging/grafx2/PKGBUILD b/community-staging/grafx2/PKGBUILD
new file mode 100644
index 000000000..c885baea2
--- /dev/null
+++ b/community-staging/grafx2/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 62301 2012-01-19 07:23:27Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Simon Parzer <simon.parzer@gmail.com>
+pkgname=grafx2
+pkgver=2.3
+pkgrel=3
+pkgdesc="Pixelart-oriented painting program"
+arch=('x86_64' 'i686')
+url="http://code.google.com/p/grafx2/"
+license=('GPL2')
+install=grafx2.install
+depends=('sdl_ttf' 'sdl_image' 'lua' 'desktop-file-utils')
+source=("http://grafx2.googlecode.com/files/$pkgname-$pkgver.1781-src.tgz"
+ "grafx2.desktop")
+md5sums=('916a35c4762e85b4210a1041fbbfd830'
+ '9b3ecb5c2d44b987d65257184f46e6c4')
+
+build() {
+ cd "$srcdir/$pkgname/src"
+
+ msg2 "Compiling..."
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname/src"
+
+ msg2 "Packaging files..."
+ make prefix="/usr" DESTDIR="$pkgdir" install
+ msg2 "Packaging shortcut..."
+ install -Dm644 "$srcdir/$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+ msg2 "Packaging documentation..."
+ install -Dm644 "$srcdir/$pkgname/doc/README.txt" \
+ "$pkgdir/usr/share/doc/$pkgname/readme.txt"
+ msg2 "Packaging license..."
+ install -Dm644 "$srcdir/$pkgname/doc/gpl-2.0.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ msg2 "Cleaning up..."
+ rmdir "$pkgdir/usr/share/grafx2/scripts/libs"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-staging/grafx2/grafx2.desktop b/community-staging/grafx2/grafx2.desktop
new file mode 100644
index 000000000..d58bc5ed3
--- /dev/null
+++ b/community-staging/grafx2/grafx2.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+GenericName=GrafX2
+Name=GrafX2
+Comment=Pixelart-oriented painting program
+Exec=grafx2 %U
+TryExec=grafx2
+Icon=grafx2
+Terminal=false
+Type=Application
+Categories=Graphics;2DGraphics;RasterGraphics
+MimeType=image/bmp;image/gif;image/png;image/x-tga;image/tiff
diff --git a/community-staging/grafx2/grafx2.install b/community-staging/grafx2/grafx2.install
new file mode 100644
index 000000000..12589796c
--- /dev/null
+++ b/community-staging/grafx2/grafx2.install
@@ -0,0 +1,16 @@
+pkgname=grafx2
+
+post_upgrade() {
+ gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-staging/gsql/PKGBUILD b/community-staging/gsql/PKGBUILD
new file mode 100644
index 000000000..67af0c006
--- /dev/null
+++ b/community-staging/gsql/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 62366 2012-01-19 17:48:19Z spupykin $
+# Contributor: Michael Kanis <mkanis@gmx.de>
+
+pkgname=gsql
+pkgver=0.2.2
+pkgrel=4
+pkgdesc="Integrated database development tool for GNOME"
+url="http://gsql.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gtk2>=2.12' 'gtksourceview2' 'vte' 'libgnomeui' 'gconf'
+ 'desktop-file-utils' 'libnotify')
+makedepends=('libmysqlclient' 'postgresql-libs' 'libssh')
+optdepends=('libmysqlclient' 'postgresql-libs' 'libssh')
+install=gsql.install
+options=(!libtool)
+source=(http://gsql.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('8f3322a75390584729e84a8570e08bea')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's/notify_notification_new (subj, message, NULL, NULL);/notify_notification_new (subj, message, NULL);/' libgsql/notify.c
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/community-staging/gsql/gsql.install b/community-staging/gsql/gsql.install
new file mode 100644
index 000000000..e069ea8fc
--- /dev/null
+++ b/community-staging/gsql/gsql.install
@@ -0,0 +1,24 @@
+pkgname=gsql
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community-staging/htmldoc/PKGBUILD b/community-staging/htmldoc/PKGBUILD
new file mode 100644
index 000000000..27af9e340
--- /dev/null
+++ b/community-staging/htmldoc/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 62369 2012-01-19 17:50:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Simon Rutishauser <simon.rutishauser@gmx.ch>
+
+pkgname=htmldoc
+pkgver=1.8.27
+pkgrel=7
+pkgdesc="Produce PDF or Postscript from HTML documents including TOCs and Indices"
+arch=(i686 x86_64)
+url="http://www.htmldoc.org"
+license=('GPL')
+depends=('libjpeg' 'libpng' 'openssl' 'fltk' 'gcc-libs' 'libxft' 'libxpm')
+source=(ftp://ftp.easysw.com/pub/${pkgname}/${pkgver}/${pkgname}-$pkgver-source.tar.bz2)
+md5sums=('35589e7b8fe9c54e11be87cd5aec4dcc')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+
+ make install \
+ prefix=${pkgdir}/usr \
+ bindir=$pkgdir/usr/bin \
+ datadir=$pkgdir/usr/share \
+ datarootdir=$pkgdir/usr/share \
+ docdir=$pkgdir/usr/share/doc/htmldoc \
+ exec_prefix=$pkgdir/usr \
+ mandir=$pkgdir/usr/share/man \
+ prefix=$pkgdir/usr \
+ sysconfdir=$pkgdir/etc
+
+ # freedesktop stuff
+ install -Dm 644 desktop/htmldoc-128.png \
+ $pkgdir/usr/share/pixmaps/htmldoc.png
+ echo "MimeType=application/vnd.htmldoc-book;" >> desktop/htmldoc.desktop
+ sed -i 's|X-Red-Hat.*$||' desktop/htmldoc.desktop
+ install -Dm 644 desktop/htmldoc.desktop \
+ $pkgdir/usr/share/applications/htmldoc.desktop
+}
diff --git a/community-staging/icoutils/PKGBUILD b/community-staging/icoutils/PKGBUILD
new file mode 100644
index 000000000..8f8813cbd
--- /dev/null
+++ b/community-staging/icoutils/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: neodreams <yanbrodeur@videotron.ca>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=icoutils
+pkgver=0.29.1
+pkgrel=2
+pkgdesc='Extracts and converts images in MS Windows(R) icon and cursor files.'
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://www.nongnu.org/icoutils/'
+depends=('libpng>=1.0.0' 'perl-libwww>=5.64')
+source=("http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('b58f375e0f8731595e8d0ecdc3a0acb9')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community-staging/jwm/PKGBUILD b/community-staging/jwm/PKGBUILD
new file mode 100644
index 000000000..4c96d14c6
--- /dev/null
+++ b/community-staging/jwm/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 62417 2012-01-19 21:22:13Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=jwm
+pkgver=2.1.0
+pkgrel=2
+pkgdesc="A lightweight window manager for the X11 Window System"
+arch=('i686' 'x86_64')
+url="http://joewing.net/programs/jwm/"
+license=('GPL2')
+depends=('libx11' 'libxft' 'libjpeg>=7' 'libxpm' 'libxinerama' 'libpng')
+backup=('etc/system.jwmrc')
+source=(http://joewing.net/programs/jwm/releases/jwm-$pkgver.tar.bz2)
+md5sums=('e8fab21b2410eb82032b7c3472af642c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-fribidi
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make BINDIR="$pkgdir/usr/bin" MANDIR="$pkgdir/usr/share/man" \
+ SYSCONF="$pkgdir/etc" install
+}
diff --git a/community-staging/kovpn/ChangeLog b/community-staging/kovpn/ChangeLog
new file mode 100644
index 000000000..d8e35c402
--- /dev/null
+++ b/community-staging/kovpn/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-25 Georg Grabler (STiAT) <ggrabler@gmail.com>
+* Added libtool option
diff --git a/community-staging/kovpn/PKGBUILD b/community-staging/kovpn/PKGBUILD
new file mode 100644
index 000000000..5b5ccfb63
--- /dev/null
+++ b/community-staging/kovpn/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 62371 2012-01-19 17:53:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+
+pkgname=kovpn
+pkgver=0.3pre7
+_pkgver=0.3.pre7
+pkgrel=6
+pkgdesc="An OpenVPN client management interface for KDE"
+arch=('i686' 'x86_64')
+url="http://www.kde-apps.org/content/show.php?content=37043"
+license=('GPL')
+depends=('openvpn' 'kdelibs3' 'xdg-utils')
+makedepends=('automake' 'autoconf')
+options=('libtool')
+install=kovpn.install
+DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
+ 'http::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
+ 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u')
+source=("https://projects.fslab.de/projects/kovpn/chrome/site/kovpn-${_pkgver}.tar.bz2"
+ "kovpn-disable-dcop.patch::https://bugs.archlinux.org/task/15464?getfile=4173")
+md5sums=('19b61cf9f84088baffbd5bb0a287422c'
+ '21171b74f76289daea1cc61eedaa4dba')
+
+build() {
+ cd $srcdir/$pkgname-$_pkgver
+
+ unset LDFLAGS
+ . /etc/profile.d/qt3.sh
+ export PATH=$QTDIR/bin:$PATH
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+
+ patch -Np1 -i ../kovpn-disable-dcop.patch
+ sed -i 's#automake\*1.10\*#automake*1.10* | automake*1.11*#' admin/cvs.sh
+ make -f admin/Makefile.common cvs
+ ./configure --prefix=/opt/kde --without-arts --with-qt-dir=/opt/qt
+ make
+ make prefix=$pkgdir/usr install
+}
diff --git a/community-staging/kovpn/kovpn.install b/community-staging/kovpn/kovpn.install
new file mode 100644
index 000000000..b4ee8556f
--- /dev/null
+++ b/community-staging/kovpn/kovpn.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community-staging/leptonica/PKGBUILD b/community-staging/leptonica/PKGBUILD
new file mode 100644
index 000000000..b032a5595
--- /dev/null
+++ b/community-staging/leptonica/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 62320 2012-01-19 08:26:31Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Christoph Drexler <chrdr at gmx dot at>
+
+pkgname=leptonica
+pkgver=1.68
+pkgrel=3
+pkgdesc="Software that is broadly useful for image processing and image analysis applications"
+arch=('i686' 'x86_64')
+url="http://www.leptonica.com/"
+license=('custom')
+depends=('glibc')
+makedepends=('giflib' 'gnuplot' 'libjpeg' 'libpng' 'libtiff' 'zlib')
+# 'webp'
+optdepends=('giflib: for supporting gif files'
+ 'gnuplot: gnuplot support'
+ 'libjpeg: for supporting jpeg files'
+ 'libpng: for supporting png files'
+ 'libtiff: for supporting tiff files'
+ 'zlib: for supporting compressed files')
+# 'webp: for supporting webp files'
+source=(http://www.leptonica.com/source/leptonica-${pkgver}.tar.gz)
+md5sums=('5cd7092f9ff2ca7e3f3e73bfcd556403')
+
+build() {
+ cd ${srcdir}/leptonica-${pkgver}
+ sed -i '1,1i#include <zlib.h>' src/pngio.c
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/leptonica-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D leptonica-license.txt ${pkgdir}/usr/share/licenses/leptonica/leptonica-license.txt
+}
diff --git a/community-staging/libinfinity/PKGBUILD b/community-staging/libinfinity/PKGBUILD
new file mode 100644
index 000000000..f74a2ed82
--- /dev/null
+++ b/community-staging/libinfinity/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 62402 2012-01-19 19:43:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Gregory Haynes <greg@greghaynes.net>
+
+pkgname=libinfinity
+pkgver=0.5.1
+pkgrel=3
+pkgdesc="An implementation of the Infininote protocol written in GObject-based C"
+arch=('i686' 'x86_64')
+url="http://gobby.0x539.de"
+license=('GPL')
+depends=('gnutls>=1.7.2' 'gsasl>=0.2.21' 'glib2>=2.16' 'libxml2>=2.0' 'gtk2')
+makedepends=('gtk-doc' 'pkgconfig')
+optdepends=('avahi: zeroconf support'
+ 'gtk2: gtk support')
+options=('!libtool')
+source=("http://releases.0x539.de/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('85e6d75e101fe25503653d2202054eff')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --localstatedir=/var
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ rm -rf $pkgdir/var
+}
diff --git a/community-staging/libmatchbox/PKGBUILD b/community-staging/libmatchbox/PKGBUILD
new file mode 100644
index 000000000..e5fe9b49f
--- /dev/null
+++ b/community-staging/libmatchbox/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 62375 2012-01-19 18:03:30Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Henrique C. Alves <hcarvalhoalves@gmail.com>
+
+pkgname=libmatchbox
+pkgver=1.9
+pkgrel=5
+pkgdesc="Base library for Matchbox WM"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('pango' 'libpng' 'libjpeg>=7' 'xsettings-client' 'libxext')
+options=('!libtool')
+url="http://matchbox-project.org/"
+source=(http://matchbox-project.org/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2
+ libpng15.patch)
+md5sums=('9f73e7515cc4679171a5db180dc1343b'
+ '09f782c76fe313efd0e87fabb276e2fe')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|png_check_sig( header, 8 )|png_sig_cmp( header, 0, 8 ) == 0|' libmb/mbpixbuf.c
+ patch -Rp1 <$srcdir/libpng15.patch
+ LDFLAGS="-lX11" ./configure --prefix=/usr --enable-pango --enable-jpeg --enable-xsettings
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/libmatchbox/libpng15.patch b/community-staging/libmatchbox/libpng15.patch
new file mode 100644
index 000000000..6c4ddef4d
--- /dev/null
+++ b/community-staging/libmatchbox/libpng15.patch
@@ -0,0 +1,23 @@
+diff -wbBur libmatchbox-1.9/libmb/mbpixbuf.c libmatchbox-1.9.org/libmb/mbpixbuf.c
+--- libmatchbox-1.9/libmb/mbpixbuf.c 2012-01-19 21:57:56.000000000 +0400
++++ libmatchbox-1.9.org/libmb/mbpixbuf.c 2006-07-26 23:12:25.000000000 +0400
+@@ -247,7 +247,7 @@
+ return NULL;
+ }
+
+- if ( setjmp( png_jmpbuf(png_ptr) ) ) {
++ if ( setjmp( png_ptr->jmpbuf ) ) {
+ png_destroy_read_struct( &png_ptr, &info_ptr, NULL);
+ fclose(fd);
+ return NULL;
+@@ -269,8 +269,8 @@
+ ( color_type == PNG_COLOR_TYPE_GRAY_ALPHA ))
+ png_set_gray_to_rgb(png_ptr);
+
+- if ( png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA
+- || png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY_ALPHA
++ if ( info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA
++ || info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA
+ )
+ *has_alpha = 1;
+ else
diff --git a/community-staging/mtpaint/PKGBUILD b/community-staging/mtpaint/PKGBUILD
new file mode 100644
index 000000000..82f6480bd
--- /dev/null
+++ b/community-staging/mtpaint/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 62300 2012-01-19 07:19:24Z arodseth $
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: yosh64 <yosh64.at.gmail.dot.com>
+pkgname=mtpaint
+pkgver=3.40
+pkgrel=2
+pkgdesc="Simple GTK2 paint program for creating icons and pixel based artwork"
+arch=('x86_64' 'i686')
+url="http://mtpaint.sourceforge.net/"
+license=('GPL3')
+depends=('gtk2' 'giflib' 'openjpeg' 'desktop-file-utils' 'lcms2')
+install=mtpaint.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2"
+ "libpng15.patch")
+sha256sums=('ef321d2b404839c7b909bdf5283eb22a37fbdd35b4cc9e380ddc400573d7c890'
+ 'be51d45d1146d6c61d1c2c12d1712134da5048dd7314e2741ff336cac6838de3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/libpng15.patch"
+ ./configure --prefix=/usr --mandir=/usr/share/man/man1 man intl gif jpeg tiff
+ sed -i 's:-lpng:-lpng -lgif:' _conf.txt
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/community-staging/mtpaint/libpng15.patch b/community-staging/mtpaint/libpng15.patch
new file mode 100644
index 000000000..7df3b2127
--- /dev/null
+++ b/community-staging/mtpaint/libpng15.patch
@@ -0,0 +1,21 @@
+diff -upr mtpaint-3.31.orig/src/png.c mtpaint-3.31/src/png.c
+--- mtpaint-3.31.orig/src/png.c 2010-01-25 00:43:07.000000000 +0200
++++ mtpaint-3.31/src/png.c 2010-01-25 00:43:39.000000000 +0200
+@@ -539,7 +539,7 @@ static int load_png(char *file_name, ls_
+ if (settings->bpp == 3)
+ {
+ png_set_strip_16(png_ptr);
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ png_set_palette_to_rgb(png_ptr);
+ png_set_gray_to_rgb(png_ptr);
+
+@@ -644,7 +644,7 @@ static int load_png(char *file_name, ls_
+ png_set_strip_alpha(png_ptr);
+ png_set_packing(png_ptr);
+ if ((color_type == PNG_COLOR_TYPE_GRAY) && (bit_depth < 8))
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ for (i = 0; i < height; i++)
+ {
+ row_pointers[i] = settings->img[CHN_IMAGE] + i * width;
diff --git a/community-staging/mtpaint/mtpaint.install b/community-staging/mtpaint/mtpaint.install
new file mode 100644
index 000000000..99a538dea
--- /dev/null
+++ b/community-staging/mtpaint/mtpaint.install
@@ -0,0 +1,13 @@
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_install() {
+ post_upgrade
+}
+
+post_remove() {
+ post_upgrade
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-staging/mypaint/PKGBUILD b/community-staging/mypaint/PKGBUILD
new file mode 100644
index 000000000..5fc81ca34
--- /dev/null
+++ b/community-staging/mypaint/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 62404 2012-01-19 19:47:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jon Nordby <jononor@gmail.com>
+
+pkgname=mypaint
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="A fast and easy painting application for digital painters, with brush dynamics"
+arch=('i686' 'x86_64')
+url="http://mypaint.intilinux.com/"
+license=('GPL' 'LGPL')
+depends=('pygtk' 'python2-numpy' 'protobuf-python' 'python2')
+makedepends=('scons>=0.97' 'swig>=1.3.39')
+install=mypaint.install
+source=(http://download.gna.org/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('dcd43933746a4579e7994f506e097823')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # python2 fix
+ sed -i 's_python generate.py_python2 generate.py_' brushlib/SConscript
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+ scons
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ scons prefix="$pkgdir"/usr install
+}
diff --git a/community-staging/mypaint/mypaint.install b/community-staging/mypaint/mypaint.install
new file mode 100644
index 000000000..5f0358791
--- /dev/null
+++ b/community-staging/mypaint/mypaint.install
@@ -0,0 +1,13 @@
+post_install() {
+ [ -x `which update-mime-database` ] && update-mime-database usr/share/mime
+ [ -x `which gtk-update-icon-cache` ] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ /bin/true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-staging/openscenegraph/PKGBUILD b/community-staging/openscenegraph/PKGBUILD
new file mode 100644
index 000000000..326fc0cbc
--- /dev/null
+++ b/community-staging/openscenegraph/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 62394 2012-01-19 19:14:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Hans Janssen <janserv@gmail.com>
+# Contributor: my64 <packages@obordes.com>
+# Contributor: Colin Pitrat <colin.pitrat@gmail.com>
+
+pkgname=openscenegraph
+pkgver=3.0.1
+pkgrel=4
+pkgdesc="An Open Source, high performance real-time graphics toolkit"
+arch=('i686' 'x86_64')
+license=('custom:OSGPL')
+url="http://www.openscenegraph.org"
+depends=('giflib' 'jasper' 'librsvg' 'xine-lib' 'curl' 'pth')
+makedepends=('cmake' 'libvncserver')
+optdepends=('libvncserver' 'gdal' 'openexr' 'poppler-glib')
+conflicts=('openthreads')
+provides=('openthreads')
+source=(http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-$pkgver/source/OpenSceneGraph-$pkgver.zip
+ osg-xine-1.2.patch)
+#source=("http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-$pkgver.zip")
+md5sums=('c43a25d023e635c3566b2083d8e6d956'
+ 'b05a486fdc2aaf06b29efb5e0714672e')
+
+build() {
+ cd OpenSceneGraph-$pkgver
+ [ $NOEXTRACT -eq 1 ] || cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ sed -i 's|#include <curl/types.h>|//#include <curl/types.h>|' src/osgPlugins/curl/ReaderWriterCURL.cpp
+ patch -p1 <$srcdir/osg-xine-1.2.patch
+ make
+}
+
+package() {
+ cd OpenSceneGraph-$pkgver
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ [ -d "$pkgdir/usr/lib64" ] && mv "$pkgdir/usr/lib64" "$pkgdir/usr/lib" || true
+}
diff --git a/community-staging/openscenegraph/osg-xine-1.2.patch b/community-staging/openscenegraph/osg-xine-1.2.patch
new file mode 100644
index 000000000..c73b588dc
--- /dev/null
+++ b/community-staging/openscenegraph/osg-xine-1.2.patch
@@ -0,0 +1,14 @@
+diff -wbBur OpenSceneGraph-3.0.1/src/osgPlugins/xine/video_out_rgb.c OpenSceneGraph-3.0.1.my/src/osgPlugins/xine/video_out_rgb.c
+--- OpenSceneGraph-3.0.1/src/osgPlugins/xine/video_out_rgb.c 2009-11-20 14:46:20.000000000 +0300
++++ OpenSceneGraph-3.0.1.my/src/osgPlugins/xine/video_out_rgb.c 2012-01-05 02:15:38.000000000 +0400
+@@ -2769,8 +2769,8 @@
+ clear(rgb_class, sizeof(rgbout_class_t));
+
+ rgb_class->driver_class.open_plugin = open_plugin;
+- rgb_class->driver_class.get_identifier = get_identifier;
+- rgb_class->driver_class.get_description = get_description;
++ rgb_class->driver_class.identifier = get_identifier(NULL);
++ rgb_class->driver_class.description = get_description(NULL);
+ rgb_class->driver_class.dispose = dispose_class;
+
+ return(rgb_class);
diff --git a/community-staging/paraview/12859-VisItBrige-external-tiff-support.diff b/community-staging/paraview/12859-VisItBrige-external-tiff-support.diff
new file mode 100644
index 000000000..1901d0146
--- /dev/null
+++ b/community-staging/paraview/12859-VisItBrige-external-tiff-support.diff
@@ -0,0 +1,32 @@
+commit c69690edb180b96081f3e75d0c23bbd5abcb3d65
+Author: Robert Maynard <robert.maynard@kitware.com>
+Date: Mon Jan 9 12:50:32 2012 -0500
+
+ Corrected build issues when using system tiff library.
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0b2ee9e..a83beb7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -216,6 +216,9 @@ VISIT_VTK_THIRD_PARTY_INCLUDE(NETCDF vtknetcdf/include)
+ #setup png
+ VISIT_VTK_THIRD_PARTY_INCLUDE(PNG vtkpng)
+
++#setup tiff
++VISIT_VTK_THIRD_PARTY_INCLUDE(TIFF vtktiff)
++
+
+ #-----------------------------------------------------------------------------
+ # Detect packages here. We could probably write macros that we can include from
+diff --git a/visit_vtk/full/CMakeLists.txt b/visit_vtk/full/CMakeLists.txt
+index e83e041..532dc62 100644
+--- a/visit_vtk/full/CMakeLists.txt
++++ b/visit_vtk/full/CMakeLists.txt
+@@ -115,6 +115,6 @@ set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES
+ "${VISIT_SOURCE_DIR}/parser;${tmp_include_dirs}")
+
+ VTK_ADD_LIBRARY(visit_vtk ${VISIT_VTK_SOURCES})
+-TARGET_LINK_LIBRARIES(visit_vtk lightweight_visit_vtk vtkGraphics vtkImaging vtktiff)
++TARGET_LINK_LIBRARIES(visit_vtk lightweight_visit_vtk vtkGraphics vtkImaging ${VTK_TIFF_LIBRARIES})
+
+ VISIT_INSTALL_TARGETS(visit_vtk)
diff --git a/community-staging/paraview/PKGBUILD b/community-staging/paraview/PKGBUILD
new file mode 100644
index 000000000..32fce25f2
--- /dev/null
+++ b/community-staging/paraview/PKGBUILD
@@ -0,0 +1,78 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Michele Mocciola <mickele>
+# Contributor: Simon Zilliken <simon____AT____zilliken____DOT____name>
+
+pkgname=paraview
+pkgver=3.12.0
+pkgrel=3
+pkgdesc='Parallel Visualization Application using VTK'
+arch=('i686' 'x86_64')
+url='http://www.paraview.org'
+license=('custom')
+depends=('qt' 'python2' 'libgl' 'libxml2' 'unixodbc' 'postgresql-libs' 'libxt' 'qtwebkit' 'libmysqlclient' 'mesa' 'openmpi' 'boost-libs' 'hdf5' 'libcgns2' 'libtiff' 'libtheora')
+makedepends=('cmake' 'desktop-file-utils' 'boost')
+source=("http://paraview.org/files/v${pkgver:0:4}/ParaView-${pkgver}.tar.gz"
+ 'paraview.png'
+ 'paraview.desktop'
+ 'fix-boost-graph-api-changes.diff'
+ '12859-VisItBrige-external-tiff-support.diff')
+md5sums=('8feabc6261e2060648eaac593d85b1de'
+ 'db623002bc71a257ddfdd0c9c7b14c3f'
+ '4e4b7172ed18171c37446fd7c4f1e8f5'
+ '2aa5b98288cadd201ffbd057f18929b0'
+ '9321279c8fc6f289a7cf228648edcb5f')
+
+build() {
+ cd ParaView-${pkgver}/VTK
+ # fix http://www.vtk.org/Bug/view.php?id=12772 remove on next pkgver bump
+ patch -Np1 -i ${srcdir}/fix-boost-graph-api-changes.diff
+
+
+ cd ${srcdir}/ParaView-${pkgver}/Utilities/VisItBridge
+ # fix http://paraview.org/Bug/view.php?id=12849 remove on next pkgver bump
+ patch -Np1 -i ${srcdir}/12859-VisItBrige-external-tiff-support.diff
+
+ mkdir ${srcdir}/build
+ cd ${srcdir}/build
+
+ # flags to enable using system libs
+ local cmake_system_flags=""
+ for lib in HDF5 FREETYPE JPEG PNG TIFF ZLIB EXPAT LIBXML2 OGGTHEORA; do
+ cmake_system_flags+="-DVTK_USE_SYSTEM_${lib}:BOOL=ON "
+ done
+
+ # flags to use python2 instead of python which is 3.x.x on archlinux
+ local cmake_system_python_flags="-DPYTHON_EXECUTABLE:PATH=/usr/bin/python2 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python2.7 -DPYTHON_LIBRARY:PATH=/usr/lib/libpython2.7.so"
+
+ # enable when http://paraview.org/Bug/view.php?id=12718 gets fixed
+ #-DCMAKE_SKIP_RPATH:BOOL=YES \
+ # the following flags enable the feature request at https://bugs.archlinux.org/task/27525
+ # -DPARAVIEW_USE_VISITBRIDGE:BOOL=ON -DVISIT_BUILD_READER_CGNS:BOOL=ON
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DVTK_USE_BOOST:BOOL=ON \
+ -DPARAVIEW_USE_MPI:BOOL=ON \
+ -DPARAVIEW_ENABLE_PYTHON:BOOL=ON \
+ -DPARAVIEW_BUILD_QT_GUI:BOOL=ON \
+ -DPARAVIEW_USE_VISITBRIDGE:BOOL=ON \
+ -DVISIT_BUILD_READER_CGNS:BOOL=ON \
+ ${cmake_system_flags} \
+ ${cmake_system_python_flags} \
+ ../ParaView-${pkgver}
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # Install license
+ install -Dm644 ${srcdir}/ParaView-${pkgver}/License_v1.2.txt ${pkgdir}/usr/share/licenses/paraview/LICENSE
+
+ # Install desktop shortcuts
+ install -Dm644 ${srcdir}/paraview.png ${pkgdir}/usr/share/pixmaps/paraview.png
+ desktop-file-install --dir=${pkgdir}/usr/share/applications ${srcdir}/paraview.desktop
+}
diff --git a/community-staging/paraview/fix-boost-graph-api-changes.diff b/community-staging/paraview/fix-boost-graph-api-changes.diff
new file mode 100644
index 000000000..37d78665b
--- /dev/null
+++ b/community-staging/paraview/fix-boost-graph-api-changes.diff
@@ -0,0 +1,42 @@
+commit d3ecc2c459dd1df937fc97887581ace1036da533
+Author: Marcus D. Hanwell <marcus.hanwell@kitware.com>
+Date: Tue Dec 13 15:36:06 2011 -0500
+
+ BUG: 12772 fixes for change in Boost graph API
+
+ This fixes bug 12772, where an API change in Boost was causing
+ compilation failures using Boost 1.38. Thanks to Orion Poplawski for
+ reporting the issue and posting the patch.
+
+ Change-Id: I491b0f1650c0be19319533306eb10597dc96fa06
+
+diff --git a/Infovis/vtkBoostBreadthFirstSearchTree.cxx b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
+index c789f6b..cf7cd47 100644
+--- a/Infovis/vtkBoostBreadthFirstSearchTree.cxx
++++ b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
+@@ -47,6 +47,15 @@ using namespace boost;
+ vtkStandardNewMacro(vtkBoostBreadthFirstSearchTree);
+
+
++namespace {
++ vtkIdType unwrap_edge_id(vtkEdgeType const &e) {
++ return e.Id;
++ }
++ vtkIdType unwrap_edge_id(boost::detail::reverse_graph_edge_descriptor<vtkEdgeType> const &e) {
++ return e.underlying_desc.Id;
++ }
++}
++
+ // Redefine the bfs visitor, the only visitor we
+ // are using is the tree_edge visitor.
+ template <typename IdMap>
+@@ -95,7 +104,8 @@ public:
+
+ // Copy the vertex and edge data from the graph to the tree.
+ tree->GetVertexData()->CopyData(graph->GetVertexData(), v, tree_v);
+- tree->GetEdgeData()->CopyData(graph->GetEdgeData(), e.Id, tree_e.Id);
++ tree->GetEdgeData()->CopyData(graph->GetEdgeData(),
++ unwrap_edge_id(e), tree_e.Id);
+ }
+
+ private:
diff --git a/community-staging/paraview/paraview.desktop b/community-staging/paraview/paraview.desktop
new file mode 100644
index 000000000..2f5b8ec69
--- /dev/null
+++ b/community-staging/paraview/paraview.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Name=ParaView
+GenericName=Data Viewer
+Comment=ParaView allows visualization of large data sets
+Type=Application
+Terminal=false
+Icon=paraview
+Categories=Graphics;
+Exec=/usr/bin/paraview
diff --git a/community-staging/paraview/paraview.png b/community-staging/paraview/paraview.png
new file mode 100644
index 000000000..6e39f3d4f
--- /dev/null
+++ b/community-staging/paraview/paraview.png
Binary files differ
diff --git a/community-staging/podofo/PKGBUILD b/community-staging/podofo/PKGBUILD
new file mode 100644
index 000000000..a71825b8a
--- /dev/null
+++ b/community-staging/podofo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 62345 2012-01-19 12:22:37Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
+# Contributor: Preecha Patumchareonpol <yumyai at gmail.com>
+
+pkgname=podofo
+pkgver=0.9.1
+pkgrel=3
+pkgdesc="A C++ library to work with the PDF file format"
+arch=('i686' 'x86_64')
+url="http://podofo.sourceforge.net"
+license=('GPL')
+depends=( 'gcc-libs' 'fontconfig' 'libpng' 'libtiff')
+makedepends=('cmake')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('cec586ab69f92bc88d38b5d4b8eee5a0')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .. \
+ -DPODOFO_BUILD_SHARED=1 \
+ -DPODOFO_HAVE_JPEG_LIB=1 \
+ -DPODOFO_HAVE_PNG_LIB=1 \
+ -DPODOFO_HAVE_TIFF_LIB=1
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-staging/scantailor/PKGBUILD b/community-staging/scantailor/PKGBUILD
new file mode 100644
index 000000000..32059f4c2
--- /dev/null
+++ b/community-staging/scantailor/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 62307 2012-01-19 07:47:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Denis Terskov aka neurosurgeon <terskov.den@gmail.com>
+
+pkgname=scantailor
+pkgver=0.9.10
+pkgrel=2
+pkgdesc="Interactive post-processing tool for scanned pages"
+arch=(i686 x86_64)
+url="http://scantailor.sourceforge.net"
+license="GPL"
+depends=('qt')
+makedepends=('cmake' 'boost')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('f962c93a2d63b449fa3f6612ade3b028'
+ '0aeb1bae724b5cae208ae8af95e8ed9b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ unset CFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+ patch -p1 <$srcdir/build-fix.patch
+ cmake .
+ cmake \
+ -DCMAKE_CXX_FLAGS="-DBOOST_NO_MEMBER_TEMPLATE_FRIENDS" \
+ -DCMAKE_CXX_FLAGS_DEBUG="-DBOOST_NO_MEMBER_TEMPLATE_FRIENDS" \
+ -DCMAKE_CXX_FLAGS_RELEASE="-DBOOST_NO_MEMBER_TEMPLATE_FRIENDS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release .
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/scantailor/build-fix.patch b/community-staging/scantailor/build-fix.patch
new file mode 100644
index 000000000..85b620020
--- /dev/null
+++ b/community-staging/scantailor/build-fix.patch
@@ -0,0 +1,16 @@
+diff -wbBur scantailor-0.9.10/zones/EditableZoneSet.h scantailor-0.9.10.my/zones/EditableZoneSet.h
+--- scantailor-0.9.10/zones/EditableZoneSet.h 2011-07-31 00:47:25.000000000 +0400
++++ scantailor-0.9.10.my/zones/EditableZoneSet.h 2011-08-03 01:59:40.000000000 +0400
+@@ -76,6 +77,12 @@
+
+ EditableZoneSet();
+
++ EditableZoneSet(const EditableZoneSet& zs)
++ {
++ m_splineMap = zs.m_splineMap;
++ m_defaultProps = zs.m_defaultProps;
++ }
++
+ const_iterator begin() const { return iterator(m_splineMap.begin()); }
+
+ const_iterator end() const { return iterator(m_splineMap.end()); }
diff --git a/community-staging/vtk/PKGBUILD b/community-staging/vtk/PKGBUILD
new file mode 100644
index 000000000..0c43a5da1
--- /dev/null
+++ b/community-staging/vtk/PKGBUILD
@@ -0,0 +1,116 @@
+# $Id: PKGBUILD 62280 2012-01-18 23:04:23Z tdziedzic $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Christofer Bertonha <christoferbertonha at gmail dot com>
+# Contributor: leepesjee <lpeschier at xs4all dot nl>
+# Contributor: Olivier Medoc
+# Contributor: ignotus
+# Contributor: Fabian Moser
+# Contributor: djscholl
+
+pkgname=vtk
+pkgver=5.8.0
+pkgrel=8
+pkgdesc='A software system for 3D computer graphics, image processing, and visualization which supports a wide variety of visualization algorithms and advanced modeling techniques.'
+arch=('i686' 'x86_64')
+url='http://www.vtk.org'
+license=('BSD')
+depends=('libpng' 'libtiff' 'libjpeg-turbo' 'freetype2' 'boost' 'ffmpeg' 'qt' 'lesstif' 'mysql' 'hdf5' 'expat' 'libtheora')
+makedepends=('cmake' 'java-environment' 'doxygen' 'gnuplot' 'mesa' 'python2' 'tk')
+optdepends=('python2: python bindings'
+ 'java-runtime: java bindings'
+ 'tk: tcl bindings'
+ 'gnuplot: plotting tools'
+ 'graphviz: drawing tools')
+source=("http://www.vtk.org/files/release/${pkgver:0:3}/vtk-${pkgver}.tar.gz"
+ "http://www.vtk.org/files/release/${pkgver:0:3}/vtkdata-${pkgver}.tar.gz"
+ 'fixkernelversioncheck.diff'
+ 'ffmpeg-0.8.diff'
+ 'fix-boost-graph-api-changes.diff')
+md5sums=('37b7297d02d647cc6ca95b38174cb41f'
+ 'a05295b81930e894fc0e31866f399151'
+ '9e137af23701f76fc727222ebac23389'
+ 'e992321c9d1def6034d0fa6607b40c5a'
+ 'e715aef2aea26fc05f904efb5d0d5627')
+
+build() {
+ cd VTK
+
+ # fix compilation error: http://vtk.org/Bug/view.php?id=12568
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/fixkernelversioncheck.diff
+
+ # fix compilation error:
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/ffmpeg-0.8.diff
+
+ # fix compilation error: http://vtk.org/Bug/view.php?id=12772
+ # remove next pkgver bump
+ patch -Np1 -i ${srcdir}/fix-boost-graph-api-changes.diff
+
+ cd ${srcdir}
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ # flags to enable using system libs
+ local cmake_system_flags=""
+ for lib in HDF5 EXPAT FREETYPE JPEG PNG TIFF ZLIB LIBXML2 OGGTHEORA; do # LIBPROJ4
+ cmake_system_flags+="-DVTK_USE_SYSTEM_${lib}:BOOL=ON "
+ done
+
+ # flags to use python2 instead of python which is 3.x.x on archlinux
+ local cmake_system_python_flags="-DPYTHON_EXECUTABLE:PATH=/usr/bin/python2 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python2.7 -DPYTHON_LIBRARY:PATH=/usr/lib/libpython2.7.so"
+
+ cmake \
+ -Wno-dev \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
+ -DVTK_DATA_ROOT:FILEPATH=${srcdir}/VTKData \
+ -DBUILD_DOCUMENTATION:BOOL=ON \
+ -DDOCUMENTATION_HTML_HELP:BOOL=ON \
+ -DDOCUMENTATION_HTML_TARZ:BOOL=ON \
+ -DBUILD_EXAMPLES:BOOL=ON \
+ -DVTK_USE_HYBRID:BOOL=ON \
+ -DVTK_USE_PARALLEL:BOOL=ON \
+ -DVTK_USE_PATENTED:BOOL=ON \
+ -DVTK_USE_BOOST:BOOL=ON \
+ -DVTK_USE_INFOVIS:BOOL=ON \
+ -DVTK_USE_GL2PS:BOOL=ON \
+ -DVTK_USE_MYSQL:BOOL=ON \
+ -DVTK_USE_FFMPEG_ENCODER:BOOL=ON \
+ -DVTK_USE_TEXT_ANALYSIS:BOOL=ON \
+ -DVTK_WRAP_JAVA:BOOL=ON \
+ -DVTK_WRAP_PYTHON:BOOL=ON \
+ -DVTK_WRAP_TCL:BOOL=ON \
+ -DVTK_PYTHON_SETUP_ARGS:STRING="--root=${pkgdir}" \
+ -DVTK_USE_QT:BOOL=ON \
+ -DVTK_INSTALL_QT_PLUGIN_DIR:STRING="/usr/lib/qt/plugins" \
+ -DVTK_USE_GUISUPPORT:BOOL=ON \
+ -DCMAKE_CXX_FLAGS="-D__STDC_CONSTANT_MACROS" \
+ ${cmake_system_flags} \
+ ${cmake_system_python_flags} \
+ ${srcdir}/VTK
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # Move the vtk.jar to the arch-specific location
+ install -dv ${pkgdir}/usr/share/java/vtk
+ mv -v ${pkgdir}/usr/lib/vtk-${pkgver:0:3}/java/vtk.jar \
+ ${pkgdir}/usr/share/java/vtk
+
+ # Install license
+ install -dv ${pkgdir}/usr/share/licenses/vtk
+ install -m644 ${srcdir}/VTK/Copyright.txt \
+ ${pkgdir}/usr/share/licenses/vtk
+
+ # Put an entry in /etc/ld.so.conf.d
+ install -dv ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/vtk-${pkgver:0:3}" > ${pkgdir}/etc/ld.so.conf.d/vtk.conf
+}
diff --git a/community-staging/vtk/ffmpeg-0.8.diff b/community-staging/vtk/ffmpeg-0.8.diff
new file mode 100644
index 000000000..523919d6f
--- /dev/null
+++ b/community-staging/vtk/ffmpeg-0.8.diff
@@ -0,0 +1,66 @@
+Description: Upstream changes introduced in version 5.6.1-6.1
+ This patch has been created by dpkg-source during the package build.
+ Here's the last changelog entry, hopefully it gives details on why
+ those changes were made:
+ .
+ vtk (5.6.1-6.1) unstable; urgency=low
+ .
+ [ Michael Schutte ]
+ * Non-maintainer upload.
+ * Remove absolute paths to required libraries from
+ /usr/lib/vtk-5.6/VTKLibraryDepends.cmake after building, closes:
+ #506992. Due to the multiarch transition, the original behavior
+ frequently causes reverse build-deps to FTBFS. This change should
+ probably be reverted once all required libraries are multiarched.
+ .
+ [ Steve M. Robbins ]
+ * Override lintian diagnostic about embedded libraries ftgl and sqlite.
+ * IO/vtkFFMPEGWriter.cxx: Applied fix from #638246 to build with libav
+ 0.7.
+ .
+ The person named in the Author field signed this changelog entry.
+Author: Steve M. Robbins <smr@debian.org>
+Bug-Debian: http://bugs.debian.org/506992
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+--- vtk-5.6.1.orig/IO/vtkFFMPEGWriter.cxx
++++ vtk-5.6.1/IO/vtkFFMPEGWriter.cxx
+@@ -123,7 +123,7 @@ int vtkFFMPEGWriterInternal::Start()
+ }
+
+ //choose avi media file format
+- this->avOutputFormat = guess_format("avi", NULL, NULL);
++ this->avOutputFormat = av_guess_format("avi", NULL, NULL);
+ if (!this->avOutputFormat)
+ {
+ vtkGenericWarningMacro (<< "Could not open the avi media file format.");
+@@ -150,7 +150,7 @@ int vtkFFMPEGWriterInternal::Start()
+ //Set up the codec.
+ AVCodecContext *c = this->avStream->codec;
+ c->codec_id = (CodecID)this->avOutputFormat->video_codec;
+- c->codec_type = CODEC_TYPE_VIDEO;
++ c->codec_type = AVMEDIA_TYPE_VIDEO;
+ c->width = this->Dim[0];
+ c->height = this->Dim[1];
+ c->pix_fmt = PIX_FMT_YUVJ420P;
+@@ -329,7 +329,7 @@ int vtkFFMPEGWriterInternal::Write(vtkIm
+ pkt.stream_index = this->avStream->index;
+ if (cc->coded_frame->key_frame) //treat keyframes well
+ {
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ }
+ pkt.duration = 0; //presentation duration in time_base units or 0 if NA
+ pkt.pos = -1; //byte position in stream or -1 if NA
diff --git a/community-staging/vtk/fix-boost-graph-api-changes.diff b/community-staging/vtk/fix-boost-graph-api-changes.diff
new file mode 100644
index 000000000..2162e7a28
--- /dev/null
+++ b/community-staging/vtk/fix-boost-graph-api-changes.diff
@@ -0,0 +1,42 @@
+commit d3ecc2c459dd1df937fc97887581ace1036da533
+Author: Marcus D. Hanwell <marcus.hanwell@kitware.com>
+Date: Tue Dec 13 15:36:06 2011 -0500
+
+ BUG: 12772 fixes for change in Boost graph API
+
+ This fixes bug 12772, where an API change in Boost was causing
+ compilation failures using Boost 1.38. Thanks to Orion Poplawski for
+ reporting the issue and posting the patch.
+
+ Change-Id: I491b0f1650c0be19319533306eb10597dc96fa06
+
+diff --git a/Infovis/vtkBoostBreadthFirstSearchTree.cxx b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
+index c789f6b..cf7cd47 100644
+--- a/Infovis/vtkBoostBreadthFirstSearchTree.cxx
++++ b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
+@@ -47,6 +47,15 @@ using namespace boost;
+ vtkStandardNewMacro(vtkBoostBreadthFirstSearchTree);
+
+
++namespace {
++ vtkIdType unwrap_edge_id(vtkEdgeType const &e) {
++ return e.Id;
++ }
++ vtkIdType unwrap_edge_id(boost::detail::reverse_graph_edge_descriptor<vtkEdgeType> const &e) {
++ return e.underlying_desc.Id;
++ }
++}
++
+ // Redefine the bfs visitor, the only visitor we
+ // are using is the tree_edge visitor.
+ template <typename IdMap>
+@@ -95,7 +104,8 @@ public:
+
+ // Copy the vertex and edge data from the graph to the tree.
+ tree->GetVertexData()->CopyData(graph->GetVertexData(), v, tree_v);
+- tree->GetEdgeData()->CopyData(graph->GetEdgeData(), e.Id, tree_e.Id);
++ tree->GetEdgeData()->CopyData(graph->GetEdgeData(),
++ unwrap_edge_id(e), tree_e.Id);
+ }
+
+ private:
diff --git a/community-staging/vtk/fixkernelversioncheck.diff b/community-staging/vtk/fixkernelversioncheck.diff
new file mode 100644
index 000000000..165f07366
--- /dev/null
+++ b/community-staging/vtk/fixkernelversioncheck.diff
@@ -0,0 +1,19 @@
+--- a/Utilities/vtkhdf5/ConfigureChecks.cmake
++++ b/Utilities/vtkhdf5/ConfigureChecks.cmake
+@@ -75,14 +75,14 @@ IF (HDF5_WANT_DCONV_EXCEPTION)
+ ENDIF (HDF5_WANT_DCONV_EXCEPTION)
+
+ SET (LINUX_LFS 0)
+-IF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++IF (CMAKE_SYSTEM MATCHES "Linux")
+ # Linux Specific flags
+ ADD_DEFINITIONS (-D_POSIX_SOURCE -D_BSD_SOURCE)
+ OPTION (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
+ IF (HDF5_ENABLE_LARGE_FILE)
+ SET (LARGEFILE 1)
+ ENDIF (HDF5_ENABLE_LARGE_FILE)
+-ENDIF (CMAKE_SYSTEM MATCHES "Linux-([3-9]\\.[0-9]|2\\.[4-9])\\.")
++ENDIF (CMAKE_SYSTEM MATCHES "Linux")
+ SET (HDF5_EXTRA_FLAGS)
+ IF (LINUX_LFS)
+ SET (HDF5_EXTRA_FLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
diff --git a/community-staging/xloadimage/PKGBUILD b/community-staging/xloadimage/PKGBUILD
new file mode 100644
index 000000000..6d56ec5c4
--- /dev/null
+++ b/community-staging/xloadimage/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 62316 2012-01-19 08:03:43Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=xloadimage
+pkgver=4.1
+pkgrel=12
+pkgdesc="An utility to view many different types of images under X11"
+arch=(i686 x86_64)
+#url="http://world.std.com/~jimf/xloadimage.html"
+url="http://sioseis.ucsd.edu/xloadimage.html"
+license=("MIT")
+depends=('libtiff' 'libpng' 'libx11' 'libxext')
+makedepends=('patch' 'imake')
+source=(http://archlinux-stuff.googlecode.com/files/xloadimage.$pkgver-1.tar.gz
+ license.txt
+ enable-image-types.patch
+ png15-tiff4.patch)
+md5sums=('86b42b1b628a9c00008b7deec21e1175'
+ 'cc16a51aeb5083b8ff07939dfe244130'
+ '3a2703925011276fd2d2bd139b676487'
+ 'c797cfc3f4588b96275d82c2c9cc7025')
+
+build() {
+ cd $srcdir/$pkgname.$pkgver
+
+ patch -p1 <$srcdir/enable-image-types.patch
+ patch -p1 <$srcdir/png15-tiff4.patch
+ xmkmf
+ make
+
+ install -D -m755 xloadimage $pkgdir/usr/bin/xloadimage
+ install -D -m755 uufilter $pkgdir/usr/bin/uufilter
+ install -D -m644 xloadimagerc $pkgdir/etc/xloadimagerc.example
+ install -D -m644 xloadimage.man $pkgdir/usr/man/man1/xloadimage.1x
+ install -D -m644 uufilter.man $pkgdir/usr/man/man1/uufilter.1x
+ install -D -m644 $srcdir/license.txt $pkgdir/usr/share/licenses/$pkgname/license.txt
+ ln -s /usr/bin/xloadimage $pkgdir/usr/bin/xsetbg
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community-staging/xloadimage/enable-image-types.patch b/community-staging/xloadimage/enable-image-types.patch
new file mode 100644
index 000000000..b61e36b87
--- /dev/null
+++ b/community-staging/xloadimage/enable-image-types.patch
@@ -0,0 +1,74 @@
+diff -wbBur xloadimage.4.1/imagetypes.h xloadimage.4.1.my/imagetypes.h
+--- xloadimage.4.1/imagetypes.h 2011-02-11 11:47:37.000000000 +0000
++++ xloadimage.4.1.my/imagetypes.h 2011-02-11 16:04:35.000000000 +0000
+@@ -94,15 +94,9 @@
+ {niffIdent, niffLoad, niffDump, "niff", "Native Image File Format (NIFF)"},
+ {sunRasterIdent, sunRasterLoad, NULL, "sunraster", "Sun Rasterfile"},
+ {gifIdent, gifLoad, NULL, "gif", "GIF Image"},
+-#ifdef HAVE_LIBJPEG
+ {jpegIdent, jpegLoad, jpegDump, "jpeg", "JFIF-style JPEG Image"},
+-#endif
+-#ifdef HAVE_LIBTIFF
+ {tiffIdent, tiffLoad, tiffDump, "tiff", "TIFF image"},
+-#endif
+-#ifdef HAVE_LIBPNG
+ {pngIdent, pngLoad, NULL, "png", "PNG image"},
+-#endif
+ {fbmIdent, fbmLoad, NULL, "fbm", "FBM Image"},
+ {cmuwmIdent, cmuwmLoad, NULL, "cmuraster", "CMU WM Raster"},
+ {pbmIdent, pbmLoad, pbmDump, "pbm", "Portable Bit Map (PBM, PGM, PPM)"},
+diff -wbBur xloadimage.4.1/Imakefile xloadimage.4.1.my/Imakefile
+--- xloadimage.4.1/Imakefile 2011-02-11 12:05:53.000000000 +0000
++++ xloadimage.4.1.my/Imakefile 2011-02-11 16:06:21.000000000 +0000
+@@ -40,7 +40,7 @@
+ PNG_SRC = png.c
+ PNG_OBJ = png.o
+
+- EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS)
++ EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS) -DHAVE_LIBJPEG -DHAVE_LIBTIFF -DHAVE_LIBPNG
+ LOCAL_LIBRARIES = $(TIFF_LIB) $(JPEG_LIB) $(PNG_LIB) $(XLIB)
+
+ SRCS = new.c niff.c value.c zio.c cmuwmraster.c faces.c fbm.c gif.c imagetypes.c img.c mac.c mcidas.c mc_tables.c pbm.c pcx.c pdsuncomp.c rle.c rlelib.c sunraster.c vff.c vicar.c xbitmap.c xpixmap.c xwd.c bright.c clip.c compress.c dither.c fill.c halftone.c merge.c reduce.c rotate.c smooth.c undither.c zoom.c config.c misc.c options.c root.c send.c window.c xloadimage.c $(TIFF_SRC) $(JPEG_SRC) $(PNG_SRC)
+diff -wbBur xloadimage.4.1/Makefile xloadimage.4.1.my/Makefile
+--- xloadimage.4.1/Makefile 2011-02-11 12:06:16.000000000 +0000
++++ xloadimage.4.1.my/Makefile 2011-02-11 16:06:24.000000000 +0000
+@@ -2,7 +2,7 @@
+ # $Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $
+
+ # ----------------------------------------------------------------------
+-# Makefile generated from "Imake.tmpl" and </tmp/IIf.yUZBVe>
++# Makefile generated from "Imake.tmpl" and </tmp/IIf.7u155R>
+ # $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
+ # $XdotOrg: xc/config/cf/Imake.tmpl,v 1.9 2005/01/24 06:37:31 daniels Exp $
+ #
+@@ -1063,7 +1063,7 @@
+ PNG_SRC = png.c
+ PNG_OBJ = png.o
+
+- EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS)
++ EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS) -DHAVE_LIBJPEG -DHAVE_LIBTIFF -DHAVE_LIBPNG
+ LOCAL_LIBRARIES = $(TIFF_LIB) $(JPEG_LIB) $(PNG_LIB) $(XLIB)
+
+ SRCS = new.c niff.c value.c zio.c cmuwmraster.c faces.c fbm.c gif.c imagetypes.c img.c mac.c mcidas.c mc_tables.c pbm.c pcx.c pdsuncomp.c rle.c rlelib.c sunraster.c vff.c vicar.c xbitmap.c xpixmap.c xwd.c bright.c clip.c compress.c dither.c fill.c halftone.c merge.c reduce.c rotate.c smooth.c undither.c zoom.c config.c misc.c options.c root.c send.c window.c xloadimage.c $(TIFF_SRC) $(JPEG_SRC) $(PNG_SRC)
+diff -wbBur xloadimage.4.1/png.c xloadimage.4.1.my/png.c
+--- xloadimage.4.1/png.c 2011-02-11 11:47:37.000000000 +0000
++++ xloadimage.4.1.my/png.c 2011-02-11 16:06:50.000000000 +0000
+@@ -18,6 +18,7 @@
+ *
+ */
+
++#define _GETOPT_H
+
+ #include "image.h" /* xloadimage declarations */
+ #ifdef HAVE_LIBPNG
+diff -wbBur xloadimage.4.1/jpeg.c xloadimage.4.1.my/jpeg.c
+--- xloadimage.4.1/jpeg.c 2011-02-11 14:47:37.000000000 +0300
++++ xloadimage.4.1.my/jpeg.c 2011-11-21 14:32:30.000000000 +0400
+@@ -319,6 +319,7 @@
+ if (verbose)
+ printf(" Using arithmetic coding.\n");
+ cinfo->arith_code = TRUE;
++ }
+ #else
+ fprintf(stderr, "jpegDump: sorry, arithmetic coding not supported\n");
+ }
diff --git a/community-staging/xloadimage/license.txt b/community-staging/xloadimage/license.txt
new file mode 100644
index 000000000..be7eec597
--- /dev/null
+++ b/community-staging/xloadimage/license.txt
@@ -0,0 +1,19 @@
+/*
+ * Copyright 1989, 1993 Jim Frost
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. The author makes no representations
+ * about the suitability of this software for any purpose. It is
+ * provided "as is" without express or implied warranty.
+ *
+ * THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
+ * USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
diff --git a/community-staging/xloadimage/png15-tiff4.patch b/community-staging/xloadimage/png15-tiff4.patch
new file mode 100644
index 000000000..8536e36f3
--- /dev/null
+++ b/community-staging/xloadimage/png15-tiff4.patch
@@ -0,0 +1,50 @@
+diff -wbBur xloadimage.4.1/png.c xloadimage.4.1.my/png.c
+--- xloadimage.4.1/png.c 2011-02-11 14:47:37.000000000 +0300
++++ xloadimage.4.1.my/png.c 2012-01-19 11:58:44.000000000 +0400
+@@ -75,7 +75,7 @@
+ {
+ debug(" #error ");
+ output_warn( png_ptr, str);
+- longjmp(png_ptr->jmpbuf, 1); /* return control to outer routine */
++ longjmp(png_jmpbuf(png_ptr), 1); /* return control to outer routine */
+ }
+
+
+@@ -164,7 +164,7 @@
+ png_destroy_read_struct(png_pp, info_pp, end_pp);
+ return 0;
+ }
+- if (setjmp((*png_pp)->jmpbuf)) {
++ if (setjmp(png_jmpbuf(*png_pp))) {
+ /* On error */
+ png_destroy_read_struct(png_pp, info_pp, end_pp);
+ return 0;
+@@ -220,7 +220,7 @@
+ zclose(zinput_file);
+ return 0;
+ }
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ /* On error */
+ freeImage(image);
+ png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+diff -wbBur xloadimage.4.1/tiff.c xloadimage.4.1.my/tiff.c
+--- xloadimage.4.1/tiff.c 2011-02-11 14:47:38.000000000 +0300
++++ xloadimage.4.1.my/tiff.c 2012-01-19 12:00:00.000000000 +0400
+@@ -34,14 +34,14 @@
+ struct tiff_info *info;
+ {
+ ZFILE *zf;
+- TIFFHeader th;
++ TIFFHeaderCommon th;
+ TIFF *tiff;
+
+ zf = zopen(fullname);
+
+ /* read TIFF header and see if it looks right
+ */
+- if ((zread(zf, (byte *)&th, sizeof(TIFFHeader)) == sizeof(TIFFHeader)) &&
++ if ((zread(zf, (byte *)&th, sizeof(TIFFHeaderCommon)) == sizeof(TIFFHeaderCommon)) &&
+ ((th.tiff_magic == TIFF_BIGENDIAN) ||
+ (th.tiff_magic == TIFF_LITTLEENDIAN))) {
+
diff --git a/community-staging/xmoto/PKGBUILD b/community-staging/xmoto/PKGBUILD
new file mode 100644
index 000000000..0a865690d
--- /dev/null
+++ b/community-staging/xmoto/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Denis (dtonator@gmail.com)
+
+pkgname=xmoto
+pkgver=0.5.9
+pkgrel=1
+pkgdesc="A challenging 2D motocross platform game, where physics play an important role."
+arch=('i686' 'x86_64')
+url="http://xmoto.tuxfamily.org"
+license=('GPL')
+depends=('bzip2' 'libjpeg' 'libpng' 'lua' 'sdl_mixer' 'ode=0.11.1' 'curl'
+ 'mesa' 'sqlite3' 'sdl_ttf' 'desktop-file-utils' 'sdl_net' 'libxdg-basedir' 'libxml++')
+install=xmoto.install
+source=("http://download.tuxfamily.org/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}-src.tar.gz"
+ 'xmoto-0.5.9-libpng15.patch')
+sha1sums=('07757accce78151dc8873bef8270df0e56196772'
+ '27f52bd30772f67898e0bfd8c1e12478a4848192')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 -i "${srcdir}/xmoto-0.5.9-libpng15.patch"
+
+ # build and install
+ ./configure LDFLAGS="-L/usr/lib" --prefix=/usr --disable-sdltest
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} mangdir=/usr/share/man/man6 install
+
+ # install desktop file
+ install -Dm0644 ${srcdir}/${pkgname}-${pkgver}/extra/xmoto.desktop \
+ ${pkgdir}/usr/share/applications/xmoto.desktop
+
+ # install icon for desktop file
+ install -Dm0644 ${srcdir}/${pkgname}-${pkgver}/extra/xmoto.xpm \
+ ${pkgdir}/usr/share/pixmaps/xmoto.xpm
+}
diff --git a/community-staging/xmoto/xmoto-0.5.9-libpng15.patch b/community-staging/xmoto/xmoto-0.5.9-libpng15.patch
new file mode 100644
index 000000000..0410c81c5
--- /dev/null
+++ b/community-staging/xmoto/xmoto-0.5.9-libpng15.patch
@@ -0,0 +1,10 @@
+--- a/src/image/tim_png.cpp 2011-10-11 22:18:11.000000000 +0200
++++ b/src/image/tim_png.cpp 2012-01-19 19:58:24.000000000 +0100
+@@ -24,6 +24,7 @@
+ */
+ #include <stdio.h>
+ #include <string.h>
++#include <zlib.h>
+ #include "tim.h"
+ #include "png.h"
+
diff --git a/community-staging/xmoto/xmoto.desktop b/community-staging/xmoto/xmoto.desktop
new file mode 100644
index 000000000..5ae6fe226
--- /dev/null
+++ b/community-staging/xmoto/xmoto.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Icon=/usr/share/xmoto/xmoto_icone_x.ico
+Exec=/usr/bin/xmoto
+Terminal=false
+StartupNotify=false
+
+Name=XMoto
+GenericName=Game
+Comment=is a 2D physics-based motocross game.
+
+Categories=Game;
diff --git a/community-staging/xmoto/xmoto.install b/community-staging/xmoto/xmoto.install
new file mode 100644
index 000000000..52399d4c1
--- /dev/null
+++ b/community-staging/xmoto/xmoto.install
@@ -0,0 +1,15 @@
+post_install() {
+ /usr/bin/update-desktop-database
+}
+
+post_upgrade() {
+ /usr/bin/update-desktop-database
+}
+
+post_remove() {
+ /usr/bin/update-desktop-database
+}
+
+op=$1
+shift
+$op $*
diff --git a/community-staging/xnc/PKGBUILD b/community-staging/xnc/PKGBUILD
new file mode 100644
index 000000000..e28c00401
--- /dev/null
+++ b/community-staging/xnc/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 62341 2012-01-19 09:59:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xnc
+pkgver=5.0.4
+pkgrel=6
+pkgdesc="X nortern captain file manager"
+arch=(i686 x86_64)
+url="http://xnc.jinr.ru/"
+license=('GPL')
+depends=('gcc-libs' 'libpng' 'libtiff' 'libsm' 'libxext' 'libjpeg>=7')
+makedepends=('libxt')
+options=('!makeflags')
+#source=(http://xnc.jinr.ru/src-5/xnc-$pkgver.src.tar.gz xnc-gcc44.patch)
+source=(ftp://ftp.archlinux.org/other/community/xnc/xnc-$pkgver.src.tar.gz
+ xnc-gcc44.patch
+ libpng15.patch)
+md5sums=('62446cdfdf5730f125fb351a658c0bd3'
+ 'c0037a081824bca691e59a4ec68b6686'
+ '7159af1c645fda860f0e5057100651ad')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 <$srcdir/xnc-gcc44.patch
+ patch -p1 <$srcdir/libpng15.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/xnc/libpng15.patch b/community-staging/xnc/libpng15.patch
new file mode 100644
index 000000000..53b941b81
--- /dev/null
+++ b/community-staging/xnc/libpng15.patch
@@ -0,0 +1,63 @@
+diff -wbBur xnc-5.0.4/src/lib/image2/sdl_image/IMG_png.c xnc-5.0.4.my/src/lib/image2/sdl_image/IMG_png.c
+--- xnc-5.0.4/src/lib/image2/sdl_image/IMG_png.c 2002-08-05 14:43:09.000000000 +0400
++++ xnc-5.0.4.my/src/lib/image2/sdl_image/IMG_png.c 2012-01-19 13:46:48.000000000 +0400
+@@ -138,7 +138,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in png_create_read_struct() earlier.
+ */
+- if ( setjmp(png_ptr->jmpbuf) ) {
++ if ( setjmp(png_jmpbuf(png_ptr)) ) {
+ IMG_SetError("Error reading the PNG file.");
+ goto done;
+ }
+@@ -207,9 +207,9 @@
+ Rmask = 0x000000FF;
+ Gmask = 0x0000FF00;
+ Bmask = 0x00FF0000;
+- Amask = (info_ptr->channels == 4) ? 0xFF000000 : 0;
++ Amask = (png_get_channels(png_ptr, info_ptr) == 4) ? 0xFF000000 : 0;
+ } else {
+- int s = (info_ptr->channels == 4) ? 0 : 8;
++ int s = (png_get_channels(png_ptr, info_ptr) == 4) ? 0 : 8;
+ Rmask = 0xFF000000 >> s;
+ Gmask = 0x00FF0000 >> s;
+ Bmask = 0x0000FF00 >> s;
+@@ -217,7 +217,7 @@
+ }
+ }
+ surface = SDL_AllocSurface(SDL_SWSURFACE, width, height,
+- bit_depth*info_ptr->channels, Rmask,Gmask,Bmask,Amask);
++ bit_depth*png_get_channels(png_ptr, info_ptr), Rmask,Gmask,Bmask,Amask);
+ if ( surface == NULL ) {
+ IMG_SetError("Out of memory");
+ goto done;
+@@ -252,6 +252,10 @@
+ /* read rest of file, get additional chunks in info_ptr - REQUIRED */
+ png_read_end(png_ptr, info_ptr);
+
++ png_colorp plte;
++ int num_palette;
++ png_get_PLTE(png_ptr, info_ptr, &plte, &num_palette);
++
+ /* Load the palette, if any */
+ palette = surface->format->palette;
+ if ( palette ) {
+@@ -262,12 +266,12 @@
+ palette->colors[i].g = i;
+ palette->colors[i].b = i;
+ }
+- } else if (info_ptr->num_palette > 0 ) {
+- palette->ncolors = info_ptr->num_palette;
+- for( i=0; i<info_ptr->num_palette; ++i ) {
+- palette->colors[i].b = info_ptr->palette[i].blue;
+- palette->colors[i].g = info_ptr->palette[i].green;
+- palette->colors[i].r = info_ptr->palette[i].red;
++ } else if (num_palette > 0 ) {
++ palette->ncolors = num_palette;
++ for( i=0; i<num_palette; ++i ) {
++ palette->colors[i].b = plte[i].blue;
++ palette->colors[i].g = plte[i].green;
++ palette->colors[i].r = plte[i].red;
+ }
+ }
+ }
diff --git a/community-staging/xnc/xnc-gcc44.patch b/community-staging/xnc/xnc-gcc44.patch
new file mode 100644
index 000000000..120d9d467
--- /dev/null
+++ b/community-staging/xnc/xnc-gcc44.patch
@@ -0,0 +1,72 @@
+diff -wbBur xnc-5.0.4/src/include/commonfuncs.h xnc-5.0.4.my/src/include/commonfuncs.h
+--- xnc-5.0.4/src/include/commonfuncs.h 2002-10-16 10:44:17.000000000 +0400
++++ xnc-5.0.4.my/src/include/commonfuncs.h 2011-11-17 18:59:19.000000000 +0400
+@@ -15,7 +15,7 @@
+ extern int path_to_fullpath(char* dest, char *srcdir);
+ extern void add_path_content(char *curdir, const char *cont, int vms_host=0);
+ extern void upper_path(char *curdir, int vms_host=0);
+-extern char* get_first_content(const char *curdir, char *cont);
++extern const char* get_first_content(const char *curdir, char *cont);
+ extern void get_last_content(char *curdir, char *cont);
+ extern void get_last_and_rest_content(char* curdir, char* last, char* rest);
+ extern void str_swap(char *str1, char *str2);
+diff -wbBur xnc-5.0.4/src/lib/tool/commonfuncs.cxx xnc-5.0.4.my/src/lib/tool/commonfuncs.cxx
+--- xnc-5.0.4/src/lib/tool/commonfuncs.cxx 2002-10-16 10:44:20.000000000 +0400
++++ xnc-5.0.4.my/src/lib/tool/commonfuncs.cxx 2011-11-17 18:59:19.000000000 +0400
+@@ -117,9 +117,9 @@
+ }
+
+ //Get first content of dirname
+-char* get_first_content(const char *curdir, char *cont)
++const char* get_first_content(const char *curdir, char *cont)
+ {
+- char *b=strchr(curdir,'/');
++ const char *b=strchr(curdir,'/');
+ if(b)
+ {
+ strncpy(cont,curdir,b-curdir);
+diff -wbBur xnc-5.0.4/src/lib/vfs/afs.cxx xnc-5.0.4.my/src/lib/vfs/afs.cxx
+--- xnc-5.0.4/src/lib/vfs/afs.cxx 2003-11-27 18:36:43.000000000 +0300
++++ xnc-5.0.4.my/src/lib/vfs/afs.cxx 2011-11-17 18:59:19.000000000 +0400
+@@ -29,7 +29,7 @@
+ // The return value is static, so copy it before using the
+ // method again!
+
+-char *create_dirs(char *rootdir, char* dirlist)
++char *create_dirs(char *rootdir, const char* dirlist)
+ {
+ char str[L_MAXPATH];
+ char cont[FLIST_NAME];
+@@ -1350,7 +1350,7 @@
+ add_path_content(curdir, to_dir);
+ } else //If we here then we doing cd not to subdir but to subdir/subdir...
+ {
+- char *s=to_dir;
++ const char *s=to_dir;
+ if(*s)
+ {
+ do
+diff -wbBur xnc-5.0.4/src/lib/vfs/ftpfs.cxx xnc-5.0.4.my/src/lib/vfs/ftpfs.cxx
+--- xnc-5.0.4/src/lib/vfs/ftpfs.cxx 2002-10-30 15:47:38.000000000 +0300
++++ xnc-5.0.4.my/src/lib/vfs/ftpfs.cxx 2011-11-17 18:59:19.000000000 +0400
+@@ -1413,7 +1413,7 @@
+ return;
+ if(strcmp(dir,"/"))
+ {
+- char *s=dir;
++ const char *s=dir;
+ if(*s=='/') //Skip leading '/'
+ s++;
+ do
+diff -wbBur xnc-5.0.4/src/man_page.cxx xnc-5.0.4.my/src/man_page.cxx
+--- xnc-5.0.4/src/man_page.cxx 2002-10-02 16:54:33.000000000 +0400
++++ xnc-5.0.4.my/src/man_page.cxx 2011-11-17 18:59:00.000000000 +0400
+@@ -81,7 +81,7 @@
+ buf[j] = 0;
+ manf->size = j;
+ delete buf;
+- fp = open(tmps, O_WRONLY | O_CREAT | O_TRUNC);
++ fp = open(tmps, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+ write(fp, buf2, j);
+ close(fp);
+ delete manf;
diff --git a/community-staging/xplanet/PKGBUILD b/community-staging/xplanet/PKGBUILD
new file mode 100644
index 000000000..a0abe1efa
--- /dev/null
+++ b/community-staging/xplanet/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 62310 2012-01-19 07:48:40Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=xplanet
+pkgver=1.2.2
+pkgrel=2
+pkgdesc="An Xearth wannabe"
+arch=(i686 x86_64)
+url="http://xplanet.sourceforge.net/"
+license=('GPL')
+depends=('pango' 'libungif' 'libtiff' 'libxss')
+source=(http://downloads.sourceforge.net/project/xplanet/xplanet/$pkgver/xplanet-$pkgver.tar.gz)
+md5sums=('b38c3b4cfdd772643f876a9bb15f288b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-freetype
+ make
+ make prefix=$pkgdir/usr install
+}
diff --git a/community-testing/balsa/PKGBUILD b/community-testing/balsa/PKGBUILD
new file mode 100644
index 000000000..43eae5357
--- /dev/null
+++ b/community-testing/balsa/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 62015 2012-01-14 12:24:56Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=balsa
+pkgver=2.4.11
+pkgrel=1
+pkgdesc="An e-mail client for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://pawsa.fedorapeople.org/balsa/'
+depends=('gmime' 'libwebkit' 'libesmtp' 'libnotify' 'gpgme' 'gtksourceview2' 'gtkspell' 'gnome-icon-theme' 'desktop-file-utils')
+makedepends=('perlxml' 'gnome-doc-utils' 'intltool')
+install=balsa.install
+source=(http://pawsa.fedorapeople.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ gmime26.patch)
+md5sums=('915c622b6385aa4f83d5eee8f31ee8e8'
+ '108d33f533558a371189441edce7d7e6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/gmime26.patch"
+ autoreconf -fi
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-ssl \
+ --with-gpgme=gpgme-config \
+ --with-gss \
+ --with-ldap \
+ --with-gtksourceview \
+ --with-gtkspell \
+ --with-rubrica \
+ --with-sqlite \
+ --without-nm \
+ --without-gnome \
+ --with-html-widget=webkit
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GTK_UPDATE_ICON_CACHE=/bin/true DESTDIR="${pkgdir}" install
+}
diff --git a/community-testing/balsa/balsa.install b/community-testing/balsa/balsa.install
new file mode 100644
index 000000000..1f167b5e9
--- /dev/null
+++ b/community-testing/balsa/balsa.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-testing/balsa/gmime26.patch b/community-testing/balsa/gmime26.patch
new file mode 100644
index 000000000..fe4e6a9fa
--- /dev/null
+++ b/community-testing/balsa/gmime26.patch
@@ -0,0 +1,1372 @@
+From 393d0077495cb750ee47bab6ec44a60906a95179 Mon Sep 17 00:00:00 2001
+From: Peter Bloomfield <PeterBloomfield@bellsouth.net>
+Date: Mon, 28 Nov 2011 03:00:55 +0000
+Subject: Build with GMime 2.6.0
+
+ * configure.in: check for GMime >= 2.5.7
+ * libbalsa/gmime-application-pkcs7.c
+ (g_mime_application_pkcs7_sign), (g_mime_application_pkcs7_verify),
+ (g_mime_application_pkcs7_encrypt),
+ (g_mime_application_pkcs7_decrypt): build with GMime >= 2.5.7.
+ * libbalsa/gmime-application-pkcs7.h: ditto.
+ * libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_get_type),
+ (g_mime_gpgme_context_class_init), (g_mime_gpgme_context_finalize),
+ (g_mime_gpgme_digest_id): ditto.
+ * libbalsa/gmime-gpgme-context.h: ditto.
+ * libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_sign_encrypt),
+ (g_mime_part_rfc2440_verify), (g_mime_part_rfc2440_decrypt):
+ ditto.
+ * libbalsa/gmime-part-rfc2440.h: ditto.
+ * libbalsa/rfc3156.c (password_request_func),
+ (libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
+ (libbalsa_body_check_signature), (libbalsa_body_decrypt): ditto.
+---
+diff --git a/ChangeLog b/ChangeLog
+index bd95e68..d5c62f5 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,25 @@
++2011-11-27 Peter Bloomfield
++
++ Build with GMime 2.6.0
++
++ * configure.in: check for GMime >= 2.5.7
++ * libbalsa/gmime-application-pkcs7.c
++ (g_mime_application_pkcs7_sign), (g_mime_application_pkcs7_verify),
++ (g_mime_application_pkcs7_encrypt),
++ (g_mime_application_pkcs7_decrypt): build with GMime >= 2.5.7.
++ * libbalsa/gmime-application-pkcs7.h: ditto.
++ * libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_get_type),
++ (g_mime_gpgme_context_class_init), (g_mime_gpgme_context_finalize),
++ (g_mime_gpgme_digest_id): ditto.
++ * libbalsa/gmime-gpgme-context.h: ditto.
++ * libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_sign_encrypt),
++ (g_mime_part_rfc2440_verify), (g_mime_part_rfc2440_decrypt):
++ ditto.
++ * libbalsa/gmime-part-rfc2440.h: ditto.
++ * libbalsa/rfc3156.c (password_request_func),
++ (libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
++ (libbalsa_body_check_signature), (libbalsa_body_decrypt): ditto.
++
+ 2011-11-22 Pawel Salek
+
+ * NEWS, configure.in: release balsa-2.4.11
+diff --git a/configure.in b/configure.in
+index 4a8320e..64d99f3 100644
+--- a/configure.in
++++ b/configure.in
+@@ -307,7 +307,12 @@ fi
+ case "$with_gmime" in
+ 2.4) ;;
+ 2.6) AC_DEFINE([HAVE_GMIME_2_6], [1],
+- [Defined to build with GMime version 2.5 or 2.6]) ;;
++ [Defined to build with GMime version 2.5 or 2.6])
++ if $PKG_CONFIG --atleast-version=2.5.7 gmime-2.6; then
++ AC_DEFINE([HAVE_GMIME_2_5_7], [1],
++ [Defined when GMime version is at least 2.5.7])
++ fi
++ ;;
+ *) AC_MSG_ERROR([unknown GMime version $with_gmime]) ;;
+ esac
+
+diff --git a/libbalsa/gmime-application-pkcs7.c b/libbalsa/gmime-application-pkcs7.c
+index 12f4f8f..63b8087 100644
+--- a/libbalsa/gmime-application-pkcs7.c
++++ b/libbalsa/gmime-application-pkcs7.c
+@@ -96,8 +96,14 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ GMimeFilter *crlf_filter, *from_filter;
+
+ g_return_val_if_fail (GMIME_IS_PART (pkcs7), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail (GMIME_IS_CIPHER_CONTEXT (ctx), -1);
+ g_return_val_if_fail (ctx->sign_protocol != NULL, -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail (GMIME_IS_CRYPTO_CONTEXT (ctx), -1);
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol(ctx)
++ != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail (GMIME_IS_OBJECT (content), -1);
+
+ /* Prepare all the parts for signing... */
+@@ -127,7 +133,14 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ sig_data_stream = g_mime_stream_mem_new ();
+
+ /* get the signed content */
+- if (g_mime_cipher_context_sign (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream, sig_data_stream, err) == -1) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_sign (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream, sig_data_stream, err) == -1)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_sign
++ (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream,
++ sig_data_stream, err) == -1)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref (filtered_stream);
+ g_object_unref (sig_data_stream);
+ g_object_unref (stream);
+@@ -168,9 +181,15 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ * decrypting it again. In this case, validity is undefined.
+ */
+ GMimeObject *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ GMimeSignatureValidity ** validity,
+ GMimeCipherContext * ctx, GError ** err)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_application_pkcs7_verify(GMimePart * pkcs7,
++ GMimeSignatureList ** list,
++ GMimeCryptoContext * ctx, GError ** err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeObject *decrypted;
+ GMimeDataWrapper *wrapper;
+@@ -181,8 +200,14 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ const char *smime_type;
+
+ g_return_val_if_fail(GMIME_IS_PART(pkcs7), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_IS_CIPHER_CONTEXT(ctx), NULL);
+ g_return_val_if_fail(ctx->encrypt_protocol != NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(GMIME_IS_CRYPTO_CONTEXT(ctx), NULL);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some sanity checks */
+ smime_type =
+@@ -208,9 +233,16 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ g_object_unref(crlf_filter);
+
+ /* get the cleartext */
++#ifndef HAVE_GMIME_2_5_7
+ *validity = g_mime_cipher_context_verify(ctx, GMIME_CIPHER_HASH_DEFAULT,
+ ciphertext, filtered_stream, err);
+- if (!*validity) {
++ if (!*validity)
++#else /* HAVE_GMIME_2_5_7 */
++ *list = g_mime_crypto_context_verify(ctx, GMIME_CIPHER_ALGO_DEFAULT,
++ ciphertext, filtered_stream, err);
++ if (!*list)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(filtered_stream);
+ g_object_unref(ciphertext);
+ g_object_unref(stream);
+@@ -248,7 +280,12 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ */
+ int
+ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *ctx, GPtrArray *recipients,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *ctx,
++ GPtrArray *recipients,
++#endif /* HAVE_GMIME_2_5_7 */
+ GError **err)
+ {
+ GMimeDataWrapper *wrapper;
+@@ -257,8 +294,14 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+ GMimeFilter *crlf_filter;
+
+ g_return_val_if_fail (GMIME_IS_PART (pkcs7), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail (GMIME_IS_CIPHER_CONTEXT (ctx), -1);
+ g_return_val_if_fail (ctx->encrypt_protocol != NULL, -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail (GMIME_IS_CRYPTO_CONTEXT (ctx), -1);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail (GMIME_IS_OBJECT (content), -1);
+
+ /* get the cleartext */
+@@ -279,7 +322,15 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+
+ /* encrypt the content stream */
+ ciphertext = g_mime_stream_mem_new ();
+- if (g_mime_cipher_context_encrypt (ctx, FALSE, NULL, recipients, stream, ciphertext, err) == -1) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_encrypt (ctx, FALSE, NULL, recipients, stream, ciphertext, err) == -1)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_encrypt
++ (ctx, FALSE, NULL,
++ GMIME_CIPHER_ALGO_DEFAULT,
++ recipients, stream, ciphertext, err) == -1)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref (ciphertext);
+ g_object_unref (stream);
+ return -1;
+@@ -313,8 +364,14 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+ * err with more information about the reason.
+ */
+ GMimeObject *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ GError **err)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_application_pkcs7_decrypt (GMimePart *pkcs7,
++ GMimeCryptoContext *ctx,
++ GError **err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeObject *decrypted;
+ GMimeDataWrapper *wrapper;
+@@ -325,8 +382,14 @@ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ const char *smime_type;
+
+ g_return_val_if_fail(GMIME_IS_PART(pkcs7), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_IS_CIPHER_CONTEXT(ctx), NULL);
+ g_return_val_if_fail(ctx->encrypt_protocol != NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(GMIME_IS_CRYPTO_CONTEXT(ctx), NULL);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some sanity checks */
+ smime_type =
+@@ -353,7 +416,13 @@ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ g_object_unref(crlf_filter);
+
+ /* get the cleartext */
+- if (g_mime_cipher_context_decrypt(ctx, ciphertext, filtered_stream, err) == NULL) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_decrypt(ctx, ciphertext, filtered_stream, err) == NULL)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_decrypt
++ (ctx, ciphertext, filtered_stream, err) == NULL)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(filtered_stream);
+ g_object_unref(ciphertext);
+ g_object_unref(stream);
+diff --git a/libbalsa/gmime-application-pkcs7.h b/libbalsa/gmime-application-pkcs7.h
+index 03fa401..6678ff5 100644
+--- a/libbalsa/gmime-application-pkcs7.h
++++ b/libbalsa/gmime-application-pkcs7.h
+@@ -28,7 +28,11 @@ extern "C" {
+ #endif /* __cplusplus */
+
+ #include <gmime/gmime-part.h>
++#ifndef HAVE_GMIME_2_5_7
+ #include <gmime/gmime-cipher-context.h>
++#else /* HAVE_GMIME_2_5_7 */
++#include <gmime/gmime-crypto-context.h>
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #undef HAS_APPLICATION_PKCS7_MIME_SIGNED_SUPPORT
+
+@@ -39,21 +43,40 @@ extern "C" {
+ * Balsa always encodes S/MIME signed stuff as multipart/signed. */
+ int g_mime_application_pkcs7_sign(GMimePart * pkcs7,
+ GMimeObject * content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext * ctx,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext * ctx,
++#endif /* HAVE_GMIME_2_5_7 */
+ const char *userid, GError ** err);
+ #endif
+
++#ifndef HAVE_GMIME_2_5_7
+ GMimeObject *g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ GMimeSignatureValidity ** validity,
+ GMimeCipherContext * ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeObject *g_mime_application_pkcs7_verify(GMimePart * pkcs7,
++ GMimeSignatureList ** validity,
++ GMimeCryptoContext * ctx, GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ int g_mime_application_pkcs7_encrypt(GMimePart * pkcs7,
+ GMimeObject * content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext * ctx,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext * ctx,
++#endif /* HAVE_GMIME_2_5_7 */
+ GPtrArray * recipients, GError ** err);
+
++#ifndef HAVE_GMIME_2_5_7
+ GMimeObject *g_mime_application_pkcs7_decrypt(GMimePart * pkcs7,
+ GMimeCipherContext * ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeObject *g_mime_application_pkcs7_decrypt(GMimePart * pkcs7,
++ GMimeCryptoContext * ctx, GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #ifdef __cplusplus
+ }
+diff --git a/libbalsa/gmime-gpgme-context.c b/libbalsa/gmime-gpgme-context.c
+index 24b140b..0c56f94 100644
+--- a/libbalsa/gmime-gpgme-context.c
++++ b/libbalsa/gmime-gpgme-context.c
+@@ -27,6 +27,9 @@
+ #include <unistd.h>
+ #include <glib.h>
+ #include <gmime/gmime.h>
++#ifdef HAVE_GMIME_2_5_7
++#include <gmime/gmime-certificate.h>
++#endif /* HAVE_GMIME_2_5_7 */
+ #include <gpgme.h>
+ #include <time.h>
+ #include <glib/gi18n.h>
+@@ -44,6 +47,7 @@ static gboolean g_mime_gpgme_context_check_protocol(GMimeGpgmeContextClass
+ protocol,
+ GError ** error);
+
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherHash g_mime_gpgme_hash_id(GMimeCipherContext * ctx,
+ const char *hash);
+
+@@ -70,6 +74,46 @@ static GMimeSignatureValidity *g_mime_gpgme_decrypt(GMimeCipherContext *
+ GMimeStream * istream,
+ GMimeStream * ostream,
+ GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDigestAlgo g_mime_gpgme_digest_id(GMimeCryptoContext * ctx,
++ const char *hash);
++
++static const char *g_mime_gpgme_digest_name(GMimeCryptoContext * ctx,
++ GMimeDigestAlgo hash);
++
++static const char
++ *g_mime_gpgme_get_signature_protocol(GMimeCryptoContext * context);
++static const char
++ *g_mime_gpgme_get_encryption_protocol(GMimeCryptoContext * context);
++static const char
++ *g_mime_gpgme_get_key_exchange_protocol(GMimeCryptoContext * context);
++
++static int g_mime_gpgme_sign(GMimeCryptoContext * ctx,
++ const char * userid,
++ GMimeDigestAlgo hash,
++ GMimeStream * istream,
++ GMimeStream * ostream,
++ GError ** err);
++
++static GMimeSignatureList *g_mime_gpgme_verify(GMimeCryptoContext * ctx,
++ GMimeDigestAlgo hash,
++ GMimeStream * istream,
++ GMimeStream * sigstream,
++ GError ** err);
++
++static int g_mime_gpgme_encrypt(GMimeCryptoContext * ctx,
++ gboolean sign,
++ const char *userid,
++ GMimeDigestAlgo digest,
++ GPtrArray * recipients,
++ GMimeStream * istream,
++ GMimeStream * ostream, GError ** err);
++
++static GMimeDecryptResult *g_mime_gpgme_decrypt(GMimeCryptoContext * ctx,
++ GMimeStream * istream,
++ GMimeStream * ostream,
++ GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+
+ /* internal passphrase callback */
+@@ -102,7 +146,11 @@ static void g_set_error_from_gpgme(GError ** error, gpgme_error_t gpgme_err,
+ const gchar * message);
+
+
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherContextClass *parent_class = NULL;
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeCryptoContextClass *parent_class = NULL;
++#endif /* HAVE_GMIME_2_5_7 */
+
+
+ GType
+@@ -124,8 +172,13 @@ g_mime_gpgme_context_get_type(void)
+ };
+
+ type =
++#ifndef HAVE_GMIME_2_5_7
+ g_type_register_static(GMIME_TYPE_CIPHER_CONTEXT,
+ "GMimeGpgmeContext", &info, 0);
++#else /* HAVE_GMIME_2_5_7 */
++ g_type_register_static(GMIME_TYPE_CRYPTO_CONTEXT,
++ "GMimeGpgmeContext", &info, 0);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+ return type;
+@@ -136,19 +189,39 @@ static void
+ g_mime_gpgme_context_class_init(GMimeGpgmeContextClass * klass)
+ {
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContextClass *cipher_class =
+ GMIME_CIPHER_CONTEXT_CLASS(klass);
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContextClass *crypto_class =
++ GMIME_CRYPTO_CONTEXT_CLASS(klass);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ parent_class = g_type_class_ref(G_TYPE_OBJECT);
+
+ object_class->finalize = g_mime_gpgme_context_finalize;
+
++#ifndef HAVE_GMIME_2_5_7
+ cipher_class->hash_id = g_mime_gpgme_hash_id;
+ cipher_class->hash_name = g_mime_gpgme_hash_name;
+ cipher_class->sign = g_mime_gpgme_sign;
+ cipher_class->verify = g_mime_gpgme_verify;
+ cipher_class->encrypt = g_mime_gpgme_encrypt;
+ cipher_class->decrypt = g_mime_gpgme_decrypt;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto_class->digest_id = g_mime_gpgme_digest_id;
++ crypto_class->digest_name = g_mime_gpgme_digest_name;
++ crypto_class->get_signature_protocol =
++ g_mime_gpgme_get_signature_protocol;
++ crypto_class->get_encryption_protocol =
++ g_mime_gpgme_get_encryption_protocol;
++ crypto_class->get_key_exchange_protocol =
++ g_mime_gpgme_get_key_exchange_protocol;
++ crypto_class->sign = g_mime_gpgme_sign;
++ crypto_class->verify = g_mime_gpgme_verify;
++ crypto_class->encrypt = g_mime_gpgme_encrypt;
++ crypto_class->decrypt = g_mime_gpgme_decrypt;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP) ==
+ GPG_ERR_NO_ERROR)
+@@ -190,7 +263,11 @@ g_mime_gpgme_context_finalize(GObject * object)
+ }
+
+ #if !defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ g_object_unref(GMIME_CIPHER_CONTEXT(ctx)->session);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(GMIME_CRYPTO_CONTEXT(ctx)->session);
++#endif /* HAVE_GMIME_2_5_7 */
+ #endif /* HAVE_GMIME_2_6 */
+
+ G_OBJECT_CLASS(parent_class)->finalize(object);
+@@ -200,15 +277,26 @@ g_mime_gpgme_context_finalize(GObject * object)
+ /*
+ * Convert a hash algorithm name to a number
+ */
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherHash
+ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDigestAlgo
++g_mime_gpgme_digest_id(GMimeCryptoContext * ctx, const char *hash)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
++#ifndef HAVE_GMIME_2_5_7
+ if (hash == NULL)
+ return GMIME_CIPHER_HASH_DEFAULT;
++#else /* HAVE_GMIME_2_5_7 */
++ if (hash == NULL)
++ return GMIME_DIGEST_ALGO_DEFAULT;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (!g_ascii_strcasecmp(hash, "pgp-"))
+ hash += 4;
+
++#ifndef HAVE_GMIME_2_5_7
+ if (!g_ascii_strcasecmp(hash, "md2"))
+ return GMIME_CIPHER_HASH_MD2;
+ else if (!g_ascii_strcasecmp(hash, "md5"))
+@@ -223,6 +311,22 @@ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
+ return GMIME_CIPHER_HASH_HAVAL5160;
+
+ return GMIME_CIPHER_HASH_DEFAULT;
++#else /* HAVE_GMIME_2_5_7 */
++ if (!g_ascii_strcasecmp(hash, "md2"))
++ return GMIME_DIGEST_ALGO_MD2;
++ else if (!g_ascii_strcasecmp(hash, "md5"))
++ return GMIME_DIGEST_ALGO_MD5;
++ else if (!g_ascii_strcasecmp(hash, "sha1"))
++ return GMIME_DIGEST_ALGO_SHA1;
++ else if (!g_ascii_strcasecmp(hash, "ripemd160"))
++ return GMIME_DIGEST_ALGO_RIPEMD160;
++ else if (!g_ascii_strcasecmp(hash, "tiger192"))
++ return GMIME_DIGEST_ALGO_TIGER192;
++ else if (!g_ascii_strcasecmp(hash, "haval-5-160"))
++ return GMIME_DIGEST_ALGO_HAVAL5160;
++
++ return GMIME_DIGEST_ALGO_DEFAULT;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -230,7 +334,11 @@ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
+ * Convert a hash algorithm number to a string
+ */
+ static const char *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_digest_name(GMimeCryptoContext * context, GMimeDigestAlgo hash)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
+ char *p;
+@@ -239,6 +347,7 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ g_return_val_if_fail(ctx->gpgme_ctx, NULL);
+
+ /* note: this is only a subset of the hash algorithms gpg(me) supports */
++#ifndef HAVE_GMIME_2_5_7
+ switch (hash) {
+ case GMIME_CIPHER_HASH_MD2:
+ p = "pgp-md2";
+@@ -258,6 +367,27 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ case GMIME_CIPHER_HASH_HAVAL5160:
+ p = "pgp-haval-5-160";
+ break;
++#else /* HAVE_GMIME_2_5_7 */
++ switch (hash) {
++ case GMIME_DIGEST_ALGO_MD2:
++ p = "pgp-md2";
++ break;
++ case GMIME_DIGEST_ALGO_MD5:
++ p = "pgp-md5";
++ break;
++ case GMIME_DIGEST_ALGO_SHA1:
++ p = "pgp-sha1";
++ break;
++ case GMIME_DIGEST_ALGO_RIPEMD160:
++ p = "pgp-ripemd160";
++ break;
++ case GMIME_DIGEST_ALGO_TIGER192:
++ p = "pgp-tiger192";
++ break;
++ case GMIME_DIGEST_ALGO_HAVAL5160:
++ p = "pgp-haval-5-160";
++ break;
++#endif /* HAVE_GMIME_2_5_7 */
+ default:
+ if (!(p = ctx->micalg))
+ return p;
+@@ -270,6 +400,29 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ return p;
+ }
+
++#ifdef HAVE_GMIME_2_5_7
++static const char *
++g_mime_gpgme_get_signature_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->sign_protocol;
++}
++
++static const char *
++g_mime_gpgme_get_encryption_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->encrypt_protocol;
++}
++
++static const char *
++g_mime_gpgme_get_key_exchange_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->key_protocol;
++}
++
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /*
+ * Wrapper to convert the passphrase returned from the gmime session to gpgme.
+@@ -279,7 +432,11 @@ g_mime_session_passphrase(void *HOOK, const char *UID_HINT,
+ const char *PASSPHRASE_INFO, int PREV_WAS_BAD,
+ int FD)
+ {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *ctx = GMIME_CIPHER_CONTEXT(HOOK);
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *ctx = GMIME_CRYPTO_CONTEXT(HOOK);
++#endif /* HAVE_GMIME_2_5_7 */
+ #if defined(HAVE_GMIME_2_6)
+ GMimeStream *stream;
+ gboolean rc;
+@@ -366,9 +523,15 @@ cb_data_release(void *handle)
+ * arg, but set the value in the context.
+ */
+ static int
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_sign(GMimeCipherContext * context, const char *userid,
+ GMimeCipherHash hash, GMimeStream * istream,
+ GMimeStream * ostream, GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_sign(GMimeCryptoContext * context, const char *userid,
++ GMimeDigestAlgo hash, GMimeStream * istream,
++ GMimeStream * ostream, GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_sig_mode_t sig_mode;
+@@ -460,6 +623,7 @@ g_mime_gpgme_sign(GMimeCipherContext * context, const char *userid,
+ }
+
+
++#ifndef HAVE_GMIME_2_5_7
+ /*
+ * In standard mode, verify that sigstream contains a detached signature for
+ * istream. In single-part mode (RFC 2440, RFC 2633 application/pkcs7-mime),
+@@ -471,13 +635,33 @@ static GMimeSignatureValidity *
+ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ GMimeStream * istream, GMimeStream * sigstream,
+ GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++/*
++ * In standard mode, verify that sigstream contains a detached signature for
++ * istream. In single-part mode (RFC 2440, RFC 2633 application/pkcs7-mime),
++ * istream contains clearsigned data, and sigstream will be filled with the
++ * verified plaintext. The routine returns a GMimeSignatureList object.
++ * More information is saved in the context's signature object.
++ * On error error is set accordingly.
++ */
++static GMimeSignatureList *
++g_mime_gpgme_verify(GMimeCryptoContext * context, GMimeDigestAlgo hash,
++ GMimeStream * istream, GMimeStream * sigstream,
++ GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+ gpgme_protocol_t protocol;
+ gpgme_error_t err;
+ gpgme_data_t msg, sig;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *validity;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *list;
++ GMimeSignature *signature;
++
++#endif /* HAVE_GMIME_2_5_7 */
+ struct gpgme_data_cbs cbs = {
+ (gpgme_data_read_cb_t) g_mime_gpgme_stream_rd, /* read method */
+ (gpgme_data_write_cb_t) g_mime_gpgme_stream_wr, /* write method */
+@@ -521,6 +705,7 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ ctx->sig_state =
+ g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx);
+
++#ifndef HAVE_GMIME_2_5_7
+ validity = g_mime_signature_validity_new();
+ if (ctx->sig_state) {
+ switch (ctx->sig_state->status)
+@@ -536,12 +721,44 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ }
+ } else
+ g_mime_signature_validity_set_status(validity, GMIME_SIGNATURE_STATUS_UNKNOWN);
++#else /* HAVE_GMIME_2_5_7 */
++ list = g_mime_signature_list_new();
++ signature = g_mime_signature_new();
++ g_mime_signature_list_add(list, signature);
++
++ if (ctx->sig_state) {
++ switch (ctx->sig_state->status)
++ {
++ case GPG_ERR_NO_ERROR:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_GOOD);
++ break;
++ case GPG_ERR_NOT_SIGNED:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature,
++ GMIME_SIGNATURE_ERROR_NONE);
++ break;
++ default:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_BAD);
++ }
++ } else {
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature, GMIME_SIGNATURE_ERROR_NONE);
++ }
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* release gmgme data buffers */
+ gpgme_data_release(msg);
+ gpgme_data_release(sig);
+
++#ifndef HAVE_GMIME_2_5_7
+ return validity;
++#else /* HAVE_GMIME_2_5_7 */
++ return list;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -549,10 +766,19 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ * Encrypt istream to ostream for recipients. If sign is set, sign by userid.
+ */
+ static int
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_encrypt(GMimeCipherContext * context, gboolean sign,
+ const char *userid, GPtrArray * recipients,
+ GMimeStream * istream, GMimeStream * ostream,
+ GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_encrypt(GMimeCryptoContext * context, gboolean sign,
++ const char *userid,
++ GMimeDigestAlgo digest,
++ GPtrArray * recipients,
++ GMimeStream * istream, GMimeStream * ostream,
++ GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+@@ -653,9 +879,15 @@ g_mime_gpgme_encrypt(GMimeCipherContext * context, gboolean sign,
+ * Decrypt istream to ostream. In RFC 2440 mode, also try to check an included
+ * signature (if any).
+ */
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeSignatureValidity *
+ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ GMimeStream * ostream, GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDecryptResult *
++g_mime_gpgme_decrypt(GMimeCryptoContext * context, GMimeStream * istream,
++ GMimeStream * ostream, GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+@@ -668,7 +900,13 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ NULL, /* seek method */
+ cb_data_release /* release method */
+ };
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *validity;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeDecryptResult *result;
++ GMimeSignatureList *list;
++ GMimeSignature *signature;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some paranoia checks */
+ g_return_val_if_fail(ctx, NULL);
+@@ -716,6 +954,7 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ /* try to get information about the signature (if any) */
+ ctx->sig_state = g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx);
+
++#ifndef HAVE_GMIME_2_5_7
+ validity = g_mime_signature_validity_new();
+ if (ctx->sig_state) {
+ switch (ctx->sig_state->status)
+@@ -733,14 +972,57 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ g_mime_signature_validity_set_status(validity, GMIME_SIGNATURE_STATUS_UNKNOWN);
+
+ return validity;
++#else /* HAVE_GMIME_2_5_7 */
++ list = g_mime_signature_list_new();
++ signature = g_mime_signature_new();
++ g_mime_signature_list_add(list, signature);
++ result = g_mime_decrypt_result_new();
++ g_mime_decrypt_result_set_signatures(result, list);
++
++ if (ctx->sig_state) {
++ switch (ctx->sig_state->status)
++ {
++ case GPG_ERR_NO_ERROR:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_GOOD);
++ break;
++ case GPG_ERR_NOT_SIGNED:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature,
++ GMIME_SIGNATURE_ERROR_NONE);
++ break;
++ default:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_BAD);
++ }
++ } else {
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature, GMIME_SIGNATURE_ERROR_NONE);
++ }
++
++ return result;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
++#ifndef HAVE_GMIME_2_5_7
+ /*
+ * Create a new gpgme cipher context with protocol. If anything fails, return
+ * NULL and set error.
+ */
++#else /* HAVE_GMIME_2_5_7 */
++/*
++ * Create a new gpgme crypto context with protocol. If anything fails, return
++ * NULL and set error.
++ */
++#endif /* HAVE_GMIME_2_5_7 */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeCryptoContext *
++#endif /* HAVE_GMIME_2_5_7 */
+ #if defined(HAVE_GMIME_2_6)
+ g_mime_gpgme_context_new(GMimePasswordRequestFunc request_passwd,
+ gpgme_protocol_t protocol, GError ** error)
+@@ -749,7 +1031,11 @@ g_mime_gpgme_context_new(GMimeSession * session,
+ gpgme_protocol_t protocol, GError ** error)
+ #endif /* HAVE_GMIME_2_6 */
+ {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *cipher;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *crypto;
++#endif /* HAVE_GMIME_2_5_7 */
+ GMimeGpgmeContext *ctx;
+ gpgme_error_t err;
+ gpgme_ctx_t gpgme_ctx;
+@@ -766,14 +1052,22 @@ g_mime_gpgme_context_new(GMimeSession * session,
+ return NULL;
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ /* create the cipher context */
++#else /* HAVE_GMIME_2_5_7 */
++ /* create the crypto context */
++#endif /* HAVE_GMIME_2_5_7 */
+ ctx = g_object_new(GMIME_TYPE_GPGME_CONTEXT, NULL, NULL);
+ if (!ctx) {
+ gpgme_release(gpgme_ctx);
+ return NULL;
+ } else
+ ctx->gpgme_ctx = gpgme_ctx;
++#ifndef HAVE_GMIME_2_5_7
+ cipher = (GMimeCipherContext *) ctx;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto = (GMimeCryptoContext *) ctx;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* check if the requested protocol is available */
+ if (!g_mime_gpgme_context_check_protocol
+@@ -785,23 +1079,47 @@ g_mime_gpgme_context_new(GMimeSession * session,
+
+ /* setup according to requested protocol */
+ #if defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ cipher->request_passwd = request_passwd;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto->request_passwd = request_passwd;
++#endif /* HAVE_GMIME_2_5_7 */
+ #else /* HAVE_GMIME_2_6 */
++#ifndef HAVE_GMIME_2_5_7
+ cipher->session = session;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto->session = session;
++#endif /* HAVE_GMIME_2_5_7 */
+ g_object_ref(session);
+ #endif /* HAVE_GMIME_2_6 */
+ gpgme_set_protocol(gpgme_ctx, protocol);
+ if (protocol == GPGME_PROTOCOL_OpenPGP) {
++#ifndef HAVE_GMIME_2_5_7
+ cipher->sign_protocol = "application/pgp-signature";
+ cipher->encrypt_protocol = "application/pgp-encrypted";
+ cipher->key_protocol = NULL; /* FIXME */
++#else /* HAVE_GMIME_2_5_7 */
++ ctx->sign_protocol = "application/pgp-signature";
++ ctx->encrypt_protocol = "application/pgp-encrypted";
++ ctx->key_protocol = NULL; /* FIXME */
++#endif /* HAVE_GMIME_2_5_7 */
+ } else {
++#ifndef HAVE_GMIME_2_5_7
+ cipher->sign_protocol = "application/pkcs7-signature";
+ cipher->encrypt_protocol = "application/pkcs7-mime";
+ cipher->key_protocol = NULL; /* FIXME */
++#else /* HAVE_GMIME_2_5_7 */
++ ctx->sign_protocol = "application/pkcs7-signature";
++ ctx->encrypt_protocol = "application/pkcs7-mime";
++ ctx->key_protocol = NULL; /* FIXME */
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ return cipher;
++#else /* HAVE_GMIME_2_5_7 */
++ return crypto;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+diff --git a/libbalsa/gmime-gpgme-context.h b/libbalsa/gmime-gpgme-context.h
+index 585d927..19c5fae 100644
+--- a/libbalsa/gmime-gpgme-context.h
++++ b/libbalsa/gmime-gpgme-context.h
+@@ -63,7 +63,11 @@ typedef gboolean(*GMimeGpgmeKeyTrustCB) (const gchar * name,
+ GMimeGpgmeContext * ctx);
+
+ struct _GMimeGpgmeContext {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext parent_object;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext parent_object;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ gpgme_ctx_t gpgme_ctx; /* gpgme context */
+ gboolean singlepart_mode; /* set context to single-part mode (RFC 2440, 2633) */
+@@ -73,11 +77,21 @@ struct _GMimeGpgmeContext {
+ GMimeGpgmeKeySelectCB key_select_cb; /* key selection callback */
+ GMimeGpgmeKeyTrustCB key_trust_cb; /* low trust key cb */
+ gpgme_passphrase_cb_t passphrase_cb; /* passphrase callback */
++#ifdef HAVE_GMIME_2_5_7
++
++ const gchar *sign_protocol;
++ const gchar *encrypt_protocol;
++ const gchar *key_protocol;
++#endif /* HAVE_GMIME_2_5_7 */
+ };
+
+
+ struct _GMimeGpgmeContextClass {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContextClass parent_class;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContextClass parent_class;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ gboolean has_proto_openpgp;
+ gboolean has_proto_cms;
+@@ -86,10 +100,17 @@ struct _GMimeGpgmeContextClass {
+
+ GType g_mime_gpgme_context_get_type(void);
+ #if defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *g_mime_gpgme_context_new(GMimePasswordRequestFunc
+ request_passwd,
+ gpgme_protocol_t protocol,
+ GError ** error);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeCryptoContext *g_mime_gpgme_context_new(GMimePasswordRequestFunc
++ request_passwd,
++ gpgme_protocol_t protocol,
++ GError ** error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #else /* HAVE_GMIME_2_6 */
+ GMimeCipherContext *g_mime_gpgme_context_new(GMimeSession * session,
+ gpgme_protocol_t protocol,
+diff --git a/libbalsa/gmime-part-rfc2440.c b/libbalsa/gmime-part-rfc2440.c
+index 795d2e1..e79c4cb 100644
+--- a/libbalsa/gmime-part-rfc2440.c
++++ b/libbalsa/gmime-part-rfc2440.c
+@@ -112,8 +112,13 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+
+ g_return_val_if_fail(GMIME_IS_PART(part), -1);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->sign_protocol != NULL,
+ -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail(recipients != NULL || sign_userid != NULL, -1);
+
+ /* get the raw content */
+@@ -131,14 +136,27 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ ctx->singlepart_mode = TRUE;
+ if (recipients == NULL)
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_sign(GMIME_CIPHER_CONTEXT(ctx), sign_userid,
+ GMIME_CIPHER_HASH_DEFAULT, stream,
+ cipherstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_sign(GMIME_CRYPTO_CONTEXT(ctx), sign_userid,
++ GMIME_CIPHER_ALGO_DEFAULT, stream,
++ cipherstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+ else
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_encrypt(GMIME_CIPHER_CONTEXT(ctx),
+ sign_userid != NULL, sign_userid,
+ recipients, stream, cipherstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_encrypt(GMIME_CRYPTO_CONTEXT(ctx),
++ sign_userid != NULL, sign_userid,
++ GMIME_CIPHER_ALGO_DEFAULT,
++ recipients, stream, cipherstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+ if (result == -1) {
+ g_object_unref(cipherstream);
+ return -1;
+@@ -202,18 +220,31 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ * set on err to provide more information. Upon success, the content
+ * of part is replaced by the verified output of the crypto engine.
+ */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeSignatureList *
++#endif /* HAVE_GMIME_2_5_7 */
+ g_mime_part_rfc2440_verify(GMimePart * part,
+ GMimeGpgmeContext * ctx, GError ** err)
+ {
+ GMimeStream *stream, *plainstream;
+ GMimeDataWrapper * wrapper;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *list;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ g_return_val_if_fail(GMIME_IS_PART(part), NULL);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->sign_protocol != NULL,
+ NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* get the raw content */
+ wrapper = g_mime_part_get_content_object(GMIME_PART(part));
+@@ -227,13 +258,25 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+
+ /* verify the signature */
+ ctx->singlepart_mode = TRUE;
++#ifndef HAVE_GMIME_2_5_7
+ valid =
+ g_mime_cipher_context_verify(GMIME_CIPHER_CONTEXT(ctx),
+ GMIME_CIPHER_HASH_DEFAULT, stream,
+ plainstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ list =
++ g_mime_crypto_context_verify(GMIME_CRYPTO_CONTEXT(ctx),
++ GMIME_CIPHER_ALGO_DEFAULT, stream,
++ plainstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* upon success, replace the signed content by the checked one */
+- if (valid) {
++#ifndef HAVE_GMIME_2_5_7
++ if (valid)
++#else /* HAVE_GMIME_2_5_7 */
++ if (list)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ GMimeDataWrapper *wrapper = g_mime_data_wrapper_new();
+
+ g_mime_data_wrapper_set_stream(wrapper, plainstream);
+@@ -242,7 +285,11 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+ }
+ g_object_unref(plainstream);
+
++#ifndef HAVE_GMIME_2_5_7
+ return valid;
++#else /* HAVE_GMIME_2_5_7 */
++ return list;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -255,19 +302,32 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+ * verified and the result is placed in ctx by the underlying gpgme
+ * context.
+ */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeDecryptResult *
++#endif /* HAVE_GMIME_2_5_7 */
+ g_mime_part_rfc2440_decrypt(GMimePart * part,
+ GMimeGpgmeContext * ctx, GError ** err)
+ {
+ GMimeStream *stream, *plainstream;
+ GMimeDataWrapper * wrapper;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *result;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeDecryptResult *result;
++#endif /* HAVE_GMIME_2_5_7 */
+ gchar *headbuf = g_malloc0(1024);
+
+ g_return_val_if_fail(GMIME_IS_PART(part), NULL);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->encrypt_protocol !=
+ NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* get the raw content */
+ wrapper = g_mime_part_get_content_object(part);
+@@ -284,8 +344,13 @@ g_mime_part_rfc2440_decrypt(GMimePart * part,
+
+ /* decrypt and (if possible) verify the input */
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_decrypt(GMIME_CIPHER_CONTEXT(ctx), stream,
+ plainstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_decrypt(GMIME_CRYPTO_CONTEXT(ctx), stream,
++ plainstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (result != NULL) {
+ GMimeStream *filter_stream;
+diff --git a/libbalsa/gmime-part-rfc2440.h b/libbalsa/gmime-part-rfc2440.h
+index 48be5a4..cc1901a 100644
+--- a/libbalsa/gmime-part-rfc2440.h
++++ b/libbalsa/gmime-part-rfc2440.h
+@@ -53,12 +53,21 @@ int g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ GPtrArray * recipients,
+ const char *sign_userid,
+ GError ** err);
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *g_mime_part_rfc2440_verify(GMimePart * part,
+ GMimeGpgmeContext * ctx,
+ GError ** err);
+ GMimeSignatureValidity *g_mime_part_rfc2440_decrypt(GMimePart * part,
+ GMimeGpgmeContext *
+ ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeSignatureList *g_mime_part_rfc2440_verify(GMimePart * part,
++ GMimeGpgmeContext * ctx,
++ GError ** err);
++GMimeDecryptResult *g_mime_part_rfc2440_decrypt(GMimePart * part,
++ GMimeGpgmeContext * ctx,
++ GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #ifdef __cplusplus
+ }
+diff --git a/libbalsa/rfc3156.c b/libbalsa/rfc3156.c
+index a56e12c..df4a2e1 100644
+--- a/libbalsa/rfc3156.c
++++ b/libbalsa/rfc3156.c
+@@ -268,9 +268,15 @@ libbalsa_message_body_protection(LibBalsaMessageBody * body)
+
+ #if defined(HAVE_GMIME_2_6)
+ static gboolean
++#ifndef HAVE_GMIME_2_5_7
+ password_request_func(GMimeCipherContext * ctx, const char *user_id,
+ const char *prompt_ctx, gboolean reprompt,
+ GMimeStream * response, GError ** err)
++#else /* HAVE_GMIME_2_5_7 */
++password_request_func(GMimeCryptoContext * ctx, const char *user_id,
++ const char *prompt_ctx, gboolean reprompt,
++ GMimeStream * response, GError ** err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ gint fd;
+ gchar *name_used;
+@@ -366,9 +372,16 @@ libbalsa_sign_mime_object(GMimeObject ** content, const gchar * rfc822_for,
+ return FALSE;
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ if (g_mime_multipart_signed_sign
+ (mps, *content, GMIME_CIPHER_CONTEXT(ctx), rfc822_for,
+- GMIME_CIPHER_HASH_DEFAULT, error) != 0) {
++ GMIME_CIPHER_HASH_DEFAULT, error) != 0)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_multipart_signed_sign
++ (mps, *content, GMIME_CRYPTO_CONTEXT(ctx), rfc822_for,
++ GMIME_DIGEST_ALGO_DEFAULT, error) != 0)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(mps);
+ g_object_unref(ctx);
+ #if !defined(HAVE_GMIME_2_6)
+@@ -458,10 +471,18 @@ libbalsa_encrypt_mime_object(GMimeObject ** content, GList * rfc822_for,
+
+ encrypted_obj = GMIME_OBJECT(mpe);
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_multipart_encrypted_encrypt(mpe, *content,
+ GMIME_CIPHER_CONTEXT(ctx),
+ FALSE, NULL,
+ recipients, error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_multipart_encrypted_encrypt(mpe, *content,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ FALSE, NULL,
++ GMIME_DIGEST_ALGO_DEFAULT,
++ recipients, error);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+ #ifdef HAVE_SMIME
+ else {
+@@ -471,9 +492,15 @@ libbalsa_encrypt_mime_object(GMimeObject ** content, GList * rfc822_for,
+ encrypted_obj = GMIME_OBJECT(pkcs7);
+ ctx->singlepart_mode = TRUE;
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_encrypt(pkcs7, *content,
+ GMIME_CIPHER_CONTEXT(ctx),
+ recipients, error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_application_pkcs7_encrypt(pkcs7, *content,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ recipients, error);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+ #endif
+
+@@ -565,8 +592,14 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ #if !defined(HAVE_GMIME_2_6)
+ GMimeSession *session;
+ #endif /* HAVE_GMIME_2_6 */
+- GMimeCipherContext *ctx;
++#ifndef HAVE_GMIME_2_5_7
++ GMimeCipherContext *g_mime_ctx;
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *g_mime_ctx;
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
++ GMimeGpgmeContext *ctx;
+ GError *error = NULL;
+
+ /* paranoia checks */
+@@ -592,12 +625,12 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ /* try to create GMimeGpgMEContext */
+ #if !defined(HAVE_GMIME_2_6)
+ session = g_object_new(g_mime_session_get_type(), NULL, NULL);
+- ctx = g_mime_gpgme_context_new(session, protocol, &error);
++ g_mime_ctx = g_mime_gpgme_context_new(session, protocol, &error);
+ #else /* HAVE_GMIME_2_6 */
+- ctx =
++ g_mime_ctx =
+ g_mime_gpgme_context_new(password_request_func, protocol, &error);
+ #endif /* HAVE_GMIME_2_6 */
+- if (ctx == NULL) {
++ if (g_mime_ctx == NULL) {
+ if (error) {
+ libbalsa_information(LIBBALSA_INFORMATION_ERROR, "%s: %s",
+ _("creating a gpgme context failed"),
+@@ -613,6 +646,7 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ body->parts->next->sig_info->status = GPGME_SIG_STAT_ERROR;
+ return FALSE;
+ }
++ ctx = GMIME_GPGME_CONTEXT(g_mime_ctx);
+
+ /* S/MIME uses the protocol application/pkcs7-signature, but some ancient
+ mailers, not yet knowing RFC 2633, use application/x-pkcs7-signature,
+@@ -622,14 +656,19 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ g_mime_object_get_content_type_parameter(GMIME_OBJECT (body->mime_part),
+ "protocol");
+ if (!g_ascii_strcasecmp(cms_protocol, "application/x-pkcs7-signature"))
++#ifndef HAVE_GMIME_2_5_7
++ g_mime_ctx->sign_protocol = cms_protocol;
++#else /* HAVE_GMIME_2_5_7 */
+ ctx->sign_protocol = cms_protocol;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+ /* verify the signature */
+
+ libbalsa_mailbox_lock_store(body->message->mailbox);
+ valid = g_mime_multipart_signed_verify(GMIME_MULTIPART_SIGNED
+- (body->mime_part), ctx, &error);
++ (body->mime_part), g_mime_ctx,
++ &error);
+ libbalsa_mailbox_unlock_store(body->message->mailbox);
+
+ if (valid == NULL) {
+@@ -642,12 +681,16 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ libbalsa_information(LIBBALSA_INFORMATION_ERROR,
+ _("signature verification failed"));
+ }
+- if (GMIME_GPGME_CONTEXT(ctx)->sig_state) {
+- body->parts->next->sig_info = GMIME_GPGME_CONTEXT(ctx)->sig_state;
++ if (ctx->sig_state) {
++ body->parts->next->sig_info = ctx->sig_state;
+ g_object_ref(G_OBJECT(body->parts->next->sig_info));
+ }
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_signature_validity_free(valid);
+- g_object_unref(ctx);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(valid);
++#endif /* HAVE_GMIME_2_5_7 */
++ g_object_unref(g_mime_ctx);
+ #if !defined(HAVE_GMIME_2_6)
+ g_object_unref(session);
+ #endif /* HAVE_GMIME_2_6 */
+@@ -747,14 +790,26 @@ libbalsa_body_decrypt(LibBalsaMessageBody * body,
+ libbalsa_mailbox_lock_store(body->message->mailbox);
+ if (protocol == GPGME_PROTOCOL_OpenPGP)
+ mime_obj =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_multipart_encrypted_decrypt(GMIME_MULTIPART_ENCRYPTED(body->mime_part),
+ GMIME_CIPHER_CONTEXT(ctx),
+ &error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_multipart_encrypted_decrypt(GMIME_MULTIPART_ENCRYPTED(body->mime_part),
++ GMIME_CRYPTO_CONTEXT(ctx),
++ NULL,
++ &error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #ifdef HAVE_SMIME
+ else if (smime_signed) {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ ctx->singlepart_mode = TRUE;
++#ifndef HAVE_GMIME_2_5_7
+ mime_obj =
+ g_mime_application_pkcs7_verify(GMIME_PART(body->mime_part),
+ &valid,
+@@ -766,6 +821,19 @@ libbalsa_body_decrypt(LibBalsaMessageBody * body,
+ g_mime_application_pkcs7_decrypt(GMIME_PART(body->mime_part),
+ GMIME_CIPHER_CONTEXT(ctx),
+ &error);
++#else /* HAVE_GMIME_2_5_7 */
++ mime_obj =
++ g_mime_application_pkcs7_verify(GMIME_PART(body->mime_part),
++ &valid,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ &error);
++ g_object_unref(valid);
++ } else
++ mime_obj =
++ g_mime_application_pkcs7_decrypt(GMIME_PART(body->mime_part),
++ GMIME_CRYPTO_CONTEXT(ctx),
++ &error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #endif
+ libbalsa_mailbox_unlock_store(body->message->mailbox);
+
+@@ -906,7 +974,11 @@ libbalsa_rfc2440_verify(GMimePart * part, GMimeGpgmeSigstat ** sig_info)
+ GMimeSession *session;
+ #endif /* HAVE_GMIME_2_6 */
+ GMimeGpgmeContext *ctx;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
+ GError *error = NULL;
+ gpgme_error_t retval;
+
+@@ -978,7 +1050,11 @@ libbalsa_rfc2440_verify(GMimePart * part, GMimeGpgmeSigstat ** sig_info)
+ }
+
+ /* clean up */
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_signature_validity_free(valid);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(valid);
++#endif /* HAVE_GMIME_2_5_7 */
+ retval = ctx->sig_state->status;
+ g_object_unref(ctx);
+ #if !defined(HAVE_GMIME_2_6)
+--
+cgit v0.9.0.2
diff --git a/community-testing/dbmail/PKGBUILD b/community-testing/dbmail/PKGBUILD
new file mode 100644
index 000000000..e7fd4b3ad
--- /dev/null
+++ b/community-testing/dbmail/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 62080 2012-01-15 19:14:39Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sebastian Faltoni <sebastian.faltoni@gmail.com>
+
+pkgname=dbmail
+pkgver=3.0.0_rc3
+pkgrel=1
+pkgdesc="Fast and scalable sql based mail services"
+arch=('i686' 'x86_64')
+depends=('gmime' 'libzdb' 'mhash' 'libevent')
+makedepends=('asciidoc' 'xmlto' 'docbook-xsl' 'docbook-xml' 'postgresql-libs>=8.4.1'
+ 'sqlite3' 'libmysqlclient' 'libldap>=2.4.18' 'libsieve')
+optdepends=('postgresql-libs: for PostgreSQL storage backend'
+ 'sqlite3: for SQLite storage backend'
+ 'libmysqlclient: for MySQL storage backend'
+ 'libldap: for LDAP authentication'
+ 'libsieve: for dbmail-sieve')
+url="http://www.dbmail.org"
+license=('GPL')
+options=('!libtool' 'zipman')
+backup=(etc/conf.d/dbmail)
+conflicts=('dbmail')
+provides=('dbmail')
+source=(http://www.dbmail.org/download/3.0/dbmail-${pkgver/_/-}.tar.gz
+ dbmail.conf.d
+ dbmail.rc.d)
+md5sums=('52c3b9aad310efc90a6a2fff0552f73e'
+ 'e7f72bc360decdb2475266391ad12329'
+ '099225611da20ec194c092ac9befc33c')
+
+build() {
+ cd $srcdir/dbmail-${pkgver/_/-}/
+
+ [ -f Makefile ] || ./configure --prefix=/usr \
+ --with-mysql --with-pgsql --with-sqlite --with-ldap --with-sieve
+ make
+}
+
+package() {
+ cd $srcdir/dbmail-${pkgver/_/-}/
+ make DESTDIR=$pkgdir install
+ (cd man && make && make install DESTDIR=$pkgdir)
+
+ mkdir $pkgdir/etc
+ install -Dm644 dbmail.conf $pkgdir/etc/dbmail.conf.sample
+ install -Dm644 ../dbmail.conf.d $pkgdir/etc/conf.d/dbmail
+ install -Dm755 ../dbmail.rc.d $pkgdir/etc/rc.d/dbmail
+ mkdir $pkgdir/usr/share/dbmail
+ cp -r sql/* $pkgdir/usr/share/dbmail/
+ cp dbmail.schema $pkgdir/usr/share/dbmail/
+}
diff --git a/community-testing/dbmail/dbmail-2.2.10-pam-support.patch b/community-testing/dbmail/dbmail-2.2.10-pam-support.patch
new file mode 100644
index 000000000..805a7f609
--- /dev/null
+++ b/community-testing/dbmail/dbmail-2.2.10-pam-support.patch
@@ -0,0 +1,251 @@
+diff -wbBur dbmail-2.2.10/configure.in dbmail-2.2.10.pam/configure.in
+--- dbmail-2.2.10/configure.in 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/configure.in 2008-09-18 16:43:04.000000000 +0400
+@@ -78,6 +78,13 @@
+
+ AC_SUBST(CRYPTLIB)
+
++dnl Check for PAM
++AC_SUBST(PAMLIBS,"")
++AC_CHECK_HEADERS(security/pam_appl.h,
++ [AC_CHECK_LIB(pam,pam_start,
++ [AC_DEFINE(HAVE_PAM,1,[Define if you have PAN including devel headers])
++ PAMLIBS="-lpam"],,)])
++
+ AC_SUBST(MYSQLLIB)
+ AC_SUBST(MYSQLALIB)
+ AC_SUBST(MYSQLLTLIB)
+diff -wbBur dbmail-2.2.10/dbmail-user.c dbmail-2.2.10.pam/dbmail-user.c
+--- dbmail-2.2.10/dbmail-user.c 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/dbmail-user.c 2008-09-18 16:43:04.000000000 +0400
+@@ -157,7 +157,7 @@
+ "md5", "md5-raw", "md5sum", "md5sum-raw",
+ "md5-hash", "md5-hash-raw", "md5-digest", "md5-digest-raw",
+ "md5-base64", "md5-base64-raw", "md5base64", "md5base64-raw",
+- "shadow", "", NULL
++ "shadow", "pam", "", NULL
+ };
+
+ /* These must correspond to the easy text names. */
+@@ -166,7 +166,7 @@
+ MD5_HASH, MD5_HASH_RAW, MD5_DIGEST, MD5_DIGEST_RAW,
+ MD5_HASH, MD5_HASH_RAW, MD5_DIGEST, MD5_DIGEST_RAW,
+ MD5_BASE64, MD5_BASE64_RAW, MD5_BASE64, MD5_BASE64_RAW,
+- SHADOW, PLAINTEXT, PWTYPE_NULL
++ SHADOW, PWTYPE_PAM, PLAINTEXT, PWTYPE_NULL
+ };
+
+ memset(pw, 0, 50);
+@@ -251,6 +251,12 @@
+ *enctype = "crypt";
+ }
+ break;
++#ifdef HAVE_PAM
++ case PWTYPE_PAM:
++ null_strncpy(pw, passwd, 49);
++ *enctype = "pam";
++ break;
++#endif
+ default:
+ qerrorf("Error: password type not supported [%s].\n",
+ passwdtype);
+diff -wbBur dbmail-2.2.10/dbmail-user.h dbmail-2.2.10.pam/dbmail-user.h
+--- dbmail-2.2.10/dbmail-user.h 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/dbmail-user.h 2008-09-18 16:43:04.000000000 +0400
+@@ -34,7 +34,7 @@
+ typedef enum {
+ PLAINTEXT = 0, PLAINTEXT_RAW, CRYPT, CRYPT_RAW,
+ MD5_HASH, MD5_HASH_RAW, MD5_DIGEST, MD5_DIGEST_RAW,
+- MD5_BASE64, MD5_BASE64_RAW, SHADOW, PWTYPE_NULL
++ MD5_BASE64, MD5_BASE64_RAW, SHADOW, PWTYPE_PAM, PWTYPE_NULL
+ } pwtype_t;
+
+ int mkpassword(const char * const user, const char * const passwd,
+diff -wbBur dbmail-2.2.10/modules/authsql.c dbmail-2.2.10.pam/modules/authsql.c
+--- dbmail-2.2.10/modules/authsql.c 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/modules/authsql.c 2008-09-18 16:43:04.000000000 +0400
+@@ -27,6 +27,19 @@
+ #include "dbmail.h"
+ #define THIS_MODULE "auth"
+
++#ifdef HAVE_PAM
++#include <security/pam_appl.h>
++
++#ifndef DEFAULT_DBMAIL_PAM_SERVICE
++#define DEFAULT_DBMAIL_PAM_SERVICE "dbmail"
++#endif
++
++#ifndef DEFAULT_DBMAIL_PAM_TTL
++#define DEFAULT_DBMAIL_PAM_TTL 60
++#endif
++
++#endif
++
+ extern db_param_t _db_params;
+ #define DBPFX _db_params.pfx
+
+@@ -49,17 +62,80 @@
+ */
+ static int __auth_query(const char *thequery);
+
++#ifdef HAVE_PAM
++
++static char *pam_password = NULL; /* Workaround for Solaris 2.6 brokenness */
++static pam_handle_t *pamh = NULL;
++static int pam_ttl = DEFAULT_DBMAIL_PAM_TTL;
++static char *pam_service = DEFAULT_DBMAIL_PAM_SERVICE;
++static time_t pamh_created = 0;
++/*
++ * A simple "conversation" function returning the supplied password.
++ * Has a bit to much error control, but this is my first PAM application
++ * so I'd rather check everything than make any mistakes. The function
++ * expects a single converstation message of type PAM_PROMPT_ECHO_OFF.
++ */
++static int
++password_conversation(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr)
++{
++ if (num_msg != 1 || msg[0]->msg_style != PAM_PROMPT_ECHO_OFF) {
++ TRACE(TRACE_ERROR, "Unexpected PAM converstaion '%d/%s'", msg[0]->msg_style, msg[0]->msg);
++ return PAM_CONV_ERR;
++ }
++ if (!appdata_ptr) {
++ /* Workaround for Solaris 2.6 where the PAM library is broken
++ * and does not pass appdata_ptr to the conversation routine
++ */
++ appdata_ptr = pam_password;
++ }
++ if (!appdata_ptr) {
++ TRACE(TRACE_ERROR, "ERROR: No password available to password_converstation!");
++ return PAM_CONV_ERR;
++ }
++ *resp = calloc(num_msg, sizeof(struct pam_response));
++ if (!*resp) {
++ TRACE(TRACE_ERROR, "Out of memory!");
++ return PAM_CONV_ERR;
++ }
++ (*resp)[0].resp = strdup((char *) appdata_ptr);
++ (*resp)[0].resp_retcode = 0;
++
++ return ((*resp)[0].resp ? PAM_SUCCESS : PAM_CONV_ERR);
++}
++
++static struct pam_conv conv =
++{
++ &password_conversation,
++ NULL
++};
++
++#endif
++
++
+ int auth_connect()
+ {
+ /* this function is only called after a connection has been made
+ * if, in the future this is not the case, db.h should export a
+ * function that enables checking for the database connection
+ */
++#ifdef HAVE_PAM
++
++#endif
+ return 0;
+ }
+
+ int auth_disconnect()
+ {
++#ifdef HAVE_PAM
++ int retval=PAM_SUCCESS;
++ if (pamh) {
++ retval = pam_end(pamh, retval);
++ if (retval != PAM_SUCCESS) {
++ pamh = NULL;
++ TRACE(TRACE_ERROR, "failed to release PAM authenticator");
++ }
++ }
++#endif
+ return 0;
+ }
+
+@@ -458,7 +534,71 @@
+ is_validated = (strncmp(md5str, query_result, 32) == 0) ? 1 : 0;
+ g_free(md5str);
+ }
++#ifdef HAVE_PAM
++ else if (strcasecmp(query_result, "pam") == 0) {
++ int retval=0;
++ TRACE(TRACE_DEBUG, "validating using pam for user [%s] pass:[%s]",real_username,password);
++ conv.appdata_ptr = (char *) password;
++ pam_password= password;
++ if (pam_ttl == 0) {
++ /* Create PAM connection */
++ retval = pam_start(pam_service, real_username, &conv, &pamh);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_ERROR, "failed to create PAM authenticator");
++ goto pam_error;
++ }
++ } else if (!pamh || (time(NULL) - pamh_created) >= pam_ttl || pamh_created > time(NULL)) {
++ /* Close previous PAM connection */
++ if (pamh) {
++ retval = pam_end(pamh, retval);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_WARNING, "failed to release PAM authenticator");
++ }
++ pamh = NULL;
++ }
++ /* Initialize persistent PAM connection */
++ retval = pam_start(pam_service, "dbmail@", &conv, &pamh);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_ERROR, "failed to create PAM authenticator");
++ goto pam_error;
++ }
++ pamh_created = time(NULL);
++ }
++ retval = PAM_SUCCESS;
++ if (pam_ttl != 0) {
++ if (retval == PAM_SUCCESS)
++ retval = pam_set_item(pamh, PAM_USER, real_username);
++ if (retval == PAM_SUCCESS)
++ retval = pam_set_item(pamh, PAM_CONV, &conv);
++ }
++ if (retval == PAM_SUCCESS)
++ retval = pam_authenticate(pamh, 0);
++ if (retval == PAM_SUCCESS ) //&& !no_acct_mgmt
++ retval = pam_acct_mgmt(pamh, 0);
++ if (retval == PAM_SUCCESS) {
++ is_validated=1;
++ } else {
++pam_error:
++ is_validated=0;
++ }
++ /* cleanup */
++ retval = PAM_SUCCESS;
++#ifdef PAM_AUTHTOK
++ if (pam_ttl != 0) {
++ if (retval == PAM_SUCCESS)
++ retval = pam_set_item(pamh, PAM_AUTHTOK, NULL);
++ }
++#endif
++ if (pam_ttl == 0 || retval != PAM_SUCCESS) {
++ retval = pam_end(pamh, retval);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_WARNING, "failed to release PAM authenticator\n");
++ }
++ pamh = NULL;
++ }
+
++ }
++#endif
+ if (is_validated) {
+ db_user_log_login(*user_idnr);
+ } else {
+diff -wbBur dbmail-2.2.10/modules/Makefile.am dbmail-2.2.10.pam/modules/Makefile.am
+--- dbmail-2.2.10/modules/Makefile.am 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/modules/Makefile.am 2008-09-18 16:44:53.000000000 +0400
+@@ -60,7 +60,7 @@
+
+ # This one is always built.
+ libauth_sql_la_SOURCES = authsql.c
+-libauth_sql_la_LIBADD = @CRYPTLIB@
++libauth_sql_la_LIBADD = @CRYPTLIB@ @PAMLIBS@
+
+ if LDAP
+ libauth_ldap_la_SOURCES = authldap.c
diff --git a/community-testing/dbmail/dbmail.conf.d b/community-testing/dbmail/dbmail.conf.d
new file mode 100644
index 000000000..73309a4a2
--- /dev/null
+++ b/community-testing/dbmail/dbmail.conf.d
@@ -0,0 +1,9 @@
+# Parameters to be passed to dbmail
+#
+#
+# Select the service you want started with dbmail
+#
+# Available options :
+# dbmail-imapd dbmail-pop3d dbmail-lmtpd dbmail-timsieved
+#
+DBMAIL_DAEMONS="dbmail-imapd"
diff --git a/community-testing/dbmail/dbmail.rc.d b/community-testing/dbmail/dbmail.rc.d
new file mode 100644
index 000000000..92c34e5d2
--- /dev/null
+++ b/community-testing/dbmail/dbmail.rc.d
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+[ -f /etc/conf.d/dbmail ] && . /etc/conf.d/dbmail
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ for daemon in $DBMAIL_DAEMONS; do
+ stat_busy "Starting DbMail ${daemon}"
+ /usr/sbin/${daemon}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ done
+ add_daemon dbmail
+ ;;
+ stop)
+ for daemon in $DBMAIL_DAEMONS; do
+ stat_busy "Stopping DbMail ${daemon}"
+ pid=$(cat /var/run/${daemon}.pid)
+ kill $pid
+ sleep 4
+ stat_done
+ done
+ rm_daemon dbmail
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+
+exit 0
diff --git a/community-testing/libzdb/PKGBUILD b/community-testing/libzdb/PKGBUILD
new file mode 100644
index 000000000..9e03c87cf
--- /dev/null
+++ b/community-testing/libzdb/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 62082 2012-01-15 19:15:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libzdb
+pkgver=2.10
+pkgrel=1
+pkgdesc="Zild Database Library"
+arch=(i686 x86_64)
+url="http://www.tildeslash.com/libzdb/"
+license=('GPL')
+depends=('postgresql-libs' 'sqlite3' 'libmysqlclient')
+options=(!libtool)
+source=(http://www.tildeslash.com/libzdb/dist/libzdb-$pkgver.tar.gz)
+md5sums=('fdc04b4b7f33cdcdfc6b559ba9965825')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community-testing/lilypond/PKGBUILD b/community-testing/lilypond/PKGBUILD
new file mode 100644
index 000000000..5742b97cd
--- /dev/null
+++ b/community-testing/lilypond/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 62073 2012-01-15 17:13:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+
+pkgname=lilypond
+pkgver=2.14.2
+pkgrel=4
+pkgdesc="An automated music engraving system"
+arch=('i686' 'x86_64')
+url="http://lilypond.org"
+license=('GPL')
+depends=('guile' 'python2' 'texlive-core' 'ghostscript' 'pango' 'fontconfig')
+makedepends=('flex' 'bison' 'gettext' 'mftrace' 'texinfo' 'fontforge' 't1utils'
+ 'gsfonts' 'texi2html')
+options=('emptydirs')
+install=lilypond.install
+source=(http://download.linuxaudio.org/lilypond/sources/v2.14/$pkgname-$pkgver.tar.gz
+ texlive-workaround.patch)
+md5sums=('4053a19e03181021893981280feb9aaa'
+ 'ff32863f3eed67ac744e50bc4fc67a87')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+
+ rm -rf python/out/
+ patch -p1 <$srcdir/texlive-workaround.patch
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-testing/lilypond/lilypond.install b/community-testing/lilypond/lilypond.install
new file mode 100644
index 000000000..934e7b435
--- /dev/null
+++ b/community-testing/lilypond/lilypond.install
@@ -0,0 +1,48 @@
+infodir=usr/share/info
+filelist=(music-glossary.info
+ lilypond-web.info
+ lilypond-contributor.info
+ lilypond-contributor.info-1
+ lilypond-contributor.info-2
+ lilypond-internals.info-1
+ lilypond-internals.info-2
+ lilypond-internals.info-3
+ lilypond-internals.info-4
+ lilypond-internals.info-5
+ lilypond-notation.info-1
+ lilypond-notation.info-2
+ lilypond-notation.info-3
+ lilypond-notation.info-4
+ lilypond-notation.info-5
+ lilypond-notation.info-6
+ lilypond-usage.info
+ lilypond-learning.info
+ lilypond-web.info-1
+ lilypond-web.info-2
+ lilypond-internals.info
+ lilypond-essay.info
+ lilypond-notation.info
+ lilypond-learning.info-1
+ lilypond-learning.info-2
+ lilypond-extending.info
+ lilypond-changes.info)
+
+post_install() {
+ [[ -x usr/bin/install-info ]] || return 0
+ for file in "${filelist[@]}"; do
+ install-info "$infodir/$file.gz" "$infodir/dir" 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install "$1"
+}
+
+pre_remove() {
+ [[ -x usr/bin/install-info ]] || return 0
+ for file in "${filelist[@]}"; do
+ install-info --delete "$infodir/$file.gz" "$infodir/dir" 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/lilypond/texlive-workaround.patch b/community-testing/lilypond/texlive-workaround.patch
new file mode 100644
index 000000000..1eb262863
--- /dev/null
+++ b/community-testing/lilypond/texlive-workaround.patch
@@ -0,0 +1,88 @@
+diff --git a/mf/feta-autometric.mf b/mf/feta-autometric.mf
+index d5cbb7f..b25c4bc 100644
+--- a/mf/feta-autometric.mf
++++ b/mf/feta-autometric.mf
+@@ -149,7 +149,6 @@ def set_char_box (expr b_sharp, w_sharp, d_sharp, h_sharp) =
+ & to_bp (w) & " "
+ & to_bp (h);
+ special "% MF2PT1: font_size " & decimal designsize;
+- special "% MF2PT1: font_slant " & decimal font_slant_;
+
+ for fvar = "font_identifier",
+ "font_coding_scheme",
+@@ -175,9 +174,6 @@ def set_char_box (expr b_sharp, w_sharp, d_sharp, h_sharp) =
+ fi;
+ endfor;
+
+- special "% MF2PT1: font_fixed_pitch "
+- & (if font_fixed_pitch_: "1" else: "0" fi);
+-
+ % this must come after the `font_size' special
+ special "% MF2PT1: charwd " & decimal charwd;
+ fi;
+diff --git a/mf/mf2pt1.mp b/mf/mf2pt1.mp
+index a8b45aa..c935628 100644
+--- a/mf/mf2pt1.mp
++++ b/mf/mf2pt1.mp
+@@ -61,7 +61,6 @@ def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ def to_bp (expr num) = decimal (ceiling (num*bp_per_pixel)) enddef;
+ special "% MF2PT1: glyph_dimensions 0 " & to_bp (-d) & " " & to_bp(w) & " " & to_bp(h);
+ special "% MF2PT1: font_size " & decimal designsize;
+- special "% MF2PT1: font_slant " & decimal font_slant_;
+ special "% MF2PT1: charwd " & decimal charwd; % Must come after the |font_size| |special|
+ for fvar = "font_identifier", "font_coding_scheme", "font_version",
+ "font_comment", "font_family", "font_weight", "font_unique_id",
+@@ -76,8 +75,6 @@ def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ scantokens ("decimal " & fvar & "_");
+ fi;
+ endfor;
+- special "% MF2PT1: font_fixed_pitch " &
+- (if font_fixed_pitch_: "1" else: "0" fi);
+ enddef;
+
+
+@@ -91,19 +88,6 @@ enddef;
+
+
+ %% \begin{explaincode}
+-%% Store the value of \mfcomment
+-% |font_slant_|, so we can recall it at each |beginchar|.
+-%% \end{explaincode}
+-
+-font_slant_ := 0;
+-
+-def font_slant expr x =
+- font_slant_ := x;
+- fontdimen 1: x
+-enddef;
+-
+-
+-%% \begin{explaincode}
+ %% Redefine \mfcomment
+ % |bpppix_|, the number of ``big'' points per pixel. \mfcomment
+ % This in turn redefines |mm|, |in|, |pt|, and other derived units.
+@@ -141,11 +125,6 @@ forsuffixes fvar = font_underline_position, font_underline_thickness:
+ scantokens ("def " & str fvar & " expr x = " & str fvar & "_ := x enddef;");
+ endfor;
+
+-boolean font_fixed_pitch_;
+-font_fixed_pitch_ := false;
+-def font_fixed_pitch expr x = font_fixed_pitch_ := x enddef;
+-
+-
+ %% \begin{explaincode}
+ %% We'd like to be able to use calligraphic pens. Normally, MetaPost's
+ %% output routine does all the work for us of converting these to filled
+diff --git a/scripts/build/mf2pt1.pl b/scripts/build/mf2pt1.pl
+index 95df0f8..20f410b 100644
+--- a/scripts/build/mf2pt1.pl
++++ b/scripts/build/mf2pt1.pl
+@@ -427,7 +427,7 @@ ENDHEADER
+ sub get_bboxes ($)
+ {
+ execute_command 1, ("mpost", "-mem=mf2pt1", "-progname=mpost",
+- "\\mode:=localfont; mag:=$mag; bpppix $bpppix; input $mffile");
++ "\\mode:=localfont; mag:=$mag; bpppix:=$bpppix; input $mffile");
+ opendir (CURDIR, ".") || die "${progname}: $! ($filedir)\n";
+ @charfiles = sort
+ { ($a=~ /\.(\d+)$/)[0] <=> ($b=~ /\.(\d+)$/)[0] }
diff --git a/community-testing/pinot/PKGBUILD b/community-testing/pinot/PKGBUILD
new file mode 100644
index 000000000..8dd7c740a
--- /dev/null
+++ b/community-testing/pinot/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 62017 2012-01-14 12:25:05Z ibiru $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pinot
+pkgver=0.98
+pkgrel=2
+pkgdesc='Personal search and metasearch tool'
+arch=('i686' 'x86_64')
+url='http://pinot.berlios.de/'
+license=('GPL')
+depends=('gtkmm' 'xapian-core' 'libtextcat' 'sqlite3' 'libxml++' 'curl'
+ 'gmime' 'dbus-glib' 'shared-mime-info' 'libexif' 'taglib'
+ 'hicolor-icon-theme' 'cairo' 'exiv2')
+makedepends=('boost' 'desktop-file-utils')
+optdepends=('unzip: ZIP files extraction'
+ 'poppler: PDF to text conversion'
+ 'catdvi: DVI to text conversion'
+ 'djvulibre: DjVu text extraction'
+ 'unrtf: RTF to HTML conversion'
+ 'antiword: MS Word to text conversion'
+ 'catdoc: XLS and PPT to text conversion'
+ 'deskbar-applet: Pinot Deskbar-Applet module')
+options=('!emptydirs')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('8a89a73a48344074aa8f4534ce68fd18e3d84553645cef864c137ab21d8d341c')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ sed -i 's|/usr/share/libtextcat/|/usr/share/libtextcat/LM/|' textcat_conf.txt
+ sed -i -e "s|.*russian$|/usr/share/libtextcat/LM/russian-iso8859_5.lm russian-iso8859_5\n\
+/usr/share/libtextcat/LM/russian-koi8_r.lm russian-koi8_r\n\
+/usr/share/libtextcat/LM/russian-windows1251.lm russian-windows1251|" textcat_conf.txt
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+ # Remove Deskbar-Applet handler
+ rm -rf ${pkgdir}/usr/lib/deskbar-applet/handlers
+}
diff --git a/community-testing/pinot/pinot.changelog b/community-testing/pinot/pinot.changelog
new file mode 100644
index 000000000..7d899cdb0
--- /dev/null
+++ b/community-testing/pinot/pinot.changelog
@@ -0,0 +1,2 @@
+2011-12-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * pinot 0.98-1
diff --git a/community-testing/pinot/pinot.install b/community-testing/pinot/pinot.install
new file mode 100644
index 000000000..55ab40426
--- /dev/null
+++ b/community-testing/pinot/pinot.install
@@ -0,0 +1,15 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ echo "Starting with 0.63, the service is auto-started. "
+ echo "The file that enables this is located at "
+ echo "/etc/xdg/autostart/pinot-dbus-daemon.desktop"
+ echo "Delete this file if you don't want the auto-start."
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/augeas/PKGBUILD b/community/augeas/PKGBUILD
index 0d53076e5..f670fd7dc 100644
--- a/community/augeas/PKGBUILD
+++ b/community/augeas/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 60191 2011-12-07 04:43:36Z ebelanger $
+# $Id: PKGBUILD 62121 2012-01-16 09:07:06Z spupykin $
# Contributor: Thomas S Hatch <thatch45@gmail.com>
# Contributor: Jon Nordby <jononor@gmail.com>
pkgname=augeas
pkgver=0.10.0
-pkgrel=1
+pkgrel=2
pkgdesc="A configuration editing tool that parses config files and transforms them into a tree"
arch=('i686' 'x86_64' 'mips64el')
url="http://augeas.net"
license=('LGPL')
-depends=('libxml2')
+depends=('libxml2' 'gcc-libs')
options=('!libtool')
source=(http://augeas.net/download/$pkgname-$pkgver.tar.gz{,.sig})
md5sums=('fe1834e90a066c3208ac0214622c7352'
@@ -17,6 +17,7 @@ md5sums=('fe1834e90a066c3208ac0214622c7352'
build() {
cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|Requires:.*|Requires: libxml-2.0|' augeas.pc.in
./configure --prefix=/usr
make
}
diff --git a/community/balsa/PKGBUILD b/community/balsa/PKGBUILD
index da1d77a3f..9bc637420 100644
--- a/community/balsa/PKGBUILD
+++ b/community/balsa/PKGBUILD
@@ -1,44 +1,47 @@
-# $Id: PKGBUILD 51383 2011-07-08 03:41:33Z bfanella $
+# $Id: PKGBUILD 62139 2012-01-16 19:52:55Z dreisner $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Maintainer: Brad Fanella <bradfanella@archlinux.us>
# Contributor: Roman Kyrylych <roman@archlinux.org>
pkgname=balsa
-pkgver=2.4.10
+pkgver=2.4.11
pkgrel=1
pkgdesc="An e-mail client for GNOME"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url='http://pawsa.fedorapeople.org/balsa/'
-depends=('gmime' 'libwebkit' 'libesmtp' 'libnotify' 'gpgme' 'gtksourceview2' 'gtkspell' 'gnome-icon-theme')
-makedepends=('perlxml' 'gnome-doc-utils' 'intltool' 'namcap')
+depends=('gmime' 'libwebkit' 'libesmtp' 'libnotify' 'gpgme' 'gtksourceview2' 'gtkspell' 'gnome-icon-theme' 'desktop-file-utils')
+makedepends=('perlxml' 'gnome-doc-utils' 'intltool')
install=balsa.install
-source=(http://pawsa.fedorapeople.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('fa2b7cb9d248912ac2e3dcc08cd6aa5b')
+source=(http://pawsa.fedorapeople.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ gmime26.patch)
+md5sums=('915c622b6385aa4f83d5eee8f31ee8e8'
+ '108d33f533558a371189441edce7d7e6')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --with-ssl \
- --with-gpgme=gpgme-config \
- --with-gss \
- --with-ldap \
- --with-gtksourceview \
- --with-gtkspell \
- --with-rubrica \
- --with-sqlite \
- --without-nm \
- --without-gnome \
- --with-html-widget=webkit
-
- make
+ patch -Np1 -i "${srcdir}/gmime26.patch"
+ autoreconf -fi
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-ssl \
+ --with-gpgme=gpgme-config \
+ --with-gss \
+ --with-ldap \
+ --with-gtksourceview \
+ --with-gtkspell \
+ --with-rubrica \
+ --with-sqlite \
+ --without-nm \
+ --without-gnome \
+ --with-html-widget=webkit
+ make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
-
- make GTK_UPDATE_ICON_CACHE=/bin/true DESTDIR="${pkgdir}" install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GTK_UPDATE_ICON_CACHE=/bin/true DESTDIR="${pkgdir}" install
}
diff --git a/community/balsa/balsa.install b/community/balsa/balsa.install
index cb9a7a5c3..1f167b5e9 100644
--- a/community/balsa/balsa.install
+++ b/community/balsa/balsa.install
@@ -1,11 +1,12 @@
post_install() {
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
}
post_upgrade() {
- post_install $1
+ post_install $1
}
post_remove() {
- post_install $1
+ post_install $1
}
diff --git a/community/balsa/gmime26.patch b/community/balsa/gmime26.patch
new file mode 100644
index 000000000..fe4e6a9fa
--- /dev/null
+++ b/community/balsa/gmime26.patch
@@ -0,0 +1,1372 @@
+From 393d0077495cb750ee47bab6ec44a60906a95179 Mon Sep 17 00:00:00 2001
+From: Peter Bloomfield <PeterBloomfield@bellsouth.net>
+Date: Mon, 28 Nov 2011 03:00:55 +0000
+Subject: Build with GMime 2.6.0
+
+ * configure.in: check for GMime >= 2.5.7
+ * libbalsa/gmime-application-pkcs7.c
+ (g_mime_application_pkcs7_sign), (g_mime_application_pkcs7_verify),
+ (g_mime_application_pkcs7_encrypt),
+ (g_mime_application_pkcs7_decrypt): build with GMime >= 2.5.7.
+ * libbalsa/gmime-application-pkcs7.h: ditto.
+ * libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_get_type),
+ (g_mime_gpgme_context_class_init), (g_mime_gpgme_context_finalize),
+ (g_mime_gpgme_digest_id): ditto.
+ * libbalsa/gmime-gpgme-context.h: ditto.
+ * libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_sign_encrypt),
+ (g_mime_part_rfc2440_verify), (g_mime_part_rfc2440_decrypt):
+ ditto.
+ * libbalsa/gmime-part-rfc2440.h: ditto.
+ * libbalsa/rfc3156.c (password_request_func),
+ (libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
+ (libbalsa_body_check_signature), (libbalsa_body_decrypt): ditto.
+---
+diff --git a/ChangeLog b/ChangeLog
+index bd95e68..d5c62f5 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,25 @@
++2011-11-27 Peter Bloomfield
++
++ Build with GMime 2.6.0
++
++ * configure.in: check for GMime >= 2.5.7
++ * libbalsa/gmime-application-pkcs7.c
++ (g_mime_application_pkcs7_sign), (g_mime_application_pkcs7_verify),
++ (g_mime_application_pkcs7_encrypt),
++ (g_mime_application_pkcs7_decrypt): build with GMime >= 2.5.7.
++ * libbalsa/gmime-application-pkcs7.h: ditto.
++ * libbalsa/gmime-gpgme-context.c (g_mime_gpgme_context_get_type),
++ (g_mime_gpgme_context_class_init), (g_mime_gpgme_context_finalize),
++ (g_mime_gpgme_digest_id): ditto.
++ * libbalsa/gmime-gpgme-context.h: ditto.
++ * libbalsa/gmime-part-rfc2440.c (g_mime_part_rfc2440_sign_encrypt),
++ (g_mime_part_rfc2440_verify), (g_mime_part_rfc2440_decrypt):
++ ditto.
++ * libbalsa/gmime-part-rfc2440.h: ditto.
++ * libbalsa/rfc3156.c (password_request_func),
++ (libbalsa_sign_mime_object), (libbalsa_encrypt_mime_object),
++ (libbalsa_body_check_signature), (libbalsa_body_decrypt): ditto.
++
+ 2011-11-22 Pawel Salek
+
+ * NEWS, configure.in: release balsa-2.4.11
+diff --git a/configure.in b/configure.in
+index 4a8320e..64d99f3 100644
+--- a/configure.in
++++ b/configure.in
+@@ -307,7 +307,12 @@ fi
+ case "$with_gmime" in
+ 2.4) ;;
+ 2.6) AC_DEFINE([HAVE_GMIME_2_6], [1],
+- [Defined to build with GMime version 2.5 or 2.6]) ;;
++ [Defined to build with GMime version 2.5 or 2.6])
++ if $PKG_CONFIG --atleast-version=2.5.7 gmime-2.6; then
++ AC_DEFINE([HAVE_GMIME_2_5_7], [1],
++ [Defined when GMime version is at least 2.5.7])
++ fi
++ ;;
+ *) AC_MSG_ERROR([unknown GMime version $with_gmime]) ;;
+ esac
+
+diff --git a/libbalsa/gmime-application-pkcs7.c b/libbalsa/gmime-application-pkcs7.c
+index 12f4f8f..63b8087 100644
+--- a/libbalsa/gmime-application-pkcs7.c
++++ b/libbalsa/gmime-application-pkcs7.c
+@@ -96,8 +96,14 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ GMimeFilter *crlf_filter, *from_filter;
+
+ g_return_val_if_fail (GMIME_IS_PART (pkcs7), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail (GMIME_IS_CIPHER_CONTEXT (ctx), -1);
+ g_return_val_if_fail (ctx->sign_protocol != NULL, -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail (GMIME_IS_CRYPTO_CONTEXT (ctx), -1);
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol(ctx)
++ != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail (GMIME_IS_OBJECT (content), -1);
+
+ /* Prepare all the parts for signing... */
+@@ -127,7 +133,14 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ sig_data_stream = g_mime_stream_mem_new ();
+
+ /* get the signed content */
+- if (g_mime_cipher_context_sign (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream, sig_data_stream, err) == -1) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_sign (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream, sig_data_stream, err) == -1)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_sign
++ (ctx, userid, GMIME_CIPHER_HASH_DEFAULT, filtered_stream,
++ sig_data_stream, err) == -1)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref (filtered_stream);
+ g_object_unref (sig_data_stream);
+ g_object_unref (stream);
+@@ -168,9 +181,15 @@ g_mime_application_pkcs7_sign (GMimePart *pkcs7, GMimeObject *content,
+ * decrypting it again. In this case, validity is undefined.
+ */
+ GMimeObject *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ GMimeSignatureValidity ** validity,
+ GMimeCipherContext * ctx, GError ** err)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_application_pkcs7_verify(GMimePart * pkcs7,
++ GMimeSignatureList ** list,
++ GMimeCryptoContext * ctx, GError ** err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeObject *decrypted;
+ GMimeDataWrapper *wrapper;
+@@ -181,8 +200,14 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ const char *smime_type;
+
+ g_return_val_if_fail(GMIME_IS_PART(pkcs7), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_IS_CIPHER_CONTEXT(ctx), NULL);
+ g_return_val_if_fail(ctx->encrypt_protocol != NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(GMIME_IS_CRYPTO_CONTEXT(ctx), NULL);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some sanity checks */
+ smime_type =
+@@ -208,9 +233,16 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ g_object_unref(crlf_filter);
+
+ /* get the cleartext */
++#ifndef HAVE_GMIME_2_5_7
+ *validity = g_mime_cipher_context_verify(ctx, GMIME_CIPHER_HASH_DEFAULT,
+ ciphertext, filtered_stream, err);
+- if (!*validity) {
++ if (!*validity)
++#else /* HAVE_GMIME_2_5_7 */
++ *list = g_mime_crypto_context_verify(ctx, GMIME_CIPHER_ALGO_DEFAULT,
++ ciphertext, filtered_stream, err);
++ if (!*list)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(filtered_stream);
+ g_object_unref(ciphertext);
+ g_object_unref(stream);
+@@ -248,7 +280,12 @@ g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ */
+ int
+ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *ctx, GPtrArray *recipients,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *ctx,
++ GPtrArray *recipients,
++#endif /* HAVE_GMIME_2_5_7 */
+ GError **err)
+ {
+ GMimeDataWrapper *wrapper;
+@@ -257,8 +294,14 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+ GMimeFilter *crlf_filter;
+
+ g_return_val_if_fail (GMIME_IS_PART (pkcs7), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail (GMIME_IS_CIPHER_CONTEXT (ctx), -1);
+ g_return_val_if_fail (ctx->encrypt_protocol != NULL, -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail (GMIME_IS_CRYPTO_CONTEXT (ctx), -1);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail (GMIME_IS_OBJECT (content), -1);
+
+ /* get the cleartext */
+@@ -279,7 +322,15 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+
+ /* encrypt the content stream */
+ ciphertext = g_mime_stream_mem_new ();
+- if (g_mime_cipher_context_encrypt (ctx, FALSE, NULL, recipients, stream, ciphertext, err) == -1) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_encrypt (ctx, FALSE, NULL, recipients, stream, ciphertext, err) == -1)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_encrypt
++ (ctx, FALSE, NULL,
++ GMIME_CIPHER_ALGO_DEFAULT,
++ recipients, stream, ciphertext, err) == -1)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref (ciphertext);
+ g_object_unref (stream);
+ return -1;
+@@ -313,8 +364,14 @@ g_mime_application_pkcs7_encrypt (GMimePart *pkcs7, GMimeObject *content,
+ * err with more information about the reason.
+ */
+ GMimeObject *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ GError **err)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_application_pkcs7_decrypt (GMimePart *pkcs7,
++ GMimeCryptoContext *ctx,
++ GError **err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeObject *decrypted;
+ GMimeDataWrapper *wrapper;
+@@ -325,8 +382,14 @@ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ const char *smime_type;
+
+ g_return_val_if_fail(GMIME_IS_PART(pkcs7), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_IS_CIPHER_CONTEXT(ctx), NULL);
+ g_return_val_if_fail(ctx->encrypt_protocol != NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(GMIME_IS_CRYPTO_CONTEXT(ctx), NULL);
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol(ctx)
++ != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some sanity checks */
+ smime_type =
+@@ -353,7 +416,13 @@ g_mime_application_pkcs7_decrypt (GMimePart *pkcs7, GMimeCipherContext *ctx,
+ g_object_unref(crlf_filter);
+
+ /* get the cleartext */
+- if (g_mime_cipher_context_decrypt(ctx, ciphertext, filtered_stream, err) == NULL) {
++#ifndef HAVE_GMIME_2_5_7
++ if (g_mime_cipher_context_decrypt(ctx, ciphertext, filtered_stream, err) == NULL)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_crypto_context_decrypt
++ (ctx, ciphertext, filtered_stream, err) == NULL)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(filtered_stream);
+ g_object_unref(ciphertext);
+ g_object_unref(stream);
+diff --git a/libbalsa/gmime-application-pkcs7.h b/libbalsa/gmime-application-pkcs7.h
+index 03fa401..6678ff5 100644
+--- a/libbalsa/gmime-application-pkcs7.h
++++ b/libbalsa/gmime-application-pkcs7.h
+@@ -28,7 +28,11 @@ extern "C" {
+ #endif /* __cplusplus */
+
+ #include <gmime/gmime-part.h>
++#ifndef HAVE_GMIME_2_5_7
+ #include <gmime/gmime-cipher-context.h>
++#else /* HAVE_GMIME_2_5_7 */
++#include <gmime/gmime-crypto-context.h>
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #undef HAS_APPLICATION_PKCS7_MIME_SIGNED_SUPPORT
+
+@@ -39,21 +43,40 @@ extern "C" {
+ * Balsa always encodes S/MIME signed stuff as multipart/signed. */
+ int g_mime_application_pkcs7_sign(GMimePart * pkcs7,
+ GMimeObject * content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext * ctx,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext * ctx,
++#endif /* HAVE_GMIME_2_5_7 */
+ const char *userid, GError ** err);
+ #endif
+
++#ifndef HAVE_GMIME_2_5_7
+ GMimeObject *g_mime_application_pkcs7_verify(GMimePart * pkcs7,
+ GMimeSignatureValidity ** validity,
+ GMimeCipherContext * ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeObject *g_mime_application_pkcs7_verify(GMimePart * pkcs7,
++ GMimeSignatureList ** validity,
++ GMimeCryptoContext * ctx, GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ int g_mime_application_pkcs7_encrypt(GMimePart * pkcs7,
+ GMimeObject * content,
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext * ctx,
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext * ctx,
++#endif /* HAVE_GMIME_2_5_7 */
+ GPtrArray * recipients, GError ** err);
+
++#ifndef HAVE_GMIME_2_5_7
+ GMimeObject *g_mime_application_pkcs7_decrypt(GMimePart * pkcs7,
+ GMimeCipherContext * ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeObject *g_mime_application_pkcs7_decrypt(GMimePart * pkcs7,
++ GMimeCryptoContext * ctx, GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #ifdef __cplusplus
+ }
+diff --git a/libbalsa/gmime-gpgme-context.c b/libbalsa/gmime-gpgme-context.c
+index 24b140b..0c56f94 100644
+--- a/libbalsa/gmime-gpgme-context.c
++++ b/libbalsa/gmime-gpgme-context.c
+@@ -27,6 +27,9 @@
+ #include <unistd.h>
+ #include <glib.h>
+ #include <gmime/gmime.h>
++#ifdef HAVE_GMIME_2_5_7
++#include <gmime/gmime-certificate.h>
++#endif /* HAVE_GMIME_2_5_7 */
+ #include <gpgme.h>
+ #include <time.h>
+ #include <glib/gi18n.h>
+@@ -44,6 +47,7 @@ static gboolean g_mime_gpgme_context_check_protocol(GMimeGpgmeContextClass
+ protocol,
+ GError ** error);
+
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherHash g_mime_gpgme_hash_id(GMimeCipherContext * ctx,
+ const char *hash);
+
+@@ -70,6 +74,46 @@ static GMimeSignatureValidity *g_mime_gpgme_decrypt(GMimeCipherContext *
+ GMimeStream * istream,
+ GMimeStream * ostream,
+ GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDigestAlgo g_mime_gpgme_digest_id(GMimeCryptoContext * ctx,
++ const char *hash);
++
++static const char *g_mime_gpgme_digest_name(GMimeCryptoContext * ctx,
++ GMimeDigestAlgo hash);
++
++static const char
++ *g_mime_gpgme_get_signature_protocol(GMimeCryptoContext * context);
++static const char
++ *g_mime_gpgme_get_encryption_protocol(GMimeCryptoContext * context);
++static const char
++ *g_mime_gpgme_get_key_exchange_protocol(GMimeCryptoContext * context);
++
++static int g_mime_gpgme_sign(GMimeCryptoContext * ctx,
++ const char * userid,
++ GMimeDigestAlgo hash,
++ GMimeStream * istream,
++ GMimeStream * ostream,
++ GError ** err);
++
++static GMimeSignatureList *g_mime_gpgme_verify(GMimeCryptoContext * ctx,
++ GMimeDigestAlgo hash,
++ GMimeStream * istream,
++ GMimeStream * sigstream,
++ GError ** err);
++
++static int g_mime_gpgme_encrypt(GMimeCryptoContext * ctx,
++ gboolean sign,
++ const char *userid,
++ GMimeDigestAlgo digest,
++ GPtrArray * recipients,
++ GMimeStream * istream,
++ GMimeStream * ostream, GError ** err);
++
++static GMimeDecryptResult *g_mime_gpgme_decrypt(GMimeCryptoContext * ctx,
++ GMimeStream * istream,
++ GMimeStream * ostream,
++ GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+
+ /* internal passphrase callback */
+@@ -102,7 +146,11 @@ static void g_set_error_from_gpgme(GError ** error, gpgme_error_t gpgme_err,
+ const gchar * message);
+
+
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherContextClass *parent_class = NULL;
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeCryptoContextClass *parent_class = NULL;
++#endif /* HAVE_GMIME_2_5_7 */
+
+
+ GType
+@@ -124,8 +172,13 @@ g_mime_gpgme_context_get_type(void)
+ };
+
+ type =
++#ifndef HAVE_GMIME_2_5_7
+ g_type_register_static(GMIME_TYPE_CIPHER_CONTEXT,
+ "GMimeGpgmeContext", &info, 0);
++#else /* HAVE_GMIME_2_5_7 */
++ g_type_register_static(GMIME_TYPE_CRYPTO_CONTEXT,
++ "GMimeGpgmeContext", &info, 0);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+ return type;
+@@ -136,19 +189,39 @@ static void
+ g_mime_gpgme_context_class_init(GMimeGpgmeContextClass * klass)
+ {
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContextClass *cipher_class =
+ GMIME_CIPHER_CONTEXT_CLASS(klass);
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContextClass *crypto_class =
++ GMIME_CRYPTO_CONTEXT_CLASS(klass);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ parent_class = g_type_class_ref(G_TYPE_OBJECT);
+
+ object_class->finalize = g_mime_gpgme_context_finalize;
+
++#ifndef HAVE_GMIME_2_5_7
+ cipher_class->hash_id = g_mime_gpgme_hash_id;
+ cipher_class->hash_name = g_mime_gpgme_hash_name;
+ cipher_class->sign = g_mime_gpgme_sign;
+ cipher_class->verify = g_mime_gpgme_verify;
+ cipher_class->encrypt = g_mime_gpgme_encrypt;
+ cipher_class->decrypt = g_mime_gpgme_decrypt;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto_class->digest_id = g_mime_gpgme_digest_id;
++ crypto_class->digest_name = g_mime_gpgme_digest_name;
++ crypto_class->get_signature_protocol =
++ g_mime_gpgme_get_signature_protocol;
++ crypto_class->get_encryption_protocol =
++ g_mime_gpgme_get_encryption_protocol;
++ crypto_class->get_key_exchange_protocol =
++ g_mime_gpgme_get_key_exchange_protocol;
++ crypto_class->sign = g_mime_gpgme_sign;
++ crypto_class->verify = g_mime_gpgme_verify;
++ crypto_class->encrypt = g_mime_gpgme_encrypt;
++ crypto_class->decrypt = g_mime_gpgme_decrypt;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP) ==
+ GPG_ERR_NO_ERROR)
+@@ -190,7 +263,11 @@ g_mime_gpgme_context_finalize(GObject * object)
+ }
+
+ #if !defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ g_object_unref(GMIME_CIPHER_CONTEXT(ctx)->session);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(GMIME_CRYPTO_CONTEXT(ctx)->session);
++#endif /* HAVE_GMIME_2_5_7 */
+ #endif /* HAVE_GMIME_2_6 */
+
+ G_OBJECT_CLASS(parent_class)->finalize(object);
+@@ -200,15 +277,26 @@ g_mime_gpgme_context_finalize(GObject * object)
+ /*
+ * Convert a hash algorithm name to a number
+ */
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeCipherHash
+ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDigestAlgo
++g_mime_gpgme_digest_id(GMimeCryptoContext * ctx, const char *hash)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
++#ifndef HAVE_GMIME_2_5_7
+ if (hash == NULL)
+ return GMIME_CIPHER_HASH_DEFAULT;
++#else /* HAVE_GMIME_2_5_7 */
++ if (hash == NULL)
++ return GMIME_DIGEST_ALGO_DEFAULT;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (!g_ascii_strcasecmp(hash, "pgp-"))
+ hash += 4;
+
++#ifndef HAVE_GMIME_2_5_7
+ if (!g_ascii_strcasecmp(hash, "md2"))
+ return GMIME_CIPHER_HASH_MD2;
+ else if (!g_ascii_strcasecmp(hash, "md5"))
+@@ -223,6 +311,22 @@ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
+ return GMIME_CIPHER_HASH_HAVAL5160;
+
+ return GMIME_CIPHER_HASH_DEFAULT;
++#else /* HAVE_GMIME_2_5_7 */
++ if (!g_ascii_strcasecmp(hash, "md2"))
++ return GMIME_DIGEST_ALGO_MD2;
++ else if (!g_ascii_strcasecmp(hash, "md5"))
++ return GMIME_DIGEST_ALGO_MD5;
++ else if (!g_ascii_strcasecmp(hash, "sha1"))
++ return GMIME_DIGEST_ALGO_SHA1;
++ else if (!g_ascii_strcasecmp(hash, "ripemd160"))
++ return GMIME_DIGEST_ALGO_RIPEMD160;
++ else if (!g_ascii_strcasecmp(hash, "tiger192"))
++ return GMIME_DIGEST_ALGO_TIGER192;
++ else if (!g_ascii_strcasecmp(hash, "haval-5-160"))
++ return GMIME_DIGEST_ALGO_HAVAL5160;
++
++ return GMIME_DIGEST_ALGO_DEFAULT;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -230,7 +334,11 @@ g_mime_gpgme_hash_id(GMimeCipherContext * ctx, const char *hash)
+ * Convert a hash algorithm number to a string
+ */
+ static const char *
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_digest_name(GMimeCryptoContext * context, GMimeDigestAlgo hash)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
+ char *p;
+@@ -239,6 +347,7 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ g_return_val_if_fail(ctx->gpgme_ctx, NULL);
+
+ /* note: this is only a subset of the hash algorithms gpg(me) supports */
++#ifndef HAVE_GMIME_2_5_7
+ switch (hash) {
+ case GMIME_CIPHER_HASH_MD2:
+ p = "pgp-md2";
+@@ -258,6 +367,27 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ case GMIME_CIPHER_HASH_HAVAL5160:
+ p = "pgp-haval-5-160";
+ break;
++#else /* HAVE_GMIME_2_5_7 */
++ switch (hash) {
++ case GMIME_DIGEST_ALGO_MD2:
++ p = "pgp-md2";
++ break;
++ case GMIME_DIGEST_ALGO_MD5:
++ p = "pgp-md5";
++ break;
++ case GMIME_DIGEST_ALGO_SHA1:
++ p = "pgp-sha1";
++ break;
++ case GMIME_DIGEST_ALGO_RIPEMD160:
++ p = "pgp-ripemd160";
++ break;
++ case GMIME_DIGEST_ALGO_TIGER192:
++ p = "pgp-tiger192";
++ break;
++ case GMIME_DIGEST_ALGO_HAVAL5160:
++ p = "pgp-haval-5-160";
++ break;
++#endif /* HAVE_GMIME_2_5_7 */
+ default:
+ if (!(p = ctx->micalg))
+ return p;
+@@ -270,6 +400,29 @@ g_mime_gpgme_hash_name(GMimeCipherContext * context, GMimeCipherHash hash)
+ return p;
+ }
+
++#ifdef HAVE_GMIME_2_5_7
++static const char *
++g_mime_gpgme_get_signature_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->sign_protocol;
++}
++
++static const char *
++g_mime_gpgme_get_encryption_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->encrypt_protocol;
++}
++
++static const char *
++g_mime_gpgme_get_key_exchange_protocol(GMimeCryptoContext * context)
++{
++ GMimeGpgmeContext *ctx = GMIME_GPGME_CONTEXT(context);
++ return ctx->key_protocol;
++}
++
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /*
+ * Wrapper to convert the passphrase returned from the gmime session to gpgme.
+@@ -279,7 +432,11 @@ g_mime_session_passphrase(void *HOOK, const char *UID_HINT,
+ const char *PASSPHRASE_INFO, int PREV_WAS_BAD,
+ int FD)
+ {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *ctx = GMIME_CIPHER_CONTEXT(HOOK);
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *ctx = GMIME_CRYPTO_CONTEXT(HOOK);
++#endif /* HAVE_GMIME_2_5_7 */
+ #if defined(HAVE_GMIME_2_6)
+ GMimeStream *stream;
+ gboolean rc;
+@@ -366,9 +523,15 @@ cb_data_release(void *handle)
+ * arg, but set the value in the context.
+ */
+ static int
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_sign(GMimeCipherContext * context, const char *userid,
+ GMimeCipherHash hash, GMimeStream * istream,
+ GMimeStream * ostream, GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_sign(GMimeCryptoContext * context, const char *userid,
++ GMimeDigestAlgo hash, GMimeStream * istream,
++ GMimeStream * ostream, GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_sig_mode_t sig_mode;
+@@ -460,6 +623,7 @@ g_mime_gpgme_sign(GMimeCipherContext * context, const char *userid,
+ }
+
+
++#ifndef HAVE_GMIME_2_5_7
+ /*
+ * In standard mode, verify that sigstream contains a detached signature for
+ * istream. In single-part mode (RFC 2440, RFC 2633 application/pkcs7-mime),
+@@ -471,13 +635,33 @@ static GMimeSignatureValidity *
+ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ GMimeStream * istream, GMimeStream * sigstream,
+ GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++/*
++ * In standard mode, verify that sigstream contains a detached signature for
++ * istream. In single-part mode (RFC 2440, RFC 2633 application/pkcs7-mime),
++ * istream contains clearsigned data, and sigstream will be filled with the
++ * verified plaintext. The routine returns a GMimeSignatureList object.
++ * More information is saved in the context's signature object.
++ * On error error is set accordingly.
++ */
++static GMimeSignatureList *
++g_mime_gpgme_verify(GMimeCryptoContext * context, GMimeDigestAlgo hash,
++ GMimeStream * istream, GMimeStream * sigstream,
++ GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+ gpgme_protocol_t protocol;
+ gpgme_error_t err;
+ gpgme_data_t msg, sig;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *validity;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *list;
++ GMimeSignature *signature;
++
++#endif /* HAVE_GMIME_2_5_7 */
+ struct gpgme_data_cbs cbs = {
+ (gpgme_data_read_cb_t) g_mime_gpgme_stream_rd, /* read method */
+ (gpgme_data_write_cb_t) g_mime_gpgme_stream_wr, /* write method */
+@@ -521,6 +705,7 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ ctx->sig_state =
+ g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx);
+
++#ifndef HAVE_GMIME_2_5_7
+ validity = g_mime_signature_validity_new();
+ if (ctx->sig_state) {
+ switch (ctx->sig_state->status)
+@@ -536,12 +721,44 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ }
+ } else
+ g_mime_signature_validity_set_status(validity, GMIME_SIGNATURE_STATUS_UNKNOWN);
++#else /* HAVE_GMIME_2_5_7 */
++ list = g_mime_signature_list_new();
++ signature = g_mime_signature_new();
++ g_mime_signature_list_add(list, signature);
++
++ if (ctx->sig_state) {
++ switch (ctx->sig_state->status)
++ {
++ case GPG_ERR_NO_ERROR:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_GOOD);
++ break;
++ case GPG_ERR_NOT_SIGNED:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature,
++ GMIME_SIGNATURE_ERROR_NONE);
++ break;
++ default:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_BAD);
++ }
++ } else {
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature, GMIME_SIGNATURE_ERROR_NONE);
++ }
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* release gmgme data buffers */
+ gpgme_data_release(msg);
+ gpgme_data_release(sig);
+
++#ifndef HAVE_GMIME_2_5_7
+ return validity;
++#else /* HAVE_GMIME_2_5_7 */
++ return list;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -549,10 +766,19 @@ g_mime_gpgme_verify(GMimeCipherContext * context, GMimeCipherHash hash,
+ * Encrypt istream to ostream for recipients. If sign is set, sign by userid.
+ */
+ static int
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_gpgme_encrypt(GMimeCipherContext * context, gboolean sign,
+ const char *userid, GPtrArray * recipients,
+ GMimeStream * istream, GMimeStream * ostream,
+ GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++g_mime_gpgme_encrypt(GMimeCryptoContext * context, gboolean sign,
++ const char *userid,
++ GMimeDigestAlgo digest,
++ GPtrArray * recipients,
++ GMimeStream * istream, GMimeStream * ostream,
++ GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+@@ -653,9 +879,15 @@ g_mime_gpgme_encrypt(GMimeCipherContext * context, gboolean sign,
+ * Decrypt istream to ostream. In RFC 2440 mode, also try to check an included
+ * signature (if any).
+ */
++#ifndef HAVE_GMIME_2_5_7
+ static GMimeSignatureValidity *
+ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ GMimeStream * ostream, GError ** error)
++#else /* HAVE_GMIME_2_5_7 */
++static GMimeDecryptResult *
++g_mime_gpgme_decrypt(GMimeCryptoContext * context, GMimeStream * istream,
++ GMimeStream * ostream, GError ** error)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ GMimeGpgmeContext *ctx = (GMimeGpgmeContext *) context;
+ gpgme_ctx_t gpgme_ctx;
+@@ -668,7 +900,13 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ NULL, /* seek method */
+ cb_data_release /* release method */
+ };
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *validity;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeDecryptResult *result;
++ GMimeSignatureList *list;
++ GMimeSignature *signature;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* some paranoia checks */
+ g_return_val_if_fail(ctx, NULL);
+@@ -716,6 +954,7 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ /* try to get information about the signature (if any) */
+ ctx->sig_state = g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx);
+
++#ifndef HAVE_GMIME_2_5_7
+ validity = g_mime_signature_validity_new();
+ if (ctx->sig_state) {
+ switch (ctx->sig_state->status)
+@@ -733,14 +972,57 @@ g_mime_gpgme_decrypt(GMimeCipherContext * context, GMimeStream * istream,
+ g_mime_signature_validity_set_status(validity, GMIME_SIGNATURE_STATUS_UNKNOWN);
+
+ return validity;
++#else /* HAVE_GMIME_2_5_7 */
++ list = g_mime_signature_list_new();
++ signature = g_mime_signature_new();
++ g_mime_signature_list_add(list, signature);
++ result = g_mime_decrypt_result_new();
++ g_mime_decrypt_result_set_signatures(result, list);
++
++ if (ctx->sig_state) {
++ switch (ctx->sig_state->status)
++ {
++ case GPG_ERR_NO_ERROR:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_GOOD);
++ break;
++ case GPG_ERR_NOT_SIGNED:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature,
++ GMIME_SIGNATURE_ERROR_NONE);
++ break;
++ default:
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_BAD);
++ }
++ } else {
++ g_mime_signature_set_status(signature,
++ GMIME_SIGNATURE_STATUS_ERROR);
++ g_mime_signature_set_errors(signature, GMIME_SIGNATURE_ERROR_NONE);
++ }
++
++ return result;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
++#ifndef HAVE_GMIME_2_5_7
+ /*
+ * Create a new gpgme cipher context with protocol. If anything fails, return
+ * NULL and set error.
+ */
++#else /* HAVE_GMIME_2_5_7 */
++/*
++ * Create a new gpgme crypto context with protocol. If anything fails, return
++ * NULL and set error.
++ */
++#endif /* HAVE_GMIME_2_5_7 */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeCryptoContext *
++#endif /* HAVE_GMIME_2_5_7 */
+ #if defined(HAVE_GMIME_2_6)
+ g_mime_gpgme_context_new(GMimePasswordRequestFunc request_passwd,
+ gpgme_protocol_t protocol, GError ** error)
+@@ -749,7 +1031,11 @@ g_mime_gpgme_context_new(GMimeSession * session,
+ gpgme_protocol_t protocol, GError ** error)
+ #endif /* HAVE_GMIME_2_6 */
+ {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *cipher;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *crypto;
++#endif /* HAVE_GMIME_2_5_7 */
+ GMimeGpgmeContext *ctx;
+ gpgme_error_t err;
+ gpgme_ctx_t gpgme_ctx;
+@@ -766,14 +1052,22 @@ g_mime_gpgme_context_new(GMimeSession * session,
+ return NULL;
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ /* create the cipher context */
++#else /* HAVE_GMIME_2_5_7 */
++ /* create the crypto context */
++#endif /* HAVE_GMIME_2_5_7 */
+ ctx = g_object_new(GMIME_TYPE_GPGME_CONTEXT, NULL, NULL);
+ if (!ctx) {
+ gpgme_release(gpgme_ctx);
+ return NULL;
+ } else
+ ctx->gpgme_ctx = gpgme_ctx;
++#ifndef HAVE_GMIME_2_5_7
+ cipher = (GMimeCipherContext *) ctx;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto = (GMimeCryptoContext *) ctx;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* check if the requested protocol is available */
+ if (!g_mime_gpgme_context_check_protocol
+@@ -785,23 +1079,47 @@ g_mime_gpgme_context_new(GMimeSession * session,
+
+ /* setup according to requested protocol */
+ #if defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ cipher->request_passwd = request_passwd;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto->request_passwd = request_passwd;
++#endif /* HAVE_GMIME_2_5_7 */
+ #else /* HAVE_GMIME_2_6 */
++#ifndef HAVE_GMIME_2_5_7
+ cipher->session = session;
++#else /* HAVE_GMIME_2_5_7 */
++ crypto->session = session;
++#endif /* HAVE_GMIME_2_5_7 */
+ g_object_ref(session);
+ #endif /* HAVE_GMIME_2_6 */
+ gpgme_set_protocol(gpgme_ctx, protocol);
+ if (protocol == GPGME_PROTOCOL_OpenPGP) {
++#ifndef HAVE_GMIME_2_5_7
+ cipher->sign_protocol = "application/pgp-signature";
+ cipher->encrypt_protocol = "application/pgp-encrypted";
+ cipher->key_protocol = NULL; /* FIXME */
++#else /* HAVE_GMIME_2_5_7 */
++ ctx->sign_protocol = "application/pgp-signature";
++ ctx->encrypt_protocol = "application/pgp-encrypted";
++ ctx->key_protocol = NULL; /* FIXME */
++#endif /* HAVE_GMIME_2_5_7 */
+ } else {
++#ifndef HAVE_GMIME_2_5_7
+ cipher->sign_protocol = "application/pkcs7-signature";
+ cipher->encrypt_protocol = "application/pkcs7-mime";
+ cipher->key_protocol = NULL; /* FIXME */
++#else /* HAVE_GMIME_2_5_7 */
++ ctx->sign_protocol = "application/pkcs7-signature";
++ ctx->encrypt_protocol = "application/pkcs7-mime";
++ ctx->key_protocol = NULL; /* FIXME */
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ return cipher;
++#else /* HAVE_GMIME_2_5_7 */
++ return crypto;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+diff --git a/libbalsa/gmime-gpgme-context.h b/libbalsa/gmime-gpgme-context.h
+index 585d927..19c5fae 100644
+--- a/libbalsa/gmime-gpgme-context.h
++++ b/libbalsa/gmime-gpgme-context.h
+@@ -63,7 +63,11 @@ typedef gboolean(*GMimeGpgmeKeyTrustCB) (const gchar * name,
+ GMimeGpgmeContext * ctx);
+
+ struct _GMimeGpgmeContext {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext parent_object;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext parent_object;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ gpgme_ctx_t gpgme_ctx; /* gpgme context */
+ gboolean singlepart_mode; /* set context to single-part mode (RFC 2440, 2633) */
+@@ -73,11 +77,21 @@ struct _GMimeGpgmeContext {
+ GMimeGpgmeKeySelectCB key_select_cb; /* key selection callback */
+ GMimeGpgmeKeyTrustCB key_trust_cb; /* low trust key cb */
+ gpgme_passphrase_cb_t passphrase_cb; /* passphrase callback */
++#ifdef HAVE_GMIME_2_5_7
++
++ const gchar *sign_protocol;
++ const gchar *encrypt_protocol;
++ const gchar *key_protocol;
++#endif /* HAVE_GMIME_2_5_7 */
+ };
+
+
+ struct _GMimeGpgmeContextClass {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContextClass parent_class;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContextClass parent_class;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ gboolean has_proto_openpgp;
+ gboolean has_proto_cms;
+@@ -86,10 +100,17 @@ struct _GMimeGpgmeContextClass {
+
+ GType g_mime_gpgme_context_get_type(void);
+ #if defined(HAVE_GMIME_2_6)
++#ifndef HAVE_GMIME_2_5_7
+ GMimeCipherContext *g_mime_gpgme_context_new(GMimePasswordRequestFunc
+ request_passwd,
+ gpgme_protocol_t protocol,
+ GError ** error);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeCryptoContext *g_mime_gpgme_context_new(GMimePasswordRequestFunc
++ request_passwd,
++ gpgme_protocol_t protocol,
++ GError ** error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #else /* HAVE_GMIME_2_6 */
+ GMimeCipherContext *g_mime_gpgme_context_new(GMimeSession * session,
+ gpgme_protocol_t protocol,
+diff --git a/libbalsa/gmime-part-rfc2440.c b/libbalsa/gmime-part-rfc2440.c
+index 795d2e1..e79c4cb 100644
+--- a/libbalsa/gmime-part-rfc2440.c
++++ b/libbalsa/gmime-part-rfc2440.c
+@@ -112,8 +112,13 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+
+ g_return_val_if_fail(GMIME_IS_PART(part), -1);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), -1);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->sign_protocol != NULL,
+ -1);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, -1);
++#endif /* HAVE_GMIME_2_5_7 */
+ g_return_val_if_fail(recipients != NULL || sign_userid != NULL, -1);
+
+ /* get the raw content */
+@@ -131,14 +136,27 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ ctx->singlepart_mode = TRUE;
+ if (recipients == NULL)
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_sign(GMIME_CIPHER_CONTEXT(ctx), sign_userid,
+ GMIME_CIPHER_HASH_DEFAULT, stream,
+ cipherstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_sign(GMIME_CRYPTO_CONTEXT(ctx), sign_userid,
++ GMIME_CIPHER_ALGO_DEFAULT, stream,
++ cipherstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+ else
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_encrypt(GMIME_CIPHER_CONTEXT(ctx),
+ sign_userid != NULL, sign_userid,
+ recipients, stream, cipherstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_encrypt(GMIME_CRYPTO_CONTEXT(ctx),
++ sign_userid != NULL, sign_userid,
++ GMIME_CIPHER_ALGO_DEFAULT,
++ recipients, stream, cipherstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+ if (result == -1) {
+ g_object_unref(cipherstream);
+ return -1;
+@@ -202,18 +220,31 @@ g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ * set on err to provide more information. Upon success, the content
+ * of part is replaced by the verified output of the crypto engine.
+ */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeSignatureList *
++#endif /* HAVE_GMIME_2_5_7 */
+ g_mime_part_rfc2440_verify(GMimePart * part,
+ GMimeGpgmeContext * ctx, GError ** err)
+ {
+ GMimeStream *stream, *plainstream;
+ GMimeDataWrapper * wrapper;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *list;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ g_return_val_if_fail(GMIME_IS_PART(part), NULL);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->sign_protocol != NULL,
+ NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_signature_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* get the raw content */
+ wrapper = g_mime_part_get_content_object(GMIME_PART(part));
+@@ -227,13 +258,25 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+
+ /* verify the signature */
+ ctx->singlepart_mode = TRUE;
++#ifndef HAVE_GMIME_2_5_7
+ valid =
+ g_mime_cipher_context_verify(GMIME_CIPHER_CONTEXT(ctx),
+ GMIME_CIPHER_HASH_DEFAULT, stream,
+ plainstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ list =
++ g_mime_crypto_context_verify(GMIME_CRYPTO_CONTEXT(ctx),
++ GMIME_CIPHER_ALGO_DEFAULT, stream,
++ plainstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* upon success, replace the signed content by the checked one */
+- if (valid) {
++#ifndef HAVE_GMIME_2_5_7
++ if (valid)
++#else /* HAVE_GMIME_2_5_7 */
++ if (list)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ GMimeDataWrapper *wrapper = g_mime_data_wrapper_new();
+
+ g_mime_data_wrapper_set_stream(wrapper, plainstream);
+@@ -242,7 +285,11 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+ }
+ g_object_unref(plainstream);
+
++#ifndef HAVE_GMIME_2_5_7
+ return valid;
++#else /* HAVE_GMIME_2_5_7 */
++ return list;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+
+@@ -255,19 +302,32 @@ g_mime_part_rfc2440_verify(GMimePart * part,
+ * verified and the result is placed in ctx by the underlying gpgme
+ * context.
+ */
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *
++#else /* HAVE_GMIME_2_5_7 */
++GMimeDecryptResult *
++#endif /* HAVE_GMIME_2_5_7 */
+ g_mime_part_rfc2440_decrypt(GMimePart * part,
+ GMimeGpgmeContext * ctx, GError ** err)
+ {
+ GMimeStream *stream, *plainstream;
+ GMimeDataWrapper * wrapper;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *result;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeDecryptResult *result;
++#endif /* HAVE_GMIME_2_5_7 */
+ gchar *headbuf = g_malloc0(1024);
+
+ g_return_val_if_fail(GMIME_IS_PART(part), NULL);
+ g_return_val_if_fail(GMIME_IS_GPGME_CONTEXT(ctx), NULL);
++#ifndef HAVE_GMIME_2_5_7
+ g_return_val_if_fail(GMIME_CIPHER_CONTEXT(ctx)->encrypt_protocol !=
+ NULL, NULL);
++#else /* HAVE_GMIME_2_5_7 */
++ g_return_val_if_fail(g_mime_crypto_context_get_encryption_protocol
++ (GMIME_CRYPTO_CONTEXT(ctx)) != NULL, NULL);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ /* get the raw content */
+ wrapper = g_mime_part_get_content_object(part);
+@@ -284,8 +344,13 @@ g_mime_part_rfc2440_decrypt(GMimePart * part,
+
+ /* decrypt and (if possible) verify the input */
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_cipher_context_decrypt(GMIME_CIPHER_CONTEXT(ctx), stream,
+ plainstream, err);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_crypto_context_decrypt(GMIME_CRYPTO_CONTEXT(ctx), stream,
++ plainstream, err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ if (result != NULL) {
+ GMimeStream *filter_stream;
+diff --git a/libbalsa/gmime-part-rfc2440.h b/libbalsa/gmime-part-rfc2440.h
+index 48be5a4..cc1901a 100644
+--- a/libbalsa/gmime-part-rfc2440.h
++++ b/libbalsa/gmime-part-rfc2440.h
+@@ -53,12 +53,21 @@ int g_mime_part_rfc2440_sign_encrypt(GMimePart * part,
+ GPtrArray * recipients,
+ const char *sign_userid,
+ GError ** err);
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *g_mime_part_rfc2440_verify(GMimePart * part,
+ GMimeGpgmeContext * ctx,
+ GError ** err);
+ GMimeSignatureValidity *g_mime_part_rfc2440_decrypt(GMimePart * part,
+ GMimeGpgmeContext *
+ ctx, GError ** err);
++#else /* HAVE_GMIME_2_5_7 */
++GMimeSignatureList *g_mime_part_rfc2440_verify(GMimePart * part,
++ GMimeGpgmeContext * ctx,
++ GError ** err);
++GMimeDecryptResult *g_mime_part_rfc2440_decrypt(GMimePart * part,
++ GMimeGpgmeContext * ctx,
++ GError ** err);
++#endif /* HAVE_GMIME_2_5_7 */
+
+ #ifdef __cplusplus
+ }
+diff --git a/libbalsa/rfc3156.c b/libbalsa/rfc3156.c
+index a56e12c..df4a2e1 100644
+--- a/libbalsa/rfc3156.c
++++ b/libbalsa/rfc3156.c
+@@ -268,9 +268,15 @@ libbalsa_message_body_protection(LibBalsaMessageBody * body)
+
+ #if defined(HAVE_GMIME_2_6)
+ static gboolean
++#ifndef HAVE_GMIME_2_5_7
+ password_request_func(GMimeCipherContext * ctx, const char *user_id,
+ const char *prompt_ctx, gboolean reprompt,
+ GMimeStream * response, GError ** err)
++#else /* HAVE_GMIME_2_5_7 */
++password_request_func(GMimeCryptoContext * ctx, const char *user_id,
++ const char *prompt_ctx, gboolean reprompt,
++ GMimeStream * response, GError ** err)
++#endif /* HAVE_GMIME_2_5_7 */
+ {
+ gint fd;
+ gchar *name_used;
+@@ -366,9 +372,16 @@ libbalsa_sign_mime_object(GMimeObject ** content, const gchar * rfc822_for,
+ return FALSE;
+ }
+
++#ifndef HAVE_GMIME_2_5_7
+ if (g_mime_multipart_signed_sign
+ (mps, *content, GMIME_CIPHER_CONTEXT(ctx), rfc822_for,
+- GMIME_CIPHER_HASH_DEFAULT, error) != 0) {
++ GMIME_CIPHER_HASH_DEFAULT, error) != 0)
++#else /* HAVE_GMIME_2_5_7 */
++ if (g_mime_multipart_signed_sign
++ (mps, *content, GMIME_CRYPTO_CONTEXT(ctx), rfc822_for,
++ GMIME_DIGEST_ALGO_DEFAULT, error) != 0)
++#endif /* HAVE_GMIME_2_5_7 */
++ {
+ g_object_unref(mps);
+ g_object_unref(ctx);
+ #if !defined(HAVE_GMIME_2_6)
+@@ -458,10 +471,18 @@ libbalsa_encrypt_mime_object(GMimeObject ** content, GList * rfc822_for,
+
+ encrypted_obj = GMIME_OBJECT(mpe);
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_multipart_encrypted_encrypt(mpe, *content,
+ GMIME_CIPHER_CONTEXT(ctx),
+ FALSE, NULL,
+ recipients, error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_multipart_encrypted_encrypt(mpe, *content,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ FALSE, NULL,
++ GMIME_DIGEST_ALGO_DEFAULT,
++ recipients, error);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+ #ifdef HAVE_SMIME
+ else {
+@@ -471,9 +492,15 @@ libbalsa_encrypt_mime_object(GMimeObject ** content, GList * rfc822_for,
+ encrypted_obj = GMIME_OBJECT(pkcs7);
+ ctx->singlepart_mode = TRUE;
+ result =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_application_pkcs7_encrypt(pkcs7, *content,
+ GMIME_CIPHER_CONTEXT(ctx),
+ recipients, error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_application_pkcs7_encrypt(pkcs7, *content,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ recipients, error);
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+ #endif
+
+@@ -565,8 +592,14 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ #if !defined(HAVE_GMIME_2_6)
+ GMimeSession *session;
+ #endif /* HAVE_GMIME_2_6 */
+- GMimeCipherContext *ctx;
++#ifndef HAVE_GMIME_2_5_7
++ GMimeCipherContext *g_mime_ctx;
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeCryptoContext *g_mime_ctx;
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
++ GMimeGpgmeContext *ctx;
+ GError *error = NULL;
+
+ /* paranoia checks */
+@@ -592,12 +625,12 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ /* try to create GMimeGpgMEContext */
+ #if !defined(HAVE_GMIME_2_6)
+ session = g_object_new(g_mime_session_get_type(), NULL, NULL);
+- ctx = g_mime_gpgme_context_new(session, protocol, &error);
++ g_mime_ctx = g_mime_gpgme_context_new(session, protocol, &error);
+ #else /* HAVE_GMIME_2_6 */
+- ctx =
++ g_mime_ctx =
+ g_mime_gpgme_context_new(password_request_func, protocol, &error);
+ #endif /* HAVE_GMIME_2_6 */
+- if (ctx == NULL) {
++ if (g_mime_ctx == NULL) {
+ if (error) {
+ libbalsa_information(LIBBALSA_INFORMATION_ERROR, "%s: %s",
+ _("creating a gpgme context failed"),
+@@ -613,6 +646,7 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ body->parts->next->sig_info->status = GPGME_SIG_STAT_ERROR;
+ return FALSE;
+ }
++ ctx = GMIME_GPGME_CONTEXT(g_mime_ctx);
+
+ /* S/MIME uses the protocol application/pkcs7-signature, but some ancient
+ mailers, not yet knowing RFC 2633, use application/x-pkcs7-signature,
+@@ -622,14 +656,19 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ g_mime_object_get_content_type_parameter(GMIME_OBJECT (body->mime_part),
+ "protocol");
+ if (!g_ascii_strcasecmp(cms_protocol, "application/x-pkcs7-signature"))
++#ifndef HAVE_GMIME_2_5_7
++ g_mime_ctx->sign_protocol = cms_protocol;
++#else /* HAVE_GMIME_2_5_7 */
+ ctx->sign_protocol = cms_protocol;
++#endif /* HAVE_GMIME_2_5_7 */
+ }
+
+ /* verify the signature */
+
+ libbalsa_mailbox_lock_store(body->message->mailbox);
+ valid = g_mime_multipart_signed_verify(GMIME_MULTIPART_SIGNED
+- (body->mime_part), ctx, &error);
++ (body->mime_part), g_mime_ctx,
++ &error);
+ libbalsa_mailbox_unlock_store(body->message->mailbox);
+
+ if (valid == NULL) {
+@@ -642,12 +681,16 @@ libbalsa_body_check_signature(LibBalsaMessageBody * body,
+ libbalsa_information(LIBBALSA_INFORMATION_ERROR,
+ _("signature verification failed"));
+ }
+- if (GMIME_GPGME_CONTEXT(ctx)->sig_state) {
+- body->parts->next->sig_info = GMIME_GPGME_CONTEXT(ctx)->sig_state;
++ if (ctx->sig_state) {
++ body->parts->next->sig_info = ctx->sig_state;
+ g_object_ref(G_OBJECT(body->parts->next->sig_info));
+ }
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_signature_validity_free(valid);
+- g_object_unref(ctx);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(valid);
++#endif /* HAVE_GMIME_2_5_7 */
++ g_object_unref(g_mime_ctx);
+ #if !defined(HAVE_GMIME_2_6)
+ g_object_unref(session);
+ #endif /* HAVE_GMIME_2_6 */
+@@ -747,14 +790,26 @@ libbalsa_body_decrypt(LibBalsaMessageBody * body,
+ libbalsa_mailbox_lock_store(body->message->mailbox);
+ if (protocol == GPGME_PROTOCOL_OpenPGP)
+ mime_obj =
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_multipart_encrypted_decrypt(GMIME_MULTIPART_ENCRYPTED(body->mime_part),
+ GMIME_CIPHER_CONTEXT(ctx),
+ &error);
++#else /* HAVE_GMIME_2_5_7 */
++ g_mime_multipart_encrypted_decrypt(GMIME_MULTIPART_ENCRYPTED(body->mime_part),
++ GMIME_CRYPTO_CONTEXT(ctx),
++ NULL,
++ &error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #ifdef HAVE_SMIME
+ else if (smime_signed) {
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
+
+ ctx->singlepart_mode = TRUE;
++#ifndef HAVE_GMIME_2_5_7
+ mime_obj =
+ g_mime_application_pkcs7_verify(GMIME_PART(body->mime_part),
+ &valid,
+@@ -766,6 +821,19 @@ libbalsa_body_decrypt(LibBalsaMessageBody * body,
+ g_mime_application_pkcs7_decrypt(GMIME_PART(body->mime_part),
+ GMIME_CIPHER_CONTEXT(ctx),
+ &error);
++#else /* HAVE_GMIME_2_5_7 */
++ mime_obj =
++ g_mime_application_pkcs7_verify(GMIME_PART(body->mime_part),
++ &valid,
++ GMIME_CRYPTO_CONTEXT(ctx),
++ &error);
++ g_object_unref(valid);
++ } else
++ mime_obj =
++ g_mime_application_pkcs7_decrypt(GMIME_PART(body->mime_part),
++ GMIME_CRYPTO_CONTEXT(ctx),
++ &error);
++#endif /* HAVE_GMIME_2_5_7 */
+ #endif
+ libbalsa_mailbox_unlock_store(body->message->mailbox);
+
+@@ -906,7 +974,11 @@ libbalsa_rfc2440_verify(GMimePart * part, GMimeGpgmeSigstat ** sig_info)
+ GMimeSession *session;
+ #endif /* HAVE_GMIME_2_6 */
+ GMimeGpgmeContext *ctx;
++#ifndef HAVE_GMIME_2_5_7
+ GMimeSignatureValidity *valid;
++#else /* HAVE_GMIME_2_5_7 */
++ GMimeSignatureList *valid;
++#endif /* HAVE_GMIME_2_5_7 */
+ GError *error = NULL;
+ gpgme_error_t retval;
+
+@@ -978,7 +1050,11 @@ libbalsa_rfc2440_verify(GMimePart * part, GMimeGpgmeSigstat ** sig_info)
+ }
+
+ /* clean up */
++#ifndef HAVE_GMIME_2_5_7
+ g_mime_signature_validity_free(valid);
++#else /* HAVE_GMIME_2_5_7 */
++ g_object_unref(valid);
++#endif /* HAVE_GMIME_2_5_7 */
+ retval = ctx->sig_state->status;
+ g_object_unref(ctx);
+ #if !defined(HAVE_GMIME_2_6)
+--
+cgit v0.9.0.2
diff --git a/community/c++-gtk-utils/PKGBUILD b/community/c++-gtk-utils/PKGBUILD
new file mode 100644
index 000000000..ce57480cc
--- /dev/null
+++ b/community/c++-gtk-utils/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 61994 2012-01-13 20:36:39Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=c++-gtk-utils
+pkgver=2.0.4
+pkgrel=1
+pkgdesc="Classes and functions for programming in GTK+"
+arch=('i686' 'x86_64')
+url="http://cxx-gtk-utils.sourceforge.net/"
+license=('LGPL2.1')
+depends=('gtk3')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/cxx-gtk-utils/cxx-gtk-utils/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('349b14a45befcaad629820c3313c9e1d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --disable-rpath \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/calibre/PKGBUILD b/community/calibre/PKGBUILD
index d307ee6c4..42a52f376 100644
--- a/community/calibre/PKGBUILD
+++ b/community/calibre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 61671 2012-01-06 10:40:17Z giovanni $
+# $Id: PKGBUILD 61987 2012-01-13 12:17:48Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Petrov Roman <nwhisper@gmail.com>
# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
pkgname=calibre
-pkgver=0.8.34
+pkgver=0.8.35
pkgrel=1
pkgdesc="Ebook management application"
arch=('i686' 'x86_64' 'mips64el')
@@ -21,7 +21,7 @@ install=calibre.install
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.xz"
'desktop_integration.patch'
'calibre-mount-helper')
-md5sums=('f0e5137c9cd4faaa6eee984b06ba6143'
+md5sums=('0a1170534492c6ca5b9f849cbfaa7acc'
'253ce4fe5d01f8ff76b63cd3825755ea'
'675cd87d41342119827ef706055491e7')
diff --git a/community/cdfs/PKGBUILD b/community/cdfs/PKGBUILD
index e231f2f09..73f977cb2 100644
--- a/community/cdfs/PKGBUILD
+++ b/community/cdfs/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 58212 2011-11-08 22:41:05Z ibiru $
+# $Id: PKGBUILD 62253 2012-01-18 19:54:16Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar>
pkgname=cdfs
pkgver=2.6.27
-pkgrel=17
+pkgrel=19
pkgdesc="File system module that 'exports' all tracks and boot images on a CD as normal files."
arch=(i686 x86_64 'mips64el')
url="http://www.elis.UGent.be/~ronsse/cdfs/"
@@ -12,9 +12,11 @@ license=('GPL')
makedepends=('linux-headers')
install=cdfs.install
source=("http://www.elis.UGent.be/~ronsse/cdfs/download/$pkgname-$pkgver.tar.bz2"
- "cdfs-3.0.0.patch")
+ "cdfs-3.0.patch"
+ "cdfs-3.2.patch")
md5sums=('ac64c014a90e3c488394832ea29605b3'
- 'aba7da94a9dcbb8a93ea423cb6958fef')
+ 'aba7da94a9dcbb8a93ea423cb6958fef'
+ 'e934407b3460257a301822ffc4ab3933')
build() {
_kernver=`pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -`
@@ -22,7 +24,9 @@ build() {
_kernverfull=`cat /lib/modules/extramodules-3.${_kernver}-ARCH/version`
cd $srcdir/$pkgname-$pkgver
- patch -p1 <$srcdir/cdfs-3.0.0.patch
+ patch -p1 <$srcdir/cdfs-3.0.patch
+ patch -p1 <$srcdir/cdfs-3.2.patch
make KDIR=/lib/modules/${_kernverfull}/build
install -Dm0644 cdfs.ko $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/cdfs.ko
+ sed -i "s|extramodules-.*-ARCH|extramodules-3.${_kernver}-ARCH|" $startdir/cdfs.install
}
diff --git a/community/cdfs/cdfs-3.0.patch b/community/cdfs/cdfs-3.0.patch
new file mode 100644
index 000000000..20194b848
--- /dev/null
+++ b/community/cdfs/cdfs-3.0.patch
@@ -0,0 +1,274 @@
+diff -wbBur cdfs-2.6.27/cddata.c cdfs-2.6.27.my/cddata.c
+--- cdfs-2.6.27/cddata.c 2009-12-21 17:04:03.000000000 +0300
++++ cdfs-2.6.27.my/cddata.c 2011-07-24 21:18:44.000000000 +0400
+@@ -83,7 +83,7 @@
+ #else
+ .mmap = generic_file_readonly_mmap,
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
+- .sendfile = generic_file_sendfile
++// .sendfile = generic_file_sendfile
+ #else
+ .splice_read = generic_file_splice_read
+ #endif
+diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c
+--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300
++++ cdfs-2.6.27.my/root.c 2011-07-25 13:16:59.000000000 +0400
+@@ -32,19 +30,14 @@
+ * Added code to transform /proc/cdfs into a sequential synthetic file. *
+ *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+-
+ #include <linux/seq_file.h>
+-
+-#ifndef OLD_KERNEL
+ #include <linux/statfs.h>
+-#endif
++#include <linux/sched.h>
+
+ extern struct seq_operations cdfs_operations;
+ extern struct _track_info *dummy_track_p;
+
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ struct inode *cdfs_iget(struct super_block *sp, unsigned long ino);
+-#endif
+ /*============================================================================*
+ * cdfs_open() *
+ * Description: *
+@@ -115,15 +108,8 @@
+
+ /********************************************************************/
+
+-#ifdef OLD_KERNEL
+-static struct super_block * cdfs_mount(struct super_block *sb, void *data, int silent){
+- kdev_t dev = sb->s_dev;
+- int i, j, t;
+- struct cdrom_tochdr hdr;
+-#else
+ static int cdfs_fill_super(struct super_block *sb, void *data, int silent){
+ int i, t;
+-#endif
+ struct cdrom_tocentry entry;
+ int no_audio=0, no_data=0;
+ cd * this_cd;
+@@ -131,24 +117,13 @@
+
+ PRINT("cdfs_mount\n");
+
+-#ifdef OLD_KERNEL
+- MOD_INC_USE_COUNT;
+-
+- set_blocksize(dev, CD_FRAMESIZE); // voor bread met ide-cd
+-#else
+ sb_set_blocksize(sb, CD_FRAMESIZE); // voor bread met ide-cd
+-#endif
+
+ sb->s_blocksize = CD_FRAMESIZE;
+ sb->s_blocksize_bits = 11;
+
+ if (!(this_cd = cdfs_info(sb) = kmalloc(sizeof(cd), GFP_KERNEL))){
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ return -ENOMEM;
+-#endif
+ }
+
+ this_cd->mode = MODE;
+@@ -160,13 +135,8 @@
+
+ // Initialize cache for maximum sector size
+ if (!(this_cd->cache = kmalloc(CD_FRAMESIZE_RAWER*CACHE_SIZE, GFP_KERNEL))) {
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ kfree(cdfs_info(sb));
+ return -ENOMEM;
+-#endif
+ }
+
+ // Cache is still invalid
+@@ -183,23 +153,13 @@
+ if (this_cd->toc_scsi){
+ if (cdfs_toc_read_full(sb)){
+ printk("TOC read failed\n");
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ goto invalid;
+-#endif
+ }
+ } else {
+ //if (cdfs_ioctl(sb, CDROMREADTOCHDR, (unsigned long)&hdr)){
+ if (cdfs_toc_read(sb)){
+ printk("cdfs_toc_read failed\n");
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ goto invalid;
+-#endif
+ }
+ }
+
+@@ -365,11 +325,7 @@
+ sb->s_flags |= MS_RDONLY;
+ sb->s_op = &cdfs_ops;
+ /* always get inode status */
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ retinode=cdfs_iget(sb, 0);
+-#else
+- retinode=iget(sb, 0);
+-#endif
+ if ( IS_ERR(retinode) )
+ return PTR_ERR(retinode);
+
+@@ -379,16 +335,12 @@
+
+ cdfs_proc_cd = this_cd;
+
+-#ifdef OLD_KERNEL
+- return sb;
+-#else
+ return 0;
+
+ invalid:
+ kfree(this_cd->cache);
+ kfree(cdfs_info(sb));
+ return -EINVAL;
+-#endif
+ }
+
+ /************************************************************************/
+@@ -410,27 +362,12 @@
+ // Remove /proc entry
+ cdfs_proc_cd = NULL;
+ kfree(cdfs_info(sb));
+-
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+-#endif
+-
+ }
+
+ /************************************************************************/
+
+-#ifdef OLD_KERNEL
+-static int cdfs_statfs(struct super_block *sb, struct statfs *buf) {
+- cd * this_cd = cdfs_info(sb);
+-#else
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
+ static int cdfs_statfs(struct dentry *d, struct kstatfs *buf) {
+ cd * this_cd = cdfs_info(d->d_sb);
+-#else
+-static int cdfs_statfs(struct super_block *sb, struct kstatfs *buf) {
+- cd * this_cd = cdfs_info(sb);
+-#endif
+-#endif
+ PRINT("rmfs_statfs\n");
+
+ buf->f_type = CDFS_MAGIC;
+@@ -460,11 +397,7 @@
+
+ /************************************************************************/
+
+-#ifdef OLD_KERNEL
+-static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry){
+-#else
+ static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){
+-#endif
+ struct inode * inode;
+ int i;
+ cd * this_cd = cdfs_info(dir->i_sb);
+@@ -480,15 +413,9 @@
+ /* Use goto and read inode with iget()/cdfs_iget() */
+ /* Thanks to David Howells for patch and Master class in his mail */
+ found:
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ inode = cdfs_iget(dir->i_sb, i);
+ if (IS_ERR(inode))
+ return ERR_CAST(inode);
+-#else
+- inode = iget(dir->i_sb, i);
+- if (!inode)
+- return ERR_PTR(-ENOMEM);
+-#endif
+ d_add(dentry, inode);
+ return NULL;
+ }
+@@ -529,12 +456,8 @@
+ i->i_fop = &cdfs_dir_operations;
+ } else { /* file */
+ i->i_size = this_cd->track[i->i_ino].size;
+-#ifdef OLD_KERNEL
+- i->i_mtime = i->i_atime = i->i_ctime = this_cd->track[i->i_ino].time;
+-#else
+ i->i_mtime.tv_sec = i->i_atime.tv_sec = i->i_ctime.tv_sec = this_cd->track[i->i_ino].time;
+ i->i_mtime.tv_nsec = i->i_atime.tv_nsec = i->i_ctime.tv_nsec = 0;
+-#endif
+ i->i_mode = this_cd->mode;
+ if ((this_cd->track[i->i_ino].type==DATA) && this_cd->track[i->i_ino].iso_size) {
+ i->i_fop = &cdfs_cddata_file_operations;
+@@ -587,33 +510,21 @@
+ /******************************************************************/
+
+ static struct super_operations cdfs_ops = {
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+- .read_inode = cdfs_read_inode,
+-#endif
+ .put_super = cdfs_umount,
+ .statfs = cdfs_statfs
+ };
+
+-#ifdef OLD_KERNEL
+-static DECLARE_FSTYPE_DEV(cdfs_fs_type, FSNAME, cdfs_mount);
+-#else
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
+-static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) {
+- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt);
+-#else
+-static struct super_block *cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) {
+- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super);
+-#endif
+-}
++//static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) {
++// return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt);
++//}
+
+ static struct file_system_type cdfs_fs_type = {
+ .owner = THIS_MODULE,
+ .name = "cdfs",
+- .get_sb = cdfs_get_sb,
++// .get_sb = cdfs_get_sb,
+ .kill_sb = kill_block_super,
+ .fs_flags = FS_REQUIRES_DEV
+ };
+-#endif
+
+ /******************************************************/
+
+@@ -621,10 +532,6 @@
+ MODULE_DESCRIPTION("CDfs: a CD filesystem");
+ MODULE_LICENSE("GPL");
+
+-#ifdef OLD_KERNEL
+-EXPORT_NO_SYMBOLS;
+-#endif
+-
+ /******************************************************************/
+
+ static int __init cdfs_init(void) {
+@@ -676,11 +583,7 @@
+
+ if (!options) return;
+
+-#ifdef OLD_KERNEL
+- for (this_char = strtok(options,","); this_char; this_char = strtok(NULL,",")) {
+-#else
+ while ((this_char = strsep(&options,",")) != NULL) {
+-#endif
+
+ if (!strcmp(this_char,"single"))
+ this_cd->single=TRUE;
diff --git a/community/cdfs/cdfs-3.2.patch b/community/cdfs/cdfs-3.2.patch
new file mode 100644
index 000000000..d3300bdbc
--- /dev/null
+++ b/community/cdfs/cdfs-3.2.patch
@@ -0,0 +1,12 @@
+diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c
+--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300
++++ cdfs-2.6.27.my/root.c 2012-01-18 11:23:03.000000000 +0400
+@@ -517,7 +517,7 @@
+
+ i->i_uid = this_cd->uid;
+ i->i_gid = this_cd->gid;
+- i->i_nlink = 1;
++ i->__i_nlink = 1;
+ i->i_op = &cdfs_inode_operations;
+ i->i_fop = NULL;
+ i->i_data.a_ops = NULL;
diff --git a/community/cdfs/cdfs.install b/community/cdfs/cdfs.install
index 3693d60ed..d24929157 100644
--- a/community/cdfs/cdfs.install
+++ b/community/cdfs/cdfs.install
@@ -1,11 +1,14 @@
post_install() {
- /sbin/depmod -a
+ EXTRAMODULES='extramodules-3.2-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- /sbin/depmod -a
+ EXTRAMODULES='extramodules-3.2-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_remove() {
- /sbin/depmod -a
+ EXTRAMODULES='extramodules-3.2-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/community/clucene/PKGBUILD b/community/clucene/PKGBUILD
index bc43ff644..57834619c 100644
--- a/community/clucene/PKGBUILD
+++ b/community/clucene/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 60839 2011-12-18 22:57:14Z arodseth $
+# $Id: PKGBUILD 62283 2012-01-19 00:04:00Z arodseth $
# Maintainer: Alexander Rødseth
# Contributor: Alois Nespor <alois.nespor@gmail.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgname=clucene
pkgver=2.3.3.4
-pkgrel=2
+pkgrel=3
pkgdesc="C++ port of the high-performance text search engine Lucene"
arch=('i686' 'x86_64' 'mips64el')
url="http://clucene.sourceforge.net/"
@@ -17,6 +17,9 @@ sha256sums=('ddfdc433dd8ad31b5c5819cc4404a8d2127472a3b720d3e744e8c51d79732eab')
build() {
cd "$srcdir"
+ sed 's:core:core -lclucene-shared:' \
+ -i "$pkgname-core-$pkgver/src/core/libclucene-core.pc.cmake"
+
mkdir build
cd build
cmake "../$pkgname-core-$pkgver" \
@@ -25,9 +28,6 @@ build() {
-DENABLE_ASCII_MODE=OFF \
-DENABLE_PACKAGING=OFF \
-DDISABLE_MULTITHREADING=OFF
- # The three lines above are from
- # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-cpp/clucene/clucene-2.3.3.4.ebuild
- # Thanks, Gentoo
make
}
diff --git a/community/converseen/PKGBUILD b/community/converseen/PKGBUILD
index bb0935d2c..be3e3c257 100644
--- a/community/converseen/PKGBUILD
+++ b/community/converseen/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 61388 2011-12-30 00:12:01Z giovanni $
+# $Id: PKGBUILD 62171 2012-01-17 08:26:12Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: archtux <antonio.arias99999 at gmail.com>
pkgname=converseen
-pkgver=0.4.7
-pkgrel=2
+pkgver=0.4.8
+pkgrel=1
pkgdesc="The batch image converter and resizer"
arch=('i686' 'x86_64')
url="http://converseen.sourceforge.net/"
@@ -13,7 +13,7 @@ depends=('imagemagick' 'qt' 'libwmf' 'openexr')
makedepends=('cmake')
install=converseen.install
source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('d21cb571b268ddf4bcdc395d01c0dc49')
+md5sums=('65cdb89445a3063b9c8362b411d3e3ef')
build() {
cd "${srcdir}"
diff --git a/community/coq/PKGBUILD b/community/coq/PKGBUILD
index 4fd420e77..7accbc9fa 100644
--- a/community/coq/PKGBUILD
+++ b/community/coq/PKGBUILD
@@ -2,16 +2,17 @@
# Contributor: George Giorgidze <giorgidze@gmail.com>
pkgname=coq
-pkgver=8.3pl2
-pkgrel=3
+pkgver=8.3pl3
+pkgrel=1
pkgdesc='Formal proof management system.'
arch=('i686' 'x86_64' 'mips64el')
url='http://coq.inria.fr/'
license=('GPL')
-depends=('gtk2')
-makedepends=('ocaml' 'lablgtk2' 'camlp5-transitional' 'netpbm' 'hevea')
+options=('!emptydirs')
+depends=('gtk2' 'lablgtk2' 'ocaml')
+makedepends=('camlp5-transitional' 'netpbm' 'hevea')
source=("http://coq.inria.fr/distrib/V${pkgver}/files/${pkgname}-${pkgver}.tar.gz")
-md5sums=('db415f6c5372f5a443699c62f5affcb4')
+md5sums=('37e9a52110a025128667c03fed75f9c2')
build() {
cd ${pkgname}-${pkgver}
diff --git a/community/dmd/PKGBUILD b/community/dmd/PKGBUILD
index 43ecb19f7..8738d72cf 100644
--- a/community/dmd/PKGBUILD
+++ b/community/dmd/PKGBUILD
@@ -1,44 +1,67 @@
-# $Id: PKGBUILD 61677 2012-01-06 12:49:05Z cbrannon $
-# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# $Id: PKGBUILD 62087 2012-01-15 20:40:34Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Chris Brannon <cmbrannon79@gmail.com>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Anders Bergh <anders1@gmail.com>
# Contributor: Alexander Fehr <pizzapunk gmail com>
-pkgname=dmd
-pkgver=1.072
+pkgname=('dmd' 'libphobos')
+pkgbase=dmd
+pkgver=2.057
pkgrel=1
-pkgdesc="The Digital Mars D compiler."
-arch=('i686' x86_64)
-url="http://www.digitalmars.com/d/1.0/"
+pkgdesc="The Digital Mars D compiler"
+arch=('i686' 'x86_64')
+url="http://www.digitalmars.com/d/2.0/"
source=(http://ftp.digitalmars.com/$pkgname.$pkgver.zip)
-install='dmd.install'
-provides=('d-compiler')
license=('custom')
-options=('!strip')
-depends=(gcc-libs)
-optdepends=('libphobos: D standard runtime library'
- 'libtango: Alternative runtime library')
+md5sums=('531c4b60eb002ea8abbe5c80b2eb677d')
-[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+[[ $CARCH == "x86_64" ]] && _archbits="64"
+[[ $CARCH == "i686" ]] && _archbits="32"
build() {
- # Copy the license.
- install -Dm644 "$srcdir/dmd/license.txt" "$pkgdir/usr/share/licenses/dmd/LICENSE" || return 1
-
- if [ $CARCH == x86_64 ]; then
- cd "$srcdir/dmd/linux/bin64"
- else
- cd "$srcdir/dmd/linux/bin32"
- fi
- install -dm755 "$pkgdir/usr/bin"
- install -m755 dmd rdmd dumpobj obj2asm "$pkgdir/usr/bin"
-
- for x in "$srcdir"/dmd/man/man1/*.1; do
- install -Dm644 "$x" "$pkgdir/usr/share/man/man1/$(basename "$x")" || return 1
- done
-
- for x in "$srcdir"/dmd/man/man1/*.5; do
- install -Dm644 "$x" "$pkgdir/usr/share/man/man5/$(basename "$x")" || return 1
- done
+ cd $srcdir/dmd2/src/
+
+ cd dmd
+ make -f posix.mak MODEL=$_archbits
+
+ cd ../druntime
+ make -f posix.mak MODEL=$_archbits DMD=../dmd/dmd
+
+ cd ../phobos
+ make -f posix.mak MODEL=$_archbits DMD=../dmd/dmd
+}
+
+package_dmd() {
+ depends=('libphobos' 'gcc-libs')
+
+ install -Dm755 $srcdir/dmd2/src/dmd/dmd $pkgdir/usr/bin/dmd
+
+ mkdir -p $pkgdir/etc
+ echo -e "[Environment]\nDFLAGS=-I/usr/include/d -I/usr/include/d/druntime/import -L-L/usr/lib -L-lrt" > $pkgdir/etc/dmd.conf
+
+ install -Dm644 $srcdir/dmd2/man/man1/dmd.1 $pkgdir/usr/share/man/man1/dmd.1
+ install -Dm644 $srcdir/dmd2/man/man1/dmd.conf.5 $pkgdir/usr/share/man/man5/dmd.conf.5
+
+ install -Dm644 $srcdir/dmd2/license.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+ mkdir -p $pkgdir/usr/share/d/samples/
+ cp -r $srcdir/dmd2/samples/d/* $pkgdir/usr/share/d/samples/
+}
+
+package_libphobos() {
+ install -Dm644 $srcdir/dmd2/src/druntime/lib/libdruntime.a $pkgdir/usr/lib/libdruntime.a
+ install -Dm644 $srcdir/dmd2/src/phobos/generated/linux/release/$_archbits/libphobos2.a $pkgdir/usr/lib/libphobos2.a
+
+ mkdir -p $pkgdir/usr/include/d
+ cp -r $srcdir/dmd2/src/phobos/{*.d,etc,std} $pkgdir/usr/include/d
+
+ mkdir -p $pkgdir/usr/include/d/druntime
+ cp -r $srcdir/dmd2/src/druntime/import $pkgdir/usr/include/d/druntime
+
+ mkdir -p $pkgdir/usr/share/doc/d/
+ cp -r $srcdir/dmd2/html $pkgdir/usr/share/doc/d/
+
+ install -Dm644 $srcdir/dmd2/src/druntime/LICENSE_1_0.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE-druntime
+ install -Dm644 $srcdir/dmd2/src/phobos/phoboslicense.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE-phobos
}
-md5sums=('d5489b94f06c7ca2f4b5de62f7e6815a')
diff --git a/community/efax-gtk/PKGBUILD b/community/efax-gtk/PKGBUILD
index 6376c66e4..98fa4a965 100644
--- a/community/efax-gtk/PKGBUILD
+++ b/community/efax-gtk/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 59587 2011-11-28 18:05:39Z giovanni $
+# $Id: PKGBUILD 61996 2012-01-13 21:14:06Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
pkgname=efax-gtk
-pkgver=3.2.8
-pkgrel=2
+pkgver=3.2.9
+pkgrel=1
pkgdesc="A GUI front end for the 'efax' fax program"
arch=('i686' 'x86_64')
url="http://efax-gtk.sourceforge.net/"
license=('GPL')
-depends=('dbus-glib' 'gtk3' 'ghostscript')
+depends=('dbus-glib' 'ghostscript' 'c++-gtk-utils')
makedepends=('pkg-config')
optdepends=('heirloom-mailx: to use the mail_fax script')
backup=('etc/efax-gtkrc')
install=efax-gtk.install
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.src.tgz")
-md5sums=('275ad1706e5c38e2b153dddd8a16724f')
+md5sums=('57fac8815c8f49fc7415d3558eb3f842')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/expac/PKGBUILD b/community/expac/PKGBUILD
index 325f89f12..e4cdc270b 100644
--- a/community/expac/PKGBUILD
+++ b/community/expac/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 51880 2011-07-17 19:50:14Z dreisner $
+# $Id: PKGBUILD 62143 2012-01-16 19:53:09Z dreisner $
# Maintainer: Dave Reisner <d@falconindy.com>
pkgname=expac
-pkgver=0.05
+pkgver=0.07
pkgrel=1
pkgdesc="pacman database extraction utility"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,7 +11,7 @@ license=('GPL')
depends=('pacman')
makedepends=('perl')
source=("https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz")
-md5sums=('366d741b21d1029c63a5e977d3fc08db')
+md5sums=('1bc637b733051827982db12db84643f2')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/ghemical/PKGBUILD b/community/ghemical/PKGBUILD
index 320a3aa7d..718b4823a 100644
--- a/community/ghemical/PKGBUILD
+++ b/community/ghemical/PKGBUILD
@@ -3,12 +3,12 @@
pkgname=ghemical
pkgver=3.0.0
-pkgrel=1
+pkgrel=2
pkgdesc="Computational chemistry package."
license=("GPL")
arch=(i686 x86_64 'mips64el')
url="http://bioinformatics.org/ghemical/ghemical/"
-depends=('libghemical>=3.0' 'liboglappth>=1.0' 'mesa' 'libglade' 'libxmu' 'ttf-dejavu' 'gtkglext' 'openbabel')
+depends=('libghemical>=3.0' 'liboglappth>=1.0' 'libglade' 'gtkglext' 'openbabel')
makedepends=('pkgconfig' 'intltool>=0.40.0' 'gettext')
source=(http://bioinformatics.org/ghemical/download/release20111012/${pkgname}-${pkgver}.tar.gz ghemical.desktop)
md5sums=('becf98626f0eba73f7f042bc92aa60ac'
@@ -17,6 +17,8 @@ md5sums=('becf98626f0eba73f7f042bc92aa60ac'
build() {
cd -- "$srcdir/$pkgname-$pkgver/"
./configure --prefix=/usr
+ # Some users have reported crashes due to the courier font.
+ sed -i 's/courier 12/monospace/g' ./src/*.cpp
make
}
diff --git a/community/gnash/PKGBUILD b/community/gnash/PKGBUILD
index cf68b044b..4c27cb953 100644
--- a/community/gnash/PKGBUILD
+++ b/community/gnash/PKGBUILD
@@ -1,10 +1,10 @@
# $Id: PKGBUILD 82896 2010-06-18 18:30:20Z ibiru $
-# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgbase=gnash
pkgname=(gnash-common gnash-gtk)
pkgver=0.8.9
-pkgrel=7
+pkgrel=8
arch=(i686 x86_64 mips64el)
url="http://www.gnu.org/software/gnash/"
license=(GPL3)
@@ -15,10 +15,11 @@ makedepends=(curl giflib libldap sdl agg libjpeg libpng libtool
pkgconfig boost)
options=(!libtool !emptydirs)
source=(http://ftp.gnu.org/gnu/gnash/${pkgver}/gnash-${pkgver}.tar.bz2
- gentoo-ffmpeg-0.8.patch xul8.patch)
-md5sums=('5b2be6b04a1bcc5fb404cc377034499e'
- '98dec9a5c1b1084245a3f46b4022a6e2'
- '9b77325d0b8b9d4150c4097771482d26')
+ gentoo-ffmpeg-0.8.patch xul8.patch nodebug.patch)
+sha256sums=('f90dbdc6f03d787b239b9edacbea077b46d69ae9d85f08af23f256af389c48bd'
+ '5e6b9c2ccb0f6dda70745712dddf302d2b42895feda850f2ed126bf53d8815ca'
+ 'd484f1c21ef71847a2d4b3dd254d1fa93a58719d45bc9df8b8deabee388ce4e9'
+ '0ebb104a7632af997c7e6b268755949fa0c1eea5e32015b95a22d63d0e431551')
build() {
cd "$srcdir/gnash-$pkgver"
@@ -30,6 +31,9 @@ build() {
# Patch for compatibility with newer xulrunner headers
patch -Np1 -i "$srcdir/xul8.patch"
+ # Disable very, very verbose debugging (gigabytes of logs)
+ patch -Np1 -i "$srcdir/nodebug.patch"
+
./autogen.sh
./configure \
--prefix=/usr \
diff --git a/community/gnash/nodebug.patch b/community/gnash/nodebug.patch
new file mode 100644
index 000000000..ca160b898
--- /dev/null
+++ b/community/gnash/nodebug.patch
@@ -0,0 +1,48 @@
+diff -u -r gnash-0.8.9/libbase/log.h gnash-0.8.9-nodebug/libbase/log.h
+--- gnash-0.8.9/libbase/log.h 2011-02-26 19:11:08.000000000 +0100
++++ gnash-0.8.9-nodebug/libbase/log.h 2012-01-18 09:39:02.004103494 +0100
+@@ -331,27 +331,27 @@
+
+ // Define to 0 to completely remove parse debugging at compile-time
+ #ifndef VERBOSE_PARSE
+-#define VERBOSE_PARSE 1
++#define VERBOSE_PARSE 0
+ #endif
+
+ // Define to 0 to completely remove action debugging at compile-time
+ #ifndef VERBOSE_ACTION
+-#define VERBOSE_ACTION 1
++#define VERBOSE_ACTION 0
+ #endif
+
+ // Define to 0 to remove ActionScript errors verbosity at compile-time
+ #ifndef VERBOSE_ASCODING_ERRORS
+-#define VERBOSE_ASCODING_ERRORS 1
++#define VERBOSE_ASCODING_ERRORS 0
+ #endif
+
+ // Define to 0 this to remove invalid SWF verbosity at compile-time
+ #ifndef VERBOSE_MALFORMED_SWF
+-#define VERBOSE_MALFORMED_SWF 1
++#define VERBOSE_MALFORMED_SWF 0
+ #endif
+
+ // Define to 0 this to remove Networking verbosity at compile-time
+ #ifndef VERBOSE_NETWORKING
+-#define VERBOSE_NETWORKING 1
++#define VERBOSE_NETWORKING 0
+ #endif
+
+ #if VERBOSE_PARSE
+diff -u -r gnash-0.8.9/libcore/vm/ActionExec.cpp gnash-0.8.9-nodebug/libcore/vm/ActionExec.cpp
+--- gnash-0.8.9/libcore/vm/ActionExec.cpp 2011-03-13 17:47:36.000000000 +0100
++++ gnash-0.8.9-nodebug/libcore/vm/ActionExec.cpp 2012-01-18 09:40:25.653458508 +0100
+@@ -46,7 +46,7 @@
+ // too much information for my tastes. I really want just
+ // to see how stack changes while executing actions...
+ // --strk Fri Jun 30 02:28:46 CEST 2006
+-# define DEBUG_STACK 1
++//# define DEBUG_STACK 1
+
+ // Max number of stack item to dump. 0 for unlimited.
+ # define STACK_DUMP_LIMIT 32
diff --git a/community/grsync/PKGBUILD b/community/grsync/PKGBUILD
index b57328678..bd12228fd 100644
--- a/community/grsync/PKGBUILD
+++ b/community/grsync/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 52933 2011-07-30 07:01:49Z spupykin $
+# $Id: PKGBUILD 62005 2012-01-14 00:21:54Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: William Rea <sillywilly@gmail.com>
pkgname=grsync
-pkgver=1.2.0
+pkgver=1.2.1
pkgrel=1
pkgdesc="GTK GUI for rsync"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,11 +13,11 @@ depends=('gtk2' 'rsync')
makedepends=('gettext' 'intltool')
install=grsync.install
source=(http://www.opbyte.it/release/grsync-$pkgver.tar.gz)
-md5sums=('6364df4a3a7c9ebc25799762e77dc351')
+md5sums=('e57f46d67f7f9e8df08fdd0b97db10a6')
build() {
- cd $startdir/src/grsync-$pkgver
- [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ cd $srcdir/grsync-$pkgver
+ [ $NOEXTRACT -eq 1 ] || LDFLAGS=-lm ./configure --prefix=/usr --disable-unity
make
- make DESTDIR=$startdir/pkg install
+ make DESTDIR=$pkgdir install
}
diff --git a/community/grsync/grsync.install b/community/grsync/grsync.install
index 5f0358791..1eb57303c 100644
--- a/community/grsync/grsync.install
+++ b/community/grsync/grsync.install
@@ -1,7 +1,7 @@
post_install() {
[ -x `which update-mime-database` ] && update-mime-database usr/share/mime
[ -x `which gtk-update-icon-cache` ] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
- /bin/true
+ bin/true
}
post_upgrade() {
diff --git a/community/gtkwave/PKGBUILD b/community/gtkwave/PKGBUILD
index e363851a6..55cdd5758 100644
--- a/community/gtkwave/PKGBUILD
+++ b/community/gtkwave/PKGBUILD
@@ -1,9 +1,10 @@
-# $Id: PKGBUILD 58564 2011-11-15 03:42:53Z ebelanger $
-# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# $Id: PKGBUILD 62223 2012-01-18 16:26:00Z kkeen $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: Jared Casper <jaredcasper@gmail.com>
pkgname=gtkwave
-pkgver=3.3.28
+pkgver=3.3.30
pkgrel=1
pkgdesc='A wave viewer which reads LXT, LXT2, VZT, GHW and VCD/EVCD files'
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +14,7 @@ depends=('bzip2' 'xz' 'gtk2')
makedepends=('gperf')
install='gtkwave.install'
source=("http://gtkwave.sourceforge.net/gtkwave-${pkgver}.tar.gz")
-md5sums=('396cc15cfc12801c9ad6af507ee4a0f1')
+md5sums=('44e784b13734123036dcd6890cff7f53')
build() {
cd "${srcdir}/gtkwave-${pkgver}"
@@ -30,8 +31,6 @@ package() {
make DESTDIR="${pkgdir}" install
- install -D -m644 "${srcdir}/gtkwave-${pkgver}/.gtkwaverc" \
- "${pkgdir}/usr/share/gtkwave/sample.gtkwaverc"
install -D -m644 "${srcdir}/gtkwave-${pkgver}/LICENSE.TXT" \
"${pkgdir}/usr/share/licenses/gtkwave/LICENSE.TXT"
install -D -m644 "${srcdir}/gtkwave-${pkgver}/MIT.TXT" \
diff --git a/community/gtkwave/gtkwave.install b/community/gtkwave/gtkwave.install
index 3c64a44d6..bc2e66b0d 100644
--- a/community/gtkwave/gtkwave.install
+++ b/community/gtkwave/gtkwave.install
@@ -1,5 +1,5 @@
post_install() {
- echo 'Make sure you copy the /usr/share/gtkwave/sample.gtkwaverc file to'
+ echo 'Make sure you copy the /usr/share/gtkwave/examples/gtkwaverc file to'
echo 'your home directory (as .gtkwaverc) or to your VCD project directory.'
echo 'It contains the prefs for a good configuration that most people find'
echo 'ergonomic. It is not strictly necessary however.'
diff --git a/community/ipset/PKGBUILD b/community/ipset/PKGBUILD
index 09eb63959..ac95e6229 100644
--- a/community/ipset/PKGBUILD
+++ b/community/ipset/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 59646 2011-11-29 01:17:13Z seblu $
-# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# $Id: PKGBUILD 62118 2012-01-16 09:00:54Z seblu $
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgname=ipset
-pkgver=6.10
+pkgver=6.11
pkgrel=1
pkgdesc='Administration tool for IP sets'
arch=('i686' 'x86_64')
@@ -11,12 +11,11 @@ license=('GPL2')
depends=('libmnl')
makedepends=('linux-headers')
source=("http://ipset.netfilter.org/$pkgname-$pkgver.tar.bz2")
-md5sums=('2dc677ab126269d09db5cd908c045591')
+md5sums=('bfcc92e30a0fcf10ae6e7c4affa03c84')
build() {
cd $pkgname-$pkgver
- ./autogen.sh
- ./configure --prefix=/usr
+ ./configure --prefix=/usr --with-kmod=no
make
}
diff --git a/community/libcgns/PKGBUILD b/community/libcgns/PKGBUILD
index 3ed223977..4338d5222 100644
--- a/community/libcgns/PKGBUILD
+++ b/community/libcgns/PKGBUILD
@@ -3,9 +3,9 @@
pkgname=libcgns
_basever=3.1.3
-_relver=3
+_relver=4
pkgver=${_basever}.${_relver}
-pkgrel=2
+pkgrel=1
pkgdesc='General purpose library for the storage and retrieval of computational fluid dynamics analysis data by CGNS standard'
arch=('i686' 'x86_64')
url='http://www.cgns.org'
@@ -13,7 +13,7 @@ license=('custom')
conflicts=('libcgns2')
makedepends=('cmake')
source=("http://downloads.sourceforge.net/project/cgns/cgnslib_${_basever:0:3}/cgnslib_${_basever}-${_relver}.tar.gz")
-md5sums=('8d19e0c69779d7ea74b1731e09a96b9d')
+md5sums=('442bba32b576f3429cbd086af43fd4ae')
# need to tell cmake when to build 64bit version
[[ "$CARCH" == "i686" ]] && _64bits=OFF
diff --git a/community/libdbi-drivers/PKGBUILD b/community/libdbi-drivers/PKGBUILD
index b3d03e021..2e8348def 100644
--- a/community/libdbi-drivers/PKGBUILD
+++ b/community/libdbi-drivers/PKGBUILD
@@ -1,5 +1,5 @@
-# Maintainer: Thorsten Tpper <atsutane-tu@freethoughts.de>
-# Contributor: Olivier Mdoc <o_medoc@yahoo.fr>
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Olivier Médoc <o_medoc@yahoo.fr>
# Contributor: Ashok `ScriptDevil` Gautham <ScriptDevil.Arch@gmail.com>
pkgname=libdbi-drivers
diff --git a/community/libopenraw/PKGBUILD b/community/libopenraw/PKGBUILD
index 528ef4569..b40eac3cf 100644
--- a/community/libopenraw/PKGBUILD
+++ b/community/libopenraw/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 59667 2011-11-29 09:17:08Z arodseth $
+# $Id: PKGBUILD 62429 2012-01-19 22:28:28Z foutrelis $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Ronald van Haren <ronald.archlinux.org>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
# Contributor: <boromil@gmail.com>
pkgname=libopenraw
pkgver=0.0.9
-pkgrel=1
+pkgrel=2
pkgdesc="Library for decoding RAW files"
arch=('i686' 'x86_64' 'mips64el')
url="http://libopenraw.freedesktop.org/"
license=('LGPL')
-makedepends=('boost' 'libjpeg' 'libxml2')
+depends=('gdk-pixbuf2')
+makedepends=('boost' 'libxml2')
options=('!libtool')
source=("http://libopenraw.freedesktop.org/download/$pkgname-$pkgver.tar.bz2")
md5sums=('3611d8aea870d25314665ef53093288e')
diff --git a/community/libzdb/PKGBUILD b/community/libzdb/PKGBUILD
new file mode 100644
index 000000000..ef3dc2aac
--- /dev/null
+++ b/community/libzdb/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 62125 2012-01-16 09:28:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libzdb
+pkgver=2.10
+pkgrel=1
+pkgdesc="Zild Database Library"
+arch=(i686 x86_64)
+url="http://www.tildeslash.com/libzdb/"
+license=('GPL')
+depends=('postgresql-libs' 'sqlite3' 'libmysqlclient')
+options=(!libtool)
+source=(http://www.tildeslash.com/libzdb/dist/libzdb-$pkgver.tar.gz)
+md5sums=('fdc04b4b7f33cdcdfc6b559ba9965825')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/lilypond/PKGBUILD b/community/lilypond/PKGBUILD
index 633f0f38a..e8e45cdb3 100644
--- a/community/lilypond/PKGBUILD
+++ b/community/lilypond/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 60869 2011-12-19 16:37:27Z spupykin $
+# $Id: PKGBUILD 62129 2012-01-16 13:56:57Z bisson $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
@@ -6,7 +6,7 @@
pkgname=lilypond
pkgver=2.14.2
-pkgrel=3
+pkgrel=4
pkgdesc="An automated music engraving system"
arch=('i686' 'x86_64' 'mips64el')
url="http://lilypond.org"
diff --git a/community/linux-tools/PKGBUILD b/community/linux-tools/PKGBUILD
index 345d8f9ad..026c0aa1d 100644
--- a/community/linux-tools/PKGBUILD
+++ b/community/linux-tools/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 61664 2012-01-06 00:12:09Z seblu $
-# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# $Id: PKGBUILD 62053 2012-01-15 02:27:29Z seblu $
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgbase=linux-tools
pkgname=('perf' 'cpupower')
pkgver=3.2
-kernver=${pkgver}
+kernver=${pkgver}.1
[[ ${kernver##*rc} != $kernver ]] && testing='testing'
-pkgrel=1
+pkgrel=2
license=('GPL2')
arch=('i686' 'x86_64')
url='http://www.kernel.org'
@@ -16,16 +16,18 @@ makedepends=('asciidoc' 'xmlto')
makedepends+=('python2' 'libnewt' 'elfutils' 'pciutils')
source=("http://ftp.kernel.org/pub/linux/kernel/v3.0/$testing/linux-$kernver.tar.xz"
'cpupower.rc'
- 'cpupower.conf')
-md5sums=('364066fa18767ec0ae5f4e4abcf9dc51'
- 'd8b119eff7dc1a2d655eb71a47fa6215'
- '218fd36a7957d3170ed8bd1a0be1f62f')
+ 'cpupower.conf'
+ 'cpupower.service')
+md5sums=('cd2f8b7752c85c337af809391f4afb94'
+ '26af384ca282bc0dc38ff65acc7bb4b9'
+ '857ccdd0598511e3bf4b63522754dc48'
+ '20870541e88109d2f153be3c58a277f1')
build() {
msg2 'Build perf'
cd linux-$kernver/tools/perf
- make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" PERF_VERSION=$pkgver-$pkgrel \
- all man
+ make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" \
+ PERF_VERSION=$pkgver-$pkgrel all man
msg2 'Build cpupower'
# we cannot use --as-needed
@@ -39,8 +41,8 @@ package_perf() {
depends=('python2' 'libnewt' 'elfutils')
cd linux-${kernver}/tools/perf
- make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" PERF_VERSION=$pkgver \
- install install-man
+ make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" \
+ PERF_VERSION=$pkgver install install-man
}
package_cpupower() {
@@ -52,6 +54,7 @@ package_cpupower() {
# install rc.d script
install -D -m 755 cpupower.rc "$pkgdir/etc/rc.d/cpupower"
install -D -m 644 cpupower.conf "$pkgdir/etc/conf.d/cpupower"
+ install -D -m 644 cpupower.service "$pkgdir/lib/systemd/system/cpupower.service"
cd linux-$kernver/tools/power/cpupower
make \
diff --git a/community/linux-tools/cpupower.conf b/community/linux-tools/cpupower.conf
index 0f56836b1..ee8602953 100644
--- a/community/linux-tools/cpupower.conf
+++ b/community/linux-tools/cpupower.conf
@@ -1,14 +1,28 @@
-# valid governors:
-# ondemand, performance, powersave,
-# conservative, userspace
-#governor="ondemand"
+# Define CPUs governor
+# valid governors: ondemand, performance, powersave, conservative, userspace.
+#governor='ondemand'
-# limit frequency range (optional)
-# valid suffixes: Hz, kHz (default), MHz, GHz, THz
+# Limit frequency range
+# Valid suffixes: Hz, kHz (default), MHz, GHz, THz
#min_freq="2.25GHz"
#max_freq="3GHz"
-# use freq to set up the exact cpu frequency using it with userspace governor
+# Specific frequency to be set.
+# Requires userspace governor to be available and loaded.
#freq=
+# Utilizes cores in one processor package/socket first before processes are
+# scheduled to other processor packages/sockets.
+# See man (1) CPUPOWER-SET for additional details.
+#mc_scheduler=
+
+# Utilizes thread siblings of one processor core first before processes are
+# scheduled to other cores. See man (1) CPUPOWER-SET for additional details.
+#smp_scheduler=
+
+# Sets a register on supported Intel processore which allows software to convey
+# its policy for the relative importance of performance versus energy savings to
+# the processor. See man (1) CPUPOWER-SET for additional details.
+#perf_bias=
+
# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/linux-tools/cpupower.rc b/community/linux-tools/cpupower.rc
index 812637b61..9b0bcddb7 100644
--- a/community/linux-tools/cpupower.rc
+++ b/community/linux-tools/cpupower.rc
@@ -8,19 +8,29 @@
case "$1" in
start|restart)
stat_busy "Setting cpupower rules"
+ declare -i fail=0
- declare params=''
- if [[ "$governor" ]]; then
- params="-g $governor "
- params+="${min_freq:+-d $min_freq} "
- params+="${max_freq:+-u $max_freq} "
- params+="${freq:+-f $freq} "
- cpupower frequency-set $params >/dev/null || { stat_fail; exit 1; }
- stat_done
- else
- stat_append ': Invalid configuration'
- stat_fail
+ # frequency-set options
+ declare -a params=()
+ params+=(${governor:+-g $governor})
+ params+=(${min_freq:+-d $min_freq})
+ params+=(${max_freq:+-u $max_freq})
+ params+=(${freq:+-f $freq})
+ if ((${#params[@]} > 0)); then
+ cpupower frequency-set "${params[@]}" >/dev/null || fail=1
fi
+
+ # set options
+ declare -a params=()
+ params+=(${mc_scheduler:+-m $mc_scheduler})
+ params+=(${smp_scheduler:+-s $smp_scheduler})
+ params+=(${perf_bias:+-b $perf_bias})
+ if ((${#params[@]} > 0)); then
+ cpupower set "${params[@]}" >/dev/null || fail=1
+ fi
+
+ # print failure if any
+ (($fail > 0)) && stat_fail && exit 1 || stat_done
;;
*)
echo "usage: $0 {start|restart}"
diff --git a/community/linux-tools/cpupower.service b/community/linux-tools/cpupower.service
new file mode 100644
index 000000000..f77cfdc97
--- /dev/null
+++ b/community/linux-tools/cpupower.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Apply cpupower configuration
+
+[Service]
+Type=oneshot
+ExecStart=/etc/rc.d/cpupower start
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/luarocks/PKGBUILD b/community/luarocks/PKGBUILD
index 639c0fce3..8f395f63f 100644
--- a/community/luarocks/PKGBUILD
+++ b/community/luarocks/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 61062 2011-12-21 13:24:55Z cbrannon $
+# $Id: PKGBUILD 62343 2012-01-19 11:02:08Z cbrannon $
# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
pkgname=luarocks
-pkgver=2.0.7
+pkgver=2.0.7.1
pkgrel=1
pkgdesc='Deployment and management system for Lua modules'
arch=('i686' 'x86_64' 'mips64el')
@@ -33,4 +33,4 @@ package() {
install -D COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
-md5sums=('3a9f80418025e2c43ac369ee6837b659')
+md5sums=('37003e5c78792e353acde684426bdeac')
diff --git a/community/megaglest/PKGBUILD b/community/megaglest/PKGBUILD
index b57dc2405..a1f316dc2 100644
--- a/community/megaglest/PKGBUILD
+++ b/community/megaglest/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 60139 2011-12-05 22:27:28Z svenstaro $
+# $Id: PKGBUILD 62066 2012-01-15 14:56:57Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
pkgname=megaglest
-pkgver=3.6.0.1
-_pkgver=3.6.0
+pkgver=3.6.0.2
pkgrel=1
pkgdesc="Fork of Glest, a 3D real-time strategy game in a fantastic world."
arch=('i686' 'x86_64' 'mips64el')
url="http://sourceforge.net/projects/megaglest/"
license=('GPL3')
-depends=('curl' 'megaglest-data' 'xerces-c' 'sdl' 'libvorbis' 'openal' 'mesa' 'lua' 'icu' 'ftgl' 'glew')
-makedepends=('ftjam' 'p7zip' 'wxgtk' 'cmake')
-source=("http://downloads.sourceforge.net/project/${pkgname}/current_release/${pkgname}-source-${pkgver}.tar.xz")
-md5sums=('099a35b97e101aa2b8facf144a5d96c8')
+depends=('curl' 'megaglest-data' 'xerces-c' 'sdl' 'libvorbis' 'openal' 'libgl' 'lua' 'icu' 'ftgl' 'glew'
+ 'libircclient' 'miniupnpc' 'wxgtk')
+makedepends=('ftjam' 'cmake' 'mesa')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-source-${pkgver}.tar.xz")
+md5sums=('9d840a04b41aef2cba503de7bf433b8d')
build() {
- cd "${srcdir}"/"${pkgname}"-"${_pkgver}"/
+ cd "${srcdir}"/"${pkgname}"-"${pkgver}"/
[[ -d build ]] && rm -r build
mkdir build && cd build
@@ -28,7 +28,7 @@ build() {
}
package() {
- cd "${srcdir}"/"${pkgname}"-"${_pkgver}"/
+ cd "${srcdir}"/"${pkgname}"-"${pkgver}"/
cd build
make DESTDIR="$pkgdir" install
diff --git a/community/minidlna/PKGBUILD b/community/minidlna/PKGBUILD
index dffb76d45..5da48ee45 100644
--- a/community/minidlna/PKGBUILD
+++ b/community/minidlna/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 58407 2011-11-12 17:17:53Z ibiru $
+# $Id: PKGBUILD 62167 2012-01-17 08:00:28Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer:Biginoz < biginoz AT free point fr>
# Contributor: Ignacio Galmarino <igalmarino@gmail.com>
@@ -6,7 +6,7 @@
pkgname=minidlna
pkgver=1.0.22
-pkgrel=4
+pkgrel=5
pkgdesc="A DLNA/UPnP-AV Media server (aka ReadyDLNA)"
arch=('i686' 'x86_64' 'mips64el')
url="http://sourceforge.net/projects/minidlna/"
@@ -19,7 +19,7 @@ changelog=changelog
source=(http://downloads.sourceforge.net/minidlna/minidlna_${pkgver}_src.tar.gz
minidlna.rc)
md5sums=('3de2f6b54f43bb998dfad3c8fa75cef3'
- '8b064a6c344a3ad8029e2619dfe07b77')
+ 'b64b8b749f1c23b3f1a2ee6d6ded07fd')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/minidlna/minidlna.rc b/community/minidlna/minidlna.rc
index df44a549f..6e6f88f35 100755
--- a/community/minidlna/minidlna.rc
+++ b/community/minidlna/minidlna.rc
@@ -2,46 +2,65 @@
. /etc/rc.conf
. /etc/rc.d/functions
-. /etc/minidlna.conf
. /etc/conf.d/minidlna
-PID=`pidof -o %PPID /usr/sbin/minidlna`
+daemon_name=minidlna
+
+get_pid() {
+ pidof -o %PPID /usr/sbin/minidlna
+}
case "$1" in
start)
stat_busy "Starting minidlna"
- [ -z "$PID" ] && su -s /bin/sh -l -c /usr/sbin/minidlna - $MINIDLNA_USER
- if [ $? -gt 0 ]; then
- stat_fail
+ PID=$(get_pid)
+ if [[ -z "$PID" ]]; then
+ rm -f /var/run/$daemon_name.pid
+ touch /var/run/$daemon_name.pid && chown $MINIDLNA_USER:$MINIDLNA_USER /var/run/$daemon_name.pid
+ su -s /bin/sh -l -c /usr/sbin/minidlna - $MINIDLNA_USER
+ if [[ $? -gt 0 ]]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
else
- add_daemon minidlna
- stat_done
+ stat_fail
+ exit 1
fi
;;
+
stop)
stat_busy "Stopping minidlna"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
+ PID=$(get_pid)
+ [[ -n $PID ]] && kill $PID &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
+ exit 1
else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
rm_daemon minidlna
stat_done
fi
;;
+
clean)
- $0 stop
- sleep 1
- stat_busy "Cleaning minidlna cache"
- [ -z $db_dir ] || rm -r $db_dir/*
- stat_done
- sleep 1
- $0 start
- ;;
+ $0 stop
+ sleep 1
+ stat_busy "Cleaning minidlna cache"
+ [ -z $db_dir ] || rm -r $db_dir/*
+ stat_done
+ sleep 1
+ $0 start
+ ;;
+
restart)
$0 stop
sleep 1
$0 start
;;
+
*)
echo "usage: $0 {start|stop|restart|clean}"
esac
diff --git a/community/open-vm-tools-modules/PKGBUILD b/community/open-vm-tools-modules/PKGBUILD
index 3b7007215..d0ce60605 100644
--- a/community/open-vm-tools-modules/PKGBUILD
+++ b/community/open-vm-tools-modules/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 61571 2012-01-03 12:07:32Z spupykin $
+# $Id: PKGBUILD 62251 2012-01-18 19:54:06Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
pkgname=open-vm-tools-modules
pkgver=2011.12.20
_pkgsubver=562307
-pkgrel=1
+pkgrel=3
pkgdesc="kernel modules for the open source implementation of VMware Tools"
arch=('i686' 'x86_64' 'mips64el')
url="http://open-vm-tools.sourceforge.net/"
@@ -28,7 +28,7 @@ build() {
--without-x --with-kernel-release=$KERNEL_RELEASE
cd modules
- echo '#define COMPAT_LINUX_VERSION_CHECK_LT(a, b, c) 1' >>linux/shared/compat_version.h
+# echo '#define COMPAT_LINUX_VERSION_CHECK_LT(a, b, c) 1' >>linux/shared/compat_version.h
make modules
}
@@ -43,8 +43,8 @@ package() {
for MOD in `find -type f -name '*.ko'`; do
install -Dm644 $MOD $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/
done
- sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='$KERNEL_VERSION'/" $startdir/$pkgname.install
gzip $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/*.ko
install -D -m 644 ${srcdir}/modprobe.conf ${pkgdir}/etc/modprobe.d/${pkgname}.conf
+ sed -i "s|extramodules-.*-ARCH|extramodules-3.${_kernver}-ARCH|" $startdir/$pkgname.install
}
diff --git a/community/open-vm-tools-modules/open-vm-tools-modules.install b/community/open-vm-tools-modules/open-vm-tools-modules.install
index 187dfb1bb..ba2f9ddc2 100644
--- a/community/open-vm-tools-modules/open-vm-tools-modules.install
+++ b/community/open-vm-tools-modules/open-vm-tools-modules.install
@@ -1,8 +1,6 @@
-KERNEL_VERSION='3.1.0-4-ARCH'
-
post_install() {
- depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
-
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
echo ">>> Enabling vmxnet driver in /etc/modprobe.d/open-vm-tools-modules.conf"
echo ">>> (this will disable pcnet32 driver)"
echo ">>>"
@@ -12,12 +10,13 @@ post_install() {
}
post_upgrade() {
- depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_remove() {
- depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
-
+ EXTRAMODULES='extramodules-3.1-ARCH'
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
echo ">>>"
echo ">>> Remember to un-blacklist pcnet32 driver"
echo ">>>"
diff --git a/community/packagekit/PKGBUILD b/community/packagekit/PKGBUILD
index 4f7436675..95957f648 100644
--- a/community/packagekit/PKGBUILD
+++ b/community/packagekit/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 56266 2011-10-04 10:14:17Z jconder $
+# $Id: PKGBUILD 62160 2012-01-17 00:26:49Z jconder $
# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
pkgbase='packagekit'
pkgname=('packagekit' 'packagekit-qt' 'packagekit-qt2' 'packagekit-python')
-pkgver=0.6.19
+pkgver=0.6.21
pkgrel=1
pkgdesc="A system designed to make installation and updates of packages easier."
arch=('i686' 'x86_64' 'mips64el')
@@ -12,20 +12,23 @@ makedepends=('dbus-glib' 'gobject-introspection' 'gtk-doc' 'intltool'
'networkmanager' 'pacman' 'pm-utils' 'polkit' 'python2' 'qt'
'shared-mime-info' 'sqlite3' 'udev')
options=('!libtool')
-source=("http://www.packagekit.org/releases/PackageKit-$pkgver.tar.xz")
-sha256sums=('961c6408de08ebaf15c09e74afd06918d699be8974b5c35c2c9663e5b12b5223')
+source=("http://www.packagekit.org/releases/PackageKit-$pkgver.tar.xz"
+ 'alpm.patch')
+sha256sums=('68e5d4d07adf50b1fae6cbc0963555345ba7fc12d86d3e3387874547a5448b8e'
+ 'fbe54a89c3495376a0b939b67fec5b2e57bed46e92b3f4816d797745882481e6')
build() {
cd "$srcdir/PackageKit-$pkgver"
- # TODO: remove when this is fixed upstream
- find -name '*.moc' -print0 | xargs -0 rm
+ patch -Np1 -i "$srcdir/alpm.patch"
sed -i 's@SUBDIRS = test@SUBDIRS =@' 'backends/Makefile.in'
sed -i 's@python @python2 @' 'lib/python/packagekit/Makefile.in'
sed -i 's@bin/python@bin/python2@' 'lib/python/packagekit/'*.py
export PYTHON=/usr/bin/python2
+ # TODO: remove when upstream is patched
+ autoreconf
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@@ -51,7 +54,7 @@ package_packagekit() {
backup=('var/lib/PackageKit/transactions.db'
'etc/PackageKit/alpm.d/pacman.conf'
'etc/PackageKit/alpm.d/repos.list')
- depends=('dbus-glib' 'pacman>=3.5.0' 'pacman<3.6.0' 'polkit'
+ depends=('dbus-glib' 'pacman>=4.0.0' 'pacman<4.1.0' 'polkit'
'shared-mime-info' 'sqlite3' 'udev')
optdepends=('networkmanager')
install='packagekit.install'
diff --git a/community/packagekit/alpm.patch b/community/packagekit/alpm.patch
index 75dee853a..d39ce14e1 100644
--- a/community/packagekit/alpm.patch
+++ b/community/packagekit/alpm.patch
@@ -1,253 +1,3114 @@
+diff --git a/backends/alpm/Makefile.am b/backends/alpm/Makefile.am
+index 5a5468a..d8c3dfc 100644
+--- a/backends/alpm/Makefile.am
++++ b/backends/alpm/Makefile.am
+@@ -5,6 +5,7 @@ PK_BACKEND_REPO_FILE = $(confdir)/repos.list
+ PK_BACKEND_DEFAULT_PATH = "/bin:/usr/bin:/sbin:/usr/sbin"
+ PK_BACKEND_DEFAULT_ROOT = "/"
+ PK_BACKEND_DEFAULT_DBPATH = $(localstatedir)/lib/pacman/
++PK_BACKEND_DEFAULT_GPGDIR = $(sysconfdir)/pacman.d/gnupg/
+ PK_BACKEND_DEFAULT_CACHEDIR = $(localstatedir)/cache/pacman/pkg/
+ PK_BACKEND_DEFAULT_LOGFILE = $(localstatedir)/log/pacman.log
+
+@@ -17,6 +18,7 @@ DEFS = -DPK_BACKEND_CONFIG_FILE=\"$(PK_BACKEND_CONFIG_FILE)\" \
+ -DPK_BACKEND_DEFAULT_PATH=\"$(PK_BACKEND_DEFAULT_PATH)\" \
+ -DPK_BACKEND_DEFAULT_ROOT=\"$(PK_BACKEND_DEFAULT_ROOT)\" \
+ -DPK_BACKEND_DEFAULT_DBPATH=\"$(PK_BACKEND_DEFAULT_DBPATH)\" \
++ -DPK_BACKEND_DEFAULT_GPGDIR=\"$(PK_BACKEND_DEFAULT_GPGDIR)\" \
+ -DPK_BACKEND_DEFAULT_CACHEDIR=\"$(PK_BACKEND_DEFAULT_CACHEDIR)\" \
+ -DPK_BACKEND_DEFAULT_LOGFILE=\"$(PK_BACKEND_DEFAULT_LOGFILE)\" \
+ -DALPM_CACHE_PATH=\"$(ALPM_CACHE_PATH)\" \
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
-index 0077329..ba993f0 100644
+index ba993f0..93f6d95 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
-@@ -29,6 +29,7 @@
+@@ -22,10 +22,13 @@
+ */
+
+ #include <config.h>
++#include <locale.h>
+ #include <glib/gstdio.h>
+ #include <sys/utsname.h>
++#include <pk-backend-spawn.h>
+
+ #include "pk-backend-alpm.h"
++#include "pk-backend-config.h"
#include "pk-backend-databases.h"
#include "pk-backend-error.h"
#include "pk-backend-groups.h"
-+#include "pk-backend-transaction.h"
-
- PkBackend *backend = NULL;
+@@ -35,7 +38,8 @@ PkBackend *backend = NULL;
GCancellable *cancellable = NULL;
-diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
-index 6383175..255f1fb 100644
---- a/backends/alpm/pk-backend-error.c
-+++ b/backends/alpm/pk-backend-error.c
-@@ -25,20 +25,6 @@
+ static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
- #include "pk-backend-error.h"
+-pmdb_t *localdb = NULL;
++alpm_handle_t *alpm = NULL;
++alpm_db_t *localdb = NULL;
--static void
--pk_backend_output_locked (PkBackend *self)
--{
-- gchar *output;
--
-- g_return_if_fail (self != NULL);
+ gchar *xfercmd = NULL;
+ alpm_list_t *holdpkgs = NULL;
+@@ -162,7 +166,7 @@ out:
+ }
+
+ static void
+-pk_backend_logcb (pmloglevel_t level, const gchar *format, va_list args)
++pk_backend_logcb (alpm_loglevel_t level, const gchar *format, va_list args)
+ {
+ gchar *output;
+
+@@ -176,12 +180,12 @@ pk_backend_logcb (pmloglevel_t level, const gchar *format, va_list args)
+
+ /* report important output to PackageKit */
+ switch (level) {
+- case PM_LOG_DEBUG:
+- case PM_LOG_FUNCTION:
++ case ALPM_LOG_DEBUG:
++ case ALPM_LOG_FUNCTION:
+ g_debug ("%s", output);
+ break;
+
+- case PM_LOG_WARNING:
++ case ALPM_LOG_WARNING:
+ g_warning ("%s", output);
+ pk_backend_output (backend, output);
+ break;
+@@ -194,44 +198,99 @@ pk_backend_logcb (pmloglevel_t level, const gchar *format, va_list args)
+ g_free (output);
+ }
+
+-static gboolean
+-pk_backend_initialize_alpm (PkBackend *self, GError **error)
++static void
++pk_backend_configure_environment (PkBackend *self)
+ {
+ struct utsname un;
+- gchar *user_agent;
++ gchar *value;
+
+- g_return_val_if_fail (self != NULL, FALSE);
++ g_return_if_fail (self != NULL);
+
+ /* PATH might have been nuked by D-Bus */
+ g_setenv ("PATH", PK_BACKEND_DEFAULT_PATH, FALSE);
+
+ uname (&un);
+- user_agent = g_strdup_printf ("%s/%s (%s %s) libalpm/%s",
+- PACKAGE_TARNAME, PACKAGE_VERSION,
+- un.sysname, un.machine, alpm_version ());
+- g_setenv ("HTTP_USER_AGENT", user_agent, FALSE);
+- g_free (user_agent);
-
-- output = g_strdup_printf ("If you are certain no other package manager "
-- "is running, you can remove %s\n",
-- alpm_option_get_lockfile ());
-- pk_backend_output (self, output);
-- g_free (output);
--}
+- g_debug ("initializing");
+- if (alpm_initialize () < 0) {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ value = g_strdup_printf ("%s/%s (%s %s) libalpm/%s", PACKAGE_TARNAME,
++ PACKAGE_VERSION, un.sysname, un.machine,
++ alpm_version ());
++ g_setenv ("HTTP_USER_AGENT", value, FALSE);
++ g_free (value);
++
++ value = pk_backend_get_locale (self);
++ if (value != NULL) {
++ setlocale (LC_ALL, value);
++ g_free (value);
++ }
++
++ value = pk_backend_get_proxy_http (self);
++ if (value != NULL) {
++ gchar *uri = pk_backend_spawn_convert_uri (value);
++ g_setenv ("http_proxy", uri, TRUE);
++ g_free (uri);
++ g_free (value);
++ }
++
++ value = pk_backend_get_proxy_https (self);
++ if (value != NULL) {
++ gchar *uri = pk_backend_spawn_convert_uri (value);
++ g_setenv ("https_proxy", uri, TRUE);
++ g_free (uri);
++ g_free (value);
++ }
++
++ value = pk_backend_get_proxy_ftp (self);
++ if (value != NULL) {
++ gchar *uri = pk_backend_spawn_convert_uri (value);
++ g_setenv ("ftp_proxy", uri, TRUE);
++ g_free (uri);
++ g_free (value);
++ }
++
++ value = pk_backend_get_proxy_socks (self);
++ if (value != NULL) {
++ gchar *uri = pk_backend_spawn_convert_uri (value);
++ g_setenv ("socks_proxy", uri, TRUE);
++ g_free (uri);
++ g_free (value);
++ }
++
++ value = pk_backend_get_no_proxy (self);
++ if (value != NULL) {
++ g_setenv ("no_proxy", value, TRUE);
++ g_free (value);
++ }
++
++ value = pk_backend_get_pac (self);
++ if (value != NULL) {
++ gchar *uri = pk_backend_spawn_convert_uri (value);
++ g_setenv ("pac", uri, TRUE);
++ g_free (uri);
++ g_free (value);
++ }
++}
++
++static gboolean
++pk_backend_initialize_alpm (PkBackend *self, GError **error)
++{
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ pk_backend_configure_environment (self);
++
++ alpm = pk_backend_configure (PK_BACKEND_CONFIG_FILE, error);
++ if (alpm == NULL) {
+ return FALSE;
+ }
+
+ backend = self;
+- localdb = alpm_option_get_localdb ();
++ alpm_option_set_logcb (alpm, pk_backend_logcb);
++
++ localdb = alpm_option_get_localdb (alpm);
+ if (localdb == NULL) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s", "local",
+- alpm_strerrorlast ());
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "[%s]: %s", "local",
++ alpm_strerror (errno));
+ }
+
+- /* set some sane defaults */
+- alpm_option_set_logcb (pk_backend_logcb);
+- alpm_option_set_root (PK_BACKEND_DEFAULT_ROOT);
+- alpm_option_set_dbpath (PK_BACKEND_DEFAULT_DBPATH);
+- alpm_option_set_logfile (PK_BACKEND_DEFAULT_LOGFILE);
-
+ return TRUE;
+ }
+
+@@ -240,17 +299,20 @@ pk_backend_destroy_alpm (PkBackend *self)
+ {
+ g_return_if_fail (self != NULL);
+
+- if (backend != NULL) {
+- if (alpm_trans_get_flags () != -1) {
+- alpm_trans_release ();
++ if (alpm != NULL) {
++ if (alpm_trans_get_flags (alpm) < 0) {
++ alpm_trans_release (alpm);
+ }
+- alpm_release ();
++ alpm_release (alpm);
++
++ alpm = NULL;
+ backend = NULL;
+ }
+
+ FREELIST (syncfirsts);
+ FREELIST (holdpkgs);
+ g_free (xfercmd);
++ xfercmd = NULL;
+ }
+
void
- pk_backend_error (PkBackend *self, GError *error)
+diff --git a/backends/alpm/pk-backend-alpm.h b/backends/alpm/pk-backend-alpm.h
+index 23a2724..ecd6d0f 100644
+--- a/backends/alpm/pk-backend-alpm.h
++++ b/backends/alpm/pk-backend-alpm.h
+@@ -28,7 +28,8 @@
+ extern PkBackend *backend;
+ extern GCancellable *cancellable;
+
+-extern pmdb_t *localdb;
++extern alpm_handle_t *alpm;
++extern alpm_db_t *localdb;
+
+ extern gchar *xfercmd;
+ extern alpm_list_t *holdpkgs;
+diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
+index 21a4c54..a51a984 100644
+--- a/backends/alpm/pk-backend-config.c
++++ b/backends/alpm/pk-backend-config.c
+@@ -28,29 +28,44 @@
+
+ #include "pk-backend-alpm.h"
+ #include "pk-backend-config.h"
++#include "pk-backend-databases.h"
+ #include "pk-backend-error.h"
+
+-typedef struct {
+- gboolean checkspace, ilovecandy, showsize, totaldl, usedelta, usesyslog;
++typedef struct
++{
++ gboolean checkspace, ilovecandy, totaldl, usedelta, usesyslog,
++ verbosepkglists;
+
+- gchar *arch, *cleanmethod, *dbpath, *logfile, *root, *xfercmd;
++ gchar *arch, *cleanmethod, *dbpath, *gpgdir, *logfile, *root,
++ *xfercmd;
+
+- alpm_list_t *cachedirs, *holdpkgs, *ignoregrps, *ignorepkgs,
+- *noextracts, *noupgrades, *syncfirsts;
++ alpm_list_t *cachedirs, *holdpkgs, *ignoregroups, *ignorepkgs,
++ *noextracts, *noupgrades, *syncfirsts;
+
+- alpm_list_t *repos;
+- GHashTable *servers;
+- GRegex *xrepo, *xarch;
++ alpm_list_t *repos;
++ GHashTable *servers;
++ GHashTable *levels;
++ GRegex *xrepo, *xarch;
+ } PkBackendConfig;
+
+ static PkBackendConfig *
+ pk_backend_config_new (void)
{
-@@ -86,7 +72,6 @@ pk_backend_error (PkBackend *self, GError *error)
+ PkBackendConfig *config = g_new0 (PkBackendConfig, 1);
++ alpm_siglevel_t *level = g_new0 (alpm_siglevel_t, 1);
++
+ config->servers = g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, NULL);
++ config->levels = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
++ g_free);
++
++ *level |= ALPM_SIG_PACKAGE | ALPM_SIG_PACKAGE_OPTIONAL;
++ *level |= ALPM_SIG_DATABASE | ALPM_SIG_DATABASE_OPTIONAL;
++ g_hash_table_insert (config->levels, g_strdup ("options"), level);
++
+ config->xrepo = g_regex_new ("\\$repo", 0, 0, NULL);
+ config->xarch = g_regex_new ("\\$arch", 0, 0, NULL);
++
+ return config;
+ }
- case PM_ERR_HANDLE_LOCK:
- code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
-- pk_backend_output_locked (self);
- break;
+@@ -76,13 +91,14 @@ pk_backend_config_free (PkBackendConfig *config)
+ g_free (config->arch);
+ g_free (config->cleanmethod);
+ g_free (config->dbpath);
++ g_free (config->gpgdir);
+ g_free (config->logfile);
+ g_free (config->root);
+ g_free (config->xfercmd);
- case PM_ERR_DB_OPEN:
-@@ -187,15 +172,6 @@ pk_backend_error (PkBackend *self, GError *error)
- pk_backend_error_code (self, code, "%s", error->message);
+ FREELIST (config->cachedirs);
+ FREELIST (config->holdpkgs);
+- FREELIST (config->ignoregrps);
++ FREELIST (config->ignoregroups);
+ FREELIST (config->ignorepkgs);
+ FREELIST (config->noextracts);
+ FREELIST (config->noupgrades);
+@@ -92,6 +108,8 @@ pk_backend_config_free (PkBackendConfig *config)
+ g_hash_table_foreach_remove (config->servers,
+ pk_backend_config_servers_free, NULL);
+ g_hash_table_unref (config->servers);
++ g_hash_table_unref (config->levels);
++
+ g_regex_unref (config->xrepo);
+ g_regex_unref (config->xarch);
+ }
+@@ -113,14 +131,6 @@ pk_backend_config_set_ilovecandy (PkBackendConfig *config)
}
--void
--pk_backend_output (PkBackend *self, const gchar *output)
+ static void
+-pk_backend_config_set_showsize (PkBackendConfig *config)
-{
-- g_return_if_fail (self != NULL);
-- g_return_if_fail (output != NULL);
+- g_return_if_fail (config != NULL);
-
-- pk_backend_message (self, PK_MESSAGE_ENUM_UNKNOWN, "%s", output);
+- config->showsize = TRUE;
-}
-
- GQuark
- alpm_error_quark (void)
+-static void
+ pk_backend_config_set_totaldl (PkBackendConfig *config)
{
-diff --git a/backends/alpm/pk-backend-error.h b/backends/alpm/pk-backend-error.h
-index b01b06d..83fe4a5 100644
---- a/backends/alpm/pk-backend-error.h
-+++ b/backends/alpm/pk-backend-error.h
-@@ -32,6 +32,4 @@ enum {
+ g_return_if_fail (config != NULL);
+@@ -144,19 +154,28 @@ pk_backend_config_set_usesyslog (PkBackendConfig *config)
+ config->usesyslog = TRUE;
+ }
- void pk_backend_error (PkBackend *self, GError *error);
+-typedef struct {
+- const gchar *name;
+- void (*func) (PkBackendConfig *config);
++static void
++pk_backend_config_set_verbosepkglists (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->verbosepkglists = TRUE;
++}
++
++typedef struct
++{
++ const gchar *name;
++ void (*func) (PkBackendConfig *config);
+ } PkBackendConfigBoolean;
--void pk_backend_output (PkBackend *self, const gchar *output);
--
- GQuark alpm_error_quark (void);
-diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
-index f919309..fdb840e 100644
---- a/backends/alpm/pk-backend-transaction.c
-+++ b/backends/alpm/pk-backend-transaction.c
-@@ -32,6 +32,9 @@ static off_t dtotal = 0;
- static pmpkg_t *dpkg = NULL;
- static GString *dfiles = NULL;
+ /* keep this in alphabetical order */
+ static const PkBackendConfigBoolean pk_backend_config_boolean_options[] = {
+ { "CheckSpace", pk_backend_config_set_checkspace },
+ { "ILoveCandy", pk_backend_config_set_ilovecandy },
+- { "ShowSize", pk_backend_config_set_showsize },
+ { "TotalDownload", pk_backend_config_set_totaldl },
+ { "UseDelta", pk_backend_config_set_usedelta },
+ { "UseSyslog", pk_backend_config_set_usesyslog },
++ { "VerbosePkgLists", pk_backend_config_set_verbosepkglists },
+ { NULL, NULL }
+ };
+
+@@ -234,6 +253,17 @@ pk_backend_config_set_dbpath (PkBackendConfig *config, const gchar *path)
+ }
-+static pmpkg_t *tpkg = NULL;
-+static GString *toutput = NULL;
+ static void
++pk_backend_config_set_gpgdir (PkBackendConfig *config, const gchar *path)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (path != NULL);
+
- static gchar *
- pk_backend_resolve_path (PkBackend *self, const gchar *basename)
++ g_free (config->gpgdir);
++ config->gpgdir = g_strdup (path);
++}
++
++
++static void
+ pk_backend_config_set_logfile (PkBackendConfig *config, const gchar *filename)
{
-@@ -332,6 +335,53 @@ pk_backend_transaction_conv_cb (pmtransconv_t question, gpointer data1,
+ g_return_if_fail (config != NULL);
+@@ -263,9 +293,10 @@ pk_backend_config_set_xfercmd (PkBackendConfig *config, const gchar *command)
+ config->xfercmd = g_strdup (command);
+ }
+
+-typedef struct {
+- const gchar *name;
+- void (*func) (PkBackendConfig *config, const gchar *s);
++typedef struct
++{
++ const gchar *name;
++ void (*func) (PkBackendConfig *config, const gchar *s);
+ } PkBackendConfigString;
+
+ /* keep this in alphabetical order */
+@@ -274,6 +305,7 @@ static const PkBackendConfigString pk_backend_config_string_options[] = {
+ { "CacheDir", pk_backend_config_add_cachedir },
+ { "CleanMethod", pk_backend_config_set_cleanmethod },
+ { "DBPath", pk_backend_config_set_dbpath },
++ { "GPGDir", pk_backend_config_set_gpgdir },
+ { "LogFile", pk_backend_config_set_logfile },
+ { "RootDir", pk_backend_config_set_root },
+ { "XferCommand", pk_backend_config_set_xfercmd },
+@@ -313,12 +345,12 @@ pk_backend_config_add_holdpkg (PkBackendConfig *config, gchar *package)
+ }
+
+ static void
+-pk_backend_config_add_ignoregrp (PkBackendConfig *config, gchar *group)
++pk_backend_config_add_ignoregroup (PkBackendConfig *config, gchar *group)
+ {
+ g_return_if_fail (config != NULL);
+ g_return_if_fail (group != NULL);
+
+- config->ignoregrps = alpm_list_add (config->ignoregrps, group);
++ config->ignoregroups = alpm_list_add (config->ignoregroups, group);
}
static void
-+pk_backend_output_end (PkBackend *self)
+@@ -357,15 +389,16 @@ pk_backend_config_add_syncfirst (PkBackendConfig *config, gchar *package)
+ config->syncfirsts = alpm_list_add (config->syncfirsts, package);
+ }
+
+-typedef struct {
+- const gchar *name;
+- void (*func) (PkBackendConfig *config, gchar *value);
++typedef struct
+{
-+ g_return_if_fail (self != NULL);
++ const gchar *name;
++ void (*func) (PkBackendConfig *config, gchar *value);
+ } PkBackendConfigList;
+
+ /* keep this in alphabetical order */
+ static const PkBackendConfigList pk_backend_config_list_options[] = {
+ { "HoldPkg", pk_backend_config_add_holdpkg },
+- { "IgnoreGroup", pk_backend_config_add_ignoregrp },
++ { "IgnoreGroup", pk_backend_config_add_ignoregroup },
+ { "IgnorePkg", pk_backend_config_add_ignorepkg },
+ { "NoExtract", pk_backend_config_add_noextract },
+ { "NoUpgrade", pk_backend_config_add_noupgrade },
+@@ -451,7 +484,7 @@ pk_backend_config_repo_add_server (PkBackendConfig *config, const gchar *repo,
+ return FALSE;
+ }
+ } else if (strstr (url, "$arch") != NULL) {
+- g_set_error (e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
++ g_set_error (e, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
+ "url contained $arch, which is not set");
+ }
+
+@@ -463,6 +496,95 @@ pk_backend_config_repo_add_server (PkBackendConfig *config, const gchar *repo,
+ }
+
+ static gboolean
++pk_backend_config_set_siglevel (PkBackendConfig *config, const gchar *section,
++ const gchar *list, GError **error)
++{
++ alpm_siglevel_t *level;
+
-+ tpkg = NULL;
++ g_return_val_if_fail (config != NULL, FALSE);
++ g_return_val_if_fail (section != NULL, FALSE);
++ g_return_val_if_fail (list != NULL, FALSE);
+
-+ if (toutput != NULL) {
-+ pk_backend_output (self, toutput->str);
-+ g_string_free (toutput, TRUE);
-+ toutput = NULL;
++ level = g_hash_table_lookup (config->levels, section);
++ if (level == NULL) {
++ level = g_hash_table_lookup (config->levels, "options");
++ level = g_memdup (level, sizeof (alpm_siglevel_t));
++ g_hash_table_insert (config->levels, g_strdup (section), level);
+ }
-+}
+
-+static void
-+pk_backend_output_start (PkBackend *self, pmpkg_t *pkg)
-+{
-+ g_return_if_fail (self != NULL);
-+ g_return_if_fail (pkg != NULL);
++ while (TRUE) {
++ gboolean package = TRUE, database = TRUE;
++
++ if (g_str_has_prefix (list, "Package")) {
++ database = FALSE;
++ list += 7;
++ } else if (g_str_has_prefix (list, "Database")) {
++ package = FALSE;
++ list += 8;
++ }
++
++ /* this also allows e.g. NeverEver, so put prefixes last */
++ if (g_str_has_prefix (list, "Never") == 0) {
++ if (package) {
++ *level &= ~ALPM_SIG_PACKAGE;
++ }
++ if (database) {
++ *level &= ~ALPM_SIG_DATABASE;
++ }
++ } else if (g_str_has_prefix (list, "Optional") == 0) {
++ if (package) {
++ *level |= ALPM_SIG_PACKAGE;
++ *level |= ALPM_SIG_PACKAGE_OPTIONAL;
++ }
++ if (database) {
++ *level |= ALPM_SIG_DATABASE;
++ *level |= ALPM_SIG_DATABASE_OPTIONAL;
++ }
++ } else if (g_str_has_prefix (list, "Required") == 0) {
++ if (package) {
++ *level |= ALPM_SIG_PACKAGE;
++ *level &= ~ALPM_SIG_PACKAGE_OPTIONAL;
++ }
++ if (database) {
++ *level |= ALPM_SIG_DATABASE;
++ *level &= ~ALPM_SIG_DATABASE_OPTIONAL;
++ }
++ } else if (g_str_has_prefix (list, "TrustedOnly") == 0) {
++ if (package) {
++ *level &= ~ALPM_SIG_PACKAGE_MARGINAL_OK;
++ *level &= ~ALPM_SIG_PACKAGE_UNKNOWN_OK;
++ }
++ if (database) {
++ *level &= ~ALPM_SIG_DATABASE_MARGINAL_OK;
++ *level &= ~ALPM_SIG_DATABASE_UNKNOWN_OK;
++ }
++ } else if (g_str_has_prefix (list, "TrustAll") == 0) {
++ if (package) {
++ *level |= ALPM_SIG_PACKAGE_MARGINAL_OK;
++ *level |= ALPM_SIG_PACKAGE_UNKNOWN_OK;
++ }
++ if (database) {
++ *level |= ALPM_SIG_DATABASE_MARGINAL_OK;
++ *level |= ALPM_SIG_DATABASE_UNKNOWN_OK;
++ }
++ } else {
++ g_set_error (error, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
++ "invalid SigLevel value: %s", list);
++ return FALSE;
++ }
+
-+ if (tpkg != NULL) {
-+ pk_backend_output_end (self);
++ list = strchr (list, ' ');
++ if (list == NULL) {
++ break;
++ } else {
++ ++list;
++ }
+ }
+
-+ tpkg = pkg;
++ return TRUE;
+}
+
++static gboolean
+ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
+ gchar *section, GError **error)
+ {
+@@ -515,7 +637,7 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
+
+ if (*str == '\0') {
+ g_set_error (&e, ALPM_ERROR,
+- PM_ERR_CONFIG_INVALID,
++ ALPM_ERR_CONFIG_INVALID,
+ "empty section name");
+ break;
+ }
+@@ -532,7 +654,7 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
+
+ /* parse a directive */
+ if (section == NULL) {
+- g_set_error (&e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
++ g_set_error (&e, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
+ "directive must belong to a section");
+ break;
+ }
+@@ -590,9 +712,18 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
+ continue;
+ }
+ }
++
++ if (g_strcmp0 (key, "SigLevel") == 0 && str != NULL) {
++ if (!pk_backend_config_set_siglevel (config, section,
++ str, &e)) {
++ break;
++ } else {
++ continue;
++ }
++ }
+
+ /* report errors from above */
+- g_set_error (&e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
++ g_set_error (&e, ALPM_ERROR, ALPM_ERR_CONFIG_INVALID,
+ "unrecognised directive '%s'", key);
+ break;
+ }
+@@ -611,107 +742,100 @@ pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
+ }
+ }
+
+-static gboolean
+-pk_backend_config_configure_paths (PkBackendConfig *config, GError **error)
++static alpm_handle_t *
++pk_backend_config_initialize_alpm (PkBackendConfig *config, GError **error)
+ {
++ alpm_handle_t *handle;
++ enum _alpm_errno_t errno;
++ gsize dir = 1;
++
+ g_return_val_if_fail (config != NULL, FALSE);
+
+- if (config->root == NULL) {
++ if (config->root == NULL || *config->root == '\0') {
+ config->root = g_strdup (PK_BACKEND_DEFAULT_ROOT);
++ } else if (!g_str_has_suffix (config->root, G_DIR_SEPARATOR_S)) {
++ dir = 0;
+ }
+
+- if (alpm_option_set_root (config->root) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "RootDir: %s",
+- alpm_strerrorlast ());
+- return FALSE;
++ if (config->dbpath == NULL) {
++ config->dbpath = g_strconcat (config->root,
++ PK_BACKEND_DEFAULT_DBPATH + dir,
++ NULL);
+ }
+
+- if (config->dbpath == NULL) {
+- config->dbpath = g_strconcat (alpm_option_get_root (),
+- PK_BACKEND_DEFAULT_DBPATH + 1,
++ g_debug ("initializing alpm");
++ handle = alpm_initialize (config->root, config->dbpath, &errno);
++ if (handle == NULL) {
++ g_set_error_literal (error, ALPM_ERROR, errno,
++ alpm_strerror (errno));
++ return handle;
++ }
++
++ if (config->gpgdir == NULL) {
++ config->gpgdir = g_strconcat (config->root,
++ PK_BACKEND_DEFAULT_GPGDIR + dir,
+ NULL);
+ }
+
+- if (alpm_option_set_dbpath (config->dbpath) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "DBPath: %s",
+- alpm_strerrorlast ());
+- return FALSE;
++ if (alpm_option_set_gpgdir (handle, config->gpgdir) < 0) {
++ errno = alpm_errno (handle);
++ g_set_error (error, ALPM_ERROR, errno, "GPGDir: %s",
++ alpm_strerror (errno));
++ return handle;
+ }
+
+ if (config->logfile == NULL) {
+- config->logfile = g_strconcat (alpm_option_get_root (),
+- PK_BACKEND_DEFAULT_LOGFILE + 1,
++ config->logfile = g_strconcat (config->root,
++ PK_BACKEND_DEFAULT_LOGFILE + dir,
+ NULL);
+ }
+
+- alpm_option_set_logfile (config->logfile);
++ if (alpm_option_set_logfile (handle, config->logfile) < 0) {
++ errno = alpm_errno (handle);
++ g_set_error (error, ALPM_ERROR, errno, "LogFile: %s",
++ alpm_strerror (errno));
++ return handle;
++ }
+
+ if (config->cachedirs == NULL) {
+- gchar *path = g_strconcat (alpm_option_get_root (),
+- PK_BACKEND_DEFAULT_CACHEDIR + 1,
++ gchar *path = g_strconcat (config->root,
++ PK_BACKEND_DEFAULT_CACHEDIR + dir,
+ NULL);
+ config->cachedirs = alpm_list_add (NULL, path);
+ }
+
+ /* alpm takes ownership */
+- alpm_option_set_cachedirs (config->cachedirs);
++ if (alpm_option_set_cachedirs (handle, config->cachedirs) < 0) {
++ errno = alpm_errno (handle);
++ g_set_error (error, ALPM_ERROR, errno, "CacheDir: %s",
++ alpm_strerror (errno));
++ return handle;
++ }
+ config->cachedirs = NULL;
+
+- return TRUE;
++ return handle;
+ }
+
+-static gboolean
+-pk_backend_config_configure_repos (PkBackendConfig *config, GError **error)
++static alpm_handle_t *
++pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
+ {
+- const alpm_list_t *i;
++ alpm_handle_t *handle;
++ alpm_siglevel_t *level;
+
+ g_return_val_if_fail (config != NULL, FALSE);
+
+- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+- if (alpm_db_unregister (i->data) < 0) {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
+- return FALSE;
+- }
+- }
+-
+- for (i = config->repos; i != NULL; i = i->next) {
+- const gchar *key;
+- gpointer value;
+- pmdb_t *db;
+- alpm_list_t *j;
+-
+- key = (const gchar *) i->data;
+- value = g_hash_table_lookup (config->servers, key);
+-
+- db = alpm_db_register_sync (key);
+- if (db == NULL) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
+- key, alpm_strerrorlast ());
+- return FALSE;
+- }
+-
+- for (j = (alpm_list_t *) value; j != NULL; j = j->next) {
+- alpm_db_setserver (db, (const gchar *) j->data);
+- }
++ handle = pk_backend_config_initialize_alpm (config, error);
++ if (handle == NULL) {
++ return NULL;
+ }
+
+- return TRUE;
+-}
+-
+-static gboolean
+-pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
+-{
+- g_return_val_if_fail (config != NULL, FALSE);
+-
+- if (!pk_backend_config_configure_paths (config, error)) {
+- return FALSE;
+- }
++ alpm_option_set_checkspace (handle, config->checkspace);
++ alpm_option_set_usedelta (handle, config->usedelta);
++ alpm_option_set_usesyslog (handle, config->usesyslog);
++ alpm_option_set_arch (handle, config->arch);
+
+- alpm_option_set_checkspace (config->checkspace);
+- alpm_option_set_usedelta (config->usedelta);
+- alpm_option_set_usesyslog (config->usesyslog);
+- alpm_option_set_arch (config->arch);
++ level = g_hash_table_lookup (config->levels, "options");
++ alpm_option_set_default_siglevel (handle, *level);
+
+ /* backend takes ownership */
+ g_free (xfercmd);
+@@ -719,9 +843,9 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
+ config->xfercmd = NULL;
+
+ if (xfercmd != NULL) {
+- alpm_option_set_fetchcb (pk_backend_fetchcb);
++ alpm_option_set_fetchcb (handle, pk_backend_fetchcb);
+ } else {
+- alpm_option_set_fetchcb (NULL);
++ alpm_option_set_fetchcb (handle, NULL);
+ }
+
+ /* backend takes ownership */
+@@ -735,41 +859,53 @@ pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
+ config->syncfirsts = NULL;
+
+ /* alpm takes ownership */
+- alpm_option_set_ignoregrps (config->ignoregrps);
+- config->ignoregrps = NULL;
++ alpm_option_set_ignoregroups (handle, config->ignoregroups);
++ config->ignoregroups = NULL;
+
+ /* alpm takes ownership */
+- alpm_option_set_ignorepkgs (config->ignorepkgs);
++ alpm_option_set_ignorepkgs (handle, config->ignorepkgs);
+ config->ignorepkgs = NULL;
+
+ /* alpm takes ownership */
+- alpm_option_set_noextracts (config->noextracts);
++ alpm_option_set_noextracts (handle, config->noextracts);
+ config->noextracts = NULL;
+
+ /* alpm takes ownership */
+- alpm_option_set_noupgrades (config->noupgrades);
++ alpm_option_set_noupgrades (handle, config->noupgrades);
+ config->noupgrades = NULL;
+
+- if (!pk_backend_config_configure_repos (config, error)) {
+- return FALSE;
+- }
++ pk_backend_configure_repos (config->repos, config->servers,
++ config->levels);
+
+- return TRUE;
++ return handle;
+ }
+
+-gboolean
++alpm_handle_t *
+ pk_backend_configure (const gchar *filename, GError **error)
+ {
+ PkBackendConfig *config;
+- gboolean result;
++ alpm_handle_t *handle;
++ GError *e = NULL;
+
+ g_return_val_if_fail (filename != NULL, FALSE);
+
++ g_debug ("reading config from %s", filename);
+ config = pk_backend_config_new ();
+
+- result = pk_backend_config_parse (config, filename, NULL, error) &&
+- pk_backend_config_configure_alpm (config, error);
++ if (pk_backend_config_parse (config, filename, NULL, &e)) {
++ handle = pk_backend_config_configure_alpm (config, &e);
++ } else {
++ handle = NULL;
++ }
+
+ pk_backend_config_free (config);
+- return result;
++ if (e != NULL) {
++ g_propagate_error (error, e);
++ if (handle != NULL) {
++ alpm_release (handle);
++ }
++ return NULL;
++ } else {
++ return handle;
++ }
+ }
+diff --git a/backends/alpm/pk-backend-config.h b/backends/alpm/pk-backend-config.h
+index cb8b8dc..412f59c 100644
+--- a/backends/alpm/pk-backend-config.h
++++ b/backends/alpm/pk-backend-config.h
+@@ -21,6 +21,7 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
++#include <alpm.h>
+ #include <glib.h>
+
+-gboolean pk_backend_configure (const gchar *filename, GError **error);
++alpm_handle_t *pk_backend_configure (const gchar *filename, GError **error);
+diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
+index f6ab06e..ac530c7 100644
+--- a/backends/alpm/pk-backend-databases.c
++++ b/backends/alpm/pk-backend-databases.c
+@@ -26,7 +26,15 @@
+ #include "pk-backend-databases.h"
+ #include "pk-backend-error.h"
+
++typedef struct
++{
++ gchar *name;
++ alpm_list_t *servers;
++ alpm_siglevel_t level;
++} PkBackendRepo;
++
+ static GHashTable *disabled = NULL;
++static alpm_list_t *configured = NULL;
+
+ static GHashTable *
+ disabled_repos_new (GError **error)
+@@ -113,8 +121,8 @@ disabled_repos_free (GHashTable *table)
+
+ /* write all disabled repos line by line */
+ while (g_hash_table_iter_next (&iter, (gpointer *) &line, NULL) &&
+- g_data_output_stream_put_string (output, line, NULL, NULL) &&
+- g_data_output_stream_put_byte (output, '\n', NULL, NULL));
++ g_data_output_stream_put_string (output, line, NULL, NULL) &&
++ g_data_output_stream_put_byte (output, '\n', NULL, NULL));
+
+ g_object_unref (output);
+ g_object_unref (os);
+@@ -128,37 +136,65 @@ disabled_repos_configure (GHashTable *table, GError **error)
+ {
+ const alpm_list_t *i;
+
+- g_debug ("reading config from %s", PK_BACKEND_CONFIG_FILE);
++ g_return_val_if_fail (table != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
+- /* read configuration from pacman.conf file */
+- if (!pk_backend_configure (PK_BACKEND_CONFIG_FILE, error)) {
++ if (alpm_db_unregister_all (alpm) < 0) {
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error_literal (error, ALPM_ERROR, errno,
++ alpm_strerror (errno));
+ return FALSE;
+ }
+
+- /* disable disabled repos */
+- for (i = alpm_option_get_syncdbs (); i != NULL;) {
+- pmdb_t *db = (pmdb_t *) i->data;
+- const gchar *repo = alpm_db_get_name (db);
++ for (i = configured; i != NULL; i = i->next) {
++ PkBackendRepo *repo = (PkBackendRepo *) i->data;
++ alpm_db_t *db;
+
+- if (g_hash_table_lookup (table, repo) == NULL) {
+- /* repo is not disabled */
+- i = i->next;
++ if (g_hash_table_lookup (table, repo->name) != NULL) {
++ /* repo is disabled */
+ continue;
+ }
+
+- if (alpm_db_unregister (db) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
+- repo, alpm_strerrorlast ());
++ db = alpm_db_register_sync (alpm, repo->name, repo->level);
++ if (db == NULL) {
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "[%s]: %s",
++ repo->name, alpm_strerror (errno));
+ return FALSE;
+ }
+
+- /* start again because the list gets invalidated */
+- i = alpm_option_get_syncdbs ();
++ alpm_db_set_servers (db, alpm_list_strdup (repo->servers));
+ }
+
+ return TRUE;
+ }
+
+void
-+pk_backend_output (PkBackend *self, const gchar *output)
++pk_backend_configure_repos (alpm_list_t *repos, GHashTable *servers,
++ GHashTable *levels)
+{
-+ g_return_if_fail (self != NULL);
-+ g_return_if_fail (output != NULL);
++ alpm_list_t *i;
++
++ g_return_if_fail (servers != NULL);
+
-+ if (tpkg != NULL) {
-+ if (toutput == NULL) {
-+ toutput = g_string_new ("<b>");
-+ g_string_append (toutput, alpm_pkg_get_name (tpkg));
-+ g_string_append (toutput, "</b>\n");
++ for (i = repos; i != NULL; i = i->next) {
++ PkBackendRepo *repo = g_new (PkBackendRepo, 1);
++ gpointer value = g_hash_table_lookup (servers, i->data);
++
++ repo->name = g_strdup ((const gchar *) i->data);
++ repo->servers = alpm_list_strdup ((alpm_list_t *) value);
++
++ value = g_hash_table_lookup (levels, i->data);
++ if (value != NULL) {
++ repo->level = *(alpm_siglevel_t *)value;
++ } else {
++ repo->level = ALPM_SIG_USE_DEFAULT;
+ }
+
-+ g_string_append (toutput, output);
-+ } else {
-+ PkMessageEnum type = PK_MESSAGE_ENUM_UNKNOWN;
-+ pk_backend_message (self, type, "%s", output);
++ configured = alpm_list_add (configured, repo);
+ }
+}
+
-+static void
- pk_backend_transaction_dep_resolve (PkBackend *self)
+ gboolean
+ pk_backend_initialize_databases (PkBackend *self, GError **error)
+ {
+@@ -179,11 +215,21 @@ pk_backend_initialize_databases (PkBackend *self, GError **error)
+ void
+ pk_backend_destroy_databases (PkBackend *self)
{
++ alpm_list_t *i;
++
g_return_if_fail (self != NULL);
-@@ -355,6 +405,7 @@ pk_backend_transaction_add_start (PkBackend *self, pmpkg_t *pkg)
- pk_backend_set_status (self, PK_STATUS_ENUM_INSTALL);
- pk_backend_pkg (self, pkg, PK_INFO_ENUM_INSTALLING);
-+ pk_backend_output_start (self, pkg);
+ if (disabled != NULL) {
+ disabled_repos_free (disabled);
+ }
++
++ for (i = configured; i != NULL; i = i->next) {
++ PkBackendRepo *repo = (PkBackendRepo *) i->data;
++ g_free (repo->name);
++ FREELIST (repo->servers);
++ g_free (repo);
++ }
++ alpm_list_free (configured);
}
- static void
-@@ -374,20 +425,16 @@ pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
+ static gboolean
+@@ -210,11 +256,12 @@ pk_backend_get_repo_list_thread (PkBackend *self)
+ gpointer key, value;
- optdepends = alpm_pkg_get_optdepends (pkg);
- if (optdepends != NULL) {
-- GString *depends = g_string_new ("");
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+ g_return_val_if_fail (disabled != NULL, FALSE);
+
+ /* emit enabled repos */
+- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+- pmdb_t *db = (pmdb_t *) i->data;
++ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
++ alpm_db_t *db = (alpm_db_t *) i->data;
+ const gchar *repo = alpm_db_get_name (db);
+
+ if (pk_backend_cancelled (self)) {
+@@ -269,7 +316,7 @@ pk_backend_repo_enable_thread (PkBackend *self)
+ pk_backend_repo_list_changed (self);
+ }
+ } else {
+- int code = PM_ERR_DB_NOT_NULL;
++ int code = ALPM_ERR_DB_NOT_NULL;
+ g_set_error (&error, ALPM_ERROR, code, "[%s]: %s",
+ repo, alpm_strerror (code));
+ }
+@@ -292,21 +339,23 @@ pk_backend_repo_disable_thread (PkBackend *self)
+ GError *error = NULL;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+ g_return_val_if_fail (disabled != NULL, FALSE);
+
+ repo = pk_backend_get_string (self, "repo_id");
+
+ g_return_val_if_fail (repo != NULL, FALSE);
+
+- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+- pmdb_t *db = (pmdb_t *) i->data;
++ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
++ alpm_db_t *db = (alpm_db_t *) i->data;
+ const gchar *name = alpm_db_get_name (db);
+
+ if (g_strcmp0 (repo, name) == 0) {
+ if (alpm_db_unregister (db) < 0) {
+- g_set_error (&error, ALPM_ERROR, pm_errno,
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (&error, ALPM_ERROR, errno,
+ "[%s]: %s", repo,
+- alpm_strerrorlast ());
++ alpm_strerror (errno));
+ } else {
+ g_hash_table_insert (disabled, g_strdup (repo),
+ GINT_TO_POINTER (1));
+@@ -316,7 +365,7 @@ pk_backend_repo_disable_thread (PkBackend *self)
+ }
+
+ if (i == NULL) {
+- int code = PM_ERR_DB_NULL;
++ int code = ALPM_ERR_DB_NULL;
+ g_set_error (&error, ALPM_ERROR, code, "[%s]: %s", repo,
+ alpm_strerror (code));
+ }
+diff --git a/backends/alpm/pk-backend-databases.h b/backends/alpm/pk-backend-databases.h
+index f9eb2f9..2636cae 100644
+--- a/backends/alpm/pk-backend-databases.h
++++ b/backends/alpm/pk-backend-databases.h
+@@ -24,6 +24,10 @@
+ #include <alpm.h>
+ #include <pk-backend.h>
+
++void pk_backend_configure_repos (alpm_list_t *repos,
++ GHashTable *servers,
++ GHashTable *levels);
++
+ gboolean pk_backend_initialize_databases (PkBackend *self,
+ GError **error);
+
+diff --git a/backends/alpm/pk-backend-depends.c b/backends/alpm/pk-backend-depends.c
+index 8bb8567..7c7b45a 100644
+--- a/backends/alpm/pk-backend-depends.c
++++ b/backends/alpm/pk-backend-depends.c
+@@ -29,7 +29,7 @@
+ #include "pk-backend-error.h"
+ #include "pk-backend-packages.h"
+
+-static pmpkg_t *
++static alpm_pkg_t *
+ alpm_list_find_pkg (const alpm_list_t *pkgs, const gchar *name)
+ {
+ g_return_val_if_fail (name != NULL, NULL);
+@@ -50,11 +50,12 @@ pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
+ PkBitfield filters;
+ gboolean recursive, skip_local, skip_remote;
+
+- pmpkg_t *provider;
++ alpm_pkg_t *provider;
+ alpm_list_t *pkgcache, *syncdbs;
+
+ g_return_val_if_fail (self != NULL, pkgs);
+ g_return_val_if_fail (depend != NULL, pkgs);
++ g_return_val_if_fail (alpm != NULL, pkgs);
+ g_return_val_if_fail (localdb != NULL, pkgs);
+
+ recursive = pk_backend_get_bool (self, "recursive");
+@@ -84,8 +85,8 @@ pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
+ }
+
+ /* look for remote dependencies */
+- syncdbs = alpm_option_get_syncdbs ();
+- provider = alpm_find_dbs_satisfier (syncdbs, depend);
++ syncdbs = alpm_option_get_syncdbs (alpm);
++ provider = alpm_find_dbs_satisfier (alpm, syncdbs, depend);
+
+ if (provider != NULL) {
+ if (!skip_remote) {
+@@ -96,7 +97,7 @@ pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
+ pkgs = alpm_list_add (pkgs, provider);
+ }
+ } else {
+- int code = PM_ERR_UNSATISFIED_DEPS;
++ int code = ALPM_ERR_UNSATISFIED_DEPS;
+ g_set_error (error, ALPM_ERROR, code, "%s: %s", depend,
+ alpm_strerror (code));
+ }
+@@ -108,7 +109,7 @@ static alpm_list_t *
+ pk_backend_find_requirer (PkBackend *self, alpm_list_t *pkgs, const gchar *name,
+ GError **error)
+ {
+- pmpkg_t *requirer;
++ alpm_pkg_t *requirer;
+
+ g_return_val_if_fail (self != NULL, pkgs);
+ g_return_val_if_fail (name != NULL, pkgs);
+@@ -127,7 +128,7 @@ pk_backend_find_requirer (PkBackend *self, alpm_list_t *pkgs, const gchar *name,
+ pkgs = alpm_list_add (pkgs, requirer);
+ }
+ } else {
+- int code = PM_ERR_PKG_NOT_FOUND;
++ int code = ALPM_ERR_PKG_NOT_FOUND;
+ g_set_error (error, ALPM_ERROR, code, "%s: %s", name,
+ alpm_strerror (code));
+ }
+@@ -150,7 +151,7 @@ pk_backend_get_depends_thread (PkBackend *self)
+
+ /* construct an initial package list */
+ for (; *packages != NULL; ++packages) {
+- pmpkg_t *pkg;
++ alpm_pkg_t *pkg;
+
+ if (pk_backend_cancelled (self)) {
+ break;
+@@ -206,7 +207,7 @@ pk_backend_get_requires_thread (PkBackend *self)
+
+ /* construct an initial package list */
+ for (; *packages != NULL; ++packages) {
+- pmpkg_t *pkg;
++ alpm_pkg_t *pkg;
+
+ if (pk_backend_cancelled (self)) {
+ break;
+diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
+index 255f1fb..57c4b4b 100644
+--- a/backends/alpm/pk-backend-error.c
++++ b/backends/alpm/pk-backend-error.c
+@@ -33,140 +33,159 @@ pk_backend_error (PkBackend *self, GError *error)
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (error != NULL);
+
+- if (error->domain == ALPM_ERROR) {
+- switch (error->code) {
+- case PM_ERR_MEMORY:
+- case PM_ERR_SYSTEM:
+- code = PK_ERROR_ENUM_OOM;
+- break;
+-
+- case PM_ERR_BADPERMS:
+- code = PK_ERROR_ENUM_NOT_AUTHORIZED;
+- break;
+-
+- case PM_ERR_NOT_A_FILE:
+- case PM_ERR_NOT_A_DIR:
+- code = PK_ERROR_ENUM_FILE_NOT_FOUND;
+- break;
+-
+- case PM_ERR_WRONG_ARGS:
+- case PM_ERR_HANDLE_NULL:
+- case PM_ERR_DB_NULL:
+- case PM_ERR_TRANS_NULL:
+- case PM_ERR_TRANS_NOT_INITIALIZED:
+- case PM_ERR_TRANS_NOT_PREPARED:
+- case PM_ERR_TRANS_NOT_LOCKED:
+- case PM_ERR_INVALID_REGEX:
+- code = PK_ERROR_ENUM_INTERNAL_ERROR;
+- break;
+-
+- case PM_ERR_DISK_SPACE:
+- code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
+- break;
+-
+- case PM_ERR_HANDLE_NOT_NULL:
+- case PM_ERR_DB_NOT_NULL:
+- case PM_ERR_TRANS_NOT_NULL:
+- code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
+- break;
+-
+- case PM_ERR_HANDLE_LOCK:
+- code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
+- break;
-
-- g_string_append_printf (depends,
-- "Optional dependencies for %s:\n",
-- name);
-+ pk_backend_output (self, "Optional dependencies:\n");
+- case PM_ERR_DB_OPEN:
+- case PM_ERR_DB_NOT_FOUND:
+- case PM_ERR_PKG_REPO_NOT_FOUND:
+- code = PK_ERROR_ENUM_REPO_NOT_FOUND;
+- break;
+-
+- case PM_ERR_DB_CREATE:
+- code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
+- break;
+-
+- case PM_ERR_DB_VERSION:
+- case PM_ERR_DB_REMOVE:
+- code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
+- break;
+-
+- case PM_ERR_DB_WRITE:
+- code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
+- break;
+-
+- case PM_ERR_SERVER_BAD_URL:
+- code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
+- break;
+-
+- case PM_ERR_SERVER_NONE:
+- code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
+- break;
+-
+- case PM_ERR_TRANS_DUP_TARGET:
+- case PM_ERR_TRANS_ABORT:
+- code = PK_ERROR_ENUM_TRANSACTION_ERROR;
+- break;
+-
+- case PM_ERR_TRANS_TYPE:
+- code = PK_ERROR_ENUM_CANNOT_CANCEL;
+- break;
+-
+- case PM_ERR_PKG_NOT_FOUND:
+- code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
+- break;
+-
+- case PM_ERR_PKG_IGNORED:
+- code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
+- break;
+-
+- case PM_ERR_PKG_INVALID:
+- case PM_ERR_PKG_OPEN:
+- case PM_ERR_PKG_INVALID_NAME:
+- case PM_ERR_DLT_INVALID:
+- code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
+- break;
+-
+- case PM_ERR_PKG_CANT_REMOVE:
+- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
+- break;
+-
+- case PM_ERR_PKG_INVALID_ARCH:
+- code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
+- break;
+-
+- case PM_ERR_DLT_PATCHFAILED:
+- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
+- break;
+-
+- case PM_ERR_UNSATISFIED_DEPS:
+- code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
+- break;
+-
+- case PM_ERR_CONFLICTING_DEPS:
+- code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
+- break;
+-
+- case PM_ERR_FILE_CONFLICTS:
+- code = PK_ERROR_ENUM_FILE_CONFLICTS;
+- break;
+-
+- case PM_ERR_RETRIEVE:
+- case PM_ERR_LIBFETCH:
+- case PM_ERR_EXTERNAL_DOWNLOAD:
+- code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
+- break;
+-
+- case PM_ERR_LIBARCHIVE:
+- code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
+- break;
+-
+- case PM_ERR_CONFIG_INVALID:
+- code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
+- break;
+-
+- case PM_ERR_PKG_HELD:
+- code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
+- break;
+- }
++ if (error->domain != ALPM_ERROR) {
++ pk_backend_error_code (self, code, "%s", error->message);
++ return;
++ }
++
++ switch (error->code) {
++ case ALPM_ERR_MEMORY:
++ case ALPM_ERR_SYSTEM:
++ code = PK_ERROR_ENUM_OOM;
++ break;
++
++ case ALPM_ERR_BADPERMS:
++ code = PK_ERROR_ENUM_NOT_AUTHORIZED;
++ break;
++
++ case ALPM_ERR_NOT_A_FILE:
++ case ALPM_ERR_NOT_A_DIR:
++ code = PK_ERROR_ENUM_FILE_NOT_FOUND;
++ break;
++
++ case ALPM_ERR_WRONG_ARGS:
++ case ALPM_ERR_HANDLE_NULL:
++ case ALPM_ERR_DB_NULL:
++ case ALPM_ERR_TRANS_NULL:
++ case ALPM_ERR_TRANS_NOT_INITIALIZED:
++ case ALPM_ERR_TRANS_NOT_PREPARED:
++ case ALPM_ERR_TRANS_NOT_LOCKED:
++ case ALPM_ERR_INVALID_REGEX:
++ code = PK_ERROR_ENUM_INTERNAL_ERROR;
++ break;
++
++ case ALPM_ERR_DISK_SPACE:
++ code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
++ break;
++
++ case ALPM_ERR_HANDLE_NOT_NULL:
++ case ALPM_ERR_DB_NOT_NULL:
++ case ALPM_ERR_TRANS_NOT_NULL:
++ code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
++ break;
++
++ case ALPM_ERR_HANDLE_LOCK:
++ code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
++ break;
++
++ case ALPM_ERR_DB_OPEN:
++ case ALPM_ERR_DB_NOT_FOUND:
++ case ALPM_ERR_PKG_REPO_NOT_FOUND:
++ code = PK_ERROR_ENUM_REPO_NOT_FOUND;
++ break;
++
++ case ALPM_ERR_DB_CREATE:
++ code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
++ break;
++
++ case ALPM_ERR_DB_INVALID:
++ case ALPM_ERR_DB_VERSION:
++ case ALPM_ERR_DB_REMOVE:
++ case ALPM_ERR_SERVER_BAD_URL:
++ code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
++ break;
++
++ case ALPM_ERR_DB_INVALID_SIG:
++ case ALPM_ERR_PKG_INVALID_SIG:
++ case ALPM_ERR_SIG_INVALID:
++ code = PK_ERROR_ENUM_BAD_GPG_SIGNATURE;
++ break;
++
++ case ALPM_ERR_DB_WRITE:
++ code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
++ break;
++
++ case ALPM_ERR_SERVER_NONE:
++ code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
++ break;
++
++ case ALPM_ERR_TRANS_DUP_TARGET:
++ case ALPM_ERR_TRANS_ABORT:
++ code = PK_ERROR_ENUM_TRANSACTION_ERROR;
++ break;
++
++ case ALPM_ERR_TRANS_TYPE:
++ code = PK_ERROR_ENUM_CANNOT_CANCEL;
++ break;
++
++ case ALPM_ERR_PKG_NOT_FOUND:
++ code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
++ break;
++
++ case ALPM_ERR_PKG_IGNORED:
++ code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
++ break;
++
++ case ALPM_ERR_PKG_INVALID:
++ case ALPM_ERR_PKG_OPEN:
++ case ALPM_ERR_PKG_INVALID_NAME:
++ case ALPM_ERR_DLT_INVALID:
++ code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
++ break;
++
++ case ALPM_ERR_PKG_INVALID_CHECKSUM:
++ code = PK_ERROR_ENUM_PACKAGE_CORRUPT;
++ break;
++
++ case ALPM_ERR_PKG_CANT_REMOVE:
++ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
++ break;
++
++ case ALPM_ERR_PKG_INVALID_ARCH:
++ code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
++ break;
++
++ case ALPM_ERR_SIG_MISSING:
++ code = PK_ERROR_ENUM_MISSING_GPG_SIGNATURE;
++ break;
++
++ case ALPM_ERR_DLT_PATCHFAILED:
++ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
++ break;
++
++ case ALPM_ERR_UNSATISFIED_DEPS:
++ code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
++ break;
++
++ case ALPM_ERR_CONFLICTING_DEPS:
++ code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
++ break;
++
++ case ALPM_ERR_FILE_CONFLICTS:
++ code = PK_ERROR_ENUM_FILE_CONFLICTS;
++ break;
++
++ case ALPM_ERR_RETRIEVE:
++ case ALPM_ERR_LIBCURL:
++ case ALPM_ERR_EXTERNAL_DOWNLOAD:
++ code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
++ break;
++
++ case ALPM_ERR_LIBARCHIVE:
++ code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
++ break;
++
++ case ALPM_ERR_GPGME:
++ code = PK_ERROR_ENUM_GPG_FAILURE;
++ break;
++
++ case ALPM_ERR_CONFIG_INVALID:
++ code = PK_ERROR_ENUM_FAILED_CONFIG_PARSING;
++ break;
++
++ case ALPM_ERR_PKG_HELD:
++ code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
++ break;
+ }
+
+ pk_backend_error_code (self, code, "%s", error->message);
+diff --git a/backends/alpm/pk-backend-error.h b/backends/alpm/pk-backend-error.h
+index 83fe4a5..0a029e4 100644
+--- a/backends/alpm/pk-backend-error.h
++++ b/backends/alpm/pk-backend-error.h
+@@ -26,8 +26,8 @@
+ #define ALPM_ERROR (alpm_error_quark ())
+
+ enum {
+- PM_ERR_CONFIG_INVALID = 0x10000,
+- PM_ERR_PKG_HELD
++ ALPM_ERR_CONFIG_INVALID = 0x10000,
++ ALPM_ERR_PKG_HELD
+ };
+
+ void pk_backend_error (PkBackend *self, GError *error);
+diff --git a/backends/alpm/pk-backend-groups.c b/backends/alpm/pk-backend-groups.c
+index 59e304d..6056c54 100644
+--- a/backends/alpm/pk-backend-groups.c
++++ b/backends/alpm/pk-backend-groups.c
+@@ -125,7 +125,7 @@ pk_backend_destroy_groups (PkBackend *self)
+ }
+
+ const gchar *
+-alpm_pkg_get_group (pmpkg_t *pkg)
++alpm_pkg_get_group (alpm_pkg_t *pkg)
+ {
+ const alpm_list_t *i;
+
+diff --git a/backends/alpm/pk-backend-groups.h b/backends/alpm/pk-backend-groups.h
+index 28dcf65..d736e37 100644
+--- a/backends/alpm/pk-backend-groups.h
++++ b/backends/alpm/pk-backend-groups.h
+@@ -29,4 +29,4 @@ gboolean pk_backend_initialize_groups (PkBackend *self,
+
+ void pk_backend_destroy_groups (PkBackend *self);
+
+-const gchar *alpm_pkg_get_group (pmpkg_t *pkg);
++const gchar *alpm_pkg_get_group (alpm_pkg_t *pkg);
+diff --git a/backends/alpm/pk-backend-install.c b/backends/alpm/pk-backend-install.c
+index 65a6c11..5b5e2b2 100644
+--- a/backends/alpm/pk-backend-install.c
++++ b/backends/alpm/pk-backend-install.c
+@@ -32,15 +32,19 @@
+ static gint
+ alpm_add_file (const gchar *filename)
+ {
+- pmpkg_t *pkg;
++ alpm_pkg_t *pkg;
++ alpm_siglevel_t level;
+
+ g_return_val_if_fail (filename != NULL, -1);
++ g_return_val_if_fail (alpm != NULL, -1);
+
+- if (alpm_pkg_load (filename, 1, &pkg) < 0) {
++ level = alpm_option_get_default_siglevel (alpm);
++
++ if (alpm_pkg_load (alpm, filename, 1, level, &pkg) < 0) {
+ return -1;
+ }
+
+- if (alpm_add_pkg (pkg) < 0) {
++ if (alpm_add_pkg (alpm, pkg) < 0) {
+ alpm_pkg_free (pkg);
+ return -1;
+ }
+@@ -61,8 +65,9 @@ pk_backend_transaction_add_targets (PkBackend *self, GError **error)
+
+ for (; *paths != NULL; ++paths) {
+ if (alpm_add_file (*paths) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s",
+- *paths, alpm_strerrorlast ());
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "%s: %s",
++ *paths, alpm_strerror (errno));
+ return FALSE;
+ }
+ }
+diff --git a/backends/alpm/pk-backend-packages.c b/backends/alpm/pk-backend-packages.c
+index e9a7c94..2d057aa 100644
+--- a/backends/alpm/pk-backend-packages.c
++++ b/backends/alpm/pk-backend-packages.c
+@@ -27,13 +27,11 @@
+ #include "pk-backend-packages.h"
+
+ gchar *
+-alpm_pkg_build_id (pmpkg_t *pkg)
++alpm_pkg_build_id (alpm_pkg_t *pkg)
+ {
+ const gchar *name, *version, *arch, *repo;
+- pmdb_t *db;
+
+ g_return_val_if_fail (pkg != NULL, NULL);
+- g_return_val_if_fail (localdb != NULL, NULL);
+
+ name = alpm_pkg_get_name (pkg);
+ version = alpm_pkg_get_version (pkg);
+@@ -43,19 +41,18 @@ alpm_pkg_build_id (pmpkg_t *pkg)
+ arch = "any";
+ }
+
+- db = alpm_pkg_get_db (pkg);
+- /* TODO: check */
+- if (db == NULL || db == localdb) {
+- repo = "installed";
++ /* TODO: check correctness */
++ if (alpm_pkg_get_origin (pkg) == PKG_FROM_SYNCDB) {
++ repo = alpm_db_get_name (alpm_pkg_get_db (pkg));
+ } else {
+- repo = alpm_db_get_name (db);
++ repo = "installed";
+ }
+
+ return pk_package_id_build (name, version, arch, repo);
+ }
+
+ void
+-pk_backend_pkg (PkBackend *self, pmpkg_t *pkg, PkInfoEnum info)
++pk_backend_pkg (PkBackend *self, alpm_pkg_t *pkg, PkInfoEnum info)
+ {
+ gchar *package;
+
+@@ -67,16 +64,17 @@ pk_backend_pkg (PkBackend *self, pmpkg_t *pkg, PkInfoEnum info)
+ g_free (package);
+ }
+
+-pmpkg_t *
++alpm_pkg_t *
+ pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
+ {
+ gchar **package;
+ const gchar *repo_id;
+- pmdb_t *db = NULL;
+- pmpkg_t *pkg;
++ alpm_db_t *db = NULL;
++ alpm_pkg_t *pkg;
+
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (package_id != NULL, NULL);
++ g_return_val_if_fail (alpm != NULL, NULL);
+ g_return_val_if_fail (localdb != NULL, NULL);
+
+ package = pk_package_id_split (package_id);
+@@ -86,8 +84,8 @@ pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
+ if (g_strcmp0 (repo_id, "installed") == 0) {
+ db = localdb;
+ } else {
+- const alpm_list_t *i;
+- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ const alpm_list_t *i = alpm_option_get_syncdbs (alpm);
++ for (; i != NULL; i = i->next) {
+ const gchar *repo = alpm_db_get_name (i->data);
+
+ if (g_strcmp0 (repo, repo_id) == 0) {
+@@ -111,7 +109,7 @@ pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
+ }
- for (i = optdepends; i != NULL; i = i->next) {
-- g_string_append_printf (depends, "%s\n",
+ if (pkg == NULL) {
+- int code = PM_ERR_PKG_NOT_FOUND;
++ int code = ALPM_ERR_PKG_NOT_FOUND;
+ g_set_error (error, ALPM_ERROR, code, "%s: %s", package_id,
+ alpm_strerror (code));
+ }
+@@ -123,7 +121,7 @@ static gboolean
+ pk_backend_resolve_package (PkBackend *self, const gchar *package,
+ GError **error)
+ {
+- pmpkg_t *pkg;
++ alpm_pkg_t *pkg;
+
+ PkBitfield filters;
+ gboolean skip_local, skip_remote;
+@@ -142,7 +140,7 @@ pk_backend_resolve_package (PkBackend *self, const gchar *package,
+ PK_FILTER_ENUM_NOT_INSTALLED);
+ skip_remote = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+
+- if (alpm_pkg_get_db (pkg) == localdb) {
++ if (alpm_pkg_get_origin (pkg) == PKG_FROM_LOCALDB) {
+ if (!skip_local) {
+ pk_backend_pkg (self, pkg, PK_INFO_ENUM_INSTALLED);
+ }
+@@ -158,7 +156,7 @@ pk_backend_resolve_package (PkBackend *self, const gchar *package,
+ static gboolean
+ pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
+ {
+- pmpkg_t *pkg;
++ alpm_pkg_t *pkg;
+ int code;
+
+ PkBitfield filters;
+@@ -166,6 +164,7 @@ pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
+
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (name != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+ g_return_val_if_fail (localdb != NULL, FALSE);
+
+ filters = pk_backend_get_uint (self, "filters");
+@@ -180,8 +179,8 @@ pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
+ return TRUE;
+ }
+ } else if (!skip_remote) {
+- const alpm_list_t *i;
+- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ const alpm_list_t *i = alpm_option_get_syncdbs (alpm);
++ for (; i != NULL; i = i->next) {
+ pkg = alpm_db_get_pkg (i->data, name);
+ if (pkg != NULL) {
+ pk_backend_pkg (self, pkg,
+@@ -191,7 +190,7 @@ pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
+ }
+ }
+
+- code = PM_ERR_PKG_NOT_FOUND;
++ code = ALPM_ERR_PKG_NOT_FOUND;
+ g_set_error (error, ALPM_ERROR, code, "%s: %s", name,
+ alpm_strerror (code));
+ return FALSE;
+@@ -254,7 +253,7 @@ pk_backend_get_details_thread (PkBackend *self)
+ g_return_val_if_fail (packages != NULL, FALSE);
+
+ for (; *packages != NULL; ++packages) {
+- pmpkg_t *pkg;
++ alpm_pkg_t *pkg;
+ const alpm_list_t *i;
+
+ GString *licenses;
+@@ -286,7 +285,7 @@ pk_backend_get_details_thread (PkBackend *self)
+ desc = alpm_pkg_get_desc (pkg);
+ url = alpm_pkg_get_url (pkg);
+
+- if (alpm_pkg_get_db (pkg) == localdb) {
++ if (alpm_pkg_get_origin (pkg) == PKG_FROM_LOCALDB) {
+ size = alpm_pkg_get_isize (pkg);
+ } else {
+ size = alpm_pkg_download_size (pkg);
+@@ -317,17 +316,19 @@ pk_backend_get_files_thread (PkBackend *self)
+ GError *error = NULL;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ packages = pk_backend_get_strv (self, "package_ids");
+
+ g_return_val_if_fail (packages != NULL, FALSE);
+
+ for (; *packages != NULL; ++packages) {
+- pmpkg_t *pkg;
+- const alpm_list_t *i;
++ alpm_pkg_t *pkg;
++ const gchar *root;
+
+ GString *files;
+- const gchar *root;
++ alpm_filelist_t *filelist;
++ gsize i;
+
+ if (pk_backend_cancelled (self)) {
+ break;
+@@ -338,11 +339,13 @@ pk_backend_get_files_thread (PkBackend *self)
+ break;
+ }
+
++ root = alpm_option_get_root (alpm);
+ files = g_string_new ("");
+- root = alpm_option_get_root ();
+- for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
+- g_string_append_printf (files, ";%s%s", root,
- (const gchar *) i->data);
-+ const gchar *depend = i->data;
-+ gchar *output = g_strdup_printf ("%s\n", depend);
-+ pk_backend_output (self, output);
-+ g_free (output);
++
++ filelist = alpm_pkg_get_files (pkg);
++ for (i = 0; i < filelist->count; ++i) {
++ const gchar *file = filelist->files[i].name;
++ g_string_append_printf (files, ";%s%s", root, file);
+ }
+
+ pk_backend_files (self, *packages, files->str + 1);
+diff --git a/backends/alpm/pk-backend-packages.h b/backends/alpm/pk-backend-packages.h
+index 4b2d7f8..2d54684 100644
+--- a/backends/alpm/pk-backend-packages.h
++++ b/backends/alpm/pk-backend-packages.h
+@@ -24,10 +24,11 @@
+ #include <alpm.h>
+ #include <pk-backend.h>
+
+-gchar *alpm_pkg_build_id (pmpkg_t *pkg);
++gchar *alpm_pkg_build_id (alpm_pkg_t *pkg);
+
+-void pk_backend_pkg (PkBackend *self, pmpkg_t *pkg,
+- PkInfoEnum info);
++void pk_backend_pkg (PkBackend *self, alpm_pkg_t *pkg,
++ PkInfoEnum info);
+
+-pmpkg_t *pk_backend_find_pkg (PkBackend *self, const gchar *package_id,
+- GError **error);
++alpm_pkg_t *pk_backend_find_pkg (PkBackend *self,
++ const gchar *package_id,
++ GError **error);
+diff --git a/backends/alpm/pk-backend-remove.c b/backends/alpm/pk-backend-remove.c
+index 03329b1..1993061 100644
+--- a/backends/alpm/pk-backend-remove.c
++++ b/backends/alpm/pk-backend-remove.c
+@@ -29,29 +29,14 @@
+ #include "pk-backend-remove.h"
+ #include "pk-backend-transaction.h"
+
+-static gint
+-alpm_remove_local (const gchar *name)
+-{
+- pmpkg_t *pkg;
+-
+- g_return_val_if_fail (name != NULL, -1);
+- g_return_val_if_fail (localdb != NULL, -1);
+-
+- pkg = alpm_db_get_pkg (localdb, name);
+- if (pkg == NULL) {
+- pm_errno = PM_ERR_PKG_NOT_FOUND;
+- return -1;
+- }
+-
+- return alpm_remove_pkg (pkg);
+-}
+-
+ static gboolean
+ pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
+ {
+ gchar **packages;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
+
+ packages = pk_backend_get_strv (self, "package_ids");
+
+@@ -61,9 +46,11 @@ pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
+ gchar **package = pk_package_id_split (*packages);
+ gchar *name = package[PK_PACKAGE_ID_NAME];
+
+- if (alpm_remove_local (name) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s",
+- name, alpm_strerrorlast ());
++ alpm_pkg_t *pkg = alpm_db_get_pkg (localdb, name);
++ if (pkg == NULL || alpm_remove_pkg (alpm, pkg) < 0) {
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "%s: %s", name,
++ alpm_strerror (errno));
+ g_strfreev (package);
+ return FALSE;
+ }
+@@ -79,14 +66,17 @@ pk_backend_transaction_remove_simulate (PkBackend *self, GError **error)
+ {
+ const alpm_list_t *i;
+
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
++
+ if (!pk_backend_transaction_simulate (self, error)) {
+ return FALSE;
+ }
+
+- for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
++ for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
+ const gchar *name = alpm_pkg_get_name (i->data);
+ if (alpm_list_find_str (holdpkgs, name)) {
+- g_set_error (error, ALPM_ERROR, PM_ERR_PKG_HELD,
++ g_set_error (error, ALPM_ERROR, ALPM_ERR_PKG_HELD,
+ "%s: %s", name,
+ "could not remove HoldPkg");
+ return FALSE;
+@@ -99,14 +89,14 @@ pk_backend_transaction_remove_simulate (PkBackend *self, GError **error)
+ static gboolean
+ pk_backend_simulate_remove_packages_thread (PkBackend *self)
+ {
+- pmtransflag_t flags = PM_TRANS_FLAG_CASCADE;
++ alpm_transflag_t flags = ALPM_TRANS_FLAG_CASCADE;
+ GError *error = NULL;
+
+ g_return_val_if_fail (self != NULL, FALSE);
+
+ /* remove unneeded packages that were required by those to be removed */
+ if (pk_backend_get_bool (self, "autoremove")) {
+- flags |= PM_TRANS_FLAG_RECURSE;
++ flags |= ALPM_TRANS_FLAG_RECURSE;
+ }
+
+ if (pk_backend_transaction_initialize (self, flags, &error) &&
+@@ -121,18 +111,18 @@ pk_backend_simulate_remove_packages_thread (PkBackend *self)
+ static gboolean
+ pk_backend_remove_packages_thread (PkBackend *self)
+ {
+- pmtransflag_t flags = 0;
++ alpm_transflag_t flags = 0;
+ GError *error = NULL;
+
+ g_return_val_if_fail (self != NULL, FALSE);
+
+ /* remove packages that depend on those to be removed */
+ if (pk_backend_get_bool (self, "allow_deps")) {
+- flags |= PM_TRANS_FLAG_CASCADE;
++ flags |= ALPM_TRANS_FLAG_CASCADE;
+ }
+ /* remove unneeded packages that were required by those to be removed */
+ if (pk_backend_get_bool (self, "autoremove")) {
+- flags |= PM_TRANS_FLAG_RECURSE;
++ flags |= ALPM_TRANS_FLAG_RECURSE;
+ }
+
+ if (pk_backend_transaction_initialize (self, flags, &error) &&
+diff --git a/backends/alpm/pk-backend-search.c b/backends/alpm/pk-backend-search.c
+index 592472d..c4e80ae 100644
+--- a/backends/alpm/pk-backend-search.c
++++ b/backends/alpm/pk-backend-search.c
+@@ -55,9 +55,10 @@ static gpointer
+ pk_backend_pattern_chroot (const gchar *needle, GError **error)
+ {
+ g_return_val_if_fail (needle != NULL, NULL);
++ g_return_val_if_fail (alpm != NULL, NULL);
+
+ if (G_IS_DIR_SEPARATOR (*needle)) {
+- const gchar *file = needle, *root = alpm_option_get_root ();
++ const gchar *file = needle, *root = alpm_option_get_root (alpm);
+
+ /* adjust needle to the correct prefix */
+ for (; *file == *root; ++file, ++root) {
+@@ -74,7 +75,7 @@ pk_backend_pattern_chroot (const gchar *needle, GError **error)
+ }
+
+ static gboolean
+-pk_backend_match_all (pmpkg_t *pkg, gpointer pattern)
++pk_backend_match_all (alpm_pkg_t *pkg, gpointer pattern)
+ {
+ g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (pattern != NULL, FALSE);
+@@ -84,10 +85,10 @@ pk_backend_match_all (pmpkg_t *pkg, gpointer pattern)
+ }
+
+ static gboolean
+-pk_backend_match_details (pmpkg_t *pkg, GRegex *regex)
++pk_backend_match_details (alpm_pkg_t *pkg, GRegex *regex)
+ {
+ const gchar *desc;
+- pmdb_t *db;
++ alpm_db_t *db;
+ const alpm_list_t *i;
+
+ g_return_val_if_fail (pkg != NULL, FALSE);
+@@ -123,32 +124,38 @@ pk_backend_match_details (pmpkg_t *pkg, GRegex *regex)
+ }
+
+ static gboolean
+-pk_backend_match_file (pmpkg_t *pkg, const gchar *needle)
++pk_backend_match_file (alpm_pkg_t *pkg, const gchar *needle)
+ {
+- const alpm_list_t *i;
++ alpm_filelist_t *files;
++ gsize i;
+
+ g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (needle != NULL, FALSE);
+
++ files = alpm_pkg_get_files (pkg);
++
+ /* match any file the package contains */
+ if (G_IS_DIR_SEPARATOR (*needle)) {
+- for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
++ for (i = 0; i < files->count; ++i) {
++ const gchar *file = files->files[i].name;
+ /* match the full path of file */
+- if (g_strcmp0 (i->data, needle + 1) == 0) {
++ if (g_strcmp0 (file, needle + 1) == 0) {
+ return TRUE;
+ }
+ }
+ } else {
+- for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
+- const gchar *file = strrchr (i->data, G_DIR_SEPARATOR);
+- if (file == NULL) {
+- file = i->data;
++ for (i = 0; i < files->count; ++i) {
++ const gchar *file = files->files[i].name;
++ const gchar *name = strrchr (file, G_DIR_SEPARATOR);
++
++ if (name == NULL) {
++ name = file;
+ } else {
+- ++file;
++ ++name;
+ }
+
+ /* match the basename of file */
+- if (g_strcmp0 (file, needle) == 0) {
++ if (g_strcmp0 (name, needle) == 0) {
+ return TRUE;
+ }
+ }
+@@ -158,7 +165,7 @@ pk_backend_match_file (pmpkg_t *pkg, const gchar *needle)
+ }
+
+ static gboolean
+-pk_backend_match_group (pmpkg_t *pkg, const gchar *needle)
++pk_backend_match_group (alpm_pkg_t *pkg, const gchar *needle)
+ {
+ g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (needle != NULL, FALSE);
+@@ -168,7 +175,7 @@ pk_backend_match_group (pmpkg_t *pkg, const gchar *needle)
+ }
+
+ static gboolean
+-pk_backend_match_name (pmpkg_t *pkg, GRegex *regex)
++pk_backend_match_name (alpm_pkg_t *pkg, GRegex *regex)
+ {
+ g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (regex != NULL, FALSE);
+@@ -178,7 +185,7 @@ pk_backend_match_name (pmpkg_t *pkg, GRegex *regex)
+ }
+
+ static gboolean
+-pk_backend_match_provides (pmpkg_t *pkg, gpointer pattern)
++pk_backend_match_provides (alpm_pkg_t *pkg, gpointer pattern)
+ {
+ /* TODO: implement GStreamer codecs, Pango fonts, etc. */
+ const alpm_list_t *i;
+@@ -215,7 +222,7 @@ typedef enum {
+ } SearchType;
+
+ typedef gpointer (*PatternFunc) (const gchar *needle, GError **error);
+-typedef gboolean (*MatchFunc) (pmpkg_t *pkg, gpointer pattern);
++typedef gboolean (*MatchFunc) (alpm_pkg_t *pkg, gpointer pattern);
+
+ static PatternFunc pattern_funcs[] = {
+ pk_backend_pattern_needle,
+@@ -245,9 +252,9 @@ static MatchFunc match_funcs[] = {
+ };
+
+ static gboolean
+-alpm_pkg_is_local (pmpkg_t *pkg)
++alpm_pkg_is_local (alpm_pkg_t *pkg)
+ {
+- pmpkg_t *local;
++ alpm_pkg_t *local;
+
+ g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (localdb != NULL, FALSE);
+@@ -274,7 +281,7 @@ alpm_pkg_is_local (pmpkg_t *pkg)
+ }
+
+ static void
+-pk_backend_search_db (PkBackend *self, pmdb_t *db, MatchFunc match,
++pk_backend_search_db (PkBackend *self, alpm_db_t *db, MatchFunc match,
+ const alpm_list_t *patterns)
+ {
+ const alpm_list_t *i, *j;
+@@ -326,6 +333,7 @@ pk_backend_search_thread (PkBackend *self)
+ GError *error = NULL;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+ g_return_val_if_fail (localdb != NULL, FALSE);
+
+ needles = pk_backend_get_strv (self, "search");
+@@ -366,7 +374,7 @@ pk_backend_search_thread (PkBackend *self)
+ goto out;
+ }
+
+- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ for (i = alpm_option_get_syncdbs (alpm); i != NULL; i = i->next) {
+ if (pk_backend_cancelled (self)) {
+ break;
}
+diff --git a/backends/alpm/pk-backend-sync.c b/backends/alpm/pk-backend-sync.c
+index 9e1e02b..c770159 100644
+--- a/backends/alpm/pk-backend-sync.c
++++ b/backends/alpm/pk-backend-sync.c
+@@ -30,41 +30,13 @@
+ #include "pk-backend-sync.h"
+ #include "pk-backend-transaction.h"
+
+-static gint
+-alpm_add_dbtarget (const gchar *repo, const gchar *name)
+-{
+- const alpm_list_t *i;
+- pmpkg_t *pkg;
+-
+- g_return_val_if_fail (repo != NULL, -1);
+- g_return_val_if_fail (name != NULL, -1);
+-
+- for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
+- if (g_strcmp0 (alpm_db_get_name (i->data), repo) == 0) {
+- break;
+- }
+- }
+-
+- if (i == NULL) {
+- pm_errno = PM_ERR_DB_NOT_FOUND;
+- return -1;
+- }
-
-- pk_backend_output (self, depends->str);
-- g_string_free (depends, TRUE);
+- pkg = alpm_db_get_pkg (i->data, name);
+- if (pkg == NULL) {
+- pm_errno = PM_ERR_PKG_NOT_FOUND;
+- return -1;
+- }
+-
+- return alpm_add_pkg (pkg);
+-}
+-
+ static gboolean
+ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
+ {
+ gchar **packages;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ packages = pk_backend_get_strv (self, "package_ids");
+
+@@ -75,9 +47,28 @@ pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
+ gchar *repo = package[PK_PACKAGE_ID_DATA];
+ gchar *name = package[PK_PACKAGE_ID_NAME];
+
+- if (alpm_add_dbtarget (repo, name) < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "%s/%s: %s",
+- repo, name, alpm_strerrorlast ());
++ const alpm_list_t *i = alpm_option_get_syncdbs (alpm);
++ alpm_pkg_t *pkg;
++
++ for (; i != NULL; i = i->next) {
++ if (g_strcmp0 (alpm_db_get_name (i->data), repo) == 0) {
++ break;
++ }
++ }
++
++ if (i == NULL) {
++ enum _alpm_errno_t errno = ALPM_ERR_DB_NOT_FOUND;
++ g_set_error (error, ALPM_ERROR, errno, "%s/%s: %s",
++ repo, name, alpm_strerror (errno));
++ g_strfreev (package);
++ return FALSE;
++ }
++
++ pkg = alpm_db_get_pkg (i->data, name);
++ if (pkg == NULL || alpm_add_pkg (alpm, pkg) < 0) {
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "%s/%s: %s",
++ repo, name, alpm_strerror (errno));
+ g_strfreev (package);
+ return FALSE;
+ }
+@@ -93,23 +84,27 @@ pk_backend_download_packages_thread (PkBackend *self)
+ {
+ alpm_list_t *cachedirs;
+ const gchar *directory;
+- pmtransflag_t flags = 0;
++ alpm_transflag_t flags = 0;
+ GError *error = NULL;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ directory = pk_backend_get_string (self, "directory");
+
+ if (directory != NULL) {
+ /* download files to a PackageKit directory */
+ gchar *cachedir = strdup (directory);
+- cachedirs = alpm_list_strdup (alpm_option_get_cachedirs ());
+- alpm_option_set_cachedirs (alpm_list_add (NULL, cachedir));
++ const alpm_list_t *old = alpm_option_get_cachedirs (alpm);
++ alpm_list_t *new = alpm_list_add (NULL, cachedir);
++
++ cachedirs = alpm_list_strdup (old);
++ alpm_option_set_cachedirs (alpm, new);
+ }
+
+- flags |= PM_TRANS_FLAG_NODEPS;
+- flags |= PM_TRANS_FLAG_NOCONFLICTS;
+- flags |= PM_TRANS_FLAG_DOWNLOADONLY;
++ flags |= ALPM_TRANS_FLAG_NODEPS;
++ flags |= ALPM_TRANS_FLAG_NOCONFLICTS;
++ flags |= ALPM_TRANS_FLAG_DOWNLOADONLY;
+
+ if (pk_backend_transaction_initialize (self, flags, &error) &&
+ pk_backend_transaction_sync_targets (self, &error) &&
+@@ -118,7 +113,7 @@ pk_backend_download_packages_thread (PkBackend *self)
+ }
+
+ if (directory != NULL) {
+- alpm_option_set_cachedirs (cachedirs);
++ alpm_option_set_cachedirs (alpm, cachedirs);
}
-+ pk_backend_output_end (self);
+
+ return pk_backend_transaction_finish (self, error);
+@@ -190,16 +185,17 @@ pk_backend_install_packages (PkBackend *self, gboolean only_trusted,
+ }
+
+ static gboolean
+-pk_backend_replaces_dependencies (PkBackend *self, pmpkg_t *pkg)
++pk_backend_replaces_dependencies (PkBackend *self, alpm_pkg_t *pkg)
+ {
+ const alpm_list_t *i, *replaces;
+
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ replaces = alpm_pkg_get_replaces (pkg);
+- for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
+- pmpkg_t *rpkg = (pmpkg_t *) i->data;
++ for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
++ alpm_pkg_t *rpkg = (alpm_pkg_t *) i->data;
+ const gchar *rname = alpm_pkg_get_name (rpkg);
+
+ if (pk_backend_cancelled (self)) {
+@@ -208,7 +204,7 @@ pk_backend_replaces_dependencies (PkBackend *self, pmpkg_t *pkg)
+ continue;
+ }
+
+- if (alpm_pkg_get_reason (rpkg) == PM_PKG_REASON_EXPLICIT) {
++ if (alpm_pkg_get_reason (rpkg) == ALPM_PKG_REASON_EXPLICIT) {
+ return FALSE;
+ }
+ }
+@@ -224,6 +220,7 @@ pk_backend_update_packages_thread (PkBackend *self)
+ GError *error = NULL;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+ g_return_val_if_fail (localdb != NULL, FALSE);
+
+ if (!pk_backend_transaction_initialize (self, 0, &error) ||
+@@ -233,8 +230,8 @@ pk_backend_update_packages_thread (PkBackend *self)
+ }
+
+ /* change the install reason of packages that replace dependencies */
+- for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
+- pmpkg_t *pkg = (pmpkg_t *) i->data;
++ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
++ alpm_pkg_t *pkg = (alpm_pkg_t *) i->data;
+ const gchar *name = alpm_pkg_get_name (pkg);
+
+ if (pk_backend_cancelled (self)) {
+@@ -254,7 +251,8 @@ pk_backend_update_packages_thread (PkBackend *self)
+
+ for (i = asdeps; i != NULL; i = i->next) {
+ const gchar *name = (const gchar *) i->data;
+- alpm_db_set_pkgreason (localdb, name, PM_PKG_REASON_DEPEND);
++ alpm_pkg_t *pkg = alpm_db_get_pkg (localdb, name);
++ alpm_db_set_pkgreason (alpm, pkg, ALPM_PKG_REASON_DEPEND);
+ }
+
+ out:
+diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
+index fdb840e..76402f0 100644
+--- a/backends/alpm/pk-backend-transaction.c
++++ b/backends/alpm/pk-backend-transaction.c
+@@ -29,10 +29,10 @@
+ static off_t dcomplete = 0;
+ static off_t dtotal = 0;
+
+-static pmpkg_t *dpkg = NULL;
++static alpm_pkg_t *dpkg = NULL;
+ static GString *dfiles = NULL;
+
+-static pmpkg_t *tpkg = NULL;
++static alpm_pkg_t *tpkg = NULL;
+ static GString *toutput = NULL;
+
+ static gchar *
+@@ -51,25 +51,26 @@ pk_backend_resolve_path (PkBackend *self, const gchar *basename)
+ }
+
+ static gboolean
+-alpm_pkg_has_basename (pmpkg_t *pkg, const gchar *basename)
++alpm_pkg_has_basename (alpm_pkg_t *pkg, const gchar *basename)
+ {
+ const alpm_list_t *i;
+
+ g_return_val_if_fail (pkg != NULL, FALSE);
+ g_return_val_if_fail (basename != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ if (g_strcmp0 (alpm_pkg_get_filename (pkg), basename) == 0) {
+ return TRUE;
+ }
+
+- if (alpm_option_get_usedelta () == 0) {
++ if (alpm_option_get_usedelta (alpm) == 0) {
+ return FALSE;
+ }
+
+ for (i = alpm_pkg_get_deltas (pkg); i != NULL; i = i->next) {
+- const gchar *patch = alpm_delta_get_filename (i->data);
++ alpm_delta_t *delta = (alpm_delta_t *) i->data;
+
+- if (g_strcmp0 (patch, basename) == 0) {
++ if (g_strcmp0 (delta->delta, basename) == 0) {
+ return TRUE;
+ }
+ }
+@@ -109,6 +110,7 @@ pk_backend_transaction_download_start (PkBackend *self, const gchar *basename)
+
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (basename != NULL);
++ g_return_if_fail (alpm != NULL);
+
+ /* continue or finish downloading the current package */
+ if (dpkg != NULL) {
+@@ -127,8 +129,8 @@ pk_backend_transaction_download_start (PkBackend *self, const gchar *basename)
+ }
+
+ /* figure out what the next package is */
+- for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
+- pmpkg_t *pkg = (pmpkg_t *) i->data;
++ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
++ alpm_pkg_t *pkg = (alpm_pkg_t *) i->data;
+
+ if (alpm_pkg_has_basename (pkg, basename)) {
+ dpkg = pkg;
+@@ -202,16 +204,17 @@ pk_backend_transaction_dlcb (const gchar *basename, off_t complete, off_t total)
+ }
+
+ static void
+-pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
++pk_backend_transaction_progress_cb (alpm_progress_t type, const gchar *target,
+ gint percent, gsize targets, gsize current)
+ {
+ static gint recent = 101;
+ gsize overall = percent + (current - 1) * 100;
+
+ /* TODO: revert when fixed upstream */
+- if (type == PM_TRANS_PROGRESS_CONFLICTS_START ||
+- type == PM_TRANS_PROGRESS_DISKSPACE_START ||
+- type == PM_TRANS_PROGRESS_INTEGRITY_START) {
++ if (type == ALPM_PROGRESS_CONFLICTS_START ||
++ type == ALPM_PROGRESS_DISKSPACE_START ||
++ type == ALPM_PROGRESS_INTEGRITY_START ||
++ type == ALPM_PROGRESS_LOAD_START) {
+ if (current < targets) {
+ overall = percent + current++ * 100;
+ }
+@@ -228,12 +231,13 @@ pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
+
+ /* update transaction progress */
+ switch (type) {
+- case PM_TRANS_PROGRESS_ADD_START:
+- case PM_TRANS_PROGRESS_UPGRADE_START:
+- case PM_TRANS_PROGRESS_REMOVE_START:
+- case PM_TRANS_PROGRESS_CONFLICTS_START:
+- case PM_TRANS_PROGRESS_DISKSPACE_START:
+- case PM_TRANS_PROGRESS_INTEGRITY_START:
++ case ALPM_PROGRESS_ADD_START:
++ case ALPM_PROGRESS_UPGRADE_START:
++ case ALPM_PROGRESS_REMOVE_START:
++ case ALPM_PROGRESS_CONFLICTS_START:
++ case ALPM_PROGRESS_DISKSPACE_START:
++ case ALPM_PROGRESS_INTEGRITY_START:
++ case ALPM_PROGRESS_LOAD_START:
+ if (percent == recent) {
+ break;
+ }
+@@ -253,7 +257,7 @@ pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
+ }
+
+ static void
+-pk_backend_install_ignorepkg (PkBackend *self, pmpkg_t *pkg, gint *result)
++pk_backend_install_ignorepkg (PkBackend *self, alpm_pkg_t *pkg, gint *result)
+ {
+ gchar *output;
+
+@@ -280,50 +284,52 @@ pk_backend_install_ignorepkg (PkBackend *self, pmpkg_t *pkg, gint *result)
}
static void
-@@ -398,6 +445,7 @@ pk_backend_transaction_remove_start (PkBackend *self, pmpkg_t *pkg)
+-pk_backend_select_provider (PkBackend *self, pmdepend_t *dep,
+- const alpm_list_t *providers)
++pk_backend_select_provider (PkBackend *self, const alpm_list_t *providers,
++ alpm_depend_t *depend)
+ {
+ gchar *output;
+
+ g_return_if_fail (self != NULL);
+- g_return_if_fail (dep != NULL);
++ g_return_if_fail (depend != NULL);
+ g_return_if_fail (providers != NULL);
- pk_backend_set_status (self, PK_STATUS_ENUM_REMOVE);
- pk_backend_pkg (self, pkg, PK_INFO_ENUM_REMOVING);
-+ pk_backend_output_start (self, pkg);
+ output = g_strdup_printf ("provider package was selected "
+ "(%s provides %s)\n",
+ alpm_pkg_get_name (providers->data),
+- alpm_dep_get_name (dep));
++ depend->name);
+ pk_backend_output (self, output);
+ g_free (output);
}
static void
-@@ -413,6 +461,7 @@ pk_backend_transaction_remove_done (PkBackend *self, pmpkg_t *pkg)
+-pk_backend_transaction_conv_cb (pmtransconv_t question, gpointer data1,
++pk_backend_transaction_conv_cb (alpm_question_t question, gpointer data1,
+ gpointer data2, gpointer data3, gint *result)
+ {
+ g_return_if_fail (result != NULL);
+ g_return_if_fail (backend != NULL);
+
+ switch (question) {
+- case PM_TRANS_CONV_INSTALL_IGNOREPKG:
++ case ALPM_QUESTION_INSTALL_IGNOREPKG:
+ pk_backend_install_ignorepkg (backend, data1, result);
+ break;
- alpm_logaction ("removed %s (%s)\n", name, version);
+- case PM_TRANS_CONV_REPLACE_PKG:
+- case PM_TRANS_CONV_CONFLICT_PKG:
+- case PM_TRANS_CONV_CORRUPTED_PKG:
+- case PM_TRANS_CONV_LOCAL_NEWER:
++ case ALPM_QUESTION_REPLACE_PKG:
++ case ALPM_QUESTION_CONFLICT_PKG:
++ case ALPM_QUESTION_CORRUPTED_PKG:
++ case ALPM_QUESTION_LOCAL_NEWER:
+ /* these actions are mostly harmless */
+ g_debug ("safe question %d", question);
+ *result = 1;
+ break;
+
+- case PM_TRANS_CONV_REMOVE_PKGS:
++ case ALPM_QUESTION_REMOVE_PKGS:
++ /* TODO: handle keys better */
++ case ALPM_QUESTION_IMPORT_KEY:
+ g_debug ("unsafe question %d", question);
+ *result = 0;
+ break;
+
+- case PM_TRANS_CONV_SELECT_PROVIDER:
++ case ALPM_QUESTION_SELECT_PROVIDER:
+ pk_backend_select_provider (backend, data1, data2);
+ *result = 0;
+ break;
+@@ -349,7 +355,7 @@ pk_backend_output_end (PkBackend *self)
+ }
+
+ static void
+-pk_backend_output_start (PkBackend *self, pmpkg_t *pkg)
++pk_backend_output_start (PkBackend *self, alpm_pkg_t *pkg)
+ {
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pkg != NULL);
+@@ -398,7 +404,7 @@ pk_backend_transaction_test_commit (PkBackend *self)
+ }
+
+ static void
+-pk_backend_transaction_add_start (PkBackend *self, pmpkg_t *pkg)
++pk_backend_transaction_add_start (PkBackend *self, alpm_pkg_t *pkg)
+ {
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pkg != NULL);
+@@ -409,18 +415,19 @@ pk_backend_transaction_add_start (PkBackend *self, pmpkg_t *pkg)
+ }
+
+ static void
+-pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
++pk_backend_transaction_add_done (PkBackend *self, alpm_pkg_t *pkg)
+ {
+ const gchar *name, *version;
+ const alpm_list_t *i, *optdepends;
+
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pkg != NULL);
++ g_return_if_fail (alpm != NULL);
+
+ name = alpm_pkg_get_name (pkg);
+ version = alpm_pkg_get_version (pkg);
+
+- alpm_logaction ("installed %s (%s)\n", name, version);
++ alpm_logaction (alpm, "installed %s (%s)\n", name, version);
pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
-+ pk_backend_output_end (self);
+
+ optdepends = alpm_pkg_get_optdepends (pkg);
+@@ -438,7 +445,7 @@ pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
}
static void
-@@ -438,6 +487,7 @@ pk_backend_transaction_upgrade_start (PkBackend *self, pmpkg_t *pkg,
+-pk_backend_transaction_remove_start (PkBackend *self, pmpkg_t *pkg)
++pk_backend_transaction_remove_start (PkBackend *self, alpm_pkg_t *pkg)
+ {
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pkg != NULL);
+@@ -449,24 +456,25 @@ pk_backend_transaction_remove_start (PkBackend *self, pmpkg_t *pkg)
+ }
+
+ static void
+-pk_backend_transaction_remove_done (PkBackend *self, pmpkg_t *pkg)
++pk_backend_transaction_remove_done (PkBackend *self, alpm_pkg_t *pkg)
+ {
+ const gchar *name, *version;
- pk_backend_set_status (self, state);
- pk_backend_pkg (self, pkg, info);
-+ pk_backend_output_start (self, pkg);
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pkg != NULL);
++ g_return_if_fail (alpm != NULL);
+
+ name = alpm_pkg_get_name (pkg);
+ version = alpm_pkg_get_version (pkg);
+
+- alpm_logaction ("removed %s (%s)\n", name, version);
++ alpm_logaction (alpm, "removed %s (%s)\n", name, version);
+ pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
+ pk_backend_output_end (self);
}
static void
-@@ -463,22 +513,18 @@ pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
- alpm_pkg_get_optdepends (old),
- (alpm_list_fn_cmp) g_strcmp0);
- if (optdepends != NULL) {
-- GString *depends = g_string_new ("");
--
-- g_string_append_printf (depends,
-- "New optional dependencies for %s\n",
-- name);
-+ pk_backend_output (self, "New optional dependencies:\n");
+-pk_backend_transaction_upgrade_start (PkBackend *self, pmpkg_t *pkg,
+- pmpkg_t *old)
++pk_backend_transaction_upgrade_start (PkBackend *self, alpm_pkg_t *pkg,
++ alpm_pkg_t *old)
+ {
+ PkRoleEnum role;
+ PkStatusEnum state;
+@@ -491,8 +499,8 @@ pk_backend_transaction_upgrade_start (PkBackend *self, pmpkg_t *pkg,
+ }
- for (i = optdepends; i != NULL; i = i->next) {
-- g_string_append_printf (depends, "%s\n",
-- (const gchar *) i->data);
-+ const gchar *depend = i->data;
-+ gchar *output = g_strdup_printf ("%s\n", depend);
-+ pk_backend_output (self, output);
-+ g_free (output);
- }
+ static void
+-pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
+- pmpkg_t *old)
++pk_backend_transaction_upgrade_done (PkBackend *self, alpm_pkg_t *pkg,
++ alpm_pkg_t *old)
+ {
+ const gchar *name, *pre, *post;
+ const alpm_list_t *i;
+@@ -501,12 +509,13 @@ pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (pkg != NULL);
+ g_return_if_fail (old != NULL);
++ g_return_if_fail (alpm != NULL);
-- pk_backend_output (self, depends->str);
+ name = alpm_pkg_get_name (pkg);
+ pre = alpm_pkg_get_version (old);
+ post = alpm_pkg_get_version (pkg);
+
+- alpm_logaction ("upgraded %s (%s -> %s)\n", name, pre, post);
++ alpm_logaction (alpm, "upgraded %s (%s -> %s)\n", name, pre, post);
+ pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
+
+ optdepends = alpm_list_diff (alpm_pkg_get_optdepends (pkg),
+@@ -528,53 +537,65 @@ pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
+ }
+
+ static void
+-pk_backend_transaction_event_cb (pmtransevt_t event, gpointer data,
++pk_backend_transaction_setup (PkBackend *self)
++{
++ g_return_if_fail (self != NULL);
++
++ pk_backend_set_status (self, PK_STATUS_ENUM_SETUP);
++}
++
++static void
++pk_backend_transaction_event_cb (alpm_event_t event, gpointer data,
+ gpointer old)
+ {
+ g_return_if_fail (backend != NULL);
+
+ /* figure out the backend status and package info */
+ switch (event) {
+- case PM_TRANS_EVT_CHECKDEPS_START:
+- case PM_TRANS_EVT_RESOLVEDEPS_START:
++ case ALPM_EVENT_CHECKDEPS_START:
++ case ALPM_EVENT_RESOLVEDEPS_START:
+ pk_backend_transaction_dep_resolve (backend);
+ break;
+
+- case PM_TRANS_EVT_FILECONFLICTS_START:
+- case PM_TRANS_EVT_INTERCONFLICTS_START:
+- case PM_TRANS_EVT_INTEGRITY_START:
+- case PM_TRANS_EVT_DELTA_INTEGRITY_START:
+- case PM_TRANS_EVT_DISKSPACE_START:
++ case ALPM_EVENT_FILECONFLICTS_START:
++ case ALPM_EVENT_INTERCONFLICTS_START:
++ case ALPM_EVENT_INTEGRITY_START:
++ case ALPM_EVENT_DELTA_INTEGRITY_START:
++ case ALPM_EVENT_DISKSPACE_START:
+ pk_backend_transaction_test_commit (backend);
+ break;
+
+- case PM_TRANS_EVT_ADD_START:
++ case ALPM_EVENT_ADD_START:
+ pk_backend_transaction_add_start (backend, data);
+ break;
+
+- case PM_TRANS_EVT_ADD_DONE:
++ case ALPM_EVENT_ADD_DONE:
+ pk_backend_transaction_add_done (backend, data);
+ break;
+
+- case PM_TRANS_EVT_REMOVE_START:
++ case ALPM_EVENT_REMOVE_START:
+ pk_backend_transaction_remove_start (backend, data);
+ break;
+
+- case PM_TRANS_EVT_REMOVE_DONE:
++ case ALPM_EVENT_REMOVE_DONE:
+ pk_backend_transaction_remove_done (backend, data);
+ break;
+
+- case PM_TRANS_EVT_UPGRADE_START:
++ case ALPM_EVENT_UPGRADE_START:
+ pk_backend_transaction_upgrade_start (backend, data,
+ old);
+ break;
+
+- case PM_TRANS_EVT_UPGRADE_DONE:
++ case ALPM_EVENT_UPGRADE_DONE:
+ pk_backend_transaction_upgrade_done (backend, data,
+ old);
+ break;
+
+- case PM_TRANS_EVT_SCRIPTLET_INFO:
++ case ALPM_EVENT_LOAD_START:
++ pk_backend_transaction_setup (backend);
++ break;
++
++ case ALPM_EVENT_SCRIPTLET_INFO:
+ pk_backend_output (backend, data);
+ break;
+
+@@ -588,27 +609,32 @@ static void
+ transaction_cancelled_cb (GCancellable *object, gpointer data)
+ {
+ g_return_if_fail (data != NULL);
++ g_return_if_fail (alpm != NULL);
+
+- alpm_trans_interrupt ();
++ alpm_trans_interrupt (alpm);
+ }
+
+ gboolean
+-pk_backend_transaction_initialize (PkBackend *self, pmtransflag_t flags,
++pk_backend_transaction_initialize (PkBackend *self, alpm_transflag_t flags,
+ GError **error)
+ {
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+ g_return_val_if_fail (cancellable != NULL, FALSE);
+
+- if (alpm_trans_init (flags, pk_backend_transaction_event_cb,
+- pk_backend_transaction_conv_cb,
+- pk_backend_transaction_progress_cb) < 0) {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ if (alpm_trans_init (alpm, flags) < 0) {
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error_literal (error, ALPM_ERROR, errno,
++ alpm_strerror (errno));
+ return FALSE;
+ }
+
+- alpm_option_set_dlcb (pk_backend_transaction_dlcb);
+- alpm_option_set_totaldlcb (pk_backend_transaction_totaldlcb);
++ alpm_option_set_eventcb (alpm, pk_backend_transaction_event_cb);
++ alpm_option_set_questioncb (alpm, pk_backend_transaction_conv_cb);
++ alpm_option_set_progresscb (alpm, pk_backend_transaction_progress_cb);
++
++ alpm_option_set_dlcb (alpm, pk_backend_transaction_dlcb);
++ alpm_option_set_totaldlcb (alpm, pk_backend_transaction_totaldlcb);
+
+ g_cancellable_connect (cancellable,
+ G_CALLBACK (transaction_cancelled_cb),
+@@ -649,10 +675,11 @@ alpm_miss_build_list (const alpm_list_t *i)
+ }
+
+ for (; i != NULL; i = i->next) {
+- pmdepend_t *dep = alpm_miss_get_dep (i->data);
+- gchar *depend = alpm_dep_compute_string (dep);
++ alpm_depmissing_t *miss = (alpm_depmissing_t *) i->data;
++ gchar *depend = alpm_dep_compute_string (miss->depend);
++
+ g_string_append_printf (list, "%s <- %s, ", depend,
+- alpm_miss_get_target (i->data));
++ miss->target);
+ free (depend);
+ }
+
+@@ -661,25 +688,21 @@ alpm_miss_build_list (const alpm_list_t *i)
+ }
+
+ static void
+-alpm_dep_free (gpointer dep)
++alpm_depend_free (alpm_depend_t *depend)
+ {
+- /* TODO: remove when implemented in libalpm */
+- free ((gpointer) alpm_dep_get_name (dep));
+- free ((gpointer) alpm_dep_get_version (dep));
+- free (dep);
++ free (depend->name);
++ free (depend->version);
++ free (depend);
+ }
+
+ static void
+-alpm_miss_free (gpointer miss)
++alpm_depmissing_free (gpointer miss)
+ {
+- /* TODO: remove when implemented in libalpm */
+- const gchar *temp = alpm_miss_get_causingpkg (miss);
+- if (temp != NULL) {
+- free ((gpointer) temp);
+- }
++ alpm_depmissing_t *self = (alpm_depmissing_t *) miss;
+
+- free ((gpointer) alpm_miss_get_target (miss));
+- alpm_dep_free (alpm_miss_get_dep (miss));
++ free (self->target);
++ alpm_depend_free (self->depend);
++ free (self->causingpkg);
+ free (miss);
+ }
+
+@@ -695,17 +718,20 @@ alpm_conflict_build_list (const alpm_list_t *i)
+ }
+
+ for (; i != NULL; i = i->next) {
+- const gchar *first = alpm_conflict_get_package1 (i->data);
+- const gchar *second = alpm_conflict_get_package2 (i->data);
+- const gchar *reason = alpm_conflict_get_reason (i->data);
-
-- g_string_free (depends, TRUE);
- alpm_list_free (optdepends);
+- if (g_strcmp0 (first, reason) == 0 ||
+- g_strcmp0 (second, reason) == 0) {
+- g_string_append_printf (list, "%s <-> %s, ", first,
+- second);
++ alpm_conflict_t *conflict = (alpm_conflict_t *) i->data;
++ alpm_depend_t *depend = conflict->reason;
++
++ if (g_strcmp0 (conflict->package1, depend->name) == 0 ||
++ g_strcmp0 (conflict->package2, depend->name) == 0) {
++ g_string_append_printf (list, "%s <-> %s, ",
++ conflict->package1,
++ conflict->package2);
+ } else {
+- g_string_append_printf (list, "%s <-> %s (%s), ", first,
+- second, reason);
++ gchar *reason = alpm_dep_compute_string (depend);
++ g_string_append_printf (list, "%s <-> %s (%s), ",
++ conflict->package1,
++ conflict->package2, reason);
++ g_free (reason);
+ }
}
-+ pk_backend_output_end (self);
+
+@@ -716,10 +742,10 @@ alpm_conflict_build_list (const alpm_list_t *i)
+ static void
+ alpm_conflict_free (gpointer conflict)
+ {
+- /* TODO: remove when implemented in libalpm */
+- free ((gpointer) alpm_conflict_get_package1 (conflict));
+- free ((gpointer) alpm_conflict_get_package2 (conflict));
+- free ((gpointer) alpm_conflict_get_reason (conflict));
++ alpm_conflict_t *self = (alpm_conflict_t *) conflict;
++
++ free (self->package1);
++ free (self->package2);
+ free (conflict);
}
+@@ -735,15 +761,17 @@ alpm_fileconflict_build_list (const alpm_list_t *i)
+ }
+
+ for (; i != NULL; i = i->next) {
+- const gchar *target = alpm_fileconflict_get_target (i->data);
+- const gchar *file = alpm_fileconflict_get_file (i->data);
+- const gchar *ctarget = alpm_fileconflict_get_ctarget (i->data);
+- if (*ctarget != '\0') {
++ alpm_fileconflict_t *conflict = (alpm_fileconflict_t *) i->data;
++
++ if (*conflict->ctarget != '\0') {
+ g_string_append_printf (list, "%s <-> %s (%s), ",
+- target, ctarget, file);
++ conflict->target,
++ conflict->ctarget,
++ conflict->file);
+ } else {
+- g_string_append_printf (list, "%s (%s), ", target,
+- file);
++ g_string_append_printf (list, "%s (%s), ",
++ conflict->target,
++ conflict->file);
+ }
+ }
+
+@@ -754,14 +782,11 @@ alpm_fileconflict_build_list (const alpm_list_t *i)
static void
-@@ -896,6 +942,13 @@ pk_backend_transaction_end (PkBackend *self, GError **error)
- alpm_option_set_dlcb (NULL);
- alpm_option_set_totaldlcb (NULL);
+ alpm_fileconflict_free (gpointer conflict)
+ {
+- /* TODO: remove when implemented in libalpm */
+- const gchar *temp = alpm_fileconflict_get_ctarget (conflict);
+- if (*temp != '\0') {
+- free ((gpointer) temp);
+- }
++ alpm_fileconflict_t *self = (alpm_fileconflict_t *) conflict;
-+ if (dpkg != NULL) {
-+ pk_backend_transaction_download_end (self);
-+ }
-+ if (tpkg != NULL) {
-+ pk_backend_output_end (self);
-+ }
+- free ((gpointer) alpm_fileconflict_get_target (conflict));
+- free ((gpointer) alpm_fileconflict_get_file (conflict));
++ free (self->target);
++ free (self->file);
++ free (self->ctarget);
+ free (conflict);
+ }
+
+@@ -771,29 +796,32 @@ pk_backend_transaction_simulate (PkBackend *self, GError **error)
+ alpm_list_t *data = NULL;
+ gchar *prefix;
+
+- if (alpm_trans_prepare (&data) >= 0) {
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
++
++ if (alpm_trans_prepare (alpm, &data) >= 0) {
+ return TRUE;
+ }
+
+- switch (pm_errno) {
+- case PM_ERR_PKG_INVALID_ARCH:
++ switch (alpm_errno (alpm)) {
++ case ALPM_ERR_PKG_INVALID_ARCH:
+ prefix = alpm_pkg_build_list (data);
+ alpm_list_free (data);
+ break;
+
+- case PM_ERR_UNSATISFIED_DEPS:
++ case ALPM_ERR_UNSATISFIED_DEPS:
+ prefix = alpm_miss_build_list (data);
+- alpm_list_free_inner (data, alpm_miss_free);
++ alpm_list_free_inner (data, alpm_depmissing_free);
+ alpm_list_free (data);
+ break;
+
+- case PM_ERR_CONFLICTING_DEPS:
++ case ALPM_ERR_CONFLICTING_DEPS:
+ prefix = alpm_conflict_build_list (data);
+ alpm_list_free_inner (data, alpm_conflict_free);
+ alpm_list_free (data);
+ break;
+
+- case PM_ERR_FILE_CONFLICTS:
++ case ALPM_ERR_FILE_CONFLICTS:
+ prefix = alpm_fileconflict_build_list (data);
+ alpm_list_free_inner (data, alpm_fileconflict_free);
+ alpm_list_free (data);
+@@ -802,18 +830,21 @@ pk_backend_transaction_simulate (PkBackend *self, GError **error)
+ default:
+ prefix = NULL;
+ if (data != NULL) {
+- g_warning ("unhandled error %d", pm_errno);
++ g_warning ("unhandled error %d",
++ alpm_errno (alpm));
+ }
+ break;
+ }
+
+ if (prefix != NULL) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s", prefix,
+- alpm_strerrorlast ());
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "%s: %s", prefix,
++ alpm_strerror (errno));
+ g_free (prefix);
+ } else {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error_literal (error, ALPM_ERROR, errno,
++ alpm_strerror (errno));
+ }
+
+ return FALSE;
+@@ -826,10 +857,11 @@ pk_backend_transaction_packages (PkBackend *self)
+ PkInfoEnum info;
+
+ g_return_if_fail (self != NULL);
++ g_return_if_fail (alpm != NULL);
+ g_return_if_fail (localdb != NULL);
+
+ /* emit packages that would have been installed */
+- for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
++ for (i = alpm_trans_get_add (alpm); i != NULL; i = i->next) {
+ if (pk_backend_cancelled (self)) {
+ break;
+ } else {
+@@ -856,7 +888,7 @@ pk_backend_transaction_packages (PkBackend *self)
+ }
+
+ /* emit packages that would have been removed */
+- for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
++ for (i = alpm_trans_get_remove (alpm); i != NULL; i = i->next) {
+ if (pk_backend_cancelled (self)) {
+ break;
+ } else {
+@@ -890,6 +922,9 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
+ alpm_list_t *data = NULL;
+ gchar *prefix;
+
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
++
+ if (pk_backend_cancelled (self)) {
+ return TRUE;
+ }
+@@ -897,19 +932,19 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
+ pk_backend_set_allow_cancel (self, FALSE);
+ pk_backend_set_status (self, PK_STATUS_ENUM_RUNNING);
+
+- if (alpm_trans_commit (&data) >= 0) {
++ if (alpm_trans_commit (alpm, &data) >= 0) {
+ return TRUE;
+ }
+
+- switch (pm_errno) {
+- case PM_ERR_FILE_CONFLICTS:
++ switch (alpm_errno (alpm)) {
++ case ALPM_ERR_FILE_CONFLICTS:
+ prefix = alpm_fileconflict_build_list (data);
+ alpm_list_free_inner (data, alpm_fileconflict_free);
+ alpm_list_free (data);
+ break;
+
+- case PM_ERR_PKG_INVALID:
+- case PM_ERR_DLT_INVALID:
++ case ALPM_ERR_PKG_INVALID:
++ case ALPM_ERR_DLT_INVALID:
+ prefix = alpm_string_build_list (data);
+ alpm_list_free (data);
+ break;
+@@ -917,18 +952,21 @@ pk_backend_transaction_commit (PkBackend *self, GError **error)
+ default:
+ prefix = NULL;
+ if (data != NULL) {
+- g_warning ("unhandled error %d", pm_errno);
++ g_warning ("unhandled error %d",
++ alpm_errno (alpm));
+ }
+ break;
+ }
+
+ if (prefix != NULL) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s", prefix,
+- alpm_strerrorlast ());
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "%s: %s", prefix,
++ alpm_strerror (errno));
+ g_free (prefix);
+ } else {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error_literal (error, ALPM_ERROR, errno,
++ alpm_strerror (errno));
+ }
+
+ return FALSE;
+@@ -938,9 +976,14 @@ gboolean
+ pk_backend_transaction_end (PkBackend *self, GError **error)
+ {
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
- if (alpm_trans_release () < 0) {
- g_set_error_literal (error, ALPM_ERROR, pm_errno,
- alpm_strerrorlast ());
++ alpm_option_set_eventcb (alpm, NULL);
++ alpm_option_set_questioncb (alpm, NULL);
++ alpm_option_set_progresscb (alpm, NULL);
+
+- alpm_option_set_dlcb (NULL);
+- alpm_option_set_totaldlcb (NULL);
++ alpm_option_set_dlcb (alpm, NULL);
++ alpm_option_set_totaldlcb (alpm, NULL);
+
+ if (dpkg != NULL) {
+ pk_backend_transaction_download_end (self);
+@@ -949,9 +992,10 @@ pk_backend_transaction_end (PkBackend *self, GError **error)
+ pk_backend_output_end (self);
+ }
+
+- if (alpm_trans_release () < 0) {
+- g_set_error_literal (error, ALPM_ERROR, pm_errno,
+- alpm_strerrorlast ());
++ if (alpm_trans_release (alpm) < 0) {
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error_literal (error, ALPM_ERROR, errno,
++ alpm_strerror (errno));
+ return FALSE;
+ }
+
diff --git a/backends/alpm/pk-backend-transaction.h b/backends/alpm/pk-backend-transaction.h
-index 7bc1af0..6bb1d69 100644
+index 6bb1d69..e3733d6 100644
--- a/backends/alpm/pk-backend-transaction.h
+++ b/backends/alpm/pk-backend-transaction.h
-@@ -41,3 +41,6 @@ gboolean pk_backend_transaction_end (PkBackend *self,
+@@ -25,7 +25,7 @@
+ #include <pk-backend.h>
+
+ gboolean pk_backend_transaction_initialize (PkBackend *self,
+- pmtransflag_t flags,
++ alpm_transflag_t flags,
+ GError **error);
+
+ gboolean pk_backend_transaction_simulate (PkBackend *self,
+diff --git a/backends/alpm/pk-backend-update.c b/backends/alpm/pk-backend-update.c
+index a281953..37ade1e 100644
+--- a/backends/alpm/pk-backend-update.c
++++ b/backends/alpm/pk-backend-update.c
+@@ -34,7 +34,7 @@
+ #include "pk-backend-update.h"
+
+ static gchar *
+-alpm_pkg_build_replaces (pmpkg_t *pkg)
++alpm_pkg_build_replaces (alpm_pkg_t *pkg)
+ {
+ const alpm_list_t *i;
+ GString *string = NULL;
+@@ -44,7 +44,7 @@ alpm_pkg_build_replaces (pmpkg_t *pkg)
- gboolean pk_backend_transaction_finish (PkBackend *self,
- GError *error);
+ /* make a list of the packages that package replaces */
+ for (i = alpm_pkg_get_replaces (pkg); i != NULL; i = i->next) {
+- pmpkg_t *replaces = alpm_db_get_pkg (localdb, i->data);
++ alpm_pkg_t *replaces = alpm_db_get_pkg (localdb, i->data);
+
+ if (replaces != NULL) {
+ gchar *package = alpm_pkg_build_id (replaces);
+@@ -65,7 +65,7 @@ alpm_pkg_build_replaces (pmpkg_t *pkg)
+ }
+
+ static gchar *
+-alpm_pkg_build_urls (pmpkg_t *pkg)
++alpm_pkg_build_urls (alpm_pkg_t *pkg)
+ {
+ GString *string = g_string_new ("");
+ #ifdef ALPM_PACKAGE_URL
+@@ -97,7 +97,7 @@ alpm_pkg_build_urls (pmpkg_t *pkg)
+ }
+
+ static gboolean
+-alpm_pkg_same_pkgver (pmpkg_t *a, pmpkg_t *b)
++alpm_pkg_same_pkgver (alpm_pkg_t *a, alpm_pkg_t *b)
+ {
+ const gchar *version_a, *version_b, *last_a, *last_b;
+ gsize length_a, length_b;
+@@ -145,8 +145,8 @@ pk_backend_get_update_detail_thread (PkBackend *self)
+
+ /* collect details about updates */
+ for (; *packages != NULL; ++packages) {
+- pmpkg_t *pkg, *old;
+- pmdb_t *db;
++ alpm_pkg_t *pkg, *old;
++ alpm_db_t *db;
+
+ gchar *upgrades, *replaces, *urls;
+ const gchar *reason;
+@@ -245,18 +245,19 @@ pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
+ const alpm_list_t *i;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+
+ if (!pk_backend_transaction_initialize (self, 0, error)) {
+ return FALSE;
+ }
+
+- alpm_logaction ("synchronizing package lists\n");
++ alpm_logaction (alpm, "synchronizing package lists\n");
+
+- dlcb = alpm_option_get_dlcb ();
+- totaldlcb = alpm_option_get_totaldlcb ();
++ dlcb = alpm_option_get_dlcb (alpm);
++ totaldlcb = alpm_option_get_totaldlcb (alpm);
+
+ /* set total size to minus the number of databases */
+- i = alpm_option_get_syncdbs ();
++ i = alpm_option_get_syncdbs (alpm);
+ totaldlcb (-alpm_list_count (i));
+
+ for (; i != NULL; i = i->next) {
+@@ -274,9 +275,10 @@ pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
+ /* fake the download when already up to date */
+ dlcb ("", 1, 1);
+ } else if (result < 0) {
+- g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
++ enum _alpm_errno_t errno = alpm_errno (alpm);
++ g_set_error (error, ALPM_ERROR, errno, "[%s]: %s",
+ alpm_db_get_name (i->data),
+- alpm_strerrorlast ());
++ alpm_strerror (errno));
+ break;
+ }
+ }
+@@ -292,20 +294,21 @@ pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
+ }
+
+ static gboolean
+-alpm_pkg_is_ignorepkg (pmpkg_t *pkg)
++alpm_pkg_is_ignorepkg (alpm_pkg_t *pkg)
+ {
+- const alpm_list_t *ignorepkgs, *ignoregrps, *i;
++ const alpm_list_t *ignorepkgs, *ignoregroups, *i;
+
+ g_return_val_if_fail (pkg != NULL, TRUE);
++ g_return_val_if_fail (alpm != NULL, TRUE);
+
+- ignorepkgs = alpm_option_get_ignorepkgs ();
++ ignorepkgs = alpm_option_get_ignorepkgs (alpm);
+ if (alpm_list_find_str (ignorepkgs, alpm_pkg_get_name (pkg)) != NULL) {
+ return TRUE;
+ }
+
+- ignoregrps = alpm_option_get_ignoregrps ();
++ ignoregroups = alpm_option_get_ignoregroups (alpm);
+ for (i = alpm_pkg_get_groups (pkg); i != NULL; i = i->next) {
+- if (alpm_list_find_str (ignoregrps, i->data) != NULL) {
++ if (alpm_list_find_str (ignoregroups, i->data) != NULL) {
+ return TRUE;
+ }
+ }
+@@ -314,7 +317,7 @@ alpm_pkg_is_ignorepkg (pmpkg_t *pkg)
+ }
+
+ static gboolean
+-alpm_pkg_is_syncfirst (pmpkg_t *pkg)
++alpm_pkg_is_syncfirst (alpm_pkg_t *pkg)
+ {
+ g_return_val_if_fail (pkg != NULL, FALSE);
+
+@@ -325,8 +328,18 @@ alpm_pkg_is_syncfirst (pmpkg_t *pkg)
+ return FALSE;
+ }
+
+-static pmpkg_t *
+-alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
++static gboolean
++alpm_pkg_replaces (alpm_pkg_t *pkg, const gchar *name)
++{
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (name != NULL, FALSE);
++
++ return alpm_list_find_str (alpm_pkg_get_replaces (pkg), name) != NULL;
++}
++
+
-+void pk_backend_output (PkBackend *self,
-+ const gchar *output);
++static alpm_pkg_t *
++alpm_pkg_find_update (alpm_pkg_t *pkg, const alpm_list_t *dbs)
+ {
+ const gchar *name;
+ const alpm_list_t *i;
+@@ -336,7 +349,7 @@ alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
+ name = alpm_pkg_get_name (pkg);
+
+ for (; dbs != NULL; dbs = dbs->next) {
+- pmpkg_t *update = alpm_db_get_pkg (dbs->data, name);
++ alpm_pkg_t *update = alpm_db_get_pkg (dbs->data, name);
+
+ if (update != NULL) {
+ if (alpm_pkg_vercmp (alpm_pkg_get_version (update),
+@@ -349,8 +362,7 @@ alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
+
+ i = alpm_db_get_pkgcache (dbs->data);
+ for (; i != NULL; i = i->next) {
+- if (alpm_list_find_str (alpm_pkg_get_replaces (i->data),
+- name) != NULL) {
++ if (alpm_pkg_replaces (i->data, name)) {
+ return i->data;
+ }
+ }
+@@ -367,6 +379,7 @@ pk_backend_get_updates_thread (PkBackend *self)
+ const alpm_list_t *i, *syncdbs;
+
+ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (alpm != NULL, FALSE);
+ g_return_val_if_fail (localdb != NULL, FALSE);
+
+ time (&one_hour_ago);
+@@ -385,9 +398,9 @@ pk_backend_get_updates_thread (PkBackend *self)
+ }
+
+ /* find outdated and replacement packages */
+- syncdbs = alpm_option_get_syncdbs ();
++ syncdbs = alpm_option_get_syncdbs (alpm);
+ for (i = alpm_db_get_pkgcache (localdb); i != NULL; i = i->next) {
+- pmpkg_t *upgrade = alpm_pkg_find_update (i->data, syncdbs);
++ alpm_pkg_t *upgrade = alpm_pkg_find_update (i->data, syncdbs);
+
+ if (pk_backend_cancelled (self)) {
+ break;
diff --git a/community/pax-utils/PKGBUILD b/community/pax-utils/PKGBUILD
new file mode 100644
index 000000000..25e86bdbf
--- /dev/null
+++ b/community/pax-utils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 62235 2012-01-18 17:21:27Z tredaelli $
+# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
+# Contributor: sh0 <mee@sh0.org>
+# Contributor: Maxwel <msg.maxwel@gmail.com>
+
+pkgname=pax-utils
+pkgver=0.2.3
+pkgrel=1
+pkgdesc='ELF related utils for ELF 32/64 binaries that can check files for security relevant properties'
+url='http://hardened.gentoo.org/pax-utils.xml'
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('bash' 'libcap')
+checkdepends=('python2')
+source=("http://distfiles.gentoo.org/distfiles/${pkgname}-${pkgver}.tar.xz")
+md5sums=('d2d27891742d14d81b205cf4e42de28a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/python /python2 /' tests/source/dotest
+ make USE_CAP='yes'
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/pcsc-tools/PKGBUILD b/community/pcsc-tools/PKGBUILD
index a22b0529b..510ffeff2 100644
--- a/community/pcsc-tools/PKGBUILD
+++ b/community/pcsc-tools/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 59828 2011-11-30 21:11:50Z giovanni $
+# $Id: PKGBUILD 61978 2012-01-12 11:22:03Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Lorenzo Nizzi Grifi Gargiolli <lorenzo.nizzi.grifi@gmail.com>
# Contributor: marc0s <marc0s@fsfe.org>
pkgname=pcsc-tools
-pkgver=1.4.17
-pkgrel=5
+pkgver=1.4.18
+pkgrel=1
pkgdesc="PC/SC Architecture smartcard tools"
arch=('i686' 'x86_64' 'mips64el')
url="http://ludovic.rousseau.free.fr/softwares/pcsc-tools/"
@@ -13,7 +13,7 @@ license=('GPL')
depends=('pcsclite' 'pcsc-perl' 'gtk2-perl' 'glib-perl')
makedepends=('pkg-config')
source=("http://ludovic.rousseau.free.fr/softwares/${pkgname}/${pkgname}-${pkgver}.tar.gz")
-md5sums=('2767238e1e737f94d13a91bdab1174ca')
+md5sums=('647ec2779cec69c910906fe5496f4e6c')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/percona-server/PKGBUILD b/community/percona-server/PKGBUILD
index 4a03ded15..3eea37da6 100644
--- a/community/percona-server/PKGBUILD
+++ b/community/percona-server/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
pkgname=percona-server
-pkgver=5.5.18_rel23.0
+pkgver=5.5.19_rel24.0
pkgrel=1
pkgdesc="A backwards-compatible drop-in replacement for MySQL that provides improved performance, diagnostics and instrumentation, and manageability of the server"
arch=('i686' 'x86_64')
@@ -17,7 +17,7 @@ url="http://www.percona.com/software/percona-server/"
options=('!libtool' 'emptydirs')
backup=('etc/mysql/my.cnf')
install=percona.install
-source=("http://www.percona.com/redir/downloads/Percona-Server-${pkgver%.*_*}/Percona-Server-${pkgver/_rel/-}/Percona-Server-${pkgver/_/-}.tar.gz"
+source=("http://www.percona.com/downloads/Percona-Server-${pkgver%.*_*}/Percona-Server-${pkgver/_rel/-}/source/Percona-Server-${pkgver/_/-}.tar.gz"
'mysqld'
'my.cnf')
@@ -98,6 +98,6 @@ package() {
install -dm700 "${pkgdir}"/var/lib/mysql
}
-md5sums=('17b266f5c10d01838522188f313a1ead'
+md5sums=('eb8c21bbb8179e0a4709d51c037e682c'
'243864805611764a7e5883c1dba7afd8'
'1c949c0dbea5206af0db14942d9927b6')
diff --git a/community/perl-file-rsyncp/PKGBUILD b/community/perl-file-rsyncp/PKGBUILD
new file mode 100644
index 000000000..7ed76655e
--- /dev/null
+++ b/community/perl-file-rsyncp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 62351 2012-01-19 15:52:14Z seblu $
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
+
+pkgname=perl-file-rsyncp
+pkgver=0.70
+pkgrel=1
+pkgdesc='Perl interface to rsync file list encoding and decoding'
+arch=('i686' 'x86_64')
+license=('GPL' 'PerlArtistic')
+options=('!emptydirs' '!makeflags')
+url='http://search.cpan.org/dist/File-RsyncP'
+source=("http://search.cpan.org/CPAN/authors/id/C/CB/CBARRATT/File-RsyncP-$pkgver.tar.gz")
+md5sums=('f244372d15a2991b8700f62e73ac51e4')
+
+build() {
+ cd File-RsyncP-$pkgver
+ USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd File-RsyncP-$pkgver
+ make test
+}
+
+package() {
+ cd File-RsyncP-$pkgver
+ make install DESTDIR="$pkgdir/"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/perl-io-dirent/PKGBUILD b/community/perl-io-dirent/PKGBUILD
new file mode 100644
index 000000000..f176527e9
--- /dev/null
+++ b/community/perl-io-dirent/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 62356 2012-01-19 16:17:05Z seblu $
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
+
+pkgname=perl-io-dirent
+pkgver=0.05
+pkgrel=1
+pkgdesc='Perl IO::Dirent module - Access to dirent structs returned by readdir'
+arch=('i686' 'x86_64')
+license=('GPL' 'PerlArtistic')
+url='http://search.cpan.org/~scottw/IO-Dirent/'
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/S/SC/SCOTTW/IO-Dirent-$pkgver.tar.gz")
+md5sums=('248ab22c31a310c3482fd99592ae550c')
+
+build() {
+ cd IO-Dirent-$pkgver
+ USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd IO-Dirent-$pkgver
+ make test
+}
+
+package() {
+ cd IO-Dirent-$pkgver
+ make install DESTDIR="$pkgdir/"
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/pgadmin3/PKGBUILD b/community/pgadmin3/PKGBUILD
index c05aceb50..8293d399f 100644
--- a/community/pgadmin3/PKGBUILD
+++ b/community/pgadmin3/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 55823 2011-09-22 21:47:07Z spupykin $
+# $Id: PKGBUILD 61990 2012-01-13 12:30:02Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
# Contributor: Benjamin Andresen <benny@klapmuetz.org>
# Contributor: bekks <eduard.warkentin@gmx.de>
pkgname=pgadmin3
-pkgver=1.14.0
+pkgver=1.14.1
pkgrel=1
pkgdesc="A comprehensive design and management interface for PostgreSQL database"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,20 +15,20 @@ depends=('wxgtk' 'postgresql-libs' 'libxslt')
makedepends=('libpqxx' 'krb5' 'postgresql')
source=(ftp://ftp.de.postgresql.org/pub/packages/databases/PostgreSQL/pgadmin3/release/v${pkgver}/src/pgadmin3-${pkgver}.tar.gz
pgadmin3.desktop)
-md5sums=('27bf1694809a7d9adf4feec508374df2'
+md5sums=('ba943ac3a1d748bd32123c3d442606b2'
'd07ba4df54baead30b66d19d7450bcad')
build() {
- cd $srcdir/pgadmin3-${pkgver}
- [ -f Makefile ] || ./configure --prefix=/usr
- make
+ cd $srcdir/pgadmin3-${pkgver}
+ [ -f Makefile ] || ./configure --prefix=/usr
+ make
}
package() {
- cd $srcdir/pgadmin3-${pkgver}
- make DESTDIR=$pkgdir/ install
- install -Dm644 i18n/$pkgname.lng $pkgdir/usr/share/pgadmin3/i18n
- install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
- install -Dm644 pgadmin/include/images/pgAdmin3.ico $pkgdir/usr/share/pgadmin3/pixmaps/pgAdmin3.ico
- install -Dm644 $srcdir/pgadmin3.desktop $pkgdir/usr/share/applications/pgadmin3.desktop
+ cd $srcdir/pgadmin3-${pkgver}
+ make DESTDIR=$pkgdir/ install
+ install -Dm644 i18n/$pkgname.lng $pkgdir/usr/share/pgadmin3/i18n
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 pgadmin/include/images/pgAdmin3.ico $pkgdir/usr/share/pgadmin3/pixmaps/pgAdmin3.ico
+ install -Dm644 $srcdir/pgadmin3.desktop $pkgdir/usr/share/applications/pgadmin3.desktop
}
diff --git a/community/pinot/PKGBUILD b/community/pinot/PKGBUILD
index def587def..9b123e6fb 100644
--- a/community/pinot/PKGBUILD
+++ b/community/pinot/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 60809 2011-12-18 16:48:56Z jlichtblau $
+# $Id: PKGBUILD 62141 2012-01-16 19:53:05Z dreisner $
# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Alexander Fehr <pizzapunk gmail com>
# Contributor: William Rea <sillywilly@gmail.com>
@@ -6,7 +6,7 @@
pkgname=pinot
pkgver=0.98
-pkgrel=1
+pkgrel=2
pkgdesc='Personal search and metasearch tool'
arch=('i686' 'x86_64' 'mips64el')
url='http://pinot.berlios.de/'
diff --git a/community/pkgtools/PKGBUILD b/community/pkgtools/PKGBUILD
index facae0d8e..5988a08f9 100644
--- a/community/pkgtools/PKGBUILD
+++ b/community/pkgtools/PKGBUILD
@@ -2,7 +2,7 @@
# Contributor: Daenyth <Daenyth+Arch AT gmail DOT com>
pkgname=pkgtools
pkgver=23
-pkgrel=2
+pkgrel=3
pkgdesc="A collection of scripts for Arch Linux packages"
arch=('i686' 'x86_64' 'mips64el')
url="http://bbs.archlinux.org/viewtopic.php?pid=384196"
diff --git a/community/pokerth/PKGBUILD b/community/pokerth/PKGBUILD
index daf38691f..f1a9d2baf 100644
--- a/community/pokerth/PKGBUILD
+++ b/community/pokerth/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 61635 2012-01-05 05:53:39Z bpiotrowski $
+# $Id: PKGBUILD 62237 2012-01-18 17:30:42Z bpiotrowski $
# Maintainer: Mateusz Herych <heniekk@gmail.com>
# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
# Contributor: Vasco Costa <vasco.costa@meiodigital.com>
pkgname=pokerth
_realname=PokerTH
-pkgver=0.9
+pkgver=0.9.1
pkgrel=1
pkgdesc="Poker game written in C++/QT4"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,7 +15,7 @@ depends=('curl' 'boost-libs>=1.43.0' 'gsasl' 'gnutls'
'qt' 'sdl_mixer' 'libircclient' 'tinyxml')
makedepends=('boost')
source=(http://downloads.sourceforge.net/sourceforge/pokerth/$_realname-$pkgver-src.tar.bz2)
-md5sums=('849eb1a70735177c96bf4608d4637c7c')
+md5sums=('c22ec528ebb47c44b93149b63619004f')
build() {
cd "$srcdir/$_realname-$pkgver-src"
diff --git a/community/python2-basemap/PKGBUILD b/community/python2-basemap/PKGBUILD
index 1c4567710..87f49c01d 100644
--- a/community/python2-basemap/PKGBUILD
+++ b/community/python2-basemap/PKGBUILD
@@ -1,28 +1,25 @@
-# $Id: PKGBUILD 51032 2011-07-04 14:39:21Z stephane $
+# $Id: PKGBUILD 62219 2012-01-18 13:46:59Z stephane $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Julien Morin <jmorin@cp.dias.ie>
pkgname=python2-basemap
-pkgver=1.0.1
-pkgrel=2
+pkgver=1.0.2
+pkgrel=1
pkgdesc="Toolkit for plotting data on map projections"
arch=('i686' 'x86_64' 'mips64el')
url="http://matplotlib.sourceforge.net/basemap/doc/html/"
license=('custom')
depends=('python2-matplotlib' 'geos' 'shapelib' 'python2-numpy' 'python2-httplib2')
-makedepends=('python2-distribute')
optdepends=('python-imaging: Python Imaging Library is only needed for bluemarble and warpimage methods.')
-provides=('python-matplotlib-basemap')
-replaces=('python-matplotlib-basemap')
-conflicts=('python-matplotlib-basemap')
source=("http://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-${pkgver}/basemap-${pkgver}.tar.gz")
-sha1sums=('bd278580c004ec597020e313cc2c568593a018eb')
+sha1sums=('234cdf591e6217de78452d7be2500781c85f5fb4')
build() {
cd "${srcdir}/basemap-${pkgver}"
# Remove the bundled librarie
rm -r geos-?.?.?
+
sed -i "s/lib64/lib/g" setup.py
python2 setup.py config
@@ -40,8 +37,8 @@ package() {
rm "${pkgdir}"/usr/lib/python${_pybasever}/site-packages/mpl_toolkits/__init__.{py,pyc,pyo}
# License
- install -Dm644 LICENSE_data "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- install -Dm644 LICENSE_pyshapelib "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 LICENSE_data "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 LICENSE_pyshp "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 LICENSE_proj4 "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- install -Dm644 README "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 README "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
diff --git a/community/qtspim/PKGBUILD b/community/qtspim/PKGBUILD
new file mode 100644
index 000000000..a1ac5584b
--- /dev/null
+++ b/community/qtspim/PKGBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=qtspim
+pkgver=9.1.5
+pkgrel=1
+pkgdesc="New user interface for spim, a MIPS simulator."
+arch=('i686' 'x86_64')
+url="http://spimsimulator.sourceforge.net/"
+license=('BSD')
+depends=('qt')
+makedepends=('subversion')
+
+__svntrunk="https://spimsimulator.svn.sourceforge.net/svnroot/spimsimulator"
+__svnmod=('QtSpim' 'CPU' 'Documentation' 'Setup')
+__svnrev=592
+
+build() {
+ cd "$srcdir"
+ msg "Connecting to SVN server...."
+
+ for i in "${__svnmod[@]}"; do
+ if [[ -d "$i/.svn" ]]; then
+ (cd "$i" && svn up -r "$__svnrev")
+ else
+ svn co "$__svntrunk/$i" --config-dir ./ -r "$__svnrev" "$i"
+ fi
+ done
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting build..."
+
+ rm -rf "$srcdir/build"
+ mkdir "$srcdir/build"
+ for i in "${__svnmod[@]}"; do
+ cp -r "$srcdir/$i" "$srcdir/build"
+ done
+ cd "$srcdir/build/QtSpim"
+
+ qmake
+ make
+}
+
+package() {
+ cd "$srcdir/build/QtSpim"
+
+ install -Dm755 QtSpim "$pkgdir/usr/bin/qtspim"
+
+ install -dm755 "$pkgdir/usr/share/qtspim"
+ cp -r help "$pkgdir/usr/share/qtspim"
+ rm -rf "$pkgdir/usr/share/qtspim/help/.svn"
+
+ cd "$srcdir/build"
+
+ install -Dm644 Documentation/spim.man "$pkgdir/usr/share/man/man1/qtspim.1"
+ install -Dm644 Setup/qtspim_debian_deployment/qtspim.desktop \
+ "$pkgdir/usr/share/applications/qtspim.desktop"
+ install -Dm644 Setup/qtspim_debian_deployment/copyright \
+ "$pkgdir/usr/share/licenses/$pkgname/copyright"
+ install -Dm644 Setup/NewIcon48x48.png "$pkgdir/usr/share/qtspim/qtspim.png"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/quagga/PKGBUILD b/community/quagga/PKGBUILD
index 2b9f4ec71..fdd3acd26 100644
--- a/community/quagga/PKGBUILD
+++ b/community/quagga/PKGBUILD
@@ -1,9 +1,9 @@
# $Id$
-# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgname=quagga
pkgver=0.99.20
-pkgrel=1
+pkgrel=2
pkgdesc='BGP/OSPF/ISIS/RIP/RIPNG routing daemon suite'
arch=('i686' 'x86_64')
url='http://www.quagga.net'
diff --git a/community/quagga/quagga.install b/community/quagga/quagga.install
index 058f4f1d7..c5d88b976 100644
--- a/community/quagga/quagga.install
+++ b/community/quagga/quagga.install
@@ -1,22 +1,36 @@
+infodir=/usr/share/info
+filelist=(quagga.info quagga.info-1 quagga.info-2)
+
post_install() {
groupadd -r quagga
useradd -MNr -s /bin/false -d /run/quagga -g quagga quagga && passwd -l quagga &>/dev/null
install -d -m 750 -o quagga -g quagga /{run,etc,var/log}/quagga
- :
+ post_upgrade
+}
+
+post_upgrade() {
+ if [[ -x /usr/bin/install-info ]]; then
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+ fi
}
pre_remove() {
for d in zebra ripd ripngd bgpd ospfd ospf6d isisd; do
/etc/rc.d/$d stop &>/dev/null
done
- :
+ if [[ -x /usr/bin/install-info ]]; then
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+ fi
}
post_remove() {
userdel quagga &>/dev/null
groupdel quagga &>/dev/null
rmdir /{etc,var/log}/quagga
- :
}
# vim: ft=sh ts=2 sw=2 et:
diff --git a/community/qucs/PKGBUILD b/community/qucs/PKGBUILD
index 6f544051f..411fc3b37 100644
--- a/community/qucs/PKGBUILD
+++ b/community/qucs/PKGBUILD
@@ -1,6 +1,6 @@
-# $Id: PKGBUILD 43749 2011-03-29 15:48:34Z spupykin $
+# $Id: PKGBUILD 62313 2012-01-19 07:59:07Z arodseth $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Vctor Martnez Romanos <vmromanos@gmail.com>
+# Contributor: Víctor Martínez Romanos <vmromanos@gmail.com>
pkgname=qucs
pkgver=0.0.16
diff --git a/community/r8168-lts/PKGBUILD b/community/r8168-lts/PKGBUILD
index 254303c85..3e9caf37d 100644
--- a/community/r8168-lts/PKGBUILD
+++ b/community/r8168-lts/PKGBUILD
@@ -4,17 +4,17 @@
pkgname=r8168-lts
_pkgname=r8168
pkgver=8.027.00
-pkgrel=2
+pkgrel=3
pkgdesc="A kernel module for Realtek 8168 network cards for kernel26-lts"
url="http://www.realtek.com.tw"
license=("GPL")
arch=('i686' 'x86_64')
-depends=('glibc' "kernel26-lts>=2.6.32" "kernel26-lts<2.6.33")
-makedepends=("kernel26-lts-headers>=2.6.32" "kernel26-lts-headers<2.6.33")
+depends=('glibc' "linux-lts>=3.0" "linux-lts<3.1")
+makedepends=("linux-lts-headers>=3.0" "linux-lts-headers<3.1")
source=(http://r8168.googlecode.com/files/$_pkgname-$pkgver.tar.bz2)
install=$pkgname.install
-_extramodules=extramodules-2.6.32-lts
+_extramodules=extramodules-3.0-lts
_kernver="$(cat /lib/modules/$_extramodules/version || true)"
build() {
diff --git a/community/r8168-lts/r8168-lts.install b/community/r8168-lts/r8168-lts.install
index fd4f92f63..2aab9e1e3 100644
--- a/community/r8168-lts/r8168-lts.install
+++ b/community/r8168-lts/r8168-lts.install
@@ -1,5 +1,5 @@
rebuild_module_dependencies() {
- EXTRAMODULES='extramodules-2.6.32-lts'
+ EXTRAMODULES='extramodules-3.0-lts'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/community/redis/PKGBUILD b/community/redis/PKGBUILD
index f2afabf04..0efcbcd23 100644
--- a/community/redis/PKGBUILD
+++ b/community/redis/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 61232 2011-12-25 17:05:47Z spupykin $
+# $Id: PKGBUILD 62009 2012-01-14 09:42:42Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Jan-Erik Rediger <badboy at archlinux dot us>
# Contributor: nofxx <x@<nick>.com>
pkgname=redis
-pkgver=2.4.5
+pkgver=2.4.6
pkgrel=1
pkgdesc="Advanced key-value store"
arch=('i686' 'x86_64' 'mips64el')
@@ -18,7 +18,7 @@ backup=("etc/redis.conf"
source=("http://redis.googlecode.com/files/${pkgname}-${pkgver}.tar.gz"
"redis.d"
"redis.logrotate")
-md5sums=('babeb1a1d05281b5e00ca0a519cfc3f9'
+md5sums=('41d394074bcde762872ecb5506f35aee'
'9726d06d0a0c60cb5d55a31b3dc1e55d'
'9e2d75b7a9dc421122d673fe520ef17f')
diff --git a/community/roxterm/PKGBUILD b/community/roxterm/PKGBUILD
index 19b42db02..42d7051a2 100644
--- a/community/roxterm/PKGBUILD
+++ b/community/roxterm/PKGBUILD
@@ -1,32 +1,32 @@
-# $Id: PKGBUILD 56631 2011-10-09 09:38:40Z ttopper $
+# $Id: PKGBUILD 62226 2012-01-18 16:36:56Z ttopper $
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
# Contributor: Alexander Fehr <pizzapunk gmail com>
pkgname=roxterm
-pkgver=2.2.2
+pkgver=2.4.2
pkgrel=1
pkgdesc="Tabbed, VTE-based terminal emulator"
arch=('i686' 'x86_64' 'mips64el')
url="http://roxterm.sourceforge.net/"
license=('GPL3')
-depends=('dbus-glib' 'vte3' 'hicolor-icon-theme' 'dbus' 'dbus-core' 'glib2')
-makedepends=('docbook-xsl' 'xmlto' 'po4a')
+depends=('dbus-glib' 'vte3' 'hicolor-icon-theme' 'libsm')
+makedepends=('docbook-xsl' 'xmlto' 'po4a' 'python2' 'python2-lockfile' 'imagemagick' 'librsvg')
install=roxterm.install
-source=(http://downloads.sourceforge.net/roxterm/roxterm-$pkgver.tar.gz)
-sha1sums=('e51f24e045fb7ecc38ea0f17b06ed2de3aec92cf')
-md5sums=('ad3c2e92c588ab312e8b199a9082efcd')
+source=("http://downloads.sourceforge.net/roxterm/roxterm-$pkgver.tar.bz2")
+sha1sums=('663f5ffedebde550317cff4b3e61d2772881cd2f')
+md5sums=('7c3bb1471f814a8bfdfcf169ad18e425')
build() {
cd "${srcdir}/roxterm-${pkgver}"
- ./configure --prefix=/usr
- make
+ python2 mscript.py configure
+ python2 mscript.py build
}
package() {
cd "${srcdir}/roxterm-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ python2 mscript.py install --destdir=${pkgdir} --prefix="usr"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/smalltalk/PKGBUILD b/community/smalltalk/PKGBUILD
index 3c9a6080d..eb69eeed3 100644
--- a/community/smalltalk/PKGBUILD
+++ b/community/smalltalk/PKGBUILD
@@ -1,19 +1,23 @@
-# $Id: PKGBUILD 59718 2011-11-29 13:35:33Z stephane $
+# $Id: PKGBUILD 62241 2012-01-18 17:54:17Z tdziedzic $
# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
# Contributor: mrshpot <mrshpot at gmail dot com>
# Contributor: Michael Fellinger <m.fellinger@gmail.com>
pkgname=smalltalk
pkgver=3.2.4
-pkgrel=3
+pkgrel=4
pkgdesc='A free implementation of Smalltalk-80 by the GNU project'
url='http://smalltalk.gnu.org/'
license=('GPL' 'LGPL')
arch=('i686' 'x86_64' 'mips64el')
-options=('!libtool')
+options=('!libtool' '!emptydirs')
-depends=('gmp' 'libffi' 'libsigsegv' 'readline')
+depends=('gmp' 'libffi' 'libsigsegv' 'readline' 'libltdl')
makedepends=('gdbm' 'gtk2' 'sqlite3' 'tk' 'zip')
+optdepends=('tk: for gst-blox'
+ 'sqlite3'
+ 'sed: for examples'
+ 'gtk2')
source=("ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz")
md5sums=('a36a7c9beddca08dc492b500738efc82')
@@ -30,8 +34,16 @@ build() {
--with-readline \
--with-tcl --with-tk \
--with-x --without-emacs
+
make
}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make check
+}
+
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="$pkgdir" install
diff --git a/community/springlobby/PKGBUILD b/community/springlobby/PKGBUILD
index a9ca89546..d44f0bfcc 100644
--- a/community/springlobby/PKGBUILD
+++ b/community/springlobby/PKGBUILD
@@ -1,21 +1,22 @@
-# $Id: PKGBUILD 61573 2012-01-03 13:42:06Z svenstaro $
+# $Id: PKGBUILD 62116 2012-01-16 02:08:51Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: DuGi <dugi@irc.pl>
pkgname=springlobby
-pkgver=0.140
+pkgver=0.141
pkgrel=1
pkgdesc="A free cross-platform lobby client for the Spring RTS project."
arch=('i686' 'x86_64' 'mips64el')
url="http://springlobby.info/"
license=('GPL2')
-depends=('wxgtk' 'curl' 'libtorrent-rasterbar' 'boost-libs')
+depends=('hicolor-icon-theme' 'wxgtk' 'curl' 'libtorrent-rasterbar' 'boost-libs')
optdepends=('sdl' 'sdl_sound' 'sdl_mixer')
makedepends=('boost' 'asio' 'cmake')
+install=springlobby.install
source=(http://www.springlobby.info/tarballs/${pkgname}-${pkgver}.tar.bz2
springlobby.desktop
springlobby.png)
-md5sums=('e43fe2f9f1c002669d37e10b0fb2a2f5'
+md5sums=('a7e5a9b031a1e72a1df59575289fed3f'
'45f8b59d033931d02e734fe3bd7777dd'
'1f388187539aeb0358b51995e26ed890')
diff --git a/community/springlobby/springlobby.install b/community/springlobby/springlobby.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/community/springlobby/springlobby.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/stk/PKGBUILD b/community/stk/PKGBUILD
index ea4e904e3..1b7a9dba8 100644
--- a/community/stk/PKGBUILD
+++ b/community/stk/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=stk
pkgver=4.4.2
-pkgrel=5
+pkgrel=6
pkgdesc="The Synthesis ToolKit in C++"
arch=('i686' 'x86_64' 'mips64el')
url="http://ccrma.stanford.edu/software/stk/"
@@ -80,6 +80,9 @@ package() {
# install license
install -Dm644 ../$pkgname.license \
"$pkgdir/usr/share/licenses/stk/LICENSE"
+
+ # remove .DS_Store directory: https://bugs.archlinux.org/task/25255
+ rm -rf ${pkgdir}/usr/lib/stk/rawwaves/.DS_Store
}
# vim:set ts=2 sw=2 et:
diff --git a/community/stk/stk.license b/community/stk/stk.license
new file mode 100644
index 000000000..613db6ddd
--- /dev/null
+++ b/community/stk/stk.license
@@ -0,0 +1,39 @@
+The Synthesis ToolKit in C++ (STK) is a set of open source audio
+signal processing and algorithmic synthesis classes written in the
+C++ programming language. STK was designed to facilitate rapid
+development of music synthesis and audio processing software, with
+an emphasis on cross-platform functionality, realtime control,
+ease of use, and educational example code. STK currently runs
+with realtime support (audio and MIDI) on Linux, Macintosh OS X,
+and Windows computer platforms. Generic, non-realtime support has
+been tested under NeXTStep, Sun, and other platforms and should
+work with any standard C++ compiler.
+
+STK WWW site: http://ccrma.stanford.edu/software/stk/
+
+The Synthesis ToolKit in C++ (STK)
+Copyright (c) 1995-2010 Perry R. Cook and Gary P. Scavone
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+Any person wishing to distribute modifications to the Software is
+asked to send the modifications to the original developer so that they
+can be incorporated into the canonical version. This is, however, not
+a binding provision of this license.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/community/stunnel/PKGBUILD b/community/stunnel/PKGBUILD
index e4bb96b47..ed5f0c53c 100644
--- a/community/stunnel/PKGBUILD
+++ b/community/stunnel/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 61258 2011-12-26 17:36:12Z dreisner $
+# $Id: PKGBUILD 61992 2012-01-13 15:53:58Z lfleischer $
# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
# Contributor: Kevin Piche <kevin@archlinux.org>
pkgname=stunnel
-pkgver=4.50
-pkgrel=3
+pkgver=4.52
+pkgrel=1
pkgdesc="A program that allows you to encrypt arbitrary TCP connections inside SSL"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.stunnel.org"
@@ -18,10 +18,10 @@ source=("ftp://ftp.stunnel.org/stunnel/$pkgname-$pkgver.tar.gz"{,.asc}
'stunnel.rc.d'
'stunnel.tmpfiles.conf')
-md5sums=('d68b4565294496a8bdf23c728a679f53'
- 'ea9e85daef0cc96ce21649901b3514f7'
+md5sums=('f5e713dda0e8efa659f372832ecd0c2c'
+ '3e84d222525e724788d3c2b29b899610'
'f15398497e10e080c2406d2fc541660c'
- 'cb647c71ff4cb1e035b6e515d5f13ebf'
+ 'd42a1dda7b44aab73fba670fbcfcc8a6'
'2e065a39998e57727ee79887bbd1751e')
build() {
diff --git a/community/tellico/PKGBUILD b/community/tellico/PKGBUILD
index cf6abf2ea..186518a6f 100644
--- a/community/tellico/PKGBUILD
+++ b/community/tellico/PKGBUILD
@@ -1,12 +1,11 @@
-# $Id: PKGBUILD 61284 2011-12-28 02:21:17Z seblu $
+# $Id: PKGBUILD 62153 2012-01-16 21:08:22Z andrea $
# Maintainer: Ray Rashif <schiv@archlinux.org
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
-# Contributor: mdv
pkgname=tellico
-pkgver=2.3.4
-pkgrel=2
+pkgver=2.3.5
+pkgrel=1
pkgdesc="A collection manager for KDE"
arch=('i686' 'x86_64' 'mips64el')
url="http://tellico-project.org/"
@@ -16,7 +15,7 @@ depends=('kdebase-workspace' 'yaz' 'exempi' 'libksane' 'taglib'
makedepends=('automoc4' 'cmake')
install=$pkgname.install
source=("http://tellico-project.org/files/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('0a955754e89fc96d9745266ec97410c7')
+md5sums=('e6a1835d2622b79c4bfd95271bce858e')
build() {
cd "${srcdir}"
@@ -36,5 +35,3 @@ package() {
# fix python 2.7 path
find "$pkgdir" -iname "*.py" | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
}
-
-# vim:set ts=2 sw=2 et:
diff --git a/community/tellico/tellico.install b/community/tellico/tellico.install
index be3fad925..3f06b8deb 100644
--- a/community/tellico/tellico.install
+++ b/community/tellico/tellico.install
@@ -10,5 +10,3 @@ post_upgrade() {
post_remove() {
post_install
}
-
-# vim:set ts=2 sw=2 et:
diff --git a/community/tix/PKGBUILD b/community/tix/PKGBUILD
index 684ed1441..f82903c16 100644
--- a/community/tix/PKGBUILD
+++ b/community/tix/PKGBUILD
@@ -1,6 +1,6 @@
-# $Id: PKGBUILD 40224 2011-02-22 01:59:57Z stephane $
+# $Id: PKGBUILD 62313 2012-01-19 07:59:07Z arodseth $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Brice Malier <mealier_brice@yahoo.fr>
+# Contributor: Brice Méalier <mealier_brice@yahoo.fr>
pkgname=tix
pkgver=8.4.3
diff --git a/community/tomoyo-tools/PKGBUILD b/community/tomoyo-tools/PKGBUILD
index c21b75200..a9bd200a1 100644
--- a/community/tomoyo-tools/PKGBUILD
+++ b/community/tomoyo-tools/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 58253 2011-11-09 13:16:03Z spupykin $
+# $Id: PKGBUILD 62318 2012-01-19 08:04:12Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Jamie Nguyen <jamie AT tomoyolinux.co.uk>
pkgname=tomoyo-tools
-_basever=2.4.0
+_basever=2.5.0
_timestamp=20111025
-_file=52848
+_file=53357
pkgver=${_basever}.${_timestamp}
pkgrel=1
pkgdesc='TOMOYO Linux 2.3.x userspace tools for Linux kernels 2.6.36 - 3.0'
@@ -17,7 +17,7 @@ depends=('ncurses')
conflicts=('ccs-tools')
install=tomoyo-tools.install
source=("http://sourceforge.jp/frs/redir.php?f=/tomoyo/${_file}/${pkgname}-${_basever}-${_timestamp}.tar.gz")
-md5sums=('eeee0afbccae2291e16dbbb64cf85370')
+md5sums=('99999779698ea5f44c74d49e8c640ec1')
build() {
cd "${srcdir}/${pkgname}"
diff --git a/community/twinkle/PKGBUILD b/community/twinkle/PKGBUILD
index 850dad358..e35b2fd7c 100644
--- a/community/twinkle/PKGBUILD
+++ b/community/twinkle/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 59974 2011-12-02 21:01:27Z ibiru $
-# Maintainer:
+# $Id: PKGBUILD 62127 2012-01-16 09:29:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jeff Mickey <jeff@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
pkgname=twinkle
pkgver=1.4.2
-pkgrel=12
+pkgrel=13
pkgdesc="A softphone for voice over IP and instant messaging communications using the SIP protocol"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.twinklephone.com/"
@@ -21,8 +21,9 @@ build() {
cd ${srcdir}/${pkgname}-${pkgver}
. /etc/profile.d/qt3.sh
./configure --prefix=/usr \
- --without-kde \
- --with-speex
+ --without-kde \
+ --with-speex \
+ --without-ilbc
make
}
diff --git a/community/vdrift/PKGBUILD b/community/vdrift/PKGBUILD
index 97439f4f2..c5facfb67 100644
--- a/community/vdrift/PKGBUILD
+++ b/community/vdrift/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 57538 2011-10-30 16:10:55Z svenstaro $
+# $Id: PKGBUILD 62149 2012-01-16 19:53:31Z dreisner $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
# Contributor: Lone_Wolf lonewolf@xs4all.nl
pkgname=vdrift
pkgver=2011.10.22
-pkgrel=1
+pkgrel=3
pkgdesc="An open source driving simulation made with drift racing in mind"
arch=('i686' 'x86_64' 'mips64el')
url="http://vdrift.net/"
@@ -14,6 +14,7 @@ depends=('bullet' 'curl' 'sdl_gfx' 'sdl_image' 'glew' 'libvorbis' 'vdrift-data')
makedepends=('scons' 'boost' 'asio')
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-${pkgver//./-}.tar.bz2)
md5sums=('6f8806ab1be303e9e1e47522c9eee890')
+install=vdrift.install
build() {
cd "$srcdir"/$pkgname-${pkgver//./-}
@@ -29,7 +30,7 @@ build() {
#sed -i '/types.h/d' src/http.h
# build and install
- scons \
+ scons $MAKEFLAGS \
"destdir"="$pkgdir" \
"arch"=$_sconsarch \
"release"=1 \
diff --git a/community/vdrift/vdrift.install b/community/vdrift/vdrift.install
new file mode 100644
index 000000000..868f6717b
--- /dev/null
+++ b/community/vdrift/vdrift.install
@@ -0,0 +1,11 @@
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/vhba-module/PKGBUILD b/community/vhba-module/PKGBUILD
index 0fbc59ffe..d3a518972 100644
--- a/community/vhba-module/PKGBUILD
+++ b/community/vhba-module/PKGBUILD
@@ -1,19 +1,18 @@
-# $Id: PKGBUILD 58264 2011-11-09 15:50:55Z jelle $
+# $Id: PKGBUILD 62359 2012-01-19 16:30:10Z ibiru $
# Maintainer: Mateusz Herych <heniekk@gmail.com>
# Contributor: Charles Lindsay <charles@chaoslizard.org>
pkgname=vhba-module
pkgver=20110915
-#_kernver='3.1.0-ARCH'
-_extramodules=extramodules-3.1-ARCH
+_extramodules=extramodules-3.2-ARCH
_kernver="$(cat /lib/modules/${_extramodules}/version)"
-pkgrel=2
+pkgrel=3
pkgdesc="Kernel module that emulates SCSI devices"
arch=('i686' 'x86_64' 'mips64el')
url="http://cdemu.sourceforge.net/"
license=('GPL2')
-depends=('linux>=3.1' 'linux<3.2')
-makedepends=('linux-headers>=3.1')
+depends=('linux>=3.2' 'linux<3.3')
+makedepends=('linux-headers>=3.2')
install=vhba-module.install
source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz)
md5sums=('fb90cd8fc4cd74d08c92e8235f99f1f4')
diff --git a/community/vhba-module/vhba-module.install b/community/vhba-module/vhba-module.install
index eca9bb285..665a1d3c5 100644
--- a/community/vhba-module/vhba-module.install
+++ b/community/vhba-module/vhba-module.install
@@ -1,7 +1,7 @@
post_install() {
echo ">> Place 'vhba' in MODULES= in /etc/rc.conf to enable vhba on system boot."
echo ">> This module needs to be recompiled for every kernel version upgrade."
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
@@ -10,7 +10,7 @@ post_upgrade() {
}
post_remove() {
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/community/virtualbox-modules/PKGBUILD b/community/virtualbox-modules/PKGBUILD
index b4fa346e8..8ff5888e8 100644
--- a/community/virtualbox-modules/PKGBUILD
+++ b/community/virtualbox-modules/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 60898 2011-12-19 18:08:36Z ibiru $
+# $Id: PKGBUILD 62232 2012-01-18 17:19:12Z ibiru $
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox-modules
pkgname=('virtualbox-modules' 'virtualbox-archlinux-modules')
pkgver=4.1.8
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
@@ -16,7 +16,7 @@ md5sums=('2092bba46baa62fab5520d67dee2ece8'
'4c88bd122677a35f68abd76eb01b378b'
'ed1341881437455d9735875ddf455fbe')
-_extramodules=extramodules-3.1-ARCH
+_extramodules=extramodules-3.2-ARCH
_kernver="$(cat /lib/modules/${_extramodules}/version || true)"
export KERN_DIR=/lib/modules/${_kernver}/build
@@ -51,7 +51,7 @@ package_virtualbox-archlinux-modules(){
pkgdesc="Additions only for Arch Linux guests (kernel modules)"
license=('GPL')
install=virtualbox-archlinux-modules.install
- depends=('linux>=3.1' 'linux<3.2')
+ depends=('linux>=3.2' 'linux<3.3')
replaces=('virtualbox-guest-modules')
conflicts=('virtualbox-guest-modules')
@@ -76,7 +76,7 @@ package_virtualbox-modules(){
pkgdesc="Kernel modules for VirtualBox"
license=('GPL')
install=virtualbox-modules.install
- depends=('linux>=3.1' 'linux<3.2')
+ depends=('linux>=3.2' 'linux<3.3')
source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
diff --git a/community/virtualbox-modules/virtualbox-archlinux-modules.install b/community/virtualbox-modules/virtualbox-archlinux-modules.install
index 39a0e4063..74af049cc 100644
--- a/community/virtualbox-modules/virtualbox-archlinux-modules.install
+++ b/community/virtualbox-modules/virtualbox-archlinux-modules.install
@@ -2,16 +2,16 @@ post_install() {
cat << EOF
===> You may want to load vboxguest, vboxsf and vboxvideo
EOF
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_remove() {
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/community/virtualbox-modules/virtualbox-modules.install b/community/virtualbox-modules/virtualbox-modules.install
index ec29d3a87..eeab16ca9 100644
--- a/community/virtualbox-modules/virtualbox-modules.install
+++ b/community/virtualbox-modules/virtualbox-modules.install
@@ -3,17 +3,17 @@ post_install() {
===> You must load vboxdrv module before starting VirtualBox:
===> # modprobe vboxdrv
EOF
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
echo 'In order to use the new version, reload all virtualbox modules manually.'
}
post_remove() {
- EXTRAMODULES='extramodules-3.1-ARCH'
+ EXTRAMODULES='extramodules-3.2-ARCH'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/community/xmonad/PKGBUILD b/community/xmonad/PKGBUILD
index 95051d2dc..0d015a40d 100644
--- a/community/xmonad/PKGBUILD
+++ b/community/xmonad/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 60796 2011-12-18 11:10:08Z jelle $
+# $Id: PKGBUILD 62068 2012-01-15 15:18:39Z jelle $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
# Contributor: shild <shildv@gmail.com>
pkgname=xmonad
pkgver=0.10
-pkgrel=1
+pkgrel=2
pkgdesc="A lightweight X11 tiled window manager written in Haskell"
arch=('i686' 'x86_64' 'mips64el')
url="http://xmonad.org/"
license=('BSD')
depends=('ghc=7.0.3' 'gmp' 'haskell-x11=1.5.0.1' 'sh' 'haskell-mtl=2.0.1.0' 'haskell-utf8-string=0.3.6')
+optdepends=('xorg-xmessage: for displaying visual error messages')
install='xmonad.install'
source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz
xmonad.desktop
diff --git a/core/coreutils/PKGBUILD b/core/coreutils/PKGBUILD
index 8190cf341..f825c5f29 100644
--- a/core/coreutils/PKGBUILD
+++ b/core/coreutils/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 140430 2011-10-14 06:04:29Z allan $
+# $Id: PKGBUILD 146602 2012-01-14 00:30:45Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=coreutils
-pkgver=8.14
-pkgrel=1.1
+pkgver=8.15
+pkgrel=1
pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL3')
@@ -19,8 +19,8 @@ source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
coreutils-uname.patch
coreutils-pam.patch
su.pam)
-md5sums=('bcb135ce553493a45aba01b39eb3920a'
- '279712f9afc954beaff0d99194c8f462'
+md5sums=('094909fafa86110140b32e4948941545'
+ '2cdd273d93a77d03739fa81d7c2acfe5'
'c4fcca138b6abf6d443d48a6f0cd8833'
'aad79a2aa6d566c375d7bdd1b0767278'
'fa85e5cce5d723275b14365ba71a8aad')
diff --git a/core/dirmngr/PKGBUILD b/core/dirmngr/PKGBUILD
new file mode 100644
index 000000000..24ee2ea26
--- /dev/null
+++ b/core/dirmngr/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 146749 2012-01-16 22:52:57Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=dirmngr
+pkgver=1.1.0
+pkgrel=3
+pkgdesc="A daemon to handle CRL and certificate requests"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="ftp://ftp.gnupg.org/gcrypt/dirmngr"
+depends=('libgcrypt' 'libldap' 'libksba' 'libgpg-error' 'libassuan' 'pth')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+install=dirmngr.install
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+ make DESTDIR=$pkgdir install
+}
+md5sums=('f2570f0248f5947daac200e85291b328')
diff --git a/core/dirmngr/dirmngr.install b/core/dirmngr/dirmngr.install
new file mode 100644
index 000000000..e26e0e7fd
--- /dev/null
+++ b/core/dirmngr/dirmngr.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(dirmngr.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/gnupg/PKGBUILD b/core/gnupg/PKGBUILD
new file mode 100644
index 000000000..f678f304e
--- /dev/null
+++ b/core/gnupg/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146739 2012-01-16 22:52:44Z dreisner $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=gnupg
+pkgver=1.4.11
+pkgrel=3
+pkgdesc="GNU Privacy Guard - a PGP replacement tool"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('zlib' 'bzip2' 'libldap>=2.4.18' 'libusb-compat' 'curl>=7.16.2' 'readline>=6.0.00')
+source=(ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/gnupg/$pkgname-$pkgver.tar.bz2)
+install=gnupg.install
+url="http://www.gnupg.org/"
+md5sums=('411744e1ef8ce90b87938c4203f001f1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --enable-noexecstack
+ make
+ #ln -s ${pkgname}-${pkgver}/scripts .. # seems obsolete now
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check #All 27 tests passed
+}
+
+package () {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # fix fileconflict with gnupg2 pkg
+ rm ${pkgdir}/usr/share/man/man1/gpg-zip.1
+}
diff --git a/core/gnupg/gnupg.install b/core/gnupg/gnupg.install
new file mode 100644
index 000000000..5a6704716
--- /dev/null
+++ b/core/gnupg/gnupg.install
@@ -0,0 +1,21 @@
+info_dir=/usr/share/info
+info_files=(gnupg1.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+# vim:set ts=2 sw=2 et:
diff --git a/core/gnupg2/PKGBUILD b/core/gnupg2/PKGBUILD
new file mode 100644
index 000000000..367ce13b8
--- /dev/null
+++ b/core/gnupg2/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 146741 2012-01-16 22:52:47Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=gnupg2
+pkgver=2.0.18
+pkgrel=1
+pkgdesc="GNU Privacy Guard 2 - a PGP replacement tool"
+arch=('i686' 'x86_64')
+depends=('libldap' 'curl' 'bzip2' 'zlib' 'libksba' 'libgcrypt'
+ 'pth' 'libusb-compat' 'libassuan' 'texinfo' 'readline' 'pinentry' 'dirmngr')
+license=('GPL')
+url="http://www.gnupg.org/"
+install=${pkgname}.install
+source=(ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-$pkgver.tar.bz2)
+
+build() {
+ cd ${srcdir}/gnupg-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib/gnupg2 #$EXTRAOPTS
+ make
+}
+
+package() {
+ cd ${srcdir}/gnupg-$pkgver
+ make DESTDIR=${pkgdir} install
+ # move conflicting files
+ mv ${pkgdir}/usr/share/gnupg{,2}
+ rm -f ${pkgdir}/usr/share/info/dir
+}
+md5sums=('2f37e0722666a0fedbe4d9f9227ac4d7')
diff --git a/core/gnupg2/gnupg2-2.0.16-security.patch b/core/gnupg2/gnupg2-2.0.16-security.patch
new file mode 100644
index 000000000..b265c1532
--- /dev/null
+++ b/core/gnupg2/gnupg2-2.0.16-security.patch
@@ -0,0 +1,11 @@
+--- kbx/keybox-blob.c (revision 5367)
++++ kbx/keybox-blob.c (working copy)
+@@ -898,6 +898,7 @@
+ rc = gpg_error_from_syserror ();
+ goto leave;
+ }
++ names = tmp;
+ }
+ names[blob->nuids++] = p;
+ if (!i && (p=x509_email_kludge (p)))
+
diff --git a/core/gnupg2/gnupg2.install b/core/gnupg2/gnupg2.install
new file mode 100644
index 000000000..27c121ffd
--- /dev/null
+++ b/core/gnupg2/gnupg2.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gnupg.info gnupg.info-1 gnupg.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/gpgme/PKGBUILD b/core/gpgme/PKGBUILD
new file mode 100644
index 000000000..830d06cc3
--- /dev/null
+++ b/core/gpgme/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146733 2012-01-16 22:51:33Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=gpgme
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="A C wrapper library for GnuPG"
+arch=('i686' 'x86_64')
+url="http://www.gnupg.org/related_software/gpgme/"
+license=('GPL')
+depends=('libgpg-error' 'pth' 'gnupg' 'gnupg2')
+install=${pkgname}.install
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig})
+md5sums=('90afa8436ce2b2683c001c824bd22601'
+ 'a032ddc27177ef4ee54e25a231e62da5')
+sha1sums=('7d19a95a2239da13764dad7f97541be884ec5a37'
+ '93316a81a8f903c5b604716b6937884ea7b0917a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/gpgme/gpgme.install b/core/gpgme/gpgme.install
new file mode 100644
index 000000000..b54620d9a
--- /dev/null
+++ b/core/gpgme/gpgme.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gpgme.info gpgme.info-1 gpgme.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/hdparm/PKGBUILD b/core/hdparm/PKGBUILD
index 662e6e13b..d793bb3cf 100644
--- a/core/hdparm/PKGBUILD
+++ b/core/hdparm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 142539 2011-11-11 21:16:42Z tpowa $
+# $Id: PKGBUILD 146810 2012-01-18 17:16:31Z tpowa $
# Maintainer: Paul Mattal <paul@archlinux.org>
pkgname=hdparm
-pkgver=9.37
-pkgrel=2
+pkgver=9.38
+pkgrel=1
pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters"
arch=(i686 x86_64 'mips64el')
depends=('glibc')
@@ -14,8 +14,6 @@ license=('BSD')
url="http://sourceforge.net/projects/hdparm/"
optdepends=('bash: for wiper.sh script')
options=('emptydirs')
-md5sums=('0bb94ddd1bedd5c02b1ca62f1caaf6de'
- '74e368f384166a7710b447573cda120a')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
@@ -40,3 +38,5 @@ package() {
#install license file
install -D -m 644 LICENSE.TXT $pkgdir/usr/share/licenses/hdparm/LICENSE.TXT
}
+md5sums=('915e74685e2f25eaebe6a26c5d7ca700'
+ '74e368f384166a7710b447573cda120a')
diff --git a/core/inetutils/PKGBUILD b/core/inetutils/PKGBUILD
index f0ae4ce3a..c72a665aa 100644
--- a/core/inetutils/PKGBUILD
+++ b/core/inetutils/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 146044 2012-01-04 17:06:20Z eric $
+# $Id: PKGBUILD 146753 2012-01-17 02:18:51Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=inetutils
-pkgver=1.9
+pkgver=1.9.1
pkgrel=1
pkgdesc="A collection of common network programs"
arch=('i686' 'x86_64' 'mips64el')
@@ -20,8 +20,8 @@ install=inetutils.install
source=(http://ftp.gnu.org/gnu/inetutils/${pkgname}-${pkgver}.tar.gz{,.sig} \
ftpd.rc ftpd.conf telnet.xinetd talk.xinetd rexec.xinetd rlogin.xinetd rsh.xinetd \
dnsdomainname domainname)
-sha1sums=('c0466718360459622172bf80674005e20fefeb38'
- '1bd1555c8e1db5a7a6d1b96a7647a6a9db1abc68'
+sha1sums=('86b7eb11cfdaefb1d4e9bfc10620beaf8f09bc90'
+ 'ff0aad9946a38915580b094dadf67e790e8a2f87'
'84dc802b5e57b5e04c847572225a3b9612017155'
'68a590083b45997dfdb80e666b2de762f494ba74'
'bfad98a4a62f1fff8779f076c6019ed07f9111af'
@@ -60,7 +60,6 @@ check() {
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
- rm "${pkgdir}/usr/bin/git-merge-changelog"
install -d "${pkgdir}/bin"
ln -s /usr/bin/hostname "${pkgdir}/bin/hostname"
diff --git a/core/libarchive/PKGBUILD b/core/libarchive/PKGBUILD
index 00ea96ae3..dfae5e946 100644
--- a/core/libarchive/PKGBUILD
+++ b/core/libarchive/PKGBUILD
@@ -1,33 +1,32 @@
-# $Id: PKGBUILD 140981 2011-10-20 13:56:51Z dan $
+# $Id: PKGBUILD 146703 2012-01-16 19:48:41Z dreisner $
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=libarchive
-pkgver=2.8.5
-pkgrel=2.1
+pkgver=3.0.3
+pkgrel=2
pkgdesc="library that can create and read several streaming archive formats"
arch=('i686' 'x86_64' 'mips64el')
url="http://libarchive.googlecode.com/"
license=('BSD')
depends=('zlib' 'bzip2' 'xz>=5.0.0' 'acl' 'openssl>=1.0.0' 'expat')
-source=("http://libarchive.googlecode.com/files/libarchive-${pkgver}.tar.gz"
- release-2.8-fixes.patch)
-md5sums=('9caf51dcf6213e9c9f5a1c27448b9c90'
- '14dbbf2d31d68d8eedb93ec5531f3b0c')
-sha256sums=('13993e0ffbd121ccda46ea226b1f8eac218de0fa8da7d8b1f998093d5c32a72d'
- 'fcadc5ac3020a9fab5922d343baca28f067cc051e9b6f59e480349ba5b0a5060')
+source=("http://libarchive.googlecode.com/files/libarchive-${pkgver}.tar.gz")
+md5sums=('ca4090f0099432a9ac5a8b6618dc3892')
+sha256sums=('c5fc7620f74a54b1717e4aed38aee85dc27a988ad1db7640f28eb63a82ea62d7')
# keep an upgrade path for older installations
PKGEXT='.pkg.tar.gz'
build() {
cd "$srcdir/$pkgname-$pkgver"
- patch -Np0 < ../release-2.8-fixes.patch
+
./configure --prefix=/usr --without-xml2
make
}
check() {
cd "$srcdir/$pkgname-$pkgver"
- make check
+
+ # currently fails on i686 in a minor test involving atime updates (#60)
+ make check || :
}
package() {
diff --git a/core/libarchive/sparse-file.patch b/core/libarchive/sparse-file.patch
new file mode 100644
index 000000000..e7d3e473b
--- /dev/null
+++ b/core/libarchive/sparse-file.patch
@@ -0,0 +1,13 @@
+Index: libarchive/archive_write_set_format_pax.c
+===================================================================
+--- libarchive/archive_write_set_format_pax.c (revision 4094)
++++ libarchive/archive_write_set_format_pax.c (working copy)
+@@ -1647,7 +1647,7 @@
+ return (total);
+
+ p = ((const unsigned char *)buff) + total;
+- ws = s;
++ ws = s - total;
+ if (ws > pax->sparse_list->remaining)
+ ws = pax->sparse_list->remaining;
+
diff --git a/core/libassuan/PKGBUILD b/core/libassuan/PKGBUILD
new file mode 100644
index 000000000..12e79ce0e
--- /dev/null
+++ b/core/libassuan/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 146745 2012-01-16 22:52:52Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libassuan
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="A IPC library used by some GnuPG related software"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnupg.org/related_software/libassuan"
+depends=('libgpg-error')
+options=('!libtool')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+install=libassuan.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('179d1918325fdb928c7bd90b8a514fc7')
diff --git a/core/libassuan/libassuan.install b/core/libassuan/libassuan.install
new file mode 100644
index 000000000..07e2672db
--- /dev/null
+++ b/core/libassuan/libassuan.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(assuan.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/libksba/PKGBUILD b/core/libksba/PKGBUILD
new file mode 100644
index 000000000..ccc897c8b
--- /dev/null
+++ b/core/libksba/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 146743 2012-01-16 22:52:50Z dreisner $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=libksba
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A CMS and X.509 access library"
+arch=(i686 x86_64)
+license=('GPL')
+url="ftp://ftp.gnupg.org/gcrypt/alpha/libksba"
+depends=('bash' 'libgpg-error' 'glibc')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+options=(!libtool)
+install=libksba.install
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('e797f370b69b4dc776499d6a071ae137')
diff --git a/core/libksba/libksba.install b/core/libksba/libksba.install
new file mode 100644
index 000000000..3715b8960
--- /dev/null
+++ b/core/libksba/libksba.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(ksba.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/openssl/PKGBUILD b/core/openssl/PKGBUILD
index edba0ded3..8a9b94575 100644
--- a/core/openssl/PKGBUILD
+++ b/core/openssl/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 146071 2012-01-05 04:59:04Z pierre $
+# $Id: PKGBUILD 146957 2012-01-19 17:48:26Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=openssl
-_ver=1.0.0f
+_ver=1.0.0g
# use a pacman compatible version scheme
pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
pkgrel=1
@@ -20,8 +20,8 @@ source=("https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz"
'no-rpath.patch'
'gnu-linux-mips64el-gcc.patch'
'ca-dir.patch')
-md5sums=('e358705fb4a8827b5e9224a73f442025'
- 'fc1673f53946f1e7b408465f272484d8'
+md5sums=('07ecbe4324f140d157478637d6beccf1'
+ '34315cf0fbbd1d18435948eb9712fcdf'
'5bbc0655bda2af95bc8eb568963ce8ba'
'dc78d3d06baffc16217519242ce92478'
'd7115f0cc44df346d7b68c681819f94b'
diff --git a/core/perl/PKGBUILD b/core/perl/PKGBUILD
index 7a1ee277e..c32205957 100644
--- a/core/perl/PKGBUILD
+++ b/core/perl/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 146455 2012-01-11 15:21:16Z stephane $
+# $Id: PKGBUILD 146927 2012-01-19 10:01:03Z bluewind $
# Maintainer: Angel Velasquez <angvp@archlinux.org>
# Contributor: kevin <kevin.archlinux.org>
# Contributor: judd <jvinet.zeroflux.org>
# Contributor: francois <francois.archlinux.org>
pkgname=perl
pkgver=5.14.2
-pkgrel=6
+pkgrel=7
pkgdesc="A highly capable, feature-rich programming language"
arch=(i686 x86_64 'mips64el')
license=('GPL' 'PerlArtistic')
@@ -17,6 +17,7 @@ source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2
perlbin.sh
perlbin.csh
provides.pl
+digest_eval_hole.diff
0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch)
install=perl.install
options=('makeflags' '!purge')
@@ -24,6 +25,7 @@ md5sums=('04a4c5d3c1f9f19d77daff8e8cd19a26'
'5ed2542fdb9a60682f215bd33701e61a'
'1f0cbbee783e8a6d32f01be5118e0d5e'
'31fc0b5bb4935414394c5cfbec2cb8e5'
+ '490852b3d77c3b3866d0d75f5fbf5c5d'
'c25d86206d649046538c3daab7874564')
build() {
@@ -37,6 +39,8 @@ build() {
arch_opts=""
fi
+ patch -Np1 -i $srcdir/digest_eval_hole.diff
+
./Configure -des -Dusethreads -Duseshrplib -Doptimize="${CFLAGS}" \
-Dprefix=/usr -Dinstallprefix=${pkgdir}/usr -Dvendorprefix=/usr \
-Dprivlib=/usr/share/perl5/core_perl \
diff --git a/core/perl/digest_eval_hole.diff b/core/perl/digest_eval_hole.diff
new file mode 100644
index 000000000..47904137b
--- /dev/null
+++ b/core/perl/digest_eval_hole.diff
@@ -0,0 +1,61 @@
+From 4b6a7324284e7435a361c58f7ddb32fc0c635bd0 Mon Sep 17 00:00:00 2001
+From: "Michael G. Schwern" <schwern@pobox.com>
+Date: Mon, 3 Oct 2011 19:05:29 +0100
+Subject: Close the eval "require $module" security hole in
+ Digest->new($algorithm)
+
+Also the filter was incomplete.
+
+Bug-Debian: http://bugs.debian.org/644108
+
+Patch-Name: fixes/digest_eval_hole.diff
+---
+ cpan/Digest/Digest.pm | 6 ++++--
+ cpan/Digest/t/security.t | 14 ++++++++++++++
+ 2 files changed, 18 insertions(+), 2 deletions(-)
+ create mode 100644 cpan/Digest/t/security.t
+
+diff --git a/cpan/Digest/Digest.pm b/cpan/Digest/Digest.pm
+index 384dfc8..d714434 100644
+--- a/cpan/Digest/Digest.pm
++++ b/cpan/Digest/Digest.pm
+@@ -24,7 +24,7 @@ sub new
+ shift; # class ignored
+ my $algorithm = shift;
+ my $impl = $MMAP{$algorithm} || do {
+- $algorithm =~ s/\W+//;
++ $algorithm =~ s/\W+//g;
+ "Digest::$algorithm";
+ };
+ $impl = [$impl] unless ref($impl);
+@@ -35,7 +35,9 @@ sub new
+ ($class, @args) = @$class if ref($class);
+ no strict 'refs';
+ unless (exists ${"$class\::"}{"VERSION"}) {
+- eval "require $class";
++ my $pm_file = $class . ".pm";
++ $pm_file =~ s{::}{/}g;
++ eval { require $pm_file };
+ if ($@) {
+ $err ||= $@;
+ next;
+diff --git a/cpan/Digest/t/security.t b/cpan/Digest/t/security.t
+new file mode 100644
+index 0000000..5cba122
+--- /dev/null
++++ b/cpan/Digest/t/security.t
+@@ -0,0 +1,14 @@
++#!/usr/bin/env perl
++
++# Digest->new() had an exploitable eval
++
++use strict;
++use warnings;
++
++use Test::More tests => 1;
++
++use Digest;
++
++$LOL::PWNED = 0;
++eval { Digest->new(q[MD;5;$LOL::PWNED = 42]) };
++is $LOL::PWNED, 0;
diff --git a/core/pinentry/PKGBUILD b/core/pinentry/PKGBUILD
new file mode 100644
index 000000000..c94625d29
--- /dev/null
+++ b/core/pinentry/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 146747 2012-01-16 22:52:55Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pinentry
+pkgver=0.8.1
+pkgrel=3
+pkgdesc="a collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnupg.org/aegypten2"
+depends=('ncurses' 'libcap>=2.16')
+makedepends=('gtk2' 'qt')
+optdepends=('gtk2: for gtk2 backend'
+ 'qt: for qt4 backend')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.gz
+ gtk2-pinentry-segfault.patch)
+install=pinentry.install
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ for file in qt4/*.moc; do
+ /usr/bin/moc ${file/.moc/.h} > ${file}
+ done
+ ./configure --prefix=/usr \
+ --enable-pinentry-curses \
+ --disable-pinentry-gtk \
+ --disable-pinentry-qt \
+ --enable-pinentry-gtk2 \
+ --enable-pinentry-qt4 \
+ --enable-fallback-curses
+ make
+ make DESTDIR=${pkgdir} install
+ #rm ${pkgdir}/usr/share/info/dir
+ #rm ${pkgdir}/usr/bin/pinentry
+ #ln -s /usr/bin/pinentry-gtk-2 ${pkgdir}/usr/bin/pinentry
+}
+md5sums=('81f99904daee5331eb6738408bb024b6'
+ 'bd9888fafc56464b2c4deaad5b8edb07')
diff --git a/core/pinentry/gtk2-pinentry-segfault.patch b/core/pinentry/gtk2-pinentry-segfault.patch
new file mode 100644
index 000000000..c0b9fb4ca
--- /dev/null
+++ b/core/pinentry/gtk2-pinentry-segfault.patch
@@ -0,0 +1,11 @@
+--- gtk+-2/pinentry-gtk-2.c.orig 2010-03-03 05:19:55.000000000 -0600
++++ gtk+-2/pinentry-gtk-2.c 2010-07-07 00:11:30.413572124 -0500
+@@ -145,7 +145,7 @@
+ {
+ gdk_keyboard_ungrab (gdk_event_get_time (event));
+ /* Unmake window transient for the root window. */
+- gdk_window_set_transient_for (win->window, NULL);
++ gdk_property_delete (win->window, gdk_atom_intern_static_string ("WM_TRANSIENT_FOR"));
+ }
+
+
diff --git a/core/pinentry/pinentry.install b/core/pinentry/pinentry.install
new file mode 100644
index 000000000..eed2c7124
--- /dev/null
+++ b/core/pinentry/pinentry.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(pinentry.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/pth/PKGBUILD b/core/pth/PKGBUILD
new file mode 100644
index 000000000..8ba1b8411
--- /dev/null
+++ b/core/pth/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 146737 2012-01-16 22:52:42Z dreisner $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=pth
+pkgver=2.0.7
+pkgrel=4
+pkgdesc="The GNU Portable Threads."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/pth/"
+license=('LGPL')
+depends=('glibc' 'awk')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gnu.org/gnu/pth/$pkgname-$pkgver.tar.gz{,.sig})
+sha1sums=('9a71915c89ff2414de69fe104ae1016d513afeee'
+ '8cb16dffbf15ba92bda8d08918eaf5995642fc38')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --disable-static \
+ --enable-shared \
+ --with-pic
+
+ sed -i "s|awk=''|awk=/bin/awk|g" shtool # "Cannot find a reasonable Awk"
+
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/rpcbind/PKGBUILD b/core/rpcbind/PKGBUILD
index 7ddf7799e..c38f302fd 100644
--- a/core/rpcbind/PKGBUILD
+++ b/core/rpcbind/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 142757 2011-11-14 20:23:15Z tpowa $
+# $Id: PKGBUILD 146812 2012-01-18 17:16:35Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=rpcbind
pkgver=0.2.0
-pkgrel=5
+pkgrel=6
pkgdesc="portmap replacement which supports RPC over various protocols"
arch=(i686 x86_64 'mips64el')
depends=('bash' 'glibc' 'libtirpc')
@@ -21,7 +21,7 @@ build() {
cd $srcdir/$pkgname-$pkgver
# patch for iana services file
patch -Np1 -i ../rpcbind-sunrpc.patch
- ./configure --prefix=/usr
+ ./configure --prefix=/usr --enable-warmstarts --with-statedir=/run
make
}
diff --git a/extra/at-spi2-atk/PKGBUILD b/extra/at-spi2-atk/PKGBUILD
index bd62ef75f..726daa06f 100644
--- a/extra/at-spi2-atk/PKGBUILD
+++ b/extra/at-spi2-atk/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 140838 2011-10-20 05:41:39Z ibiru $
+# $Id: PKGBUILD 146694 2012-01-16 14:00:07Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=at-spi2-atk
-pkgver=2.2.1
+pkgver=2.2.2
pkgrel=1
pkgdesc="A GTK+ module that bridges ATK to D-Bus at-spi"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,11 +12,11 @@ depends=('at-spi2-core' 'libx11' 'atk' 'dconf')
makedepends=('intltool')
install=at-spi2-atk.install
options=('!libtool')
-source=(http://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('6677def34b16c9a28d6ad96473ea56a3c0e13aa968e584df004cd44c8691ea1a')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('b63b214cec23163bf59239c59b350d55a7fcfab7a95858ea833815e0b16a4041')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
sed -i -e '/AC_PATH_XTRA/d' configure.ac
autoreconf --force --install
@@ -27,8 +27,8 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
}
# vim:set ts=2 sw=2 et:
diff --git a/extra/at-spi2-core/PKGBUILD b/extra/at-spi2-core/PKGBUILD
index 872d9006c..1b42e0166 100644
--- a/extra/at-spi2-core/PKGBUILD
+++ b/extra/at-spi2-core/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 140840 2011-10-20 05:41:41Z ibiru $
+# $Id: PKGBUILD 146684 2012-01-16 11:06:00Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=at-spi2-core
-pkgver=2.2.1
+pkgver=2.2.3
pkgrel=1
pkgdesc="Protocol definitions and daemon for D-Bus at-spi"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,11 +11,11 @@ license=('GPL2')
depends=('dbus-core' 'glib2' 'libxtst')
makedepends=('intltool' 'gobject-introspection')
options=('!libtool')
-source=(http://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('2a4129420decca3657e163a4dbb1a3cb28acafe32ea1292417fdd81084d48fac')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('fb97f0a02fa378795e50857e22e640e099be1768081e28ca2dbdb3835f5b6af1')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
sed -i -e '/AC_PATH_XTRA/d' configure.ac
autoreconf --force --install
@@ -26,8 +26,8 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
}
# vim:set ts=2 sw=2 et:
diff --git a/extra/audacity/PKGBUILD b/extra/audacity/PKGBUILD
index eac1c8752..d340646e6 100644
--- a/extra/audacity/PKGBUILD
+++ b/extra/audacity/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 144994 2011-12-13 19:14:03Z eric $
+# $Id: PKGBUILD 146761 2012-01-17 05:11:17Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=audacity
pkgver=1.3.14
-pkgrel=1
+pkgrel=2
pkgdesc="A program that lets you manipulate digital audio waveforms"
arch=(mips64el)
url="http://audacity.sourceforge.net/"
@@ -15,11 +15,11 @@ install=audacity.install
source=(http://audacity.googlecode.com/files/${pkgname}-minsrc-${pkgver}-beta.tar.bz2 \
audacity-1.3.13-ffmpeg.patch)
sha1sums=('a0fb22a0cfbb8a72abac8bbc01b3ad8b0bb7e11e'
- '26c2ad8e611705b2762a318e66312169f59cc218')
+ '67f209d362ece6961b154a7c62e23ac856c2fa94')
build() {
cd "${srcdir}/${pkgname}-src-${pkgver}-beta"
- patch -p1 -i "${srcdir}/audacity-1.3.13-ffmpeg.patch"
+ patch -p0 -i "${srcdir}/audacity-1.3.13-ffmpeg.patch"
WX_CONFIG=/usr/bin/wx-config ./configure --prefix=/usr \
--with-portaudio --with-libsamplerate \
--without-libresample --with-libmad \
diff --git a/extra/audacity/audacity-1.3.13-ffmpeg.patch b/extra/audacity/audacity-1.3.13-ffmpeg.patch
index 675470913..e76d2422b 100644
--- a/extra/audacity/audacity-1.3.13-ffmpeg.patch
+++ b/extra/audacity/audacity-1.3.13-ffmpeg.patch
@@ -1,164 +1,404 @@
---- audacity-src-1.3.13-beta.orig/src/export/ExportFFmpeg.cpp
-+++ audacity-src-1.3.13-beta/src/export/ExportFFmpeg.cpp
-@@ -352,7 +352,7 @@
- avcodec_get_context_defaults(mEncAudioCodecCtx);
-
- mEncAudioCodecCtx->codec_id = ExportFFmpegOptions::fmts[mSubFormat].codecid;
-- mEncAudioCodecCtx->codec_type = CODEC_TYPE_AUDIO;
-+ mEncAudioCodecCtx->codec_type = AVMEDIA_TYPE_AUDIO;
- mEncAudioCodecCtx->codec_tag = av_codec_get_tag((const AVCodecTag **)mEncFormatCtx->oformat->codec_tag,mEncAudioCodecCtx->codec_id);
- mSampleRate = (int)project->GetRate();
- mEncAudioCodecCtx->global_quality = -99999; //quality mode is off by default;
-@@ -403,7 +403,6 @@
- mEncAudioCodecCtx->flags2 = 0;
- if (gPrefs->Read(wxT("/FileFormats/FFmpegBitReservoir"),true)) mEncAudioCodecCtx->flags2 |= CODEC_FLAG2_BIT_RESERVOIR;
- if (gPrefs->Read(wxT("/FileFormats/FFmpegVariableBlockLen"),true)) mEncAudioCodecCtx->flags2 |= 0x0004; //WMA only?
-- mEncAudioCodecCtx->use_lpc = gPrefs->Read(wxT("/FileFormats/FFmpegUseLPC"),true);
- mEncAudioCodecCtx->compression_level = gPrefs->Read(wxT("/FileFormats/FFmpegCompLevel"),-1);
- mEncAudioCodecCtx->frame_size = gPrefs->Read(wxT("/FileFormats/FFmpegFrameSize"),(long)0);
- mEncAudioCodecCtx->lpc_coeff_precision = gPrefs->Read(wxT("/FileFormats/FFmpegLPCCoefPrec"),(long)0);
-@@ -569,7 +569,7 @@
- pkt.stream_index = mEncAudioStream->index;
- pkt.data = mEncAudioEncodedBuf;
- pkt.size = nEncodedBytes;
-- pkt.flags |= PKT_FLAG_KEY;
-+ pkt.flags |= AV_PKT_FLAG_KEY;
-
- // Set presentation time of frame (currently in the codec's timebase) in the stream timebase.
- if(mEncAudioCodecCtx->coded_frame && mEncAudioCodecCtx->coded_frame->pts != int64_t(AV_NOPTS_VALUE))
-@@ -656,7 +656,7 @@
-
- pkt.stream_index = mEncAudioStream->index;
- pkt.data = mEncAudioEncodedBuf;
-- pkt.flags |= PKT_FLAG_KEY;
-+ pkt.flags |= AV_PKT_FLAG_KEY;
-
- // Write the encoded audio frame to the output file.
- if ((ret = av_interleaved_write_frame(mEncFormatCtx, &pkt)) != 0)
---- audacity-src-1.3.13-beta.orig/src/export/ExportFFmpegDialogs.cpp
-+++ audacity-src-1.3.13-beta/src/export/ExportFFmpegDialogs.cpp
-@@ -1288,7 +1288,7 @@
- while ((codec = av_codec_next(codec)))
- {
- // We're only interested in audio and only in encoders
-- if (codec->type == CODEC_TYPE_AUDIO && codec->encode)
-+ if (codec->type == AVMEDIA_TYPE_AUDIO && codec->encode)
- {
- mCodecNames.Add(wxString::FromUTF8(codec->name));
- mCodecLongNames.Add(wxString::Format(wxT("%s - %s"),mCodecNames.Last().c_str(),wxString::FromUTF8(codec->long_name).c_str()));
-@@ -1528,7 +1528,7 @@
- // Find the codec, that is claimed to be compatible
- AVCodec *codec = avcodec_find_encoder(CompatibilityList[i].codec);
- // If it exists, is audio and has encoder
-- if (codec != NULL && (codec->type == CODEC_TYPE_AUDIO) && codec->encode)
-+ if (codec != NULL && (codec->type == AVMEDIA_TYPE_AUDIO) && codec->encode)
- {
- // If it was selected - remember it's new index
- if ((id >= 0) && codec->id == id) index = mShownCodecNames.GetCount();
-@@ -1543,7 +1543,7 @@
- AVCodec *codec = NULL;
- while ((codec = av_codec_next(codec)))
- {
-- if (codec->type == CODEC_TYPE_AUDIO && codec->encode)
-+ if (codec->type == AVMEDIA_TYPE_AUDIO && codec->encode)
- {
- if (mShownCodecNames.Index(wxString::FromUTF8(codec->name)) < 0)
- {
-@@ -1563,7 +1563,7 @@
- if (format != NULL)
- {
- AVCodec *codec = avcodec_find_encoder(format->audio_codec);
-- if (codec != NULL && (codec->type == CODEC_TYPE_AUDIO) && codec->encode)
-+ if (codec != NULL && (codec->type == AVMEDIA_TYPE_AUDIO) && codec->encode)
- {
- if ((id >= 0) && codec->id == id) index = mShownCodecNames.GetCount();
- mShownCodecNames.Add(wxString::FromUTF8(codec->name));
---- audacity-src-1.3.13-beta.orig/src/FFmpeg.cpp
-+++ audacity-src-1.3.13-beta/src/FFmpeg.cpp
-@@ -316,7 +316,7 @@
- pd.buf_size = 0;
- pd.buf = (unsigned char *) av_malloc(PROBE_BUF_MAX + AVPROBE_PADDING_SIZE);
- if (pd.buf == NULL) {
-- err = AVERROR_NOMEM;
-+ err = AVERROR(ENOMEM);
- goto fail;
- }
-
-@@ -381,7 +381,7 @@
-
- // Didn't find a suitable format, so bail
- if (!fmt) {
-- err = AVERROR_NOFMT;
-+ err = AVERROR(EILSEQ);
- goto fail;
- }
-
-@@ -855,7 +855,6 @@
- FFMPEG_INITDYN(codec, avcodec_find_decoder);
- FFMPEG_INITDYN(codec, avcodec_get_context_defaults);
- FFMPEG_INITDYN(codec, avcodec_open);
-- FFMPEG_INITDYN(codec, avcodec_decode_audio2);
- FFMPEG_INITDYN(codec, avcodec_decode_audio3);
- FFMPEG_INITDYN(codec, avcodec_encode_audio);
- FFMPEG_INITDYN(codec, avcodec_close);
---- audacity-src-1.3.13-beta.orig/src/FFmpeg.h
-+++ audacity-src-1.3.13-beta/src/FFmpeg.h
-@@ -559,7 +559,11 @@
- FFMPEG_FUNCTION_WITH_RETURN(
- void*,
- av_fast_realloc,
-+#if LIBAVUTIL_VERSION_MAJOR < 51
- (void *ptr, unsigned int *size, unsigned int min_size),
-+#else
-+ (void *ptr, unsigned int *size, size_t min_size),
-+#endif
- (ptr, size, min_size)
- );
- FFMPEG_FUNCTION_WITH_RETURN(
-@@ -747,7 +751,11 @@
- FFMPEG_FUNCTION_WITH_RETURN(
- void*,
- av_malloc,
-+#if LIBAVUTIL_VERSION_MAJOR < 51
- (unsigned int size),
-+#else
-+ (size_t size),
-+#endif
- (size)
- );
- FFMPEG_FUNCTION_NO_RETURN(
---- audacity-src-1.3.13-beta.orig/src/import/ImportFFmpeg.cpp
-+++ audacity-src-1.3.13-beta/src/import/ImportFFmpeg.cpp
-@@ -416,7 +416,7 @@
- // Fill the stream contexts
- for (unsigned int i = 0; i < mFormatContext->nb_streams; i++)
- {
-- if (mFormatContext->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
-+ if (mFormatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
- {
- //Create a context
- streamContext *sc = new streamContext;
---- audacity-src-1.3.13-beta.orig/src/ondemand/ODDecodeFFmpegTask.cpp
-+++ audacity-src-1.3.13-beta/src/ondemand/ODDecodeFFmpegTask.cpp
-@@ -156,7 +156,7 @@
- //test the audio stream(s)
- for (unsigned int i = 0; i < ic->nb_streams; i++)
- {
-- if (ic->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
-+ if (ic->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
- {
- audioStreamExists = true;
- st = ic->streams[i];
-@@ -573,10 +573,10 @@
- }
- }
-
-- // avcodec_decode_audio2() expects the size of the output buffer as the 3rd parameter but
-+ // avcodec_decode_audio3() expects the size of the output buffer as the 3rd parameter but
- // also returns the number of bytes it decoded in the same parameter.
- sc->m_decodedAudioSamplesValidSiz = sc->m_decodedAudioSamplesSiz;
-- nBytesDecoded = avcodec_decode_audio2(sc->m_codecCtx,
-+ nBytesDecoded = avcodec_decode_audio3(sc->m_codecCtx,
- sc->m_decodedAudioSamples, // out
- &sc->m_decodedAudioSamplesValidSiz, // in/out
- pDecode, nDecodeSiz); // in
+Index: src/FFmpeg.h
+===================================================================
+--- src/FFmpeg.h (revision 11286)
++++ src/FFmpeg.h (working copy)
+@@ -47,6 +47,21 @@
+ #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52, 94, 1)
+ #define AVSampleFormat SampleFormat
+ #endif
++
++ #if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(52, 120, 0)
++ #define CodecType AVMediaType
++ #define CODEC_TYPE_UNKNOWN AVMEDIA_TYPE_UNKNOWN
++ #define CODEC_TYPE_VIDEO AVMEDIA_TYPE_VIDEO
++ #define CODEC_TYPE_AUDIO AVMEDIA_TYPE_AUDIO
++ #define CODEC_TYPE_DATA AVMEDIA_TYPE_DATA
++ #define CODEC_TYPE_SUBTITLE AVMEDIA_TYPE_SUBTITLE
++ #define CODEC_TYPE_ATTACHMENT AVMEDIA_TYPE_ATTACHMENT
++ #define CODEC_TYPE_NB AVMEDIA_TYPE_NB
++ #endif
++
++ #ifndef PKT_FLAG_KEY
++ #define PKT_FLAG_KEY AV_PKT_FLAG_KEY
++ #endif
+ }
+ #endif
+
+@@ -505,20 +520,23 @@
+ (AVCodecContext *avctx, AVCodec *codec),
+ (avctx, codec);
+ );
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(52, 25, 0)
+ FFMPEG_FUNCTION_WITH_RETURN(
+ int,
++ avcodec_decode_audio3,
++ (AVCodecContext *avctx, int16_t *samples, int *frame_size_ptr, AVPacket *avpkt),
++ (avctx, samples, frame_size_ptr, avpkt)
++ );
++#else
++ FFMPEG_FUNCTION_WITH_RETURN(
++ int,
+ avcodec_decode_audio2,
+ (AVCodecContext *avctx, int16_t *samples, int *frame_size_ptr, const uint8_t *buf, int buf_size),
+ (avctx, samples, frame_size_ptr, buf, buf_size)
+ );
++#endif
+ FFMPEG_FUNCTION_WITH_RETURN(
+ int,
+- avcodec_decode_audio3,
+- (AVCodecContext *avctx, int16_t *samples, int *frame_size_ptr, AVPacket *avpkt),
+- (avctx, samples, frame_size_ptr, avpkt)
+- );
+- FFMPEG_FUNCTION_WITH_RETURN(
+- int,
+ avcodec_encode_audio,
+ (AVCodecContext *avctx, uint8_t *buf, int buf_size, const short *samples),
+ (avctx, buf, buf_size, samples)
+@@ -556,13 +574,22 @@
+ (void),
+ ()
+ );
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 0, 0)
+ FFMPEG_FUNCTION_WITH_RETURN(
+ void*,
+ av_fast_realloc,
+ (void *ptr, unsigned int *size, unsigned int min_size),
+ (ptr, size, min_size)
+ );
++#else
+ FFMPEG_FUNCTION_WITH_RETURN(
++ void*,
++ av_fast_realloc,
++ (void *ptr, unsigned int *size, size_t min_size),
++ (ptr, size, min_size)
++ );
++#endif
++ FFMPEG_FUNCTION_WITH_RETURN(
+ int,
+ av_open_input_stream,
+ (AVFormatContext **ic_ptr, AVIOContext *pb, const char *filename, AVInputFormat *fmt, AVFormatParameters *ap),
+@@ -744,12 +771,21 @@
+ (AVFifoBuffer *f),
+ (f)
+ );
++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(51, 0, 0)
+ FFMPEG_FUNCTION_WITH_RETURN(
+ void*,
+ av_malloc,
+ (unsigned int size),
+ (size)
+ );
++#else
++ FFMPEG_FUNCTION_WITH_RETURN(
++ void*,
++ av_malloc,
++ (size_t size),
++ (size)
++ );
++#endif
+ FFMPEG_FUNCTION_NO_RETURN(
+ av_freep,
+ (void *ptr),
+@@ -761,11 +797,16 @@
+ (int64_t a, AVRational bq, AVRational cq),
+ (a, bq, cq)
+ );
++
++#if LIBAVFORMAT_VERSION_INT > AV_VERSION_INT(52, 31, 0)
+ FFMPEG_FUNCTION_NO_RETURN(
+ av_free_packet,
+ (AVPacket *pkt),
+ (pkt)
+ );
++#endif
++
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(49, 15, 0)
+ FFMPEG_FUNCTION_WITH_RETURN(
+ AVFifoBuffer*,
+ av_fifo_alloc,
+@@ -778,8 +819,22 @@
+ (AVFifoBuffer *f, void *buf, int buf_size, void (*func)(void*, void*, int)),
+ (f, buf, buf_size, func)
+ );
++#else
+ FFMPEG_FUNCTION_WITH_RETURN(
+ int,
++ av_fifo_init,
++ (AVFifoBuffer *f, unsigned int size),
++ (f, size)
++ );
++ FFMPEG_FUNCTION_WITH_RETURN(
++ int,
++ av_fifo_generic_read,
++ (AVFifoBuffer *f, int buf_size, void (*func)(void*, void*, int), void* dest),
++ (f, buf_size, func, dest)
++ );
++#endif
++ FFMPEG_FUNCTION_WITH_RETURN(
++ int,
+ av_fifo_realloc2,
+ (AVFifoBuffer *f, unsigned int size),
+ (f, size)
+Index: src/FFmpeg.cpp
+===================================================================
+--- src/FFmpeg.cpp (revision 11286)
++++ src/FFmpeg.cpp (working copy)
+@@ -186,9 +186,15 @@
+ return AVERROR(ENOMEM);
+ }
+
+- if (flags & URL_RDWR) {
++ // LLL: These really should be logical AND tests, but on 2011/04/28, the URL_ open flags
++ // changed in the FFmpeg source to values that were not compatible with previous
++ // values.
++ //
++ // Since Audacity doesn't use any other open flags (there aren't any others defined
++ // anyway), making equality tests works for older and new FFmpeg headers.
++ if (flags == URL_RDWR) {
+ mode = wxFile::read_write;
+- } else if (flags & URL_WRONLY) {
++ } else if (flags == URL_WRONLY) {
+ mode = wxFile::write;
+ } else {
+ mode = wxFile::read;
+@@ -222,6 +228,10 @@
+ {
+ wxSeekMode mode = wxFromStart;
+
++#if !defined(AVSEEK_FORCE)
++#define AVSEEK_FORCE 0
++#endif
++
+ switch (whence & ~AVSEEK_FORCE)
+ {
+ case (SEEK_SET):
+@@ -316,7 +326,7 @@
+ pd.buf_size = 0;
+ pd.buf = (unsigned char *) av_malloc(PROBE_BUF_MAX + AVPROBE_PADDING_SIZE);
+ if (pd.buf == NULL) {
+- err = AVERROR_NOMEM;
++ err = AVERROR(ENOMEM);
+ goto fail;
+ }
+
+@@ -381,7 +391,7 @@
+
+ // Didn't find a suitable format, so bail
+ if (!fmt) {
+- err = AVERROR_NOFMT;
++ err = AVERROR(EILSEQ);
+ goto fail;
+ }
+
+@@ -847,39 +857,53 @@
+ FFMPEG_INITALT(avformat, av_guess_format, guess_format);
+ FFMPEG_INITALT(avformat, av_match_ext, match_ext);
+
+- FFMPEG_INITDYN(codec, av_init_packet);
+- FFMPEG_INITDYN(codec, av_free_packet);
+- FFMPEG_INITDYN(codec, avcodec_init);
+- FFMPEG_INITDYN(codec, avcodec_find_encoder);
+- FFMPEG_INITDYN(codec, avcodec_find_encoder_by_name);
+- FFMPEG_INITDYN(codec, avcodec_find_decoder);
+- FFMPEG_INITDYN(codec, avcodec_get_context_defaults);
+- FFMPEG_INITDYN(codec, avcodec_open);
+- FFMPEG_INITDYN(codec, avcodec_decode_audio2);
+- FFMPEG_INITDYN(codec, avcodec_decode_audio3);
+- FFMPEG_INITDYN(codec, avcodec_encode_audio);
+- FFMPEG_INITDYN(codec, avcodec_close);
+- FFMPEG_INITDYN(codec, avcodec_register_all);
+- FFMPEG_INITDYN(codec, avcodec_version);
+- FFMPEG_INITDYN(codec, av_fast_realloc);
+- FFMPEG_INITDYN(codec, av_codec_next);
+- FFMPEG_INITDYN(codec, av_get_bits_per_sample_format);
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(52, 58, 0)
++ FFMPEG_INITDYN(avcodec, av_init_packet);
++#else
++ FFMPEG_INITDYN(avformat, av_init_packet);
++#endif
+
++#if LIBAVFORMAT_VERSION_INT > AV_VERSION_INT(52, 31, 0)
++ FFMPEG_INITDYN(avcodec, av_free_packet);
++#endif
++ FFMPEG_INITDYN(avcodec, avcodec_init);
++ FFMPEG_INITDYN(avcodec, avcodec_find_encoder);
++ FFMPEG_INITDYN(avcodec, avcodec_find_encoder_by_name);
++ FFMPEG_INITDYN(avcodec, avcodec_find_decoder);
++ FFMPEG_INITDYN(avcodec, avcodec_get_context_defaults);
++ FFMPEG_INITDYN(avcodec, avcodec_open);
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(52, 25, 0)
++ FFMPEG_INITDYN(avcodec, avcodec_decode_audio3);
++#else
++ FFMPEG_INITDYN(avcodec, avcodec_decode_audio2);
++#endif
++ FFMPEG_INITDYN(avcodec, avcodec_encode_audio);
++ FFMPEG_INITDYN(avcodec, avcodec_close);
++ FFMPEG_INITDYN(avcodec, avcodec_register_all);
++ FFMPEG_INITDYN(avcodec, avcodec_version);
++ FFMPEG_INITDYN(avcodec, av_fast_realloc);
++ FFMPEG_INITDYN(avcodec, av_codec_next);
++ FFMPEG_INITDYN(avcodec, av_get_bits_per_sample_format);
++
+ FFMPEG_INITALT(avcodec, av_get_bits_per_sample_fmt, av_get_bits_per_sample_format);
+
+- FFMPEG_INITDYN(util, av_free);
+- FFMPEG_INITDYN(util, av_log_set_callback);
+- FFMPEG_INITDYN(util, av_log_default_callback);
+- FFMPEG_INITDYN(util, av_fifo_alloc);
+- FFMPEG_INITDYN(util, av_fifo_generic_read);
+- FFMPEG_INITDYN(util, av_fifo_realloc2);
+- FFMPEG_INITDYN(util, av_fifo_free);
+- FFMPEG_INITDYN(util, av_fifo_size);
+- FFMPEG_INITDYN(util, av_malloc);
+- FFMPEG_INITDYN(util, av_fifo_generic_write);
+- FFMPEG_INITDYN(util, av_freep);
+- FFMPEG_INITDYN(util, av_rescale_q);
+- FFMPEG_INITDYN(util, avutil_version);
++ FFMPEG_INITDYN(avutil, av_free);
++ FFMPEG_INITDYN(avutil, av_log_set_callback);
++ FFMPEG_INITDYN(avutil, av_log_default_callback);
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(49, 15, 0)
++ FFMPEG_INITDYN(avutil, av_fifo_alloc);
++#else
++ FFMPEG_INITDYN(avutil, av_fifo_init);
++#endif
++ FFMPEG_INITDYN(avutil, av_fifo_generic_read);
++ FFMPEG_INITDYN(avutil, av_fifo_realloc2);
++ FFMPEG_INITDYN(avutil, av_fifo_free);
++ FFMPEG_INITDYN(avutil, av_fifo_size);
++ FFMPEG_INITDYN(avutil, av_malloc);
++ FFMPEG_INITDYN(avutil, av_fifo_generic_write);
++ FFMPEG_INITDYN(avutil, av_freep);
++ FFMPEG_INITDYN(avutil, av_rescale_q);
++ FFMPEG_INITDYN(avutil, avutil_version);
+
+ //FFmpeg initialization
+ wxLogMessage(wxT("All symbols loaded successfully. Initializing the library."));
+Index: src/import/ImportFFmpeg.cpp
+===================================================================
+--- src/import/ImportFFmpeg.cpp (revision 11286)
++++ src/import/ImportFFmpeg.cpp (working copy)
+@@ -808,9 +808,12 @@
+ }
+ }
+
++
++ sc->m_decodedAudioSamplesValidSiz = sc->m_decodedAudioSamplesSiz;
++
++#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(52, 25, 0)
+ // avcodec_decode_audio3() expects the size of the output buffer as the 3rd parameter but
+ // also returns the number of bytes it decoded in the same parameter.
+- sc->m_decodedAudioSamplesValidSiz = sc->m_decodedAudioSamplesSiz;
+ AVPacket avpkt;
+ av_init_packet(&avpkt);
+ avpkt.data = pDecode;
+@@ -820,7 +823,16 @@
+ (int16_t *)sc->m_decodedAudioSamples, // out
+ &sc->m_decodedAudioSamplesValidSiz, // in/out
+ &avpkt); // in
+-
++#else
++ // avcodec_decode_audio2() expects the size of the output buffer as the 3rd parameter but
++ // also returns the number of bytes it decoded in the same parameter.
++ nBytesDecoded =
++ avcodec_decode_audio2(sc->m_codecCtx,
++ (int16_t *) sc->m_decodedAudioSamples, // out
++ &sc->m_decodedAudioSamplesValidSiz, // in/out
++ pDecode, // in
++ nDecodeSiz); // in
++#endif
+ if (nBytesDecoded < 0)
+ {
+ // Decoding failed. Don't stop.
+Index: src/export/ExportFFmpeg.cpp
+===================================================================
+--- src/export/ExportFFmpeg.cpp (revision 11286)
++++ src/export/ExportFFmpeg.cpp (working copy)
+@@ -154,6 +154,10 @@
+ AVFifoBuffer * mEncAudioFifo; // FIFO to write incoming audio samples into
+ uint8_t * mEncAudioFifoOutBuf; // buffer to read _out_ of the FIFO into
+
++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(50, 0, 0)
++ AVFifoBuffer mEncAudioFifoBuffer; // FIFO to write incoming audio samples into
++#endif
++
+ wxString mName;
+
+ int mSubFormat;
+@@ -174,6 +178,11 @@
+ #define MAX_AUDIO_PACKET_SIZE (128 * 1024)
+ mEncAudioEncodedBufSiz = 4*MAX_AUDIO_PACKET_SIZE;
+ mEncAudioFifoOutBuf = NULL; // buffer to read _out_ of the FIFO into
++
++#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(50, 0, 0)
++ mEncAudioFifo = &mEncAudioFifoBuffer;
++#endif
++
+ mSampleRate = 0;
+ mSupportsUTF8 = true;
+
+@@ -350,7 +359,6 @@
+ mEncAudioCodecCtx = mEncAudioStream->codec;
+
+ avcodec_get_context_defaults(mEncAudioCodecCtx);
+-
+ mEncAudioCodecCtx->codec_id = ExportFFmpegOptions::fmts[mSubFormat].codecid;
+ mEncAudioCodecCtx->codec_type = CODEC_TYPE_AUDIO;
+ mEncAudioCodecCtx->codec_tag = av_codec_get_tag((const AVCodecTag **)mEncFormatCtx->oformat->codec_tag,mEncAudioCodecCtx->codec_id);
+@@ -403,7 +411,9 @@
+ mEncAudioCodecCtx->flags2 = 0;
+ if (gPrefs->Read(wxT("/FileFormats/FFmpegBitReservoir"),true)) mEncAudioCodecCtx->flags2 |= CODEC_FLAG2_BIT_RESERVOIR;
+ if (gPrefs->Read(wxT("/FileFormats/FFmpegVariableBlockLen"),true)) mEncAudioCodecCtx->flags2 |= 0x0004; //WMA only?
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(53, 0, 0)
+ mEncAudioCodecCtx->use_lpc = gPrefs->Read(wxT("/FileFormats/FFmpegUseLPC"),true);
++#endif
+ mEncAudioCodecCtx->compression_level = gPrefs->Read(wxT("/FileFormats/FFmpegCompLevel"),-1);
+ mEncAudioCodecCtx->frame_size = gPrefs->Read(wxT("/FileFormats/FFmpegFrameSize"),(long)0);
+ mEncAudioCodecCtx->lpc_coeff_precision = gPrefs->Read(wxT("/FileFormats/FFmpegLPCCoefPrec"),(long)0);
+@@ -487,7 +497,11 @@
+ // The encoder may require a minimum number of raw audio samples for each encoding but we can't
+ // guarantee we'll get this minimum each time an audio frame is decoded from the input file so
+ // we use a FIFO to store up incoming raw samples until we have enough for one call to the codec.
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(49, 15, 0)
+ mEncAudioFifo = av_fifo_alloc(1024);
++#else
++ av_fifo_init(mEncAudioFifo, 1024);
++#endif
+
+ // Allocate a buffer to read OUT of the FIFO into. The FIFO maintains its own buffer internally.
+ if ((mEncAudioFifoOutBuf = (uint8_t*)av_malloc(2*MAX_AUDIO_PACKET_SIZE)) == NULL)
+@@ -544,7 +558,11 @@
+ nFifoBytes, mEncAudioCodecCtx->frame_size);
+
+ // Pull the bytes out from the FIFO and feed them to the encoder.
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(49, 15, 0)
+ if (av_fifo_generic_read(mEncAudioFifo, mEncAudioFifoOutBuf, nFifoBytes, NULL) == 0)
++#else
++ if (av_fifo_generic_read(mEncAudioFifo, nFifoBytes, NULL, mEncAudioFifoOutBuf) == 0)
++#endif
+ {
+ if (mEncAudioCodecCtx->frame_size != 1)
+ nEncodedBytes = avcodec_encode_audio(mEncAudioCodecCtx, mEncAudioEncodedBuf, mEncAudioEncodedBufSiz, (int16_t*)mEncAudioFifoOutBuf);
+@@ -609,7 +627,10 @@
+ av_free(mEncAudioFifoOutBuf);
+
+ av_fifo_free(mEncAudioFifo);
++
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(49, 15, 0)
+ mEncAudioFifo = NULL;
++#endif
+
+ return true;
+ }
+@@ -635,7 +656,11 @@
+ // Read raw audio samples out of the FIFO in nAudioFrameSizeOut byte-sized groups to encode.
+ while ((ret = av_fifo_size(mEncAudioFifo)) >= nAudioFrameSizeOut)
+ {
++#if LIBAVUTIL_VERSION_INT > AV_VERSION_INT(49, 15, 0)
+ ret = av_fifo_generic_read(mEncAudioFifo, mEncAudioFifoOutBuf, nAudioFrameSizeOut, NULL);
++#else
++ ret = av_fifo_generic_read(mEncAudioFifo, nAudioFrameSizeOut, NULL, mEncAudioFifoOutBuf);
++#endif
+
+ av_init_packet(&pkt);
+
diff --git a/extra/bluez/PKGBUILD b/extra/bluez/PKGBUILD
index e2236c950..4c901a565 100644
--- a/extra/bluez/PKGBUILD
+++ b/extra/bluez/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 146412 2012-01-10 21:47:26Z andrea $
+# $Id: PKGBUILD 146600 2012-01-13 22:26:31Z andrea $
# Maintainer:
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
pkgname=bluez
-pkgver=4.97
+pkgver=4.98
pkgrel=1
pkgdesc="Libraries and tools for the Bluetooth protocol stack"
url="http://www.bluez.org/"
@@ -27,19 +27,14 @@ backup=(etc/bluetooth/{main,rfcomm,audio,network,input,serial}.conf
'etc/conf.d/bluetooth' 'etc/dbus-1/system.d/bluetooth.conf')
source=("http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.bz2"
'bluetooth.conf.d'
- 'rc.bluetooth'
- 'make-libcheck-optional.patch')
-md5sums=('b302cee7f9b9527d29775449d7e1dfe6'
+ 'rc.bluetooth')
+md5sums=('4aca8a0929250212e9a75fb60dd75b05'
'7412982b440f29fa7f76a41a87fef985'
- '8f9498707f809506928b2e480d3b6789'
- 'f112fc5bcaeecc7b6ea994f14786e235')
+ '8f9498707f809506928b2e480d3b6789')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -p1 -i "${srcdir}"/make-libcheck-optional.patch
- autoreconf -i -f
-
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
diff --git a/extra/cifs-utils/PKGBUILD b/extra/cifs-utils/PKGBUILD
index 1c85829c0..5183fed7d 100644
--- a/extra/cifs-utils/PKGBUILD
+++ b/extra/cifs-utils/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 122574 2011-05-04 17:23:19Z ibiru $
+# $Id: PKGBUILD 146919 2012-01-19 07:41:51Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=cifs-utils
-pkgver=4.9
-pkgrel=3
+pkgver=5.2
+pkgrel=1
pkgdesc="CIFS filesystem user-space tools"
arch=(i686 x86_64 'mips64el')
url="http://wiki.samba.org/index.php/LinuxCIFS_utils"
license=('GPL')
-depends=('libcap' 'keyutils' 'krb5' 'talloc')
+depends=('libcap-ng' 'keyutils' 'krb5' 'talloc')
source=(ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/$pkgname-$pkgver.tar.bz2)
-md5sums=('908d904e6b9e58f09f530de151a88ef8')
+# deinstall smbclient first!
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -24,3 +24,4 @@ package() {
# set mount.cifs uid, to enable none root mounting form fstab
chmod +s $pkgdir/sbin/mount.cifs
}
+md5sums=('2ca839553cccd0c3042f7dd8737cc9de')
diff --git a/extra/claws-mail-extra-plugins/PKGBUILD b/extra/claws-mail-extra-plugins/PKGBUILD
index 5c717c0cc..258d3e4e6 100644
--- a/extra/claws-mail-extra-plugins/PKGBUILD
+++ b/extra/claws-mail-extra-plugins/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 145087 2011-12-16 15:46:57Z andyrtr $
+# $Id: PKGBUILD 146705 2012-01-16 19:49:15Z dreisner $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Mildred <mildred593 at online dot fr>
pkgname=claws-mail-extra-plugins
pkgver=3.8.0
-pkgrel=1
+pkgrel=2
pkgdesc="Extra plugins for claws-mail"
url="http://www.claws-mail.org/plugins.php?branch=EXT"
license=('GPL3')
@@ -33,7 +33,7 @@ conflicts=('claws-gtkhtml2_viewer' 'claws-mail-acpinotifier-plugin'
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)
-md5sums=('0783008baff9e09cb21ffc8947e9f2ee')
+md5sums=('4776f6e0357a694f384349ac73b6da52')
build() {
cd "$srcdir/claws-mail-extra-plugins-$pkgver"
diff --git a/extra/clutter-gst/PKGBUILD b/extra/clutter-gst/PKGBUILD
index 6f61bdd74..e968a14d7 100644
--- a/extra/clutter-gst/PKGBUILD
+++ b/extra/clutter-gst/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 141289 2011-10-28 07:37:23Z ibiru $
+# $Id: PKGBUILD 146820 2012-01-18 18:28:11Z ibiru $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=clutter-gst
-pkgver=1.4.4
+pkgver=1.4.6
pkgrel=1
pkgdesc="GStreamer bindings for clutter"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ depends=('clutter' 'gstreamer0.10-base' 'libxdamage')
makedepends=('gobject-introspection' 'gtk-doc')
options=('!libtool')
source=(http://clutter-project.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('9fdcf8d8531d4d78342e7ac901d1768c7a8f78124f74dd6be8e51961169b8fb5')
+sha256sums=('5368ded143b2f73c3128315dab7b45c5dd8d681341cbae8f83664d2f9bbba3c3')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/extra/cmake/PKGBUILD b/extra/cmake/PKGBUILD
index 6d0c0a32e..9a59b190d 100644
--- a/extra/cmake/PKGBUILD
+++ b/extra/cmake/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 145779 2011-12-31 11:08:34Z andrea $
+# $Id: PKGBUILD 146707 2012-01-16 19:49:18Z dreisner $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=cmake
pkgver=2.8.7
-pkgrel=1
+pkgrel=2
pkgdesc="A cross-platform open-source make system"
arch=('i686' 'x86_64' 'mips64el')
license=('custom')
diff --git a/extra/colord/PKGBUILD b/extra/colord/PKGBUILD
index 57e789067..880940ef7 100644
--- a/extra/colord/PKGBUILD
+++ b/extra/colord/PKGBUILD
@@ -1,25 +1,22 @@
-# $Id: PKGBUILD 144475 2011-12-06 14:25:28Z ibiru $
+# $Id: PKGBUILD 146778 2012-01-17 13:36:48Z ibiru $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
pkgname=colord
-pkgver=0.1.15
-pkgrel=3
+pkgver=0.1.16
+pkgrel=1
pkgdesc="Color daemon"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.freedesktop.org/software/colord"
license=('GPL2')
depends=('lcms2' 'libgusb' 'polkit' 'sane' 'shared-color-profiles' 'sqlite3' 'udev')
makedepends=('intltool' 'gobject-introspection' 'vala' 'docbook2x')
-source=($url/releases/$pkgname-$pkgver.tar.xz
- scan_only_color_profile_dir.patch)
+source=($url/releases/$pkgname-$pkgver.tar.xz)
options=('!libtool')
-sha1sums=('e83a68add3fac9c677829925794ee353743dc9c8'
- 'b4b8ea1008ecfdc1084ec69d647127587a2a87f7')
+sha1sums=('bd2fbad0043d2c1f55ab7ff8cb5e261b684e699c')
build() {
cd "$srcdir/$pkgname-$pkgver"
- patch -Np1 -i "$srcdir/scan_only_color_profile_dir.patch"
./configure --prefix=/usr \
--sysconfdir=/etc --libexecdir=/usr/lib/colord \
--localstatedir=/var --disable-static
diff --git a/extra/cppunit/PKGBUILD b/extra/cppunit/PKGBUILD
index 79bac05cb..b20bf3a07 100644
--- a/extra/cppunit/PKGBUILD
+++ b/extra/cppunit/PKGBUILD
@@ -1,32 +1,27 @@
-# $Id: PKGBUILD 126261 2011-06-03 13:02:27Z stephane $
+# $Id: PKGBUILD 146794 2012-01-18 13:02:35Z stephane $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
pkgname=cppunit
pkgver=1.12.1
-pkgrel=3
+pkgrel=4
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')
+options=('!libtool' '!emptydirs')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('f1ab8986af7a1ffa6760f4bacf5622924639bf4a')
build() {
- cd "${srcdir}/$pkgname-$pkgver"
- patch -Np1 -i ../gcc4.5.patch
- autoreconf
- libtoolize -f
- ./configure --prefix=/usr
- make
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export LDFLAGS+=" -ldl"
+ ./configure --prefix=/usr
+ make
}
package() {
- cd "${srcdir}/$pkgname-$pkgver"
- make DESTDIR="${pkgdir}" install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/extra/dhcp/PKGBUILD b/extra/dhcp/PKGBUILD
index 7b6cbc29a..6d72922ef 100644
--- a/extra/dhcp/PKGBUILD
+++ b/extra/dhcp/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 145313 2011-12-21 18:57:01Z daniel $
+# $Id: PKGBUILD 146655 2012-01-15 12:58:26Z daniel $
# Maintainer: Daniel Isenmann <daniel @archlinux.org>
pkgbase=dhcp
@@ -6,9 +6,9 @@ pkgname=('dhcp' 'dhclient')
# separate patch levels with a period to maintain proper versioning.
pkgver=4.2.3.2
-_pkgver=4.2.3-P1
+_pkgver=4.2.3-P2
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
license=('custom:isc-dhcp')
url="https://www.isc.org/software/dhcp"
@@ -16,7 +16,7 @@ source=(ftp://ftp.isc.org/isc/${pkgbase}/${_pkgver}/${pkgbase}-${_pkgver}.tar.gz
dhcp4 dhcp6 dhcp
dhcp-4.1.1-missing-ipv6-not-fatal.patch
dhclient-script-pathFixes.patch)
-md5sums=('04599f1557a5cafd10d7745267a68c8b'
+md5sums=('14f57fd580d01633d0fad4809007a801'
'c49b1497837ba56c54e401a66e1bab9b'
'12c2f3ae47ed23eb698eb7f1bfd80f20'
'8f357e46e1efcbb746f38737a3f977a2'
diff --git a/extra/ethtool/PKGBUILD b/extra/ethtool/PKGBUILD
index 820ebfdac..a67573cce 100644
--- a/extra/ethtool/PKGBUILD
+++ b/extra/ethtool/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 144425 2011-12-05 19:20:31Z ibiru $
+# $Id: PKGBUILD 146699 2012-01-16 19:33:36Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Paul Mattal <paul@archlinux.org>
# Contributor: Martin Kemp <mdkemp@elys.com>
pkgname=ethtool
-pkgver=3.1
+pkgver=3.2
pkgrel=1
epoch=1
pkgdesc="Utility for controlling network drivers and hardware"
@@ -13,7 +13,7 @@ url="http://www.kernel.org/pub/software/network/ethtool/"
license=('GPL')
depends=('glibc')
source=(http://www.kernel.org/pub/software/network/$pkgname/$pkgname-$pkgver.tar.xz)
-md5sums=('dd0a93a70784fdeb2c3e699b3c709e8a')
+md5sums=('4ed4a9dfd2039aa416176a9c06497b00')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/extra/fontforge/PKGBUILD b/extra/fontforge/PKGBUILD
index 8f6b8da88..2e2f88a06 100644
--- a/extra/fontforge/PKGBUILD
+++ b/extra/fontforge/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 145161 2011-12-18 12:09:19Z bisson $
+# $Id: PKGBUILD 146693 2012-01-16 13:56:18Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Eric Belanger <eric@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=fontforge
pkgver=20111214
-pkgrel=2
+pkgrel=3
pkgdesc='Outline and bitmap font editor'
arch=('i686' 'x86_64' 'mips64el')
url='http://fontforge.sourceforge.net/'
@@ -25,6 +25,7 @@ build() {
--mandir=/usr/share/man \
--enable-type3 \
--enable-devicetables \
+ --enable-double \
--with-regular-link \
--with-python=python2 \
--enable-pyextension \
diff --git a/extra/gcin/PKGBUILD b/extra/gcin/PKGBUILD
index 0fbdb91c5..ac28d51a2 100644
--- a/extra/gcin/PKGBUILD
+++ b/extra/gcin/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 146056 2012-01-04 19:11:47Z bisson $
+# $Id: PKGBUILD 146643 2012-01-15 09:45:20Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: damir <damir@archlinux.org>
pkgname=gcin
-pkgver=2.7.0
+pkgver=2.7.1
pkgrel=1
pkgdesc='Input method server supporting various input methods'
url='http://hyperrate.com/dir.php?eid=67'
@@ -18,7 +18,7 @@ optdepends=('qt: support for qt4 input method'
'libchewing: support for chewing input method')
source=("http://www.csie.nctu.edu.tw/~cp76/gcin/download/${pkgname}-${pkgver}.tar.xz"
'qt4-lib64.patch')
-sha1sums=('ff52b67a9456e1afe18c9c86a8f84c9dc16b9414'
+sha1sums=('16e549f5e602c7834dcc35875e375f1e660a627d'
'3d1b769dcd8820c8351f239ec32ee5bcd9d98b70')
install=install
diff --git a/extra/git/PKGBUILD b/extra/git/PKGBUILD
index fb5541a65..b717cd079 100644
--- a/extra/git/PKGBUILD
+++ b/extra/git/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 146299 2012-01-08 22:58:11Z dan $
+# $Id: PKGBUILD 146869 2012-01-19 01:23:02Z dan $
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=git
-pkgver=1.7.8.3
+pkgver=1.7.8.4
pkgrel=1
pkgdesc="the fast distributed version control system"
arch=(i686 x86_64 'mips64el')
@@ -80,7 +80,7 @@ package() {
install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf
}
-sha1sums=('e5eb8c289b69d69fd08c81b587a06eb5dd2b5c1c'
- 'a6e2b7cff8181ee52a1cc00ebba7b349850d6680'
+sha1sums=('add7b05f26216181d1b148dde298432132552b0f'
+ '4372c423a0d2f7df33b5b39727a81f0a7b40669d'
'f2b41828bd912b72e2cb3e14677739c4f370de66'
'149e2da1ecb48872ddb31c0945afeaad1f9653d7')
diff --git a/extra/gjs/PKGBUILD b/extra/gjs/PKGBUILD
index c262561c3..c077a7970 100644
--- a/extra/gjs/PKGBUILD
+++ b/extra/gjs/PKGBUILD
@@ -1,7 +1,8 @@
-# $Id: PKGBUILD 139275 2011-10-01 18:57:14Z ibiru $
+# $Id: PKGBUILD 146616 2012-01-14 12:13:58Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
pkgname=gjs
-pkgver=1.30.0
+pkgver=1.30.1
pkgrel=1
pkgdesc="Javascript Bindings for GNOME"
arch=('i686' 'x86_64' 'mips64el')
@@ -9,17 +10,17 @@ url="http://live.gnome.org/Gjs"
license=('GPL')
depends=('cairo' 'dbus-glib' 'gobject-introspection' 'js')
options=('!libtool')
-source=(http://download.gnome.org/sources/${pkgname}/1.30/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('ffe01980dd183abd96b2cc861d2e86ef12751d0a1af86daa4c491b82c74ac7b9')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('f5db07ddf70458a33a5d0bdf83f84070fc234237ecb0d49a8676e67b52119a05')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
sed -i 's|python|python2|' scripts/make-tests
./configure --prefix=/usr --disable-static
make
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
}
diff --git a/extra/gmime/PKGBUILD b/extra/gmime/PKGBUILD
index 1d68de4ba..32ac50fb7 100644
--- a/extra/gmime/PKGBUILD
+++ b/extra/gmime/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 146295 2012-01-08 17:45:05Z ibiru $
+# $Id: PKGBUILD 146717 2012-01-16 19:50:48Z dreisner $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Ben <ben@benmazer.net>
pkgname=gmime
-pkgver=2.4.31
+pkgver=2.6.4
pkgrel=1
pkgdesc="Core mime parsing library"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://spruce.sourceforge.net/gmime/"
-depends=('glib2' 'zlib')
+depends=('glib2' 'gpgme' 'zlib')
makedepends=('gtk-sharp-2' 'pkgconfig')
[ "$CARCH" = "mips64el" ] && \
-makedepends=('pkgconfig')
+unset makedepend
options=('!libtool')
source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('d9601328ee3d2d5be57ac8397571af4835dba8eb2c68ad224de3ec722a81fd04')
+sha256sums=('2e85076c223fe8bf1392a7c1affa4454cb3bb6dec83016ad6e3230c65533f163')
build() {
# get rid of that .wapi errors in fakeroot
@@ -23,7 +23,8 @@ build() {
mkdir -p "$MONO_SHARED_DIR"
cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr
+
+ ./configure --prefix=/usr --disable-static
make
}
diff --git a/extra/gnome-shell/PKGBUILD b/extra/gnome-shell/PKGBUILD
index 3116f3315..17fd30985 100644
--- a/extra/gnome-shell/PKGBUILD
+++ b/extra/gnome-shell/PKGBUILD
@@ -1,25 +1,29 @@
-# $Id: PKGBUILD 140909 2011-10-20 05:43:08Z ibiru $
+# $Id: PKGBUILD 146931 2012-01-19 10:12:16Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
# Contributor: Flamelab <panosfilip@gmail.com
pkgname=gnome-shell
-pkgver=3.2.1
-pkgrel=1
+pkgver=3.2.2
+pkgrel=2
pkgdesc="The next generation GNOME Shell"
arch=('i686' 'x86_64' 'mips64el')
url="http://live.gnome.org/GnomeShell"
license=('GPL2')
-depends=('mutter' 'gjs' 'libcroco' 'gnome-bluetooth' 'gnome-desktop' 'gnome-menus' 'libpulse' 'folks' 'telepathy-logger' 'networkmanager' 'caribou' 'nautilus' 'telepathy-mission-control')
+depends=('mutter' 'gjs' 'libcroco' 'gnome-bluetooth' 'gnome-desktop' 'gnome-menus' 'libpulse' 'folks' 'telepathy-logger' 'networkmanager' 'caribou' 'nautilus' 'telepathy-mission-control' 'unzip')
makedepends=('intltool' 'gnome-doc-utils')
optdepends=('network-manager-applet: shell integration for networkmanager')
options=('!libtool' '!emptydirs')
install=gnome-shell.install
groups=(gnome)
-source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/3.2/$pkgname-$pkgver.tar.xz)
-sha256sums=('ac05e3133bd279c84812d8d3d8e362f8b33563cdc3e7a6aefa9c0b1c2aeab0eb')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ revert-notificationdaemon-group-based-on-pid-and-titles.patch)
+sha256sums=('68967b9d58ad0551d7d3d28a276526a15faf1fc1d27f4624eb405663910e2eb8'
+ '9e0337cd25d29d7215561d6fa30612d69c89fe7c27aa563a0c0b8a5b6f6cf12a')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -R -i "$srcdir/revert-notificationdaemon-group-based-on-pid-and-titles.patch"
PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
--libexecdir=/usr/lib/gnome-shell \
@@ -29,10 +33,10 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
- install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
- gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-shell ${pkgdir}/etc/gconf/schemas/*.schemas
- rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+ install -m755 -d "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" --domain gnome-shell "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -f "$pkgdir"/etc/gconf/schemas/*.schemas
}
diff --git a/extra/gnome-shell/revert-notificationdaemon-group-based-on-pid-and-titles.patch b/extra/gnome-shell/revert-notificationdaemon-group-based-on-pid-and-titles.patch
new file mode 100644
index 000000000..cdb9140bf
--- /dev/null
+++ b/extra/gnome-shell/revert-notificationdaemon-group-based-on-pid-and-titles.patch
@@ -0,0 +1,224 @@
+From 7e654ab3ca6e8ac75ba5e45c2a411eb1c2904b26 Mon Sep 17 00:00:00 2001
+From: Marina Zhurakhinskaya <marinaz@redhat.com>
+Date: Tue, 20 Dec 2011 05:51:35 +0000
+Subject: notificationDaemon: group sources based on a combination of pid and title
+
+That way different system notifications, such as the ones about battery power
+and the ones about software updates, are shown with separate message tray
+sources.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=664138
+---
+diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js
+index f40205d..c691efe 100644
+--- a/js/ui/notificationDaemon.js
++++ b/js/ui/notificationDaemon.js
+@@ -92,7 +92,7 @@ NotificationDaemon.prototype = {
+ _init: function() {
+ DBus.session.exportObject('/org/freedesktop/Notifications', this);
+
+- this._sources = {};
++ this._sources = [];
+ this._senderToPid = {};
+ this._notifications = {};
+ this._busProxy = new Bus();
+@@ -150,14 +150,30 @@ NotificationDaemon.prototype = {
+ }
+ },
+
++ _lookupSource: function(title, pid, trayIcon) {
++ for (let i = 0; i < this._sources.length; i++) {
++ let source = this._sources[i];
++ if (source.pid == pid &&
++ (source.initialTitle == title || source.trayIcon || trayIcon))
++ return source;
++ }
++ return null;
++ },
++
+ // Returns the source associated with ndata.notification if it is set.
+- // Otherwise, returns the source associated with the pid if one is
+- // stored in this._sources and the notification is not transient.
+- // Otherwise, creates a new source as long as pid is provided.
++ // Otherwise, returns the source associated with the title and pid if
++ // such source is stored in this._sources and the notification is not
++ // transient. If the existing or requested source is associated with
++ // a tray icon and passed in pid matches a pid of an existing source,
++ // the title match is ignored to enable representing a tray icon and
++ // notifications from the same application with a single source.
++ //
++ // If no existing source is found, a new source is created as long as
++ // pid is provided.
+ //
+ // Either a pid or ndata.notification is needed to retrieve or
+ // create a source.
+- _getSource: function(title, pid, ndata, sender) {
++ _getSource: function(title, pid, ndata, sender, trayIcon) {
+ if (!pid && !(ndata && ndata.notification))
+ return null;
+
+@@ -174,20 +190,24 @@ NotificationDaemon.prototype = {
+ // with a transient one from the same sender, so we
+ // always create a new source object for new transient notifications
+ // and never add it to this._sources .
+- if (!isForTransientNotification && this._sources[pid]) {
+- let source = this._sources[pid];
+- source.setTitle(title);
+- return source;
++ if (!isForTransientNotification) {
++ let source = this._lookupSource(title, pid, trayIcon);
++ if (source) {
++ source.setTitle(title);
++ return source;
++ }
+ }
+
+- let source = new Source(title, pid, sender);
++ let source = new Source(title, pid, sender, trayIcon);
+ source.setTransient(isForTransientNotification);
+
+ if (!isForTransientNotification) {
+- this._sources[pid] = source;
++ this._sources.push(source);
+ source.connect('destroy', Lang.bind(this,
+ function() {
+- delete this._sources[pid];
++ let index = this._sources.indexOf(source);
++ if (index >= 0)
++ this._sources.splice(index, 1);
+ }));
+ }
+
+@@ -261,7 +281,7 @@ NotificationDaemon.prototype = {
+ let sender = DBus.getCurrentMessageContext().sender;
+ let pid = this._senderToPid[sender];
+
+- let source = this._getSource(appName, pid, ndata, sender);
++ let source = this._getSource(appName, pid, ndata, sender, null);
+
+ if (source) {
+ this._notifyForSource(source, ndata);
+@@ -282,7 +302,7 @@ NotificationDaemon.prototype = {
+ if (!ndata)
+ return;
+
+- source = this._getSource(appName, pid, ndata, sender);
++ source = this._getSource(appName, pid, ndata, sender, null);
+
+ // We only store sender-pid entries for persistent sources.
+ // Removing the entries once the source is destroyed
+@@ -432,8 +452,8 @@ NotificationDaemon.prototype = {
+ if (!tracker.focus_app)
+ return;
+
+- for (let id in this._sources) {
+- let source = this._sources[id];
++ for (let i = 0; i < this._sources.length; i++) {
++ let source = this._sources[i];
+ if (source.app == tracker.focus_app) {
+ source.destroyNonResidentNotifications();
+ return;
+@@ -456,12 +476,11 @@ NotificationDaemon.prototype = {
+ },
+
+ _onTrayIconAdded: function(o, icon) {
+- let source = this._getSource(icon.title || icon.wm_class || _("Unknown"), icon.pid, null, null);
+- source.setTrayIcon(icon);
++ let source = this._getSource(icon.title || icon.wm_class || _("Unknown"), icon.pid, null, null, icon);
+ },
+
+ _onTrayIconRemoved: function(o, icon) {
+- let source = this._sources[icon.pid];
++ let source = this._lookupSource(icon.pid, null, true);
+ if (source)
+ source.destroy();
+ }
+@@ -476,10 +495,12 @@ function Source(title, pid, sender) {
+ Source.prototype = {
+ __proto__: MessageTray.Source.prototype,
+
+- _init: function(title, pid, sender) {
++ _init: function(title, pid, sender, trayIcon) {
+ MessageTray.Source.prototype._init.call(this, title);
+
+- this._pid = pid;
++ this.initialTitle = title;
++
++ this.pid = pid;
+ if (sender)
+ // TODO: dbus-glib implementation of watch_name() doesn’t return an id to be used for
+ // unwatch_name() or implement unwatch_name(), however when we move to using GDBus implementation,
+@@ -496,7 +517,12 @@ Source.prototype = {
+ this.title = this.app.get_name();
+ else
+ this.useNotificationIcon = true;
+- this._trayIcon = null;
++
++ this.trayIcon = trayIcon;
++ if (this.trayIcon) {
++ this._setSummaryIcon(this.trayIcon);
++ this.useNotificationIcon = false;
++ }
+ },
+
+ _onNameVanished: function() {
+@@ -523,7 +549,7 @@ Source.prototype = {
+ },
+
+ handleSummaryClick: function() {
+- if (!this._trayIcon)
++ if (!this.trayIcon)
+ return false;
+
+ let event = Clutter.get_current_event();
+@@ -544,11 +570,11 @@ Source.prototype = {
+ let id = global.connect('notify::stage-input-mode', Lang.bind(this,
+ function () {
+ global.disconnect(id);
+- this._trayIcon.click(event);
++ this.trayIcon.click(event);
+ }));
+ Main.overview.hide();
+ } else {
+- this._trayIcon.click(event);
++ this.trayIcon.click(event);
+ }
+ return true;
+ },
+@@ -557,31 +583,25 @@ Source.prototype = {
+ if (this.app)
+ return;
+
+- this.app = Shell.WindowTracker.get_default().get_app_from_pid(this._pid);
++ this.app = Shell.WindowTracker.get_default().get_app_from_pid(this.pid);
+ if (!this.app)
+ return;
+
+ // Only override the icon if we were previously using
+ // notification-based icons (ie, not a trayicon) or if it was unset before
+- if (!this._trayIcon) {
++ if (!this.trayIcon) {
+ this.useNotificationIcon = false;
+ this._setSummaryIcon(this.app.create_icon_texture (this.ICON_SIZE));
+ }
+ },
+
+- setTrayIcon: function(icon) {
+- this._setSummaryIcon(icon);
+- this.useNotificationIcon = false;
+- this._trayIcon = icon;
+- },
+-
+ open: function(notification) {
+ this.destroyNonResidentNotifications();
+ this.openApp();
+ },
+
+ _lastNotificationRemoved: function() {
+- if (!this._trayIcon)
++ if (!this.trayIcon)
+ this.destroy();
+ },
+
+--
+cgit v0.9.0.2
diff --git a/extra/gnucash/PKGBUILD b/extra/gnucash/PKGBUILD
index 37e19bfb2..27c8bf8f4 100644
--- a/extra/gnucash/PKGBUILD
+++ b/extra/gnucash/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 141031 2011-10-22 05:09:05Z eric $
+# $Id: PKGBUILD 146667 2012-01-16 05:26:24Z eric $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Contributor: Mark Schneider <queueRAM@gmail.com>
pkgname=gnucash
-pkgver=2.4.8
+pkgver=2.4.9
pkgrel=1
pkgdesc="A personal and small-business financial-accounting application"
arch=('i686' 'x86_64' 'mips64el')
@@ -14,21 +14,23 @@ makedepends=('intltool')
optdepends=('evince: for print preview'
'perl-finance-quote: for stock information lookups'
'perl-date-manip: for stock information lookups')
-options=('!libtool' '!makeflags')
+options=('!libtool' '!makeflags' '!emptydirs')
install=gnucash.install
source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('cdd8793bc8e8cbb433a0237007023f4973a51781')
+sha1sums=('a0ed6532e53164b7dc9a319d6503c6563310b878')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --mandir=/usr/share/man \
- --sysconfdir=/etc --libexecdir=/usr/lib --enable-ofx --enable-aqbanking
+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \
+ --libexecdir=/usr/lib --disable-schemas-install --enable-ofx --enable-aqbanking
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ cd src/doc/design
+ make DESTDIR="${pkgdir}" install-info
install -dm755 "${pkgdir}/usr/share/gconf/schemas"
gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnucash "${pkgdir}"/etc/gconf/schemas/*.schemas
diff --git a/extra/grilo-plugins/PKGBUILD b/extra/grilo-plugins/PKGBUILD
index 95d13fa3f..22a211769 100644
--- a/extra/grilo-plugins/PKGBUILD
+++ b/extra/grilo-plugins/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 144927 2011-12-10 21:25:05Z heftig $
+# $Id: PKGBUILD 146719 2012-01-16 19:50:53Z dreisner $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=grilo-plugins
pkgver=0.1.18
-pkgrel=1
+pkgrel=2
pkgdesc="Plugins for Grilo"
url="http://www.gnome.org"
arch=('i686' 'x86_64')
diff --git a/extra/gvfs/PKGBUILD b/extra/gvfs/PKGBUILD
index eea981de0..26bb44088 100644
--- a/extra/gvfs/PKGBUILD
+++ b/extra/gvfs/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 140933 2011-10-20 05:43:53Z ibiru $
+# $Id: PKGBUILD 146709 2012-01-16 19:49:21Z dreisner $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=gvfs
pkgname=('gvfs' 'gvfs-smb' 'gvfs-afc' 'gvfs-afp' 'gvfs-gphoto2' 'gvfs-obexftp')
pkgver=1.10.1
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
license=('LGPL')
makedepends=('libsoup-gnome' 'libcdio' 'fuse' 'bluez' 'smbclient' 'libgphoto2' 'libarchive' 'libgdu' 'pkgconfig' 'intltool' 'libimobiledevice' 'avahi' 'dconf')
diff --git a/extra/hydrogen/PKGBUILD b/extra/hydrogen/PKGBUILD
index b56f92c4c..5d2845d50 100644
--- a/extra/hydrogen/PKGBUILD
+++ b/extra/hydrogen/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 135233 2011-08-11 10:28:18Z schiv $
+# $Id: PKGBUILD 146711 2012-01-16 19:49:24Z dreisner $
# Maintainer: tobias <tobias@archlinux.org>
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: K. Piche <kpiche@rogers.com>
@@ -6,24 +6,28 @@
pkgname=hydrogen
pkgver=0.9.5
-pkgrel=1
+pkgrel=2
pkgdesc="Advanced Drum Machine"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://www.hydrogen-music.org/"
depends=('libarchive' 'liblrdf' 'qt' 'jack')
makedepends=('scons')
-options=('!makeflags')
+#options=('!makeflags')
source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
- lrdf_raptor2.patch)
+ lrdf_raptor2.patch
+ install.patch)
md5sums=('e96f291d60e58f5d62fe616cee577dc0'
- '2124851e890f46158189b5fa90006d40')
+ '2124851e890f46158189b5fa90006d40'
+ 'ce3a83a069b55e46aa532b55e803c9a5')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
export QTDIR=/usr
patch -Np1 -i "${srcdir}/lrdf_raptor2.patch"
+ # http://www.assembla.com/spaces/hydrogen/tickets/204
+ patch -Np0 -i "${srcdir}/install.patch"
scons prefix=/usr libarchive=1
}
diff --git a/extra/hydrogen/install.patch b/extra/hydrogen/install.patch
new file mode 100644
index 000000000..2e6e707a1
--- /dev/null
+++ b/extra/hydrogen/install.patch
@@ -0,0 +1,12 @@
+*** Sconstruct.org 2011-11-06 12:15:40.018119106 +0100
+--- Sconstruct 2011-11-06 12:16:21.124122432 +0100
+***************
+*** 298,304 ****
+
+ for N in glob.glob('./data/i18n/hydrogen.*'):
+ env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data/i18n', source=N))
+- env.Alias(target="install", source=env.Install(dir= env['DESTDIR'] + env['prefix'] + '/share/hydrogen/data', source="./data/img"))
+
+ #add every img in ./data/img to the install list.
+ os.path.walk("./data/img/",install_images,env)
+--- 298,303 ----
diff --git a/extra/java7-openjdk/PKGBUILD b/extra/java7-openjdk/PKGBUILD
index ae3f7e808..f8c8a21f0 100644
--- a/extra/java7-openjdk/PKGBUILD
+++ b/extra/java7-openjdk/PKGBUILD
@@ -1,8 +1,10 @@
+# $Id: PKGBUILD 146529 2012-01-12 16:16:17Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Guillaume ALAUX <guillaume@archlinux.org>
-pkgname=('jre7-openjdk' 'jdk7-openjdk' 'openjdk7-src')
+pkgname=('jre7-openjdk-headless' 'jre7-openjdk' 'jdk7-openjdk' 'openjdk7-src')
+ # ToDo -demo -doc packages, see Debian file lists http://packages.debian.org/source/wheezy/openjdk-7
pkgbase=java7-openjdk
_java_ver=7
_openjdk_build=b147
@@ -19,23 +21,29 @@ _JDK_CHANGESET=2054526dd141
_LANGTOOLS_CHANGESET=9b85f1265346
_OPENJDK_CHANGESET=0a76e5390e68
+_bootstrap=0 # 0/1 for quick build or full bootstrap
+
pkgver=${_java_ver}.${_openjdk_build}_${_icedtea_ver}
-pkgrel=4
+pkgrel=5
arch=('i686' 'x86_64')
url="http://icedtea.classpath.org"
license=('custom')
-makedepends=('libcups' 'libxp' 'libxtst' 'libxi' 'libxt' 'libxslt' 'freetype2' #'eclipse-ecj' only for bootstrapping
- 'alsa-lib' 'xalan-java' 'glib2' 'gtk2' 'apache-ant>=1.6.5' 'giflib'
- 'libjpeg>=6b' 'zlib' 'rhino' 'libpulse>=0.9.11' 'zip' 'unzip' 'cpio' 'lcms2')
-source=( #ftp://ftp.archlinux.org/other/$pkgname/icedtea7-${_date}-hg.tar.xz
- http://icedtea.classpath.org/download/source/icedtea-${_icedtea_ver}.tar.gz
- http://icedtea.classpath.org/hg/icedtea7-forest/archive/${_OPENJDK_CHANGESET}.tar.gz # openjdk.tar.gz
- http://icedtea.classpath.org/hg/icedtea7-forest/corba/archive/${_CORBA_CHANGESET}.tar.gz # corba.tar.gz
- http://icedtea.classpath.org/hg/icedtea7-forest/jaxp/archive/${_JAXP_CHANGESET}.tar.gz # jaxp.tar.gz
- http://icedtea.classpath.org/hg/icedtea7-forest/jaxws/archive/${_JAXWS_CHANGESET}.tar.gz # jaxws.tar.gz
- http://icedtea.classpath.org/hg/icedtea7-forest/jdk/archive/${_JDK_CHANGESET}.tar.gz # jdk.tar.gz
- http://icedtea.classpath.org/hg/icedtea7-forest/langtools/archive/${_LANGTOOLS_CHANGESET}.tar.gz # langtools.tar.gz
- http://icedtea.classpath.org/hg/icedtea7-forest/hotspot/archive/${_HOTSPOT_CHANGESET}.tar.gz # hotspot.tar.gz
+options=('!emptydirs')
+makedepends=('jdk7-openjdk' 'libxp' 'libxslt'
+ 'alsa-lib' 'apache-ant>=1.8.1' 'giflib'
+ 'rhino' 'libpulse>=0.9.11' 'zip' 'unzip' 'cpio' 'fastjar') # fastjar`?
+[ "$_bootstrap" = "1" ] && makedepends=(${makedepends[@]} 'eclipse-ecj')
+
+_url=http://icedtea.classpath.org/hg/release/icedtea7-forest-2.0/archive
+#_url=http://icedtea.classpath.org/hg/icedtea7-forest/archive
+source=(http://icedtea.classpath.org/download/source/icedtea-${_icedtea_ver}.tar.gz
+ ${_url}/${_OPENJDK_CHANGESET}.tar.gz # openjdk.tar.gz
+ ${_url}/${_CORBA_CHANGESET}.tar.gz # corba.tar.gz
+ ${_url}/${_JAXP_CHANGESET}.tar.gz # jaxp.tar.gz
+ ${_url}/${_JAXWS_CHANGESET}.tar.gz # jaxws.tar.gz
+ ${_url}/${_JDK_CHANGESET}.tar.gz # jdk.tar.gz
+ ${_url}/${_LANGTOOLS_CHANGESET}.tar.gz # langtools.tar.gz
+ ${_url}/${_HOTSPOT_CHANGESET}.tar.gz # hotspot.tar.gz
fontconfig-paths.diff
fix_corba_cmds_path.diff
openjdk7_fix_jdk_cmds_path.diff
@@ -44,8 +52,7 @@ source=( #ftp://ftp.archlinux.org/other/$pkgname/icedtea7-${_date}-hg.tar.xz
jdk7-openjdk.profile.csh
jre7-openjdk.profile
jre7-openjdk.profile.csh
- jconsole.desktop
- policytool.desktop)
+ glibc2_15.diff)
#http://www.java.net/download/openjdk/jdk${_java_ver}/promoted/${_openjdk_build}/openjdk-${_java_ver}-fcs-src-${_openjdk_build}-${_openjdk_date}.zip
@@ -72,45 +79,41 @@ md5sums=('752721a037a625001fad7a5fc2013f60'
'cdabafad0ec413d9a983888bf445a443'
'612b0fec7e0943c37a6de77c43622007'
'62443459da0cb28181feb260dc0e5ce7'
- '8e346f19a69b11b8dc4fcd8ea9d9d8f1'
- 'b6357228d29836504a90abe006d86e56')
-
-# source PKGBUILD && mksource
-#makedepends+=('mercurial')
-mksource() {
- mkdir /tmp/icedtea7-${_date}
- pushd /tmp/icedtea7-${_date}
- hg -v clone http://icedtea.classpath.org/hg/icedtea7
- rm -rf icedtea7/.hg*
- tar -cvJf /tmp/icedtea7-${_date}/icedtea7-${_date}-hg.tar.xz *
- popd
-}
+ 'a4293acadff03bdccbc9b412ad288549')
+ _jvmdir=/usr/lib/jvm/java-7-openjdk
+
+ [ "$CARCH" = "x86_64" ] && _JARCH=amd64
+ [ "$CARCH" = "i686" ] && _JARCH=i386
+
build() {
cd "${srcdir}/icedtea-${_icedtea_ver}"
- unset JAVA_HOME
- unset CLASSPATH
+ unset JAVA_HOME JDK_HOME CLASSPATH JAVAC JAVACFLAGS
+
# default is to build with first found java-environment found in our repos - is jdk7-openjdk
[ -f /etc/profile.d/jdk.sh ] && . /etc/profile.d/jdk.sh
- unset MAKEFLAGS
+ unset MAKEFLAGS # parallel build is currently broken
export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}"
export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}"
. /etc/profile.d/apache-ant.sh
cp ${srcdir}/*.diff ${srcdir}/icedtea-${_icedtea_ver}/patches
- export DISTRIBUTION_PATCHES="patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/openjdk7_fix_jdk_cmds_path.diff patches/openjdk7_nonreparenting-wm.diff"
+ export DISTRIBUTION_PATCHES="patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/openjdk7_fix_jdk_cmds_path.diff patches/openjdk7_nonreparenting-wm.diff patches/glibc2_15.diff"
- # Bootstrap IcedTea with ecj and a GNU Classpath-based JDK:
-# autoreconf --force --install
+ if [ "$_bootstrap" = "1" ]; then
+ BOOTSTRAPOPT="--enable-bootstrap --with-ecj-jar=/usr/share/java/ecj.jar"
+ else
+ BOOTSTRAPOPT="--disable-bootstrap"
+ fi
./configure \
- --disable-bootstrap \
+ $BOOTSTRAPOPT \
--with-parallel-jobs="${MAKEFLAGS/-j}" \
--disable-tests \
- --with-pkgversion=ArchLinux-${pkgver}-${pkgrel}-${CARCH} \
+ --with-pkgversion="ArchLinux build ${pkgver}-${pkgrel}-${CARCH}" \
--with-jdk-home=${JAVA_HOME} \
--with-openjdk-src-zip=${srcdir}/${_OPENJDK_CHANGESET}.tar.gz \
--with-hotspot-src-zip=${srcdir}/${_HOTSPOT_CHANGESET}.tar.gz \
@@ -120,12 +123,11 @@ build() {
--with-jdk-src-zip=${srcdir}/${_JDK_CHANGESET}.tar.gz \
--with-langtools-src-zip=${srcdir}/${_LANGTOOLS_CHANGESET}.tar.gz \
--enable-pulse-java \
+ --enable-nss \
+ --with-rhino
+ #--help
-# --with-rhino #--help
-
-# --enable-systemtap Enable inclusion of SystemTap trace support
-# --enable-nss Enable inclusion of NSS security provider
-# --with-abs-install-dir The absolute path where the j2sdk-image dir will be installed
+# --enable-systemtap Enable inclusion of SystemTap trace support - needs systemtab from AUR + --with-abs-install-dir=/usr/lib/jvm/java-7-openjdk The absolute path where the j2sdk-image dir will be installed
make
}
@@ -135,34 +137,50 @@ check() {
make -k check
}
-package_jre7-openjdk() {
- pkgdesc="Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs - runtime environment"
- depends=('gcc-libs' 'hicolor-icon-theme' 'ca-certificates-java' 'libxtst' 'libcups' 'gtk2' 'lcms2'
- 'libxt' 'nss' 'libjpeg' 'freetype2' 'libxrender' 'libpng' 'gsettings-desktop-schemas')
- optdepends=('icedtea-web-java7: web browser plugin + Java Web Start'
- 'alsa-lib: for sound'
- 'giflib: for gif format support'
- 'libpulse: for advanced sound')
+package_jre7-openjdk-headless() {
+ pkgdesc="Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs - Minimal Java runtime - needed for executing non GUI Java programs"
+ depends=('libjpeg-turbo' 'lcms2' 'nss'
+ 'ca-certificates-java' 'rhino')
+ optdepends=('libcups: needed for Java Mauve support - libmawt.so'
+ 'fontconfig: needed for Java Mauve support - libmawt.so')
provides=('java-runtime=7')
conflicts=('java-runtime')
-# replaces=('openjdk6') # once we remove openjdk6 pkg from the repos
- backup=(etc/profile.d/jre.sh etc/profile.d/jre.csh)
- install=jre7-openjdk.install
-
- _jvmdir=/usr/lib/jvm/java-7-openjdk
+ # replaces=('openjdk6') # once we remove openjdk6 pkg from the repos
+ backup=(etc/profile.d/jre.sh
+ etc/profile.d/jre.csh
+ etc/java-7-openjdk/calendars.properties
+ etc/java-7-openjdk/content-types.properties
+ etc/java-7-openjdk/cursors/cursors.properties
+ etc/java-7-openjdk/flavormap.properties
+ etc/java-7-openjdk/fontconfig.bfc
+ etc/java-7-openjdk/fontconfig.properties
+ etc/java-7-openjdk/jvm.cfg
+ etc/java-7-openjdk/logging.properties
+ etc/java-7-openjdk/management/jmxremote.access
+ etc/java-7-openjdk/management/jmxremote.password
+ etc/java-7-openjdk/management/management.properties
+ etc/java-7-openjdk/management/snmp.acl
+ etc/java-7-openjdk/net.properties
+ etc/java-7-openjdk/psfont.properties.ja
+ etc/java-7-openjdk/psfontj2d.properties
+ etc/java-7-openjdk/security/java.policy
+ etc/java-7-openjdk/security/java.security
+ etc/java-7-openjdk/security/nss.cfg
+ etc/java-7-openjdk/sound.properties
+ etc/java-7-openjdk/tz.properties)
+ install=jre7-openjdk-headless.install
cd "${srcdir}/icedtea-${_icedtea_ver}/openjdk.build/j2sdk-image/jre"
+ mv lib/fontconfig.Ubuntu.properties.src lib/fontconfig.properties
+ mv lib/fontconfig.Ubuntu.bfc lib/fontconfig.bfc
+ rm -f lib/fontconfig.*.bfc
+ rm -f lib/fontconfig.*.properties.src
+ rm -f lib/fontconfig.properties.src
+
install -d -m755 ${pkgdir}/${_jvmdir}/jre/
cp -a bin lib ${pkgdir}/${_jvmdir}/jre
- mv ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.Ubuntu.properties.src \
- ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.properties.src
- mv ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.Ubuntu.bfc \
- ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.bfc
- rm -f ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.*.bfc
- rm -f ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.*.properties.src
-
# Install man pages
pushd ../../j2re-image/man
install -m755 -d ${pkgdir}/usr/share/man/{,ja/}man1/
@@ -170,12 +188,22 @@ package_jre7-openjdk() {
install -m644 ja_JP.UTF-8/man1/*.1 ${pkgdir}/usr/share/man/ja/man1
popd
- # Install icons and menu entries
- for s in 16 24 32 48 ; do
- install -m755 -d ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/
- install -m644 ../../../openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
- ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/java.png
+ # more files that belong to the desktop package
+ mkdir ${srcdir}/tmp-desktop-jre
+ for file in \
+ "/usr/lib/jvm/java-7-openjdk/jre/bin/policytool" \
+ "/usr/lib/jvm/java-7-openjdk/jre/lib/${_JARCH}/libjsoundalsa.so" \
+ "/usr/lib/jvm/java-7-openjdk/jre/lib/${_JARCH}/libpulse-java.so" \
+ "/usr/lib/jvm/java-7-openjdk/jre/lib/${_JARCH}/libsplashscreen.so" \
+ "/usr/lib/jvm/java-7-openjdk/jre/lib/${_JARCH}/xawt/libmawt.so" \
+ "/usr/share/man/ja/man1/policytool.1" \
+ "/usr/share/man/man1/policytool.1"; do
+ dirname=`dirname $file`
+ install -dm755 ${srcdir}/tmp-desktop-jre/$dirname || /bin/true
+ # mv file from fakeinstall to pkgdir
+ mv ${pkgdir}/$file ${srcdir}/tmp-desktop-jre$file
done
+ rmdir ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/${_JARCH}/xawt
# Link binaries into /usr/bin
pushd ${pkgdir}/${_jvmdir}/jre/bin
@@ -191,13 +219,76 @@ package_jre7-openjdk() {
# Set some variables
install -m755 -d ${pkgdir}/etc/profile.d/
- install -m755 ${srcdir}/${pkgname}.profile ${pkgdir}/etc/profile.d/jre.sh
- install -m755 ${srcdir}/${pkgname}.profile.csh ${pkgdir}/etc/profile.d/jre.csh
+ install -m755 ${srcdir}/jre7-openjdk.profile ${pkgdir}/etc/profile.d/jre.sh
+ install -m755 ${srcdir}/jre7-openjdk.profile.csh ${pkgdir}/etc/profile.d/jre.csh
# Install license
install -m755 -d ${pkgdir}/usr/share/licenses/${pkgbase}/
install -m644 ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README \
${pkgdir}/usr/share/licenses/${pkgbase}
+
+ # Put some more files under backup control
+ install -m755 -d ${pkgdir}/etc/java-7-openjdk/
+ install -m644 ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/*.properties* ${pkgdir}/etc/java-7-openjdk/
+ # install dummy links to make them found by JAVA
+ cd ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/
+ for file in `ls ${pkgdir}/etc/java-7-openjdk/*.properties*`; do
+ ln -vsf /etc/java-7-openjdk/`basename $file` .
+ done
+ # some more
+ install -m755 -d ${pkgdir}/etc/java-7-openjdk/{cursors,management,security}
+ install -m644 ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/images/cursors/cursors.properties ${pkgdir}/etc/java-7-openjdk/cursors/
+ pushd ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/images/cursors/
+ ln -vsf /etc/java-7-openjdk/cursors/cursors.properties .
+ popd
+ mv ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/management/jmxremote.password.template ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/management/jmxremote.password
+ mv ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/management/snmp.acl.template ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/management/snmp.acl
+ install -m644 ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/management/{management.properties,jmxremote.access,jmxremote.password,snmp.acl} ${pkgdir}/etc/java-7-openjdk/management/
+ pushd ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/management
+ ln -vsf /etc/java-7-openjdk/management/{management.properties,jmxremote.access,jmxremote.password,snmp.acl} .
+ popd
+ install -m644 ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/security/{java.policy,java.security,nss.cfg} ${pkgdir}/etc/java-7-openjdk/security/
+ pushd ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/security
+ ln -vsf /etc/java-7-openjdk/security/{java.policy,java.security,nss.cfg} .
+ popd
+ install -m644 ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/fontconfig.bfc ${pkgdir}/etc/java-7-openjdk/
+ install -m644 ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/${_JARCH}/jvm.cfg ${pkgdir}/etc/java-7-openjdk/
+ pushd ${pkgdir}/usr/lib/jvm/java-7-openjdk/jre/lib/${_JARCH}/
+ ln -vsf /etc/java-7-openjdk/jvm.cfg .
+ popd
+}
+
+package_jre7-openjdk() {
+ pkgdesc="Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs -Full Java runtime environment - needed for executing Java GUI and Webstart programs"
+ depends=('jre7-openjdk-headless' 'xdg-utils' 'hicolor-icon-theme')
+ optdepends=('icedtea-web-java7: web browser plugin + Java Web Start'
+ 'alsa-lib: for basic sound support'
+ 'giflib: for gif format support'
+ 'libpulse: for advanced sound support'
+ 'gtk2: for the Gtk+ look and feel - desktop usage')
+ install=jre7-openjdk.install
+
+ mv ${srcdir}/tmp-desktop-jre/* ${pkgdir}
+ # Link binaries into /usr/bin
+ pushd ${pkgdir}/${_jvmdir}/jre/bin
+ install -m755 -d ${pkgdir}/usr/bin/
+ for file in *; do
+ ln -sf ${_jvmdir}/jre/bin/${file} ${pkgdir}/usr/bin
+ done
+ popd
+
+ cd "${srcdir}/icedtea-${_icedtea_ver}/openjdk.build/j2sdk-image/jre"
+
+ # Install icons and menu entries
+ for s in 16 24 32 48 ; do
+ install -m755 -d ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/
+ install -m644 ../../../openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+ ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/java.png
+ done
+
+ # Install desktop files.
+ install -m755 -d ${pkgdir}/usr/share/applications
+ install -m644 ${srcdir}/icedtea-${_icedtea_ver}/{jconsole,policytool}.desktop ${pkgdir}/usr/share/applications
}
package_jdk7-openjdk() {
@@ -208,8 +299,6 @@ package_jdk7-openjdk() {
# replaces=('openjdk6')
backup=(etc/profile.d/jdk.sh etc/profile.d/jdk.csh)
- _jvmdir=/usr/lib/jvm/java-7-openjdk
-
cd "${srcdir}/icedtea-${_icedtea_ver}/openjdk.build/j2sdk-image"
# Main files
@@ -243,10 +332,6 @@ package_jdk7-openjdk() {
# Handling 'java-rmi.cgi' separately
install -m755 -D bin/java-rmi.cgi ${pkgdir}/${_jvmdir}/bin/java-rmi.cgi
- # Desktop files
- install -m755 -d ${pkgdir}/usr/share/applications/
- install -m644 ${srcdir}/{jconsole,policytool}.desktop ${pkgdir}/usr/share/applications/
-
# Set some variables
install -m755 -d ${pkgdir}/etc/profile.d/
install -m755 ${srcdir}/${pkgname}.profile ${pkgdir}/etc/profile.d/jdk.sh
diff --git a/extra/java7-openjdk/glibc2_15.diff b/extra/java7-openjdk/glibc2_15.diff
new file mode 100644
index 000000000..c2fd6124b
--- /dev/null
+++ b/extra/java7-openjdk/glibc2_15.diff
@@ -0,0 +1,232 @@
+
+# HG changeset patch
+# User never
+# Date 1319555835 25200
+# Node ID a6eef545f1a2ceca6aeadf688a965df600ffef28
+# Parent 2ec638646e86e455978c31a9d47fc0ec271ed926
+7103224: collision between __LEAF define in interfaceSupport.hpp and /usr/include/sys/cdefs.h with gcc
+Reviewed-by: never
+Contributed-by: Omair Majid <omajid@redhat.com>
+
+--- openjdk/hotspot/src/share/vm/opto/addnode.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/opto/addnode.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -33,8 +33,6 @@
+ #include "opto/subnode.hpp"
+
+ // Portions of code courtesy of Clifford Click
+-
+-#define MAXFLOAT ((float)3.40282346638528860e+38)
+
+ // Classic Add functionality. This covers all the usual 'add' behaviors for
+ // an algebraic ring. Add-integer, add-float, add-double, and binary-or are
+--- openjdk/hotspot/src/share/vm/prims/jniCheck.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -107,7 +107,7 @@ extern "C" {
+ if (env != xenv) { \
+ NativeReportJNIFatalError(thr, warn_wrong_jnienv); \
+ } \
+- __ENTRY(result_type, header, thr)
++ VM_ENTRY_BASE(result_type, header, thr)
+
+
+ #define UNCHECKED() (unchecked_jni_NativeInterface)
+--- openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl Tue Oct 25 08:17:15 2011 -0700
+@@ -426,7 +426,7 @@ struct jvmtiInterface_1_ jvmti</xsl:text
+ <xsl:value-of select="$space"/>
+ <xsl:text>ThreadInVMfromNative __tiv(current_thread);</xsl:text>
+ <xsl:value-of select="$space"/>
+- <xsl:text>__ENTRY(jvmtiError, </xsl:text>
++ <xsl:text>VM_ENTRY_BASE(jvmtiError, </xsl:text>
+ <xsl:apply-templates select="." mode="functionid"/>
+ <xsl:text> , current_thread)</xsl:text>
+ <xsl:value-of select="$space"/>
+--- openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -173,7 +173,7 @@ JvmtiEnv::GetThreadLocalStorage(jthread
+ // from native so as to resolve the jthread.
+
+ ThreadInVMfromNative __tiv(current_thread);
+- __ENTRY(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
++ VM_ENTRY_BASE(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
+ debug_only(VMNativeEntryWrapper __vew;)
+
+ oop thread_oop = JNIHandles::resolve_external_guard(thread);
+--- openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -373,7 +373,7 @@ JvmtiExport::get_jvmti_interface(JavaVM
+ JavaThread* current_thread = (JavaThread*) ThreadLocalStorage::thread();
+ // transition code: native to VM
+ ThreadInVMfromNative __tiv(current_thread);
+- __ENTRY(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
++ VM_ENTRY_BASE(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
+ debug_only(VMNativeEntryWrapper __vew;)
+
+ JvmtiEnv *jvmti_env = JvmtiEnv::create_a_jvmti(version);
+--- openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp Tue Oct 25 08:17:15 2011 -0700
+@@ -72,9 +72,9 @@ class HandleMarkCleaner: public StackObj
+ }
+ };
+
+-// InterfaceSupport provides functionality used by the __LEAF and __ENTRY
+-// macros. These macros are used to guard entry points into the VM and
+-// perform checks upon leave of the VM.
++// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
++// VM_ENTRY_BASE macros. These macros are used to guard entry points into
++// the VM and perform checks upon leave of the VM.
+
+
+ class InterfaceSupport: AllStatic {
+@@ -433,7 +433,7 @@ class RuntimeHistogramElement : public H
+
+ // LEAF routines do not lock, GC or throw exceptions
+
+-#define __LEAF(result_type, header) \
++#define VM_LEAF_BASE(result_type, header) \
+ TRACE_CALL(result_type, header) \
+ debug_only(NoHandleMark __hm;) \
+ /* begin of body */
+@@ -441,7 +441,7 @@ class RuntimeHistogramElement : public H
+
+ // ENTRY routines may lock, GC and throw exceptions
+
+-#define __ENTRY(result_type, header, thread) \
++#define VM_ENTRY_BASE(result_type, header, thread) \
+ TRACE_CALL(result_type, header) \
+ HandleMarkCleaner __hm(thread); \
+ Thread* THREAD = thread; \
+@@ -450,7 +450,7 @@ class RuntimeHistogramElement : public H
+
+ // QUICK_ENTRY routines behave like ENTRY but without a handle mark
+
+-#define __QUICK_ENTRY(result_type, header, thread) \
++#define VM_QUICK_ENTRY_BASE(result_type, header, thread) \
+ TRACE_CALL(result_type, header) \
+ debug_only(NoHandleMark __hm;) \
+ Thread* THREAD = thread; \
+@@ -463,20 +463,20 @@ class RuntimeHistogramElement : public H
+ #define IRT_ENTRY(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJava __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+
+ #define IRT_LEAF(result_type, header) \
+ result_type header { \
+- __LEAF(result_type, header) \
++ VM_LEAF_BASE(result_type, header) \
+ debug_only(No_Safepoint_Verifier __nspv(true);)
+
+
+ #define IRT_ENTRY_NO_ASYNC(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+ // Another special case for nmethod_entry_point so the nmethod that the
+@@ -487,7 +487,7 @@ class RuntimeHistogramElement : public H
+ result_type header { \
+ nmethodLocker _nmlock(nm); \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+ #define IRT_END }
+
+@@ -497,20 +497,20 @@ class RuntimeHistogramElement : public H
+ #define JRT_ENTRY(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJava __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+
+ #define JRT_LEAF(result_type, header) \
+ result_type header { \
+- __LEAF(result_type, header) \
++ VM_LEAF_BASE(result_type, header) \
+ debug_only(JRT_Leaf_Verifier __jlv;)
+
+
+ #define JRT_ENTRY_NO_ASYNC(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+ // Same as JRT Entry but allows for return value after the safepoint
+@@ -543,11 +543,11 @@ extern "C" {
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+
+ // Ensure that the VMNativeEntryWrapper constructor, which can cause
+-// a GC, is called outside the NoHandleMark (set via __QUICK_ENTRY).
++// a GC, is called outside the NoHandleMark (set via VM_QUICK_ENTRY_BASE).
+ #define JNI_QUICK_ENTRY(result_type, header) \
+ extern "C" { \
+ result_type JNICALL header { \
+@@ -555,7 +555,7 @@ extern "C" {
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __QUICK_ENTRY(result_type, header, thread)
++ VM_QUICK_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JNI_LEAF(result_type, header) \
+@@ -563,7 +563,7 @@ extern "C" {
+ result_type JNICALL header { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+- __LEAF(result_type, header)
++ VM_LEAF_BASE(result_type, header)
+
+
+ // Close the routine and the extern "C"
+@@ -579,7 +579,7 @@ extern "C" {
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JVM_ENTRY_NO_ENV(result_type, header) \
+@@ -588,7 +588,7 @@ extern "C" {
+ JavaThread* thread = (JavaThread*)ThreadLocalStorage::thread(); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JVM_QUICK_ENTRY(result_type, header) \
+@@ -597,14 +597,14 @@ extern "C" {
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __QUICK_ENTRY(result_type, header, thread)
++ VM_QUICK_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JVM_LEAF(result_type, header) \
+ extern "C" { \
+ result_type JNICALL header { \
+ VM_Exit::block_if_vm_exited(); \
+- __LEAF(result_type, header)
++ VM_LEAF_BASE(result_type, header)
+
+
+ #define JVM_END } }
+
diff --git a/extra/java7-openjdk/jre7-openjdk-headless.install b/extra/java7-openjdk/jre7-openjdk-headless.install
new file mode 100644
index 000000000..45f52fe32
--- /dev/null
+++ b/extra/java7-openjdk/jre7-openjdk-headless.install
@@ -0,0 +1,15 @@
+post_install() {
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/sbin/init-jks-keystore
+ fi
+}
+
+post_upgrade() {
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/sbin/init-jks-keystore
+ fi
+}
+
+#post_remove() {
+#
+#}
diff --git a/extra/java7-openjdk/jre7-openjdk.install b/extra/java7-openjdk/jre7-openjdk.install
index d19979bf6..d98e79ec5 100644
--- a/extra/java7-openjdk/jre7-openjdk.install
+++ b/extra/java7-openjdk/jre7-openjdk.install
@@ -1,8 +1,5 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- if [ ! -f /etc/ssl/certs/java/cacerts ]; then
- /usr/sbin/init-jks-keystore
- fi
echo "when you use a non-reparenting window manager"
echo "set _JAVA_AWT_WM_NONREPARENTING=1 in"
echo "/etc/profile.d/jre.sh"
@@ -11,9 +8,6 @@ post_install() {
post_upgrade() {
xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- if [ ! -f /etc/ssl/certs/java/cacerts ]; then
- /usr/sbin/init-jks-keystore
- fi
# update-desktop-database -q
}
diff --git a/extra/kdeutils/PKGBUILD b/extra/kdeutils/PKGBUILD
index c7f21e1b5..20fe39875 100644
--- a/extra/kdeutils/PKGBUILD
+++ b/extra/kdeutils/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 144741 2011-12-08 09:21:43Z andrea $
+# $Id: PKGBUILD 146715 2012-01-16 19:50:44Z dreisner $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -17,7 +17,7 @@ pkgname=('kdeutils-ark'
'kdeutils-superkaramba'
'kdeutils-sweeper')
pkgver=4.7.4
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
diff --git a/extra/libass/PKGBUILD b/extra/libass/PKGBUILD
index 0a3102b15..e83115de8 100644
--- a/extra/libass/PKGBUILD
+++ b/extra/libass/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 143794 2011-11-29 11:56:48Z giovanni $
+# $Id: PKGBUILD 146950 2012-01-19 15:31:00Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
pkgname=libass
pkgver=0.10.0
-pkgrel=2
+pkgrel=3
pkgdesc="A portable library for SSA/ASS subtitles rendering"
arch=('i686' 'x86_64' 'mips64el')
url="http://code.google.com/p/libass/"
license=('BSD')
-depends=('enca' 'fontconfig' 'libpng' 'fribidi')
+depends=('enca' 'fontconfig' 'fribidi')
makedepends=('pkg-config')
options=(!libtool)
source=("http://libass.googlecode.com/files/${pkgname}-${pkgver}.tar.xz")
diff --git a/extra/libassuan/PKGBUILD b/extra/libassuan/PKGBUILD
index 4c330721d..1a5f2a8e0 100644
--- a/extra/libassuan/PKGBUILD
+++ b/extra/libassuan/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 131235 2011-07-12 07:35:37Z tpowa $
+# $Id: PKGBUILD 146533 2012-01-12 16:36:58Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=libassuan
-pkgver=2.0.2
+pkgver=2.0.3
pkgrel=1
pkgdesc="A IPC library used by some GnuPG related software"
arch=('i686' 'x86_64' 'mips64el')
@@ -19,8 +19,13 @@ build() {
make
}
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
}
-md5sums=('3e7d00fd2ee8a0b9c51ac7616ef3f1ec')
+md5sums=('179d1918325fdb928c7bd90b8a514fc7')
diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD
index 3a82e17e4..f9dea6764 100644
--- a/extra/libreoffice/PKGBUILD
+++ b/extra/libreoffice/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 146473 2012-01-11 15:22:18Z stephane $
+# $Id: PKGBUILD 146608 2012-01-14 08:15:18Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
pkgbase="libreoffice"
@@ -35,9 +35,9 @@ pkgname=('libreoffice-common'
'libreoffice-extension-validator' \
'libreoffice-extension-watch-window' \
'libreoffice-extension-wiki-publisher')
-_LOver=3.4.4.2
-pkgver=3.4.4
-pkgrel=5
+_LOver=3.4.5.2
+pkgver=3.4.5
+pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
#_LO_tree="3.4"
_OFFICEUPD="340"
@@ -63,8 +63,11 @@ makedepends=( # makedepends
_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}"
#_mirror="http://dev-builds.libreoffice.org/pre-releases/src"
+#_mirror="http://dev-builds.libreoffice.org/pre-releases-3-4/src"
_additional_source_url="http://hg.services.openoffice.org/binaries"
+_additional_source_url="http://dev-www.libreoffice.org/src"
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}/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
@@ -104,11 +107,9 @@ source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions
buildfix_boost.diff
buildfix_ct2n.diff
vbahelper.visibility.patch
- scp2-more-reasonable-file-access-rights.diff
- oracle-recognition.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=549e54fb2f8113502743c443d6deadfe648dede1
- RemovetheoslSecuritygetHomeDircheck.diff::http://cgit.freedesktop.org/libreoffice/ure/patch/?id=bc9b86940a707e9e2e1076f2954f38075398b5d7
- gcc462_buildfix.diff)
+ scp2-more-reasonable-file-access-rights.diff)
noextract=(185d60944ea767075d27247c3162b3bc-unowinreg.dll
+ f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
@@ -144,25 +145,26 @@ noextract=(185d60944ea767075d27247c3162b3bc-unowinreg.dll
dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt
b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt
90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2)
-md5sums=('be8b13f83045f0a53b69fe76d6d72e9c'
- 'db423cbb1cee416b718138044a5de930'
- '31944d2139d6d81ef1131bd513530621'
- 'f447fd4ffe54aab9561c6caa262754b3'
- '97fe698737a35c8803712d4e08007620'
- 'acff44d97a5106d9b53c747dabeb0800'
- '620d43a0b9f36388f423e030513864ef'
- '4c5b1ed870363eca2602f0cb42a8415a'
- '702c6ca31525d7d2c2ded86c77b0bd2e'
- 'ac9b3acf78f43c1395d0e2dedc860f30'
- 'd8d2c41cb86bc8ba2a07e001a5317abb'
- '4d4af2fc06dbe33ec2307df812f7abe1'
- '1398a566eb76598bf3005e187fc2386c'
- 'dd962d2d57f88b9e07e665adad3cabbc'
- 'fff0fc9cd16ef1eb2b2ed5d0a6e77f95'
- 'e54d41d39e63d04ac4a88ce79e37af98'
- 'dbc71403040f447683bf55d1f0be3cad'
- '69ce5b72f44b008d0e78767c5b1dbf39'
- '34a2e8ae6b81a042966740263c53e135'
+md5sums=('a75d7d4ebefb4c9a4bb256acf866fa81'
+ 'c1e2dabdf4cfcd5957779014a7f9787e'
+ '79c9c7fc208e7f56af09f284f261a7da'
+ 'c83a8a374d3d5cc83c6ac3b5ff613e46'
+ 'fa64799ebad8cbd2c160ac2f87bd5599'
+ 'b24fba57aa4185934e86a0a8db4a3433'
+ '4f98020088ab9b597fc21b617121bd47'
+ '3c3be7c5f923339c90b0d1d6ecad0243'
+ '3a0bb4bb096b7488533ed2ee466a2bc9'
+ 'f2b180aa1eff3884b4ca81c048f1e327'
+ 'a9af488ef92ad4442eafba874249c529'
+ 'db6a67c96a9090bc5e21b64e202a984e'
+ 'e00187ae0840e1f6a00fa3290cacf0d1'
+ '20fbf6cffd2b06e90a52105b75a57828'
+ '4af055f590732ec19a2534b2278ac49c'
+ 'c84693796d2b1d9c8269425b1fa53aef'
+ 'd4926dc27b6884656feec6753f4fdf22'
+ '770678ca19cca0f7985c1c82b2dccf48'
+ '97a1e3de430b124faf35bf334248ad53'
+ 'f02578f5218f217a9f20e9c30e119c6a'
'1f24ab1d39f4a51faf22244c94a6203f'
'35c94d2df8893241173de1d16b6034c0'
'798b2ffdc8bcfe7bca2cf92b62caf685'
@@ -202,10 +204,7 @@ md5sums=('be8b13f83045f0a53b69fe76d6d72e9c'
'bc228237108cab7745897a9f466b6d39'
'eee273f501ff45dc5f1365e78c6d57c0'
'43b145db28e6c0d73578ae6fd35e510d'
- '37638431e7e40baf2e47966ebb9bc0e9'
- '3c6c62e77c30649a3dfe73512947cc9a'
- 'eb35d4c715e0dfc23bbc706996033829'
- '10600d04ee81014bc9b5cc04e615d799')
+ '37638431e7e40baf2e47966ebb9bc0e9')
build() {
@@ -240,10 +239,6 @@ build() {
patch -Np1 -i ${srcdir}/buildfix_ct2n.diff
patch -Np0 -i ${srcdir}/vbahelper.visibility.patch
patch -Np0 -i ${srcdir}/scp2-more-reasonable-file-access-rights.diff
- patch -Np1 -i ${srcdir}/oracle-recognition.diff
- patch -Np1 -i ${srcdir}/RemovetheoslSecuritygetHomeDircheck.diff
- # https://www.libreoffice.org/bugzilla/show_bug.cgi?id=43139
- patch -Np1 -i ${srcdir}/gcc462_buildfix.diff
# Checks if --hash-style is accepted, not if --hash-style=both is accepted.
[ "${CARCH}" = "mips64el" ] && sed -i 's/--hash-style=both/--hash-style=sysv/' ${srcdir}/build/solenv/gbuild/platform/unxgcc.mk
@@ -297,6 +292,8 @@ build() {
--enable-kde4\
--enable-ldap \
--enable-lockdown\
+ --enable-opengl \
+ --enable-odk\
--enable-ext-barcode \
--enable-ext-hunart \
--disable-ext-lightproof \
diff --git a/extra/lighttpd/PKGBUILD b/extra/lighttpd/PKGBUILD
index 131e85cfc..ecc76df56 100644
--- a/extra/lighttpd/PKGBUILD
+++ b/extra/lighttpd/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 145165 2011-12-18 18:44:31Z pierre $
+# $Id: PKGBUILD 146963 2012-01-19 18:03:44Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=lighttpd
pkgver=1.4.30
-pkgrel=1
+pkgrel=2
pkgdesc='a secure, fast, compliant and very flexible web-server'
license=('custom')
arch=('i686' 'x86_64' 'mips64el')
@@ -22,8 +22,8 @@ source=("http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}
sha256sums=('c237692366935b19ef8a6a600b2f3c9b259a9c3107271594c081a45902bd9c9b'
'941ab747aeb97ca111fb670d21eefecdf745debc5e139bc5bd6881ee66b2742a'
'ceff3a88e876f6104c094379d507b89bc504777d0f98a0930406a70624fcf024'
- '6c5892830e77731d27e3ebb64a0d87ab9139c68eb703aec6741c591814cef26f'
- '44267e8b670faaf5712ad0bc9fd84b8c52281ddd22ef2c22d4b474dbb1cf5d2a')
+ '550aa1abaced6bc9e8d65c2b069bfc96bf4d06734b17eeb140c5d00705de1230'
+ 'ee56422fe48f2683ccb5ca2e3dc6bad79ea8e1cbd043b21d2ea73b87018e35aa')
build() {
cd $srcdir/$pkgname-$pkgver
diff --git a/extra/lighttpd/lighttpd.conf b/extra/lighttpd/lighttpd.conf
index 4ca1b23a4..ed192352a 100644
--- a/extra/lighttpd/lighttpd.conf
+++ b/extra/lighttpd/lighttpd.conf
@@ -9,4 +9,4 @@ server.document-root = "/srv/http"
server.errorlog = "/var/log/lighttpd/error.log"
dir-listing.activate = "enable"
index-file.names = ( "index.html" )
-mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png" )
+mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", "" => "application/octet-stream" )
diff --git a/extra/lighttpd/lighttpd.logrotate.d b/extra/lighttpd/lighttpd.logrotate.d
index 5ff32a0c5..5be47b863 100644
--- a/extra/lighttpd/lighttpd.logrotate.d
+++ b/extra/lighttpd/lighttpd.logrotate.d
@@ -1,5 +1,8 @@
/var/log/lighttpd/*log {
missingok
+ copytruncate
+ notifempty
+ sharedscripts
postrotate
/etc/rc.d/lighttpd reload >/dev/null || true
endscript
diff --git a/extra/lirc/PKGBUILD b/extra/lirc/PKGBUILD
index 502905d48..a5988a0d5 100644
--- a/extra/lirc/PKGBUILD
+++ b/extra/lirc/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 142392 2011-11-08 22:38:56Z thomas $
+# $Id: PKGBUILD 146925 2012-01-19 10:00:36Z thomas $
# Maintainer: Paul Mattal <paul@archlinux.org>
pkgbase=lirc
pkgname=('lirc' 'lirc-utils')
pkgver=0.9.0
-pkgrel=8
+pkgrel=10
epoch=1
-_extramodules=extramodules-3.1-LIBRE
+_extramodules=extramodules-3.2-LIBRE
_kernver="$(cat /lib/modules/${_extramodules}/version)"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.lirc.org/"
license=('GPL')
-makedepends=('help2man' 'linux-libre-headers>=3.1' 'linux-libre-headers<3.2' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2')
+makedepends=('help2man' 'linux-headers>=3.2' 'linux-headers<3.3' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2')
options=('!makeflags' '!strip')
source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2
lirc_wpc8769l.patch
@@ -61,7 +61,7 @@ build() {
package_lirc() {
pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
- depends=('lirc-utils' 'linux-libre>=3.1' 'linux-libre<3.2')
+ depends=('lirc-utils' 'linux>=3.2' 'linux<3.3')
replaces=('lirc+pctv')
install=lirc.install
diff --git a/extra/lirc/lirc.install b/extra/lirc/lirc.install
index 1e7c4f4a1..9bf905742 100644
--- a/extra/lirc/lirc.install
+++ b/extra/lirc/lirc.install
@@ -1,4 +1,4 @@
-EXTRAMODULES=extramodules-3.1-ARCH
+EXTRAMODULES=extramodules-3.2-ARCH
post_install() {
# updating module dependencies
diff --git a/extra/mail-notification/PKGBUILD b/extra/mail-notification/PKGBUILD
index 2ee30ffae..4d68c6f0e 100644
--- a/extra/mail-notification/PKGBUILD
+++ b/extra/mail-notification/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 139560 2011-10-03 13:09:05Z jgc $
+# $Id: PKGBUILD 146721 2012-01-16 19:51:02Z dreisner $
# Maintainer: Roman Kyrylych <roman@archlinux.org>
pkgname=mail-notification
pkgver=5.4
-pkgrel=9
+pkgrel=10
pkgdesc="Tray icon application that informs you if you have new mail"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.nongnu.org/mailnotify/"
license=('GPL3' 'FDL')
-depends=('gmime' 'libnotify>=0.7.1' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnome')
+depends=('gmime' 'libnotify' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnome')
makedepends=('gob2' 'intltool' 'evolution' 'gnome-doc-utils' 'gtk2')
options=('!libtool' '!emptydirs')
install=mail-notification.install
@@ -16,7 +16,6 @@ source=(http://savannah.nongnu.org/download/mailnotify-orig/${pkgname}-${pkgver}
dont-update-cache.patch
remove-ubuntu-special-case.patch
mail-notification-5.4-evolution.patch
- gmime-2.4.patch
mail-notification-5.4-sasl_encode64.patch
mail-notification-5.4-evolution-gtkhtml.patch
mail-notification-5.4-camel_headers.patch
@@ -26,12 +25,13 @@ source=(http://savannah.nongnu.org/download/mailnotify-orig/${pkgname}-${pkgver}
mail-notification-5.4-kde-trayicon.patch
mail-notification-5.4-evolution-3-0-support.patch
mail-notification-5.4-gtk3-support.patch
- mail-notification-5.4-add-fallback-icon.patch)
+ mail-notification-5.4-add-fallback-icon.patch
+ mail-notification-5.4-gmime.patch
+ mail-notification-5.4-libx11.patch)
md5sums=('c8dc33a61251acb5474e56eab6b18f43'
'6007bc30e789dab0a8282038e0335eb9'
'9cadd61bbd9c324b2916ec980231e0f2'
'aa6f80820899f904c25988772f70ade9'
- '447cc20f035b9cf1a391027684ce1297'
'125513ed059f62469377eb0ab794dbed'
'c595a3962ab13a65be24a941e28faa9c'
'f79939f593b2e8659e302df72c2b54b1'
@@ -41,7 +41,9 @@ md5sums=('c8dc33a61251acb5474e56eab6b18f43'
'c7991b831834724eddc1c6802c3e06a6'
'b370b1085ebb2814bd5d345a6d2b45ea'
'1ba948759110787dd57097cff157b75a'
- '09df61b4dc29c676ac81ff9054e840ac')
+ '09df61b4dc29c676ac81ff9054e840ac'
+ '0944695e9b9b30f39028f85c83c6a7e2'
+ 'c3f643ef16aab3b4fe9ff5b333bff41a')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -49,7 +51,6 @@ build() {
patch -Np0 -i "${srcdir}/dont-update-cache.patch"
patch -Np0 -i "${srcdir}/remove-ubuntu-special-case.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution.patch"
- patch -Np1 -i "${srcdir}/gmime-2.4.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-sasl_encode64.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution-gtkhtml.patch"
patch -Np1 -i "${srcdir}/mail-notification-5.4-camel_headers.patch"
@@ -60,6 +61,8 @@ build() {
patch -Np0 -i "${srcdir}/mail-notification-5.4-evolution-3-0-support.patch"
patch -Np0 -i "${srcdir}/mail-notification-5.4-gtk3-support.patch"
patch -Np0 -i "${srcdir}/mail-notification-5.4-add-fallback-icon.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-gmime.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-libx11.patch"
gtk-builder-convert ui/mailbox-properties-dialog.glade ui/mailbox-properties-dialog.ui
gtk-builder-convert ui/properties-dialog.glade ui/properties-dialog.ui
diff --git a/extra/mail-notification/mail-notification-5.4-gmime.patch b/extra/mail-notification/mail-notification-5.4-gmime.patch
new file mode 100644
index 000000000..5f516a46b
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-gmime.patch
@@ -0,0 +1,63 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:28.000000000 +0300
+@@ -265,7 +265,7 @@
+ mime_message = g_mime_parser_construct_message(parser);
+ if (mime_message)
+ {
+- if (g_mime_message_get_header(mime_message, "X-Mozilla-Status"))
++ if (g_mime_object_get_header(mime_message, "X-Mozilla-Status"))
+ {
+ #if WITH_MOZILLA
+ type = MN_TYPE_MOZILLA_MAILBOX_BACKEND;
+diff -Nrbu mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:46:47.000000000 +0300
+@@ -167,7 +167,7 @@
+
+ const char *header;
+
+- header = g_mime_message_get_header(mime_message, header_name);
++ header = g_mime_object_get_header(mime_message, header_name);
+ if (header && mn_str_ishex(header))
+ return strtol(header, NULL, 16);
+ else
+diff -Nrbu mail-notification-5.4/jbsrc/jb.c mail-notification-5.4-OK/jbsrc/jb.c
+--- mail-notification-5.4/jbsrc/jb.c 2008-05-22 19:47:04.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/jb.c 2008-12-23 14:43:09.000000000 +0300
+@@ -166,7 +166,7 @@
+ jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
+ jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
+
+- jb_check_packages_for_options("GMime", "gmime", "gmime-2.0 >= 2.2.7",
++ jb_check_packages_for_options("GMime", "gmime", "gmime-2.6",
+ "hotmail",
+ "imap",
+ "maildir",
+diff -Nrbu mail-notification-5.4/src/mn-message-mime.c mail-notification-5.4-OK/src/mn-message-mime.c
+--- mail-notification-5.4/src/mn-message-mime.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-message-mime.c 2008-12-23 14:46:35.000000000 +0300
+@@ -33,12 +33,12 @@
+ g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), FALSE);
+
+ /* SpamAssassin */
+- spam = g_mime_message_get_header(mime_message, "X-Spam-Status");
++ spam = g_mime_object_get_header(mime_message, "X-Spam-Status");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+ /* bogofilter */
+- spam = g_mime_message_get_header(mime_message, "X-Bogosity");
++ spam = g_mime_object_get_header(mime_message, "X-Bogosity");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+@@ -89,7 +89,7 @@
+ {
+ const char *status;
+
+- status = g_mime_message_get_header(mime_message, "Status");
++ status = g_mime_object_get_header(mime_message, "Status");
+ if (status && strchr(status, 'R'))
+ return NULL; /* the message was read */
+ else if (status && strchr(status, 'O'))
diff --git a/extra/mail-notification/mail-notification-5.4-libx11.patch b/extra/mail-notification/mail-notification-5.4-libx11.patch
new file mode 100644
index 000000000..bb3574fda
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-libx11.patch
@@ -0,0 +1,13 @@
+Link with libX11 explicitly.
+
+--- mail-notification-5.4.dfsg.1.orig/jbsrc/jb.c
++++ mail-notification-5.4.dfsg.1/jbsrc/jb.c
+@@ -445,6 +445,8 @@
+
+ jb_compile_options_add_libs(object->compile_options, "-lm");
+
++ jb_compile_options_add_libs(object->compile_options, "-lX11");
++
+ jb_compile_options_add_package(object->compile_options, "gettext");
+ jb_compile_options_add_package(object->compile_options, "gnome");
+ jb_compile_options_add_package(object->compile_options, "dbus");
diff --git a/extra/mpg123/PKGBUILD b/extra/mpg123/PKGBUILD
index 16e770b4d..bf1dfb258 100644
--- a/extra/mpg123/PKGBUILD
+++ b/extra/mpg123/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 137504 2011-09-08 03:39:34Z eric $
+# $Id: PKGBUILD 146606 2012-01-14 04:08:48Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=mpg123
pkgver=1.13.4
-pkgrel=1
+pkgrel=2
pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3"
arch=('i686' 'x86_64' 'mips64el')
url="http://sourceforge.net/projects/mpg123"
license=('GPL2' 'LGPL2.1')
-depends=('libtool' 'alsa-lib')
+depends=('libltdl' 'alsa-lib')
makedepends=('sdl' 'jack' 'libpulse')
optdepends=('sdl: for sdl audio support'
'jack: for jack audio support'
@@ -17,12 +17,11 @@ conflicts=('mpg321')
provides=('mpg321')
options=('libtool')
source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('073620b3938c4cb9c4f70e8fe3e114b8')
sha1sums=('7fe195db9fe708c487a1d47a66e6e68d9b8e7a6e')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --with-audio="alsa sdl jack pulse"
+ ./configure --prefix=/usr --enable-int-quality --with-audio="alsa oss sdl jack pulse"
make
}
diff --git a/extra/mutter/PKGBUILD b/extra/mutter/PKGBUILD
index 2cb667f70..b87704750 100644
--- a/extra/mutter/PKGBUILD
+++ b/extra/mutter/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 140941 2011-10-20 05:44:03Z ibiru $
+# $Id: PKGBUILD 146802 2012-01-18 16:22:42Z ibiru $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Maintainer: Ionut Biru <ibiru@archlinux.org>
# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
pkgname=mutter
-pkgver=3.2.1
+pkgver=3.2.2
pkgrel=1
pkgdesc="A window manager for GNOME"
arch=(i686 x86_64 'mips64el')
@@ -15,11 +15,11 @@ url="http://www.gnome.org"
groups=('gnome')
options=('!libtool' '!emptydirs')
install=mutter.install
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('d6135d5e6c0852f7dc996798e9455fc2e9cbe6d2672f3750fc9b8d27ab141294')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('cd5977d86a100d89cfef557c22900b6d061730e2bda66e314e4943505d2bd5a1')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr --sysconfdir=/etc \
--libexecdir=/usr/lib/mutter \
--localstatedir=/var --disable-static
@@ -27,10 +27,10 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
- install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
- gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain mutter ${pkgdir}/etc/gconf/schemas/*.schemas
- rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+ install -m755 -d "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas" --domain mutter "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -f "$pkgdir"/etc/gconf/schemas/*.schemas
}
diff --git a/extra/obexd/PKGBUILD b/extra/obexd/PKGBUILD
index 9c5ec0823..80e4fb4b1 100644
--- a/extra/obexd/PKGBUILD
+++ b/extra/obexd/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 146408 2012-01-10 21:28:35Z andrea $
+# $Id: PKGBUILD 146598 2012-01-13 22:25:53Z andrea $
# Maintainer:
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
pkgbase=obexd
pkgname=('obexd-client' 'obexd-server')
-pkgver=0.43
+pkgver=0.44
pkgrel=1
url="http://www.bluez.org/"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL2')
makedepends=('glib2' 'openobex' 'libical')
source=("http://www.kernel.org/pub/linux/bluetooth/${pkgbase}-${pkgver}.tar.bz2")
-md5sums=('7490dc8536d8ac56afb884c87f24bd08')
+md5sums=('d7246fda87675843ce866dd64560e4fd')
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
diff --git a/extra/openjdk6/PKGBUILD b/extra/openjdk6/PKGBUILD
index c9e2aa45d..e5a02aea5 100644
--- a/extra/openjdk6/PKGBUILD
+++ b/extra/openjdk6/PKGBUILD
@@ -1,15 +1,13 @@
-# $Id: PKGBUILD 140782 2011-10-19 08:19:12Z andyrtr $
+# $Id: PKGBUILD 146547 2012-01-12 21:46:06Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=('openjdk6' 'openjdk6-src')
pkgbase="openjdk6"
-#_date=20100715
_javaver=6
-_icedteaver=1.10.4
+_icedteaver=1.10.5
_openjdk_version=b22
_openjdk_date=28_feb_2011
-#pkgver=${_javaver}.${_openjdk_version}_0.hg_${_date}
pkgver=${_javaver}.${_openjdk_version}_${_icedteaver}
pkgrel=1
url='http://icedtea.classpath.org'
@@ -17,25 +15,25 @@ arch=('i686' 'x86_64' 'mips64el')
license=('custom')
makedepends=('gcc-libs' 'xdg-utils' 'hicolor-icon-theme' 'ca-certificates-java' 'libxtst' 'alsa-lib' 'giflib' 'libxp' 'gtk2'
'nspr' 'zlib' 'freetype2' 'libjpeg>=8' 'libx11' 'libcups' 'patch' 'xalan-java' 'libxt' 'nss'
- 'apache-ant' 'autoconf' 'unzip' 'rhino' 'mercurial' 'zip' 'cpio')
+ 'apache-ant' 'autoconf' 'unzip' 'rhino' 'mercurial' 'zip' 'cpio' 'openjdk6')
options=('!emptydirs') # 'force') # force needed for hg shots
source=(http://icedtea.classpath.org/download/source/icedtea6-${_icedteaver}.tar.gz
- #ftp://ftp.archlinux.org/other/openjdk6/icedtea6-${_date}.tar.xz
http://download.java.net/openjdk/jdk6/promoted/${_openjdk_version}/openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz
http://icedtea.classpath.org/download/drops/jaxp144_01.zip
- https://jax-ws.dev.java.net/files/documents/4202/150724/jdk6-jaxws-b20.zip
- https://jax-ws.dev.java.net/files/documents/4202/150725/jdk6-jaf-b20.zip
+ http://icedtea.classpath.org/download/drops/jdk6-jaxws-b20.zip
+ http://icedtea.classpath.org/download/drops/jdk6-jaf-b20.zip
fix_jdk_cmds_path.diff
fix_corba_cmds_path.diff
fontconfig-paths.diff
nonreparenting-wm.diff
openjdk6.profile
- openjdk6.profile.csh)
+ openjdk6.profile.csh
+ glibc2_15.diff)
noextract=(openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz
jaxp144_01.zip
jdk6-jaxws-b20.zip
jdk6-jaf-b20.zip)
-md5sums=('c381d987f8d2facece8c54e98fd547f8'
+md5sums=('e2316f463b5d9f53f8c5c9020f2a7e5a'
'2d2bbbb0f9b81f1fec41ec730da8a933'
'ef7a8b3624ea904bf584bc46d79b5e75'
'91adfd41e6f001add4f92ae31216b1e3'
@@ -45,19 +43,8 @@ md5sums=('c381d987f8d2facece8c54e98fd547f8'
'ee1afda124d5927345014ab382ef581e'
'9b4d368f5ee08de248eaf029303a446c'
'74c4a7adc782edd087802bf92ae3d6d0'
- 'fdf295e2f186dfa4d308691a3d7ac8c5')
-
-# source PKGBUILD && mksource
-mksource() {
- mkdir /tmp/icedtea6-${_date}
- pushd /tmp/icedtea6-${_date}
- #hg -v clone http://icedtea.classpath.org/hg/icedtea6
- # use specific release branch
- hg -v clone http://icedtea.classpath.org/hg/release/icedtea6-1.8/
- rm -rf icedtea6/.hg*
- tar -cvJf /tmp/icedtea6-${_date}/icedtea6-${_date}.tar.xz *
- popd
-}
+ 'fdf295e2f186dfa4d308691a3d7ac8c5'
+ '0c8f0a398c88f85e0db44b4417562cf3')
build() {
@@ -77,7 +64,7 @@ build() {
autoreconf -i
- export DISTRIBUTION_PATCHES="patches/fix_jdk_cmds_path.diff patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/nonreparenting-wm.diff"
+ export DISTRIBUTION_PATCHES="patches/fix_jdk_cmds_path.diff patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/nonreparenting-wm.diff patches/glibc2_15.diff"
export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}"
export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}"
@@ -88,7 +75,7 @@ build() {
--with-ant-home=/usr/share/java/apache-ant \
--with-pkgversion=ArchLinux-${pkgver}-${pkgrel}-$CARCH \
--with-jaxp-drop-zip=${srcdir}/jaxp144_01.zip \
- --with-jaxws-drop-zip=${srcdir}/jdk6-jaxws-b20.zip \
+ --with-jaxws-drop-zip=${srcdir}/jdk6-jaxws-b20.zip \
--with-jaf-drop-zip=${srcdir}/jdk6-jaf-b20.zip \
--disable-bootstrap
LD_PRELOAD="" make
diff --git a/extra/openjdk6/glibc2_15.diff b/extra/openjdk6/glibc2_15.diff
new file mode 100644
index 000000000..8fe1b077a
--- /dev/null
+++ b/extra/openjdk6/glibc2_15.diff
@@ -0,0 +1,236 @@
+# HG changeset patch
+# User never
+# Date 1319555835 25200
+# Node ID a6eef545f1a2ceca6aeadf688a965df600ffef28
+# Parent 2ec638646e86e455978c31a9d47fc0ec271ed926
+7103224: collision between __LEAF define in interfaceSupport.hpp and /usr/include/sys/cdefs.h with gcc
+Reviewed-by: never
+Contributed-by: Omair Majid <omajid@redhat.com>
+
+diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/opto/addnode.cpp
+--- openjdk/hotspot/src/share/vm/opto/addnode.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/opto/addnode.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -34,8 +34,6 @@
+
+ // Portions of code courtesy of Clifford Click
+
+-#define MAXFLOAT ((float)3.40282346638528860e+38)
+-
+ // Classic Add functionality. This covers all the usual 'add' behaviors for
+ // an algebraic ring. Add-integer, add-float, add-double, and binary-or are
+ // all inherited from this class. The various identity values are supplied
+diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jniCheck.cpp
+--- openjdk/hotspot/src/share/vm/prims/jniCheck.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -107,7 +107,7 @@
+ if (env != xenv) { \
+ NativeReportJNIFatalError(thr, warn_wrong_jnienv); \
+ } \
+- __ENTRY(result_type, header, thr)
++ VM_ENTRY_BASE(result_type, header, thr)
+
+
+ #define UNCHECKED() (unchecked_jni_NativeInterface)
+diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiEnter.xsl
+--- openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl Tue Oct 25 08:17:15 2011 -0700
+@@ -426,7 +426,7 @@
+ <xsl:value-of select="$space"/>
+ <xsl:text>ThreadInVMfromNative __tiv(current_thread);</xsl:text>
+ <xsl:value-of select="$space"/>
+- <xsl:text>__ENTRY(jvmtiError, </xsl:text>
++ <xsl:text>VM_ENTRY_BASE(jvmtiError, </xsl:text>
+ <xsl:apply-templates select="." mode="functionid"/>
+ <xsl:text> , current_thread)</xsl:text>
+ <xsl:value-of select="$space"/>
+diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiEnv.cpp
+--- openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -173,7 +173,7 @@
+ // from native so as to resolve the jthread.
+
+ ThreadInVMfromNative __tiv(current_thread);
+- __ENTRY(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
++ VM_ENTRY_BASE(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
+ debug_only(VMNativeEntryWrapper __vew;)
+
+ oop thread_oop = JNIHandles::resolve_external_guard(thread);
+diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiExport.cpp
+--- openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp Tue Oct 25 08:17:15 2011 -0700
+@@ -373,7 +373,7 @@
+ JavaThread* current_thread = (JavaThread*) ThreadLocalStorage::thread();
+ // transition code: native to VM
+ ThreadInVMfromNative __tiv(current_thread);
+- __ENTRY(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
++ VM_ENTRY_BASE(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
+ debug_only(VMNativeEntryWrapper __vew;)
+
+ JvmtiEnv *jvmti_env = JvmtiEnv::create_a_jvmti(version);
+diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/runtime/interfaceSupport.hpp
+--- openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp Tue Oct 25 04:07:20 2011 -0700
++++ openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp Tue Oct 25 08:17:15 2011 -0700
+@@ -72,9 +72,9 @@
+ }
+ };
+
+-// InterfaceSupport provides functionality used by the __LEAF and __ENTRY
+-// macros. These macros are used to guard entry points into the VM and
+-// perform checks upon leave of the VM.
++// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
++// VM_ENTRY_BASE macros. These macros are used to guard entry points into
++// the VM and perform checks upon leave of the VM.
+
+
+ class InterfaceSupport: AllStatic {
+@@ -433,7 +433,7 @@
+
+ // LEAF routines do not lock, GC or throw exceptions
+
+-#define __LEAF(result_type, header) \
++#define VM_LEAF_BASE(result_type, header) \
+ TRACE_CALL(result_type, header) \
+ debug_only(NoHandleMark __hm;) \
+ /* begin of body */
+@@ -441,7 +441,7 @@
+
+ // ENTRY routines may lock, GC and throw exceptions
+
+-#define __ENTRY(result_type, header, thread) \
++#define VM_ENTRY_BASE(result_type, header, thread) \
+ TRACE_CALL(result_type, header) \
+ HandleMarkCleaner __hm(thread); \
+ Thread* THREAD = thread; \
+@@ -450,7 +450,7 @@
+
+ // QUICK_ENTRY routines behave like ENTRY but without a handle mark
+
+-#define __QUICK_ENTRY(result_type, header, thread) \
++#define VM_QUICK_ENTRY_BASE(result_type, header, thread) \
+ TRACE_CALL(result_type, header) \
+ debug_only(NoHandleMark __hm;) \
+ Thread* THREAD = thread; \
+@@ -463,20 +463,20 @@
+ #define IRT_ENTRY(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJava __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+
+ #define IRT_LEAF(result_type, header) \
+ result_type header { \
+- __LEAF(result_type, header) \
++ VM_LEAF_BASE(result_type, header) \
+ debug_only(No_Safepoint_Verifier __nspv(true);)
+
+
+ #define IRT_ENTRY_NO_ASYNC(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+ // Another special case for nmethod_entry_point so the nmethod that the
+@@ -487,7 +487,7 @@
+ result_type header { \
+ nmethodLocker _nmlock(nm); \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+ #define IRT_END }
+
+@@ -497,20 +497,20 @@
+ #define JRT_ENTRY(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJava __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+
+ #define JRT_LEAF(result_type, header) \
+ result_type header { \
+- __LEAF(result_type, header) \
++ VM_LEAF_BASE(result_type, header) \
+ debug_only(JRT_Leaf_Verifier __jlv;)
+
+
+ #define JRT_ENTRY_NO_ASYNC(result_type, header) \
+ result_type header { \
+ ThreadInVMfromJavaNoAsyncException __tiv(thread); \
+- __ENTRY(result_type, header, thread) \
++ VM_ENTRY_BASE(result_type, header, thread) \
+ debug_only(VMEntryWrapper __vew;)
+
+ // Same as JRT Entry but allows for return value after the safepoint
+@@ -543,11 +543,11 @@
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+
+ // Ensure that the VMNativeEntryWrapper constructor, which can cause
+-// a GC, is called outside the NoHandleMark (set via __QUICK_ENTRY).
++// a GC, is called outside the NoHandleMark (set via VM_QUICK_ENTRY_BASE).
+ #define JNI_QUICK_ENTRY(result_type, header) \
+ extern "C" { \
+ result_type JNICALL header { \
+@@ -555,7 +555,7 @@
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __QUICK_ENTRY(result_type, header, thread)
++ VM_QUICK_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JNI_LEAF(result_type, header) \
+@@ -563,7 +563,7 @@
+ result_type JNICALL header { \
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
+- __LEAF(result_type, header)
++ VM_LEAF_BASE(result_type, header)
+
+
+ // Close the routine and the extern "C"
+@@ -579,7 +579,7 @@
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JVM_ENTRY_NO_ENV(result_type, header) \
+@@ -588,7 +588,7 @@
+ JavaThread* thread = (JavaThread*)ThreadLocalStorage::thread(); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __ENTRY(result_type, header, thread)
++ VM_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JVM_QUICK_ENTRY(result_type, header) \
+@@ -597,14 +597,14 @@
+ JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
+ ThreadInVMfromNative __tiv(thread); \
+ debug_only(VMNativeEntryWrapper __vew;) \
+- __QUICK_ENTRY(result_type, header, thread)
++ VM_QUICK_ENTRY_BASE(result_type, header, thread)
+
+
+ #define JVM_LEAF(result_type, header) \
+ extern "C" { \
+ result_type JNICALL header { \
+ VM_Exit::block_if_vm_exited(); \
+- __LEAF(result_type, header)
++ VM_LEAF_BASE(result_type, header)
+
+
+ #define JVM_END } } \ No newline at end of file
diff --git a/extra/oxygen-gtk2/PKGBUILD b/extra/oxygen-gtk2/PKGBUILD
new file mode 100644
index 000000000..45abe2ae6
--- /dev/null
+++ b/extra/oxygen-gtk2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 146767 2012-01-17 08:05:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: birdflesh <antkoul at gmail dot com>
+
+pkgname=oxygen-gtk2
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Port of the default KDE widget theme (Oxygen) to GTK2"
+arch=('i686' 'x86_64')
+url='https://projects.kde.org/projects/playground/artwork/oxygen-gtk/'
+license=('LGPL')
+depends=('gtk2' 'dbus-glib')
+conflicts=('oxygen-gtk')
+replaces=('oxygen-gtk')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('975dfef679436c849a649c9d5d9ae0d3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/oxygen-gtk3/PKGBUILD b/extra/oxygen-gtk3/PKGBUILD
new file mode 100644
index 000000000..ef62d5108
--- /dev/null
+++ b/extra/oxygen-gtk3/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 146769 2012-01-17 08:13:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=oxygen-gtk3
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Port of the default KDE widget theme (Oxygen) to GTK3"
+arch=('i686' 'x86_64')
+url='https://projects.kde.org/projects/playground/artwork/oxygen-gtk/'
+license=('LGPL')
+depends=('gtk3' 'dbus-glib')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('029571469ea3436d47cdac20b2069fed')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/perl-dbd-mysql/PKGBUILD b/extra/perl-dbd-mysql/PKGBUILD
index 11e53a1fe..eede2d91d 100644
--- a/extra/perl-dbd-mysql/PKGBUILD
+++ b/extra/perl-dbd-mysql/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 143774 2011-11-29 02:55:27Z kevin $
+# $Id: PKGBUILD 146787 2012-01-18 02:09:02Z allan $
# Maintainer: kevin <kevin@archlinux.org>
# Contributor: Eric Johnson <eric@coding-zone.com>
pkgname=perl-dbd-mysql
_realname=DBD-mysql
pkgver=4.020
-pkgrel=1
+pkgrel=2
pkgdesc="Perl/CPAN DBD::mysql module for interacting with MySQL via DBD"
arch=(i686 x86_64 'mips64el')
license=('GPL' 'PerlArtistic')
diff --git a/extra/php-suhosin/PKGBUILD b/extra/php-suhosin/PKGBUILD
index 9eccbe76d..e28ea3c1d 100644
--- a/extra/php-suhosin/PKGBUILD
+++ b/extra/php-suhosin/PKGBUILD
@@ -1,19 +1,21 @@
-# $Id: PKGBUILD 135864 2011-08-19 20:05:56Z pierre $
+# $Id: PKGBUILD 146961 2012-01-19 17:54:16Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=php-suhosin
-pkgver=0.9.32.1
-pkgrel=3
+pkgver=0.9.33
+pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
pkgdesc='An advanced protection system for PHP installations'
url='http://www.hardened-php.net/suhosin/'
license='PHP'
-source=("http://download.suhosin.org/suhosin-${pkgver}.tar.gz")
+source=("http://download.suhosin.org/suhosin-${pkgver}.tgz"
+ "http://download.suhosin.org/suhosin-${pkgver}.tgz.sig")
depends=('php')
conflicts=('php-suhosin-extension')
replaces=('php-suhosin-extension')
backup=('etc/php/conf.d/suhosin.ini')
-md5sums=('26a86f0f684a656c3e789e3eb4ec1db3')
+md5sums=('0ce498a02a8281e4274ea8e390c2b487'
+ '6e9536cc71342bab0efb1e9a84f688a6')
build() {
cd ${srcdir}/suhosin-${pkgver}
diff --git a/extra/pyalpm/PKGBUILD b/extra/pyalpm/PKGBUILD
index 4e4a0d194..deabdd2d3 100644
--- a/extra/pyalpm/PKGBUILD
+++ b/extra/pyalpm/PKGBUILD
@@ -1,15 +1,15 @@
# Maintainer : Rémy Oudompheng <remy@archlinux.org>
pkgname=pyalpm
-pkgver=0.4.3
+pkgver=0.5.3
pkgrel=1
pkgdesc="Libalpm bindings for Python 3"
arch=('i686' 'x86_64' 'mips64el')
url="http://projects.archlinux.org/users/remy/pyalpm.git/"
license=('GPL')
-depends=('python>=3.2' 'pacman<3.6')
+depends=('python>=3.2' 'pacman>=4')
source=("ftp://ftp.archlinux.org/other/pyalpm/$pkgname-$pkgver.tar.gz")
-md5sums=('396f9820eae9a40bd33d8bb366272c82')
+md5sums=('a76019106d17de3a5933c773013a63d1')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/extra/qemu-kvm/PKGBUILD b/extra/qemu-kvm/PKGBUILD
index 35c6bdc20..338395870 100644
--- a/extra/qemu-kvm/PKGBUILD
+++ b/extra/qemu-kvm/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 145070 2011-12-16 11:39:16Z tpowa $
+# $Id: PKGBUILD 146639 2012-01-15 08:31:08Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=qemu-kvm
pkgver=1.0
-pkgrel=1
+pkgrel=2
pkgdesc="Latest KVM QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
arch=(i686 x86_64 'mips64el')
license=('GPL2' 'LGPL2.1')
url="http://www.linux-kvm.org"
depends=('libjpeg' 'libpng' 'libsasl' 'curl' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng' 'libpulse')
-makedepends=('texi2html' 'perl' 'python2')
+makedepends=('git' 'iasl' 'texi2html' 'perl' 'python2')
backup=('etc/qemu/target-x86_64.conf')
install=qemu-kvm.install
conflicts=('qemu')
@@ -29,11 +29,26 @@ build()
--audio-card-list=ac97,sb16,es1370,hda \
--enable-docs
make
+
+ # Use latest seabios version
+ # https://bugs.archlinux.org/task/27616
+ cd ${srcdir}/
+ git clone git://git.seabios.org/seabios.git
+ cd seabios
+ find 'tools/' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+ make clean
+ make
}
+
package()
{
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
+
+ # Use latest seabios version
+ # https://bugs.archlinux.org/task/27616
+ cp ${srcdir}/seabios/out/bios.bin ${pkgdir}/usr/share/qemu/bios.bin
+
# symbolic link for backwards compatibility
ln -s qemu-system-x86_64 ${pkgdir}/usr/bin/qemu-kvm
# symbolic link for to qemu binary for emulator apps
diff --git a/extra/qemu/PKGBUILD b/extra/qemu/PKGBUILD
index 9946907c5..b3762f986 100644
--- a/extra/qemu/PKGBUILD
+++ b/extra/qemu/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 145072 2011-12-16 12:11:13Z tpowa $
+# $Id: PKGBUILD 146673 2012-01-16 08:01:45Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=qemu
pkgver=1.0
-pkgrel=1
+pkgrel=2
pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
arch=('i686' 'x86_64' 'mips64el')
license=('GPL2' 'LGPL2.1')
url="http://wiki.qemu.org/Index.html"
-makedepends=('texi2html' 'perl' 'python2')
+makedepends=('iasl' 'git' 'texi2html' 'perl' 'python2')
depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng' 'curl' 'libsasl' 'libgl' 'libpulse')
backup=('etc/qemu/target-x86_64.conf')
install=qemu.install
@@ -24,11 +24,23 @@ build()
--audio-card-list=ac97,sb16,es1370,hda \
--enable-docs
make
+ # Use latest seabios version
+ # https://bugs.archlinux.org/task/27616
+ cd ${srcdir}/
+ git clone git://git.seabios.org/seabios.git
+ cd seabios
+ find 'tools/' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+ make clean
+ make
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
+ # Use latest seabios version
+ # https://bugs.archlinux.org/task/27616
+ cp ${srcdir}/seabios/out/bios.bin ${pkgdir}/usr/share/qemu/bios.bin
+
install -D -m644 ${srcdir}/65-kvm.rules \
${pkgdir}/lib/udev/rules.d/65-kvm.rules
# strip scripts directory
diff --git a/extra/qtwebkit/PKGBUILD b/extra/qtwebkit/PKGBUILD
index 651370de9..d9a10d3f3 100644
--- a/extra/qtwebkit/PKGBUILD
+++ b/extra/qtwebkit/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 145469 2011-12-22 22:02:51Z andrea $
+# $Id: PKGBUILD 146627 2012-01-14 15:25:15Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=qtwebkit
pkgver=2.2.1
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
url='http://trac.webkit.org/wiki/QtWebKit'
pkgdesc='An open source web browser engine (Qt port)'
@@ -13,8 +13,10 @@ makedepends=('python2' 'mesa' 'chrpath')
conflicts=('qt<4.8')
#source=("http://get.qt.nokia.com/${pkgname}/QtWebKit-${pkgver}.tar.gz"
source=("ftp://ftp.archlinux.org/other/${pkgname}/QtWebKit-${pkgver}.tar.gz"
+ "ftp://ftp.archlinux.org/other/${pkgname}/qwebview-4.8.0.tar.bz2"
'python2-path.patch')
sha1sums=('283fc116882157df0474af496be73bb9b34cb001'
+ '0e44b27a0f71aceb91a89a2c28ab6331126518d9'
'b0ef3d5596171e3900a685df9bcfac3068ad6330')
build() {
@@ -28,6 +30,11 @@ build() {
--makeargs="${MAKEFLAGS}" \
--release \
--3d-canvas
+
+ # Build the QWebView plugin (FS#27914)
+ cd "${srcdir}"/QtWebKit-${pkgver}/qwebview-4.8.0/plugins/qwebview
+ qmake
+ make
}
package() {
@@ -36,4 +43,7 @@ package() {
# Fix RPATH
chrpath -r /usr/lib/ "${pkgdir}"/usr/lib/qt/imports/QtWebKit/libqmlwebkitplugin.so
+
+ cd "${srcdir}"/QtWebKit-${pkgver}/qwebview-4.8.0/plugins/qwebview
+ make INSTALL_ROOT="${pkgdir}" install
}
diff --git a/extra/rdesktop/PKGBUILD b/extra/rdesktop/PKGBUILD
index 93dfc8109..6eaba1c09 100644
--- a/extra/rdesktop/PKGBUILD
+++ b/extra/rdesktop/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 146436 2012-01-11 05:01:01Z eric $
+# $Id: PKGBUILD 146604 2012-01-14 02:04:54Z eric $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Dan McGee <dan@archlinux.org>
pkgname=rdesktop
pkgver=1.7.1
-pkgrel=1
+pkgrel=2
pkgdesc="An open source client for Windows Remote Desktop Services"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.rdesktop.org/"
@@ -25,7 +25,7 @@ build() {
# Fix libao segfault, from Fedora
patch -i "${srcdir}/rdesktop-libao.patch"
- ./configure --prefix=/usr
+ ./configure --prefix=/usr --enable-smartcard
make
}
diff --git a/extra/rhythmbox/PKGBUILD b/extra/rhythmbox/PKGBUILD
index f95604103..0a06c738e 100644
--- a/extra/rhythmbox/PKGBUILD
+++ b/extra/rhythmbox/PKGBUILD
@@ -1,32 +1,28 @@
-# $Id: PKGBUILD 145457 2011-12-22 17:55:49Z ibiru $
+# $Id: PKGBUILD 146665 2012-01-15 21:21:39Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=rhythmbox
-pkgver=2.90.1.git20111222
+pkgver=2.95
pkgrel=1
pkgdesc="An iTunes-like music playback and management application"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://www.rhythmbox.org"
-depends=('libgpod' 'gvfs-afc' 'totem-plparser' 'libmusicbrainz3' 'libmtp' 'lirc-utils' 'libwebkit3' 'libdmapsharing' 'media-player-info' 'python2-gobject'
- 'python-gnomekeyring' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'json-glib' 'desktop-file-utils' 'libpeas' 'python2-mako' 'grilo' 'dconf' 'libnotify')
-makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.1' 'intltool' 'brasero' 'gnome-common' 'gtk-doc' 'gobject-introspection')
+depends=('clutter' 'clutter-gtk' 'clutter-gst' 'dconf' 'desktop-file-utils' 'grilo' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'gvfs-afc' 'json-glib' 'libdmapsharing' 'libgpod' 'libmtp' 'libmusicbrainz3'
+ 'libnotify' 'libpeas' 'libwebkit3' 'lirc-utils' 'media-player-info' 'mx' 'python2-gobject' 'python2-mako' 'totem-plparser')
+makedepends=('gnome-doc-utils' 'intltool' 'brasero' 'gobject-introspection')
optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
'gstreamer0.10-bad-plugins: Extra media codecs'
'gstreamer0.10-ffmpeg: Extra media codecs'
'brasero: cd burning')
-options=('!libtool' '!emptydirs' '!strip')
+options=('!libtool' '!emptydirs')
install=rhythmbox.install
-#source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.13/${pkgname}-${pkgver}.tar.bz2)
-source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.xz)
-sha256sums=('06cb3dda1871060c192e32c7f8237c046d120946a3647ebe2041695bce90a839')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz)
+sha256sums=('12cab95c89514b5c01a2daf9d6bdf74c8652b35e49625e2906d51b487bc68c06')
build() {
cd "$srcdir/$pkgname-$pkgver"
- export CFLAGS="$CFLAGS -g -O1"
- export CXXFLAGS="$CXXFLAGS -g -O1"
- PYTHON=/usr/bin/python2 ./autogen.sh
PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
--libexecdir=/usr/lib/rhythmbox \
--localstatedir=/var --disable-static \
diff --git a/extra/ristretto/PKGBUILD b/extra/ristretto/PKGBUILD
index 5d1a94e5f..60d627f0f 100644
--- a/extra/ristretto/PKGBUILD
+++ b/extra/ristretto/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 144969 2011-12-12 17:23:28Z andrea $
+# $Id: PKGBUILD 146669 2012-01-16 05:44:36Z eric $
# Maintainer:
# Contributor: AndyRTR <andyrtr@archlinux.org>
# Contributor: Ronald van Haren <ronald.archlinux.org>
pkgname=ristretto
-pkgver=0.3.0
+pkgver=0.3.2
pkgrel=1
pkgdesc="A fast and lightweight picture-viewer for Xfce"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,7 +15,7 @@ makedepends=('intltool')
groups=('xfce4-goodies')
install=ristretto.install
source=("http://archive.xfce.org/src/apps/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2")
-sha1sums=('c7034ad543bea3c1b99a2336dcee9d5ba480b2bb')
+sha1sums=('3ca49cd2ffa21d5a7ce3bd5dad87ff78c4898add')
build() {
cd "${srcdir}/$pkgname-$pkgver"
diff --git a/extra/sdl_image/PKGBUILD b/extra/sdl_image/PKGBUILD
index a61e6c713..912a356b3 100644
--- a/extra/sdl_image/PKGBUILD
+++ b/extra/sdl_image/PKGBUILD
@@ -1,22 +1,29 @@
-# $Id: PKGBUILD 64922 2010-01-23 10:17:20Z eric $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 146687 2012-01-16 11:34:55Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=sdl_image
-pkgver=1.2.10
-pkgrel=2
+pkgver=1.2.11
+pkgrel=1
pkgdesc="A simple library to load images of various formats as SDL surfaces"
arch=('i686' 'x86_64' 'mips64el')
-license=('LGPL')
+license=('custom')
depends=('sdl>=1.2.13' 'libpng' 'libjpeg>=7' 'libtiff' 'zlib')
options=('!libtool')
url="http://www.libsdl.org/projects/SDL_image/"
-source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-${pkgver}.tar.gz)
-md5sums=('6c06584b31559e2b59f2b982d0d1f628')
+source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-$pkgver.tar.gz)
+md5sums=('1210d7a7e87ab95abebb4f3e79a0fd31')
build() {
- cd ${srcdir}/SDL_image-${pkgver}
- ./configure --prefix=/usr
- make || return 1
- make DESTDIR=${pkgdir} install
+ cd "$srcdir/SDL_image-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/SDL_image-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/sdl_mixer/PKGBUILD b/extra/sdl_mixer/PKGBUILD
index 914c8612a..f5927cb59 100644
--- a/extra/sdl_mixer/PKGBUILD
+++ b/extra/sdl_mixer/PKGBUILD
@@ -1,29 +1,38 @@
-# $Id: PKGBUILD 70367 2010-02-26 13:24:25Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 146688 2012-01-16 11:35:40Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
# Contributor: Lukas Sabota <punkrockguy318@cocmast.net> (Timidity Patch)
pkgname=sdl_mixer
-pkgver=1.2.11
-pkgrel=2
+pkgver=1.2.12
+pkgrel=1
pkgdesc="A simple multi-channel audio mixer"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.libsdl.org/projects/SDL_mixer/"
-license=('LGPL' 'GPL')
+license=('custom')
depends=('sdl>=1.2.12' 'libvorbis' 'libmikmod' 'smpeg')
+makedepends=('fluidsynth')
+optdepends=('fluidsynth: MIDI software synth, replaces built-in timidity')
options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${pkgver}.tar.gz)
-md5sums=('65ada3d997fe85109191a5fb083f248c')
+source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz)
+md5sums=('e03ff73d77a55e3572ad0217131dc4a1')
build() {
- cd ${srcdir}/SDL_mixer-${pkgver}
+ cd "$srcdir/SDL_mixer-$pkgver"
- sed -e "/CONFIG_FILE_ETC/s/\/etc\/timidity.cfg/\/etc\/timidity++\/timidity.cfg/" \
- -e "/DEFAULT_PATH/s/\/etc\/timidity/\/etc\/timidity++/" \
- -e "/DEFAULT_PATH2/s/\/usr\/local\/lib\/timidity/\/usr\/lib\/timidity/" \
+ sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \
+ -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \
+ -e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \
-i timidity/config.h
- ./configure --prefix=/usr
- make || return 1
- make DESTDIR=${pkgdir} install
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/SDL_mixer-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/sdl_net/PKGBUILD b/extra/sdl_net/PKGBUILD
index 8b8337be4..e0238ffcc 100644
--- a/extra/sdl_net/PKGBUILD
+++ b/extra/sdl_net/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 137890 2011-09-12 09:39:20Z allan $
-# Maintainer:
+# $Id: PKGBUILD 146689 2012-01-16 11:36:24Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: dorphell <dorphell@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=sdl_net
-pkgver=1.2.7
-pkgrel=4
+pkgver=1.2.8
+pkgrel=1
pkgdesc="A small sample cross-platform networking library"
arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
url="http://www.libsdl.org/projects/SDL_net/"
-license=('GPL')
depends=('sdl')
options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_net/release/SDL_net-${pkgver}.tar.gz)
-md5sums=('6bd4662d1423810f3140d4da21b6d912')
+source=(http://www.libsdl.org/projects/SDL_net/release/SDL_net-$pkgver.tar.gz)
+md5sums=('20e64e61d65662db66c379034f11f718')
build() {
- cd ${srcdir}/SDL_net-${pkgver}
- ./configure --prefix=/usr
+ cd "$srcdir/SDL_net-$pkgver"
+ ./configure --prefix=/usr --disable-static
make
}
package() {
- cd ${srcdir}/SDL_net-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "$srcdir/SDL_net-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/sdl_ttf/PKGBUILD b/extra/sdl_ttf/PKGBUILD
index 094bd8fd1..5e325a316 100644
--- a/extra/sdl_ttf/PKGBUILD
+++ b/extra/sdl_ttf/PKGBUILD
@@ -1,26 +1,29 @@
-# $Id: PKGBUILD 85134 2010-07-09 10:09:49Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id: PKGBUILD 146690 2012-01-16 11:37:07Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=sdl_ttf
-pkgver=2.0.10
+pkgver=2.0.11
pkgrel=1
pkgdesc="A library that allows you to use TrueType fonts in your SDL applications"
arch=('i686' 'x86_64' 'mips64el')
-license=('LGPL')
+license=('custom')
url="http://www.libsdl.org/projects/SDL_ttf/"
depends=('sdl>=1.2.12' 'freetype2')
options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${pkgver}.tar.gz)
-md5sums=('814e6e17e8879254208d23b3b7e0354b')
+source=(http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-$pkgver.tar.gz)
+md5sums=('61e29bd9da8d245bc2471d1b2ce591aa')
build() {
- cd ${srcdir}/SDL_ttf-${pkgver}
- ./configure --prefix=/usr
+ cd "$srcdir/SDL_ttf-$pkgver"
+ ./configure --prefix=/usr --disable-static
make
}
package() {
- cd ${srcdir}/SDL_ttf-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "$srcdir/SDL_ttf-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/extra/spamassassin/PKGBUILD b/extra/spamassassin/PKGBUILD
index ee4d4c060..f2859dc20 100644
--- a/extra/spamassassin/PKGBUILD
+++ b/extra/spamassassin/PKGBUILD
@@ -1,54 +1,58 @@
-# $Id: PKGBUILD 129532 2011-06-28 18:19:06Z angvp $
+# $Id: PKGBUILD 146678 2012-01-16 09:03:49Z bluewind $
# Maintainer: Dale Blount <dale@archlinux.org>
# Contributor: Manolis Tzanidakis
pkgname=spamassassin
pkgver=3.3.2
-pkgrel=2
+pkgrel=3
pkgdesc="A mail filter to identify spam."
-arch=(i686 x86_64 'mips64el')
-license=(APACHE)
+arch=('i686' 'x86_64' 'mips64el')
+license=('APACHE')
url="http://spamassassin.apache.org"
-depends=('perl>=5.14' 'perl-net-dns' 'perl-uri' 'perl-html-parser' \
- 'perl-digest-sha1' 'perl-io-socket-ssl' 'openssl' \
- 'perl-libwww' 'perl-mail-spf' \
- 'zlib' 're2c')
- # perl-archive-tar perl-io-zlib)
+depends=('openssl' 'zlib' 're2c' 'perl-net-dns' 'perl-io-socket-ssl'
+ 'perl-libwww' 'perl-mail-spf' 'perl-http-message' 'perl-net-http'
+ 'perl-io-socket-inet6' 'perl-mail-dkim' 'perl-crypt-ssleay')
makedepends=('razor' 'perl-dbi')
-optdepends=('razor: to identify collaborately-flagged spam'
- 'gnupg: gpg support, without this use --nogpg flag for sa-update'
- 're2c: regexp compiler, for compiling rules with sa-compile'
- 'perl-mail-dkim: DomainKeys Identified Mail (DKIM) checking')
-backup=(etc/conf.d/spamd etc/mail/spamassassin/local.cf \
- etc/mail/spamassassin/init.pre \
- etc/mail/spamassassin/v310.pre \
- etc/mail/spamassassin/v312.pre \
- etc/mail/spamassassin/v320.pre)
-install=${pkgname}.install
-options=(!emptydirs)
-source=(http://mirrors.devlib.org/apache/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz \
- spamd.conf.d spamd)
+optdepends=('razor: to identify collaborately-flagged spam')
+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'
+ 'etc/mail/spamassassin/v330.pre')
+install="${pkgname}.install"
+options=('!emptydirs')
+source=("http://mirrors.devlib.org/apache/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz"
+ 'spamd.conf.d' 'spamd')
md5sums=('d1d62cc5c6eac57e88c4006d9633b81e'
'af501c6b0bb937a2775b747cc4b6d150'
- '0534d3071a526a27ddc2b297afa03b04')
+ '57545e6877503d897db21e9a2e8bd2b9')
build() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
+ cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
# install module in vendor directories.
- PERL_MM_USE_DEFAULT=1 /usr/bin/perl Makefile.PL INSTALLDIRS=vendor \
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor \
CONTACT_ADDRESS=root@localhost ENABLE_SSL=yes PERL_TAINT=no
- /usr/bin/make
+ make
}
check() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
- /usr/bin/make test || true
+ cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
+
+ # SSLv2 is disabled by upstream so this test would fail
+ rm -rf t/spamd_ssl_v2.t
+
+ # parallel tests cause lots of failures; disable for now
+ #export HARNESS_OPTIONS="j$(echo $MAKEFLAGS | sed 's/.*-j\([0-9][0-9]*\).*/\1/')"
+
+ make test
}
package() {
- cd ${srcdir}/Mail-SpamAssassin-${pkgver}
- /usr/bin/make DESTDIR=${pkgdir} install
+ cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
+ 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
+ install -D -m644 "${srcdir}/spamd.conf.d" "${pkgdir}/etc/conf.d/spamd"
+ install -D -m755 "${srcdir}/spamd" "${pkgdir}/etc/rc.d/spamd"
}
diff --git a/extra/spamassassin/spamd b/extra/spamassassin/spamd
index 11d35f7cd..3fb97566e 100644
--- a/extra/spamassassin/spamd
+++ b/extra/spamassassin/spamd
@@ -6,11 +6,17 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=`pidof -o %PPID /usr/bin/vendor_perl/spamd`
+PIDFILE=/var/run/spamd.pid
+if [ -f $PIDFILE ]; then
+ PID=$(cat $PIDFILE)
+else
+ PID=$(pidof -o %PPID /usr/bin/vendor_perl/spamd) #backward compat
+fi
+
case "$1" in
start)
stat_busy "Starting spamd"
- [ -z "$PID" ] && /usr/bin/vendor_perl/spamd -d ${SPAMD_OPTS}
+ [ -z "$PID" ] && /usr/bin/vendor_perl/spamd -d -r "$PIDFILE" ${SPAMD_OPTS}
if [ $? -gt 0 ]; then
stat_fail
else
diff --git a/extra/tftp-hpa/PKGBUILD b/extra/tftp-hpa/PKGBUILD
index 993a70e3e..93031c2d9 100644
--- a/extra/tftp-hpa/PKGBUILD
+++ b/extra/tftp-hpa/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 131856 2011-07-16 06:36:05Z tpowa $
+# $Id: PKGBUILD 146535 2012-01-12 16:40:12Z tpowa $
# Maintainer: dorphell <dorphell@archlinux.org>
# Contributor: Jose Javier <jojapa@terra.es>
pkgname=tftp-hpa
-pkgver=5.1
+pkgver=5.2
pkgrel=1
pkgdesc="Official tftp server"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,7 +11,7 @@ license=('BSD')
depends=('readline>=6.0.00')
conflicts=('netkit-tftp')
backup=('etc/conf.d/tftpd')
-source=(http://www.kernel.org/pub/software/network/tftp/$pkgname-$pkgver.tar.xz tftpd.rc tftpd.conf LICENSE)
+source=(http://www.kernel.org/pub/software/network/tftp/tftp-hpa/$pkgname-$pkgver.tar.gz tftpd.rc tftpd.conf LICENSE)
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -29,7 +29,7 @@ package() {
rm "${pkgdir}/usr/share/man/man8/tftpd.8"
install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
-md5sums=('d086b1bd6e5ed6375ad407e273afccdf'
+md5sums=('3de3038e7c2bf6fc5d496825893ac8e7'
'83fbb6f52205d95951a3c059e5351ca2'
'414a79dc891bced056d99a9bb790fc9e'
'6ce21e27b6fdc1a1adf85c81e42aeecf')
diff --git a/extra/totem-plparser/PKGBUILD b/extra/totem-plparser/PKGBUILD
index 7441e7b4b..90e76c40b 100644
--- a/extra/totem-plparser/PKGBUILD
+++ b/extra/totem-plparser/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 138355 2011-09-20 15:41:13Z ibiru $
+# $Id: PKGBUILD 146713 2012-01-16 19:49:27Z dreisner $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=totem-plparser
pkgver=2.32.6
-pkgrel=1
+pkgrel=3
url="http://www.hadess.net/totem.php3"
pkgdesc="Totem playlist parser library"
license=('LGPL')
arch=(i686 x86_64 'mips64el')
-depends=('gmime' 'libsoup-gnome')
-makedepends=('intltool' 'pkgconfig' 'gobject-introspection')
+depends=('gmime' 'libsoup-gnome' 'libarchive')
+makedepends=('intltool' 'gobject-introspection')
options=('!libtool')
-source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-${pkgver}.tar.xz)
+source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-$pkgver.tar.xz)
sha256sums=('8e6ccef547f1ad311474a975032d2482e621550ee3d4d22c725cdc6b496e4874')
build() {
- cd "${srcdir}/totem-pl-parser-${pkgver}"
+ cd "$srcdir/totem-pl-parser-$pkgver"
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@@ -24,6 +24,6 @@ build() {
}
package(){
- cd "${srcdir}/totem-pl-parser-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/totem-pl-parser-$pkgver"
+ make DESTDIR="$pkgdir" install
}
diff --git a/extra/tumbler/PKGBUILD b/extra/tumbler/PKGBUILD
index f68445bb3..e786a2553 100644
--- a/extra/tumbler/PKGBUILD
+++ b/extra/tumbler/PKGBUILD
@@ -1,34 +1,44 @@
-# $Id: PKGBUILD 144453 2011-12-06 03:29:55Z eric $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# $Id: PKGBUILD 146987 2012-01-19 22:31:36Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan Jezek <honzin.jezek@gmail.com>
pkgname=tumbler
pkgver=0.1.23
-pkgrel=1
+pkgrel=3
pkgdesc="D-Bus service for applications to request thumbnails"
+arch=('i686' 'x86_64' 'mips64el')
url="http://git.xfce.org/xfce/tumbler/"
license=('GPL2' 'LGPL')
-arch=('i686' 'x86_64' 'mips64el')
groups=('xfce4')
-depends=('poppler-glib' 'dbus-glib' 'gdk-pixbuf2')
-makedepends=('intltool' 'ffmpegthumbnailer' 'gstreamer0.10')
-optdepends=('ffmpegthumbnailer: for video thumbnails'
- 'gstreamer0.10: for video thumbnails')
+depends=('dbus-glib' 'gdk-pixbuf2')
+makedepends=('intltool' 'ffmpegthumbnailer' 'gstreamer0.10' 'poppler-glib'
+ 'libgsf' 'libopenraw' 'freetype2')
+optdepends=('ffmpegthumbnailer: for video thumbnails'
+ 'gstreamer0.10: for video thumbnails'
+ 'poppler-glib: for PDF thumbnails'
+ 'libgsf: for ODF thumbnails'
+ 'libopenraw: for RAW thumbnails'
+ 'freetype2: for font thumbnails')
options=('!libtool')
-source=(http://archive.xfce.org/src/apps/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('c6cf6821f5d884cbf2c26f45f2fecc74')
+source=(http://archive.xfce.org/src/apps/$pkgname/0.1/$pkgname-$pkgver.tar.bz2)
+sha256sums=('b3066d17b7e1fee5135eb876a7c2c50a1221bd0d447c3dd7c36efe6d7f3874cb')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib/xfce4 \
- --disable-static \
- --disable-debug
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --disable-static \
+ --disable-debug
make
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/uim/PKGBUILD b/extra/uim/PKGBUILD
index 4b569279a..5d26828ed 100644
--- a/extra/uim/PKGBUILD
+++ b/extra/uim/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 133084 2011-07-27 18:50:53Z bisson $
+# $Id: PKGBUILD 146641 2012-01-15 08:38:24Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: damir <damir@archlinux.org>
pkgname=uim
-pkgver=1.7.1
+pkgver=1.7.2
pkgrel=1
pkgdesc='Multilingual input method library'
arch=('i686' 'x86_64' 'mips64el')
@@ -17,7 +17,7 @@ optdepends=('qt: immodule and helper applications'
'gnome-panel: gnome applet indicator')
options=('!libtool')
source=("http://uim.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2")
-sha1sums=('9001955f9efbd3cf23c9ad62c027f44060553fa8')
+sha1sums=('4982178aca6ee1ae775fc2a9b4bbb7a66e97cbd4')
install=install
diff --git a/extra/vim/PKGBUILD b/extra/vim/PKGBUILD
index e82782240..63584d79b 100644
--- a/extra/vim/PKGBUILD
+++ b/extra/vim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 143639 2011-11-27 23:44:53Z eric $
+# $Id: PKGBUILD 146756 2012-01-17 03:35:55Z eric $
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Maintainer: tobias [ tobias at archlinux org ]
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
@@ -6,24 +6,24 @@
pkgbase=vim
pkgname=('vim' 'gvim' 'vim-runtime')
_topver=7.3
-_patchlevel=353
-__hgrev=379a6398d462
+_patchlevel=401
+__hgrev=0dabc2ce136c
_versiondir="vim${_topver//./}"
pkgver=${_topver}.${_patchlevel}
-pkgrel=2
+pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
license=('custom:vim')
url="http://www.vim.org"
-makedepends=('gpm' 'python2' 'python' 'ruby' 'libxt' 'desktop-file-utils' 'gtk2' 'lua')
-source=(ftp://ftp.archlinux.org/other/vim/${pkgname}-${pkgver}.tar.xz
+makedepends=('gpm' 'python2' 'ruby' 'libxt' 'desktop-file-utils' 'gtk2' 'lua')
+source=(ftp://ftp.archlinux.org/other/vim/${pkgname}-${pkgver}.tar.xz{,.sig}
pythoncomplete.vim::http://www.vim.org/scripts/download_script.php\?src_id=10872
- vimrc archlinux.vim gvim.desktop urxvt-mouse.diff)
-sha1sums=('1713682c077d26ec3d3e8d0d18bad88a2a447fd5'
+ vimrc archlinux.vim gvim.desktop)
+sha1sums=('99498cb48c0c720ae9972a6cd33d4926bdf733b7'
+ 'ad14ce56f99ae1a86c96c5a5d0f44e48ad18a00e'
'4d9dcfb32874aa5467e6f06e418aeb4e675daaf2'
'3494baf53a63581ba69f86a81293640ff681c5c5'
'25dd3c2ce436e73a367c8f73b68f7f6889682437'
- '4a579cf66590d711f49c5dfb4a25e5df116ff7ba'
- '54d8edec6a450a529ba11bab45c5685b1e7c2e84')
+ '4a579cf66590d711f49c5dfb4a25e5df116ff7ba')
# source PKGBUILD && mksource
mksource() {
@@ -53,8 +53,6 @@ mksource() {
build() {
cd "${srcdir}"
- (cd ${pkgname}-${pkgver}; patch -p1 -i ../urxvt-mouse.diff)
-
cp -a ${pkgname}-${pkgver} vim-build
# define the place for the global (g)vimrc file (set to /etc/vimrc)
@@ -87,7 +85,7 @@ build() {
--enable-gpm --enable-acl --with-x=yes \
--enable-gui=gtk2 --enable-multibyte --enable-cscope \
--enable-netbeans --enable-perlinterp --enable-pythoninterp \
- --enable-python3interp --enable-rubyinterp --enable-luainterp
+ --disable-python3interp --enable-rubyinterp --enable-luainterp
make
}
@@ -122,7 +120,7 @@ package_vim() {
package_gvim() {
pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor (with advanced features, such as a GUI)'
depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm' 'ruby' 'libxt'
- 'desktop-file-utils' 'gtk2' 'lua')
+ 'desktop-file-utils' 'gtk2' 'lua' 'python2')
provides=("vim=${pkgver}-${pkgrel}")
conflicts=('vim')
install=gvim.install
diff --git a/extra/whois/PKGBUILD b/extra/whois/PKGBUILD
index 727038a39..3453d7943 100644
--- a/extra/whois/PKGBUILD
+++ b/extra/whois/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 143998 2011-12-01 15:53:42Z giovanni $
+# $Id: PKGBUILD 146524 2012-01-12 12:09:35Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=whois
-pkgver=5.0.13
+pkgver=5.0.14
pkgrel=1
pkgdesc="The whois client by Marco d'Itri"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ license=('GPL')
depends=('libidn')
makedepends=('perl')
source=("http://ftp.debian.org/debian/pool/main/w/whois/${pkgname}_${pkgver}.tar.gz")
-md5sums=('1c703fa6ddc2f41ae94efc7c8bfc794d')
+md5sums=('82c4c93ea589ce1dad1cb02ef04c08b9')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/wipe/PKGBUILD b/extra/wipe/PKGBUILD
index c51bcfa2e..d7e4b1107 100644
--- a/extra/wipe/PKGBUILD
+++ b/extra/wipe/PKGBUILD
@@ -1,29 +1,27 @@
-# $Id: PKGBUILD 103446 2010-12-19 16:53:45Z andrea $
-# Maintainer:
+# $Id: PKGBUILD 146765 2012-01-17 07:13:10Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Jason Chu <jason@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=wipe
pkgver=2.3.1
-pkgrel=1
-pkgdesc="A file and block device wiping utility - a secure rm"
-arch=('i686' 'x86_64' 'mips64el')
-url="http://wipe.sourceforge.net/"
+pkgrel=2
+pkgdesc='Secure file wiping utility'
+url='http://wipe.sourceforge.net/'
license=('GPL')
-depends=('glibc')
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
-md5sums=('3aed00711e0490edbec115bc283b8544')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('72aa8bcbeb54deb676ae08af78401132860703de')
build() {
cd $srcdir/$pkgname-$pkgver
[ "$CARCH" = "mips64el" ] && extra="--build=$CHOST --host=$CHOST --target=$CHOST"
- ./configure --prefix=/usr \
- --mandir=/usr/share/man $extra
+ ./configure --prefix=/usr --mandir=/usr/share/man $extra
make
}
package() {
- cd $srcdir/$pkgname-$pkgver
- make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}"/usr mandir="${pkgdir}"/usr/share/man install
}
diff --git a/extra/wireshark/PKGBUILD b/extra/wireshark/PKGBUILD
index a12445446..b49bdd3b6 100644
--- a/extra/wireshark/PKGBUILD
+++ b/extra/wireshark/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 142976 2011-11-19 11:40:12Z guillaume $
+# $Id: PKGBUILD 146574 2012-01-13 19:50:27Z ibiru $
# Maintainer: Guillaume ALAUX <guillaume at alaux dot net>
# Contributor: Florian Pritz <bluewind at jabber dot ccc dot de>
pkgname=(wireshark-cli wireshark-gtk)
pkgbase=wireshark
-pkgver=1.6.4
+pkgver=1.6.5
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
license=('GPL2')
makedepends=('bison' 'flex' 'gtk2' 'krb5' 'libcap' 'libpcap' 'bash' 'gnutls' 'libgcrypt' 'lua')
url="http://www.wireshark.org/"
options=(!libtool)
-source=(http://www.wireshark.org/download/src/${pkgbase}-${pkgver}.tar.bz2)
-md5sums=('a348521c514fcdd890d974f2a0b59db3')
+source=(http://www.wireshark.org/download/src/$pkgbase-$pkgver.tar.bz2)
+md5sums=('794948a10d387fc8e37d824ea11dbac9')
build() {
- cd "${srcdir}/${pkgbase}-${pkgver}"
+ cd "$srcdir/$pkgbase-$pkgver"
./configure \
--prefix=/usr \
@@ -30,28 +30,28 @@ package_wireshark-cli() {
install=wireshark.install
conflicts=(wireshark)
- cd "${srcdir}/${pkgbase}-${pkgver}"
+ cd "$srcdir/$pkgbase-$pkgver"
- make DESTDIR="${pkgdir}" install
+ make DESTDIR="$pkgdir" install
#wireshark uid group is 150
- chgrp 150 "${pkgdir}/usr/bin/dumpcap"
- chmod 754 "${pkgdir}/usr/bin/dumpcap"
- rm "${pkgdir}/usr/bin/wireshark"
+ chgrp 150 "$pkgdir/usr/bin/dumpcap"
+ chmod 754 "$pkgdir/usr/bin/dumpcap"
+ rm "$pkgdir/usr/bin/wireshark"
}
package_wireshark-gtk() {
pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - GTK frontend"
- depends=('gtk2' 'wireshark-cli')
+ depends=('gtk2' 'wireshark-cli' 'desktop-file-utils' 'hicolor-icon-theme')
install=wireshark-gtk.install
replaces=(wireshark)
conflicts=(wireshark)
- cd "${srcdir}/${pkgbase}-${pkgver}"
+ cd "$srcdir/$pkgbase-$pkgver"
install -Dm755 .libs/wireshark "$pkgdir/usr/bin/wireshark"
for d in 16 32 48; do
- install -Dm644 image/hi${d}-app-wireshark.png ${pkgdir}/usr/share/icons/hicolor/${d}x${d}/apps/wireshark.png
+ install -Dm644 image/hi${d}-app-wireshark.png "$pkgdir/usr/share/icons/hicolor/${d}x${d}/apps/wireshark.png"
done
- install -Dm644 wireshark.desktop ${pkgdir}/usr/share/applications/wireshark.desktop
+ install -Dm644 wireshark.desktop "$pkgdir/usr/share/applications/wireshark.desktop"
}
diff --git a/extra/wireshark/wireshark-gtk.install b/extra/wireshark/wireshark-gtk.install
index 6b1b64bdd..771e497ca 100644
--- a/extra/wireshark/wireshark-gtk.install
+++ b/extra/wireshark/wireshark-gtk.install
@@ -1,5 +1,6 @@
post_install() {
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
}
post_upgrade() {
diff --git a/extra/xf86-input-wacom/PKGBUILD b/extra/xf86-input-wacom/PKGBUILD
index 24604d845..bee71c7e7 100644
--- a/extra/xf86-input-wacom/PKGBUILD
+++ b/extra/xf86-input-wacom/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 142834 2011-11-16 13:12:15Z heftig $
-# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# $Id: PKGBUILD 146763 2012-01-17 05:32:23Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: M Rawash <mrawash@gmail.com>
pkgname=xf86-input-wacom
-pkgver=0.12.0
+pkgver=0.13.0
pkgrel=1
pkgdesc="X.Org Wacom tablet driver"
arch=('i686' 'x86_64' 'mips64el')
@@ -17,7 +17,7 @@ conflicts=('xorg-server<1.11.0')
options=(!libtool)
source=(http://downloads.sourceforge.net/project/linuxwacom/${pkgname}/${pkgname}-${pkgver}.tar.bz2
70-wacom.rules)
-md5sums=('e1c41d143d5040982ae050c7ef9039e3'
+md5sums=('4a426535989e84c4161e3607ea851654'
'10db4f8272286690255c1bcc18bfdd92')
build() {
diff --git a/extra/xfce4-netload-plugin/PKGBUILD b/extra/xfce4-netload-plugin/PKGBUILD
index 51d76e094..433476b62 100644
--- a/extra/xfce4-netload-plugin/PKGBUILD
+++ b/extra/xfce4-netload-plugin/PKGBUILD
@@ -1,34 +1,33 @@
-# $Id: PKGBUILD 104754 2011-01-04 20:48:54Z andyrtr $
+# $Id: PKGBUILD 146671 2012-01-16 06:54:09Z eric $
# Maintainer: aurelien <aurelien@archlinux.org>
# Contributor: Aurelien Foret <orelien@chez.com>
pkgname=xfce4-netload-plugin
-pkgver=1.0.0
-pkgrel=1.1
+pkgver=1.1.0
+pkgrel=1
pkgdesc="A netload plugin for the Xfce panel"
-arch=(i686 x86_64 'mips64el')
-license=('GPL2')
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
url="http://xfce-goodies.berlios.de/"
groups=('xfce4-goodies')
-depends=('xfce4-panel>=4.7.4' 'libxfcegui4' 'hicolor-icon-theme')
+depends=('xfce4-panel')
makedepends=('intltool')
options=('!libtool')
-install=${pkgname}.install
-source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('cab53e8cc2b9bfdf7ffd2230916ca3df')
+install=xfce4-netload-plugin.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8029daacf1602275c75ab07d1e2cccea0993caab')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib \
--localstatedir=/var \
- --disable-static \
--disable-debug
make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/extra/xmlto/PKGBUILD b/extra/xmlto/PKGBUILD
index 8301002d9..d928fd237 100644
--- a/extra/xmlto/PKGBUILD
+++ b/extra/xmlto/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 144002 2011-12-01 16:02:56Z giovanni $
+# $Id: PKGBUILD 146526 2012-01-12 12:28:33Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
# Contributor: Robert Stoffers <rob1@ubuntu.com>
pkgname=xmlto
-pkgver=0.0.24
-pkgrel=2
+pkgver=0.0.25
+pkgrel=1
pkgdesc="Convert xml to many other formats"
arch=('i686' 'x86_64' 'mips64el')
url="http://cyberelk.net/tim/software/xmlto/"
@@ -14,7 +14,7 @@ license=('GPL')
depends=('libxslt' 'perl-yaml-syck' 'perl-test-pod')
makedepends=('docbook-xsl')
source=("https://fedorahosted.org/releases/x/m/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('9d45bbe43f7c66c6bf585ba6635df31a')
+md5sums=('6b6267b1470f8571fe5f63a128970364')
build() {
cd "$srcdir/${pkgname}-${pkgver}"
diff --git a/extra/xmms/PKGBUILD b/extra/xmms/PKGBUILD
index 90020879c..b8d68e532 100644
--- a/extra/xmms/PKGBUILD
+++ b/extra/xmms/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 134338 2011-08-02 23:29:16Z eric $
+# $Id: PKGBUILD 146759 2012-01-17 03:41:24Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=xmms
@@ -50,10 +50,10 @@ build() {
patch -p1 < ../xmms-1.2.10-fonts.patch
patch -p1 < ../xmms-1.2.11-CVE-2007-0653.0654.patch
- if [ "$CARCH" == "x86_64" ]; then
- SIMDOPT="--disable-simd"
- else
- SIMDOPT="--enable-simd"
+ if [ "$CARCH" == "i686" ]; then
+ SIMDOPT="--enable-simd"
+ else
+ SIMDOPT="--disable-simd"
fi
./configure --prefix=/usr --mandir=/usr/share/man $SIMDOPT
make
diff --git a/extra/xscreensaver/PKGBUILD b/extra/xscreensaver/PKGBUILD
index 03236b2d9..9c38f0f45 100644
--- a/extra/xscreensaver/PKGBUILD
+++ b/extra/xscreensaver/PKGBUILD
@@ -1,15 +1,17 @@
-# $Id: PKGBUILD 139172 2011-09-30 22:43:18Z eric $
+# $Id: PKGBUILD 146796 2012-01-18 14:05:21Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=xscreensaver
pkgver=5.15
-pkgrel=2
+pkgrel=3
pkgdesc="Screen saver and locker for the X Window System"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.jwz.org/xscreensaver/"
license=('BSD')
-depends=('libxxf86vm' 'libglade' 'mesa' 'pam' 'xorg-appres' 'libxmu' 'perl-libwww')
-makedepends=('bc')
+depends=('libxxf86vm' 'libglade' 'mesa' 'pam' 'xorg-appres' 'libxmu' \
+ 'perl-libwww' 'perl-http-message')
+makedepends=('bc' 'libxpm' 'gdm')
+optdepends=('gdm: for login manager support')
backup=('etc/pam.d/xscreensaver')
source=(http://www.jwz.org/xscreensaver/${pkgname}-${pkgver}.tar.gz \
add-electricsheep.diff xscreensaver.pam LICENSE)
@@ -20,10 +22,10 @@ sha1sums=('b5ce7caa19f4d57c3bac83377a36dddbe7095052'
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np0 -i "${srcdir}/add-electricsheep.diff"
+ patch -p0 -i "${srcdir}/add-electricsheep.diff"
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--libexecdir=/usr/lib --with-x-app-defaults=/usr/share/X11/app-defaults \
- --with-pam --without-motif --with-gtk --with-gl \
+ --with-pam --with-login-manager --with-gtk --with-gl \
--without-gle --with-pixbuf --with-jpeg
make
}
diff --git a/multilib-staging/binutils-multilib/PKGBUILD b/multilib-staging/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..4b8a09454
--- /dev/null
+++ b/multilib-staging/binutils-multilib/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 62031 2012-01-14 21:44:56Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils-multilib
+pkgver=2.22
+pkgrel=4.1
+_date=20111227
+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=('c2377089c15bb1a1bfaeca8d0e59dd4d')
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared \
+ --enable-64-bit-bfd --enable-multilib
+
+ # check the host environment and makes sure all the necessary tools are available
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+
+ # Rebuild libiberty.a with -fPIC
+ cp -a libiberty libiberty-pic
+ make -C libiberty-pic clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty-pic
+
+ # Rebuild libbfd.a with -fPIC
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ cp -a bfd bfd-pic
+ make -C bfd-pic clean
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd-pic
+}
+
+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
+
+ # install libraries rebuilt with -fPIC
+ install -m644 libiberty-pic/libiberty.a ${pkgdir}/usr/lib
+ install -m644 bfd-pic/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-staging/binutils-multilib/binutils.install b/multilib-staging/binutils-multilib/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/multilib-staging/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-staging/chuck/PKGBUILD b/multilib-staging/chuck/PKGBUILD
new file mode 100644
index 000000000..333d7f73d
--- /dev/null
+++ b/multilib-staging/chuck/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 62037 2012-01-14 23:38:40Z heftig $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=chuck
+pkgver=1.2.1.3
+pkgrel=5.1
+pkgdesc="Concurrent, on-the-fly audio programming language."
+arch=('i686' 'x86_64')
+url="http://chuck.cs.princeton.edu/"
+license=('GPL')
+depends=('gcc-libs' 'libsndfile' 'alsa-lib')
+makedepends=('bison' 'flex')
+source=(http://chuck.cs.princeton.edu/release/files/$pkgname-$pkgver.tgz)
+md5sums=('ac8459b4067c2491fbdeb61d122a5985')
+
+if [[ $CARCH == x86_64 ]]; then
+ depends=('lib32-gcc-libs' 'lib32-libsndfile' 'lib32-alsa-lib')
+ makedepends+=('gcc-multilib')
+fi
+
+build() {
+ if [[ $CARCH == x86_64 ]]; then
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ fi
+
+ cd $srcdir/$pkgname-$pkgver/src
+ CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ # This can be linux-alsa linux-jack linux-oss osx win32
+ make linux-alsa
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/src
+ install -D -m 755 chuck $pkgdir/usr/bin/chuck
+}
diff --git a/multilib-staging/gcc-multilib/PKGBUILD b/multilib-staging/gcc-multilib/PKGBUILD
new file mode 100644
index 000000000..7fed692d9
--- /dev/null
+++ b/multilib-staging/gcc-multilib/PKGBUILD
@@ -0,0 +1,303 @@
+# $Id: PKGBUILD 62033 2012-01-14 22:04:04Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgbase='gcc-multilib'
+pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
+pkgver=4.6.2
+pkgrel=5.1
+_snapshot=4.6-20111223
+_libstdcppmanver=20111215
+pkgdesc="The GNU Compiler Collection for multilib"
+arch=('x86_64')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib'
+ 'lib32-glibc>=2.14')
+checkdepends=('dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.${_libstdcppmanver}.tar.bz2
+ gcc_pure64-multilib.patch
+ gcc-hash-style-both.patch)
+md5sums=('4755b9f6ac0abecbaa2097ed9738406a'
+ '450772ce32daed97d7383199f8797f33'
+ '7da5b7ab75b3c29993f953b18bc38579'
+ '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-multilib.patch
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+
+ ${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://bugs.archlinux.org/ \
+ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
+ --enable-shared --enable-threads=posix \
+ --with-system-zlib --enable-__cxa_atexit \
+ --disable-libunwind-exceptions --enable-clocale=gnu \
+ --enable-gnu-unique-object --enable-linker-build-id \
+ --with-ppl --enable-cloog-backend=isl \
+ --enable-lto --enable-gold --enable-ld=default \
+ --enable-plugin --with-plugin-ld=ld.gold \
+ --enable-multilib --disable-libssp --disable-libstdcxx-pch \
+ --enable-checking=release --with-fpmath=sse
+ make
+}
+
+check() {
+ cd gcc-build
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs-multilib()
+{
+ pkgdesc="Runtime libraries shipped by GCC for multilib"
+ depends=('glibc>=2.14' "lib32-gcc-libs=$pkgver-$pkgrel")
+ provides=("gcc-libs=$pkgver-$pkgrel")
+ conflicts=('gcc-libs')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
+
+ # remove stuff in lib32-gcc-libs
+ rm -rf ${pkgdir}/usr/lib32
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_lib32-gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC (32-bit)"
+ depends=('lib32-glibc>=2.14' "gcc-libs>=$pkgver")
+
+ cd gcc-build
+ make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libstdc++-v3/src; do
+ make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm ${pkgdir}/usr/lib32/libgfortran.spec
+
+ # remove stuff in gcc-libs-multilib
+ rm -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/info
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-multilib()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
+ depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl')
+ groups=('multilib-devel')
+ provides=("gcc=$pkgver-$pkgrel")
+ conflicts=('gcc')
+ install=gcc.install
+
+ cd gcc-build
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm $pkgdir/usr/lib{,32}/*.so*
+ rm $pkgdir/usr/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm $pkgdir/usr/lib{,32}/libgfortran.spec
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,{,32/}libgfortranbegin.a}
+ rm -r $pkgdir/usr/lib{,32}/go
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm $pkgdir/usr/share/man/man3/ffi*
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # install gengtype for plugin support
+ install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+ install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/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-staging/gcc-multilib/gcc-ada.install b/multilib-staging/gcc-multilib/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/multilib-staging/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-staging/gcc-multilib/gcc-fortran.install b/multilib-staging/gcc-multilib/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/multilib-staging/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-staging/gcc-multilib/gcc-go.install b/multilib-staging/gcc-multilib/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/multilib-staging/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-staging/gcc-multilib/gcc-hash-style-both.patch b/multilib-staging/gcc-multilib/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/multilib-staging/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-staging/gcc-multilib/gcc-libs.install b/multilib-staging/gcc-multilib/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/multilib-staging/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-staging/gcc-multilib/gcc.install b/multilib-staging/gcc-multilib/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/multilib-staging/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-staging/gcc-multilib/gcc_pure64-multilib.patch b/multilib-staging/gcc-multilib/gcc_pure64-multilib.patch
new file mode 100644
index 000000000..73df6b873
--- /dev/null
+++ b/multilib-staging/gcc-multilib/gcc_pure64-multilib.patch
@@ -0,0 +1,24 @@
+diff -u -r gcc-4.6-20111223/gcc/config/i386/linux64.h gcc-4.6-20111223-pure64/gcc/config/i386/linux64.h
+--- gcc-4.6-20111223/gcc/config/i386/linux64.h 2011-09-08 11:12:35.000000000 +0200
++++ gcc-4.6-20111223-pure64/gcc/config/i386/linux64.h 2012-01-14 19:52:33.688573352 +0100
+@@ -63,7 +63,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"
+
+ #if TARGET_64BIT_DEFAULT
+ #define SPEC_32 "m32"
+diff -u -r gcc-4.6-20111223/gcc/config/i386/t-linux64 gcc-4.6-20111223-pure64/gcc/config/i386/t-linux64
+--- gcc-4.6-20111223/gcc/config/i386/t-linux64 2009-04-21 21:03:23.000000000 +0200
++++ gcc-4.6-20111223-pure64/gcc/config/i386/t-linux64 2012-01-14 19:50:27.346242617 +0100
+@@ -25,7 +25,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-staging/jack2-multilib/40-hpet-permissions.rules b/multilib-staging/jack2-multilib/40-hpet-permissions.rules
new file mode 100644
index 000000000..7af3780f9
--- /dev/null
+++ b/multilib-staging/jack2-multilib/40-hpet-permissions.rules
@@ -0,0 +1,2 @@
+KERNEL=="rtc0", GROUP="audio"
+KERNEL=="hpet", GROUP="audio"
diff --git a/multilib-staging/jack2-multilib/99-audio.conf b/multilib-staging/jack2-multilib/99-audio.conf
new file mode 100644
index 000000000..eb76ef920
--- /dev/null
+++ b/multilib-staging/jack2-multilib/99-audio.conf
@@ -0,0 +1,2 @@
+@audio - rtprio 99
+@audio - memlock unlimited
diff --git a/multilib-staging/jack2-multilib/PKGBUILD b/multilib-staging/jack2-multilib/PKGBUILD
new file mode 100644
index 000000000..9c7e0fd6f
--- /dev/null
+++ b/multilib-staging/jack2-multilib/PKGBUILD
@@ -0,0 +1,142 @@
+# $Id: PKGBUILD 52694 2011-07-27 17:23:48Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+# This one is in response to a need for an equivalent to lib32-jack for
+# jack2. A lib32-jack2 would require much patching and invading the pure
+# jack2 package, and what's more, the buildsystem provides a flag just to
+# build a hybrid jack2 in full. As such, we have opted to provide multilib
+# users with a replacement package instead of the usual lib32 add-on.
+#
+# See http://mailman.archlinux.org/pipermail/arch-multilib/2011-December/000251.html
+
+pkgbase=jack2-multilib
+pkgname=('jack2-multilib' 'jack2-dbus-multilib')
+#pkgname= # single build (overrides split)
+_tarname=jack
+pkgver=1.9.7
+pkgrel=2
+arch=('x86_64')
+url="http://jackaudio.org/"
+backup=(etc/security/limits.d/99-audio.conf)
+license=('GPL')
+makedepends=('python2' 'libffado' 'libsamplerate' 'celt'
+ 'doxygen' 'gcc-multilib' 'lib32-dbus-core')
+source=("http://www.grame.fr/~letz/$_tarname-$pkgver.tar.bz2"
+ '99-audio.conf'
+ '40-hpet-permissions.rules')
+md5sums=('9759670feecbd43eeccf1c0f743ec199'
+ 'ae65b7c9ebe0fff6c918ba9d97ae342d'
+ '471aad533ff56c5d3cbbf65ce32cadef')
+
+_pyfix() {
+ sed -i 's:bin/env python:bin/env python2:' \
+ "$pkgdir/usr/bin/jack_control"
+}
+
+_wafconf() {
+ python2 waf configure --prefix=/usr \
+ --alsa \
+ --firewire \
+ --mixed \
+ --doxygen $@
+}
+
+_isbuild() {
+ printf "%s\n" ${pkgname[@]} | grep -qx $1
+}
+
+_mklinks() {
+ ln -s /usr/lib32/libjack.so.0.1.0 "$pkgdir/usr/lib32/libjack.so.0"
+ ln -s /usr/lib32/libjack.so.0 "$pkgdir/usr/lib32/libjack.so"
+}
+
+build() {
+ cd "$srcdir"
+
+ # fix doxygen building
+ sed -i 's:build/default/html:html:' $_tarname-$pkgver/wscript
+
+ # we may do 2 different builds
+ cp -r $_tarname-$pkgver $_tarname-dbus-$pkgver
+
+ # mixed dbus/classic build
+ if _isbuild jack2-multilib; then
+ cd $_tarname-$pkgver
+ msg2 "Running Mixed D-Bus/Classic build"
+ _wafconf --classic --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+
+ # dbus-ONLY build
+ if _isbuild jack2-dbus-multilib; then
+ cd $_tarname-dbus-$pkgver
+ msg2 "Running D-Bus-only build"
+ _wafconf --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+}
+
+package_jack2-multilib() {
+ ! _isbuild jack2-multilib && return 0
+
+ pkgdesc="The next-generation JACK with SMP support & mixed mode"
+ depends=('libsamplerate' 'gcc-libs-multilib')
+ optdepends=('libffado: FireWire support'
+ 'celt: NetJACK2 driver'
+ 'lib32-dbus-core: jackdbus'
+ 'python2: jack_control')
+ conflicts=('jack' 'jack2' 'lib32-jack')
+ provides=('jack' 'jack2' 'lib32-jack' 'jackmp'
+ 'jackdmp' 'jackdbus' 'lib32-jack2')
+
+ cd "$srcdir/$_tarname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ # fix for major python transition
+ _pyfix
+
+ # configure realtime access/scheduling
+ # see https://bugs.archlinux.org/task/26343
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ # should be done by upstream
+ # see http://trac.jackaudio.org/ticket/200
+ _mklinks
+}
+
+package_jack2-dbus-multilib() {
+ ! _isbuild jack2-dbus-multilib && return 0
+
+ pkgdesc="The next-generation JACK with SMP support & mixed mode (for D-BUS interaction only)"
+ depends=('libsamplerate' 'lib32-dbus-core')
+ optdepends=('libffado: FireWire support'
+ 'celt: NetJACK2 driver'
+ 'python2: jack_control')
+ conflicts=('jack' 'jack2' 'lib32-jack' 'jack2-multilib')
+ provides=('jack' 'jack2' 'lib32-jack' 'jack2-multilib'
+ 'jackmp' 'jackdmp' 'jackdbus' 'lib32-jack2')
+
+ cd "$srcdir/$_tarname-dbus-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ _pyfix
+
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ _mklinks
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-staging/lib32-cairo/PKGBUILD b/multilib-staging/lib32-cairo/PKGBUILD
new file mode 100644
index 000000000..394a26fbe
--- /dev/null
+++ b/multilib-staging/lib32-cairo/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 62413 2012-01-19 21:13:41Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=cairo
+pkgname=lib32-$_pkgbasename
+pkgver=1.10.2
+pkgrel=3
+pkgdesc="Cairo vector graphics library (32-bit)"
+arch=('x86_64')
+url="http://cairographics.org/"
+license=('LGPL' 'MPL')
+depends=('lib32-libpng' 'lib32-libxrender' 'lib32-fontconfig'
+ 'lib32-pixman' 'lib32-glib2' ${_pkgbasename})
+makedepends=('gcc-multilib')
+source=(http://cairographics.org/releases/${_pkgbasename}-${pkgver}.tar.gz
+ cairo-1.10.0-buggy_gradients.patch)
+sha1sums=('ccce5ae03f99c505db97c286a0c9a90a926d3c6e'
+ '8b843a9934e5112b6188e5bcf4adfc1fdaf9fa04')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-tee
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib-staging/lib32-cairo/cairo-1.10.0-buggy_gradients.patch b/multilib-staging/lib32-cairo/cairo-1.10.0-buggy_gradients.patch
new file mode 100644
index 000000000..368e356d3
--- /dev/null
+++ b/multilib-staging/lib32-cairo/cairo-1.10.0-buggy_gradients.patch
@@ -0,0 +1,13 @@
+--- a/src/cairo-xlib-display.c.ubuntu 2010-08-04 11:57:49.000000000 +0200
++++ b/src/cairo-xlib-display.c 2010-08-04 11:58:28.000000000 +0200
+@@ -353,11 +353,7 @@
+ /* Prior to Render 0.10, there is no protocol support for gradients and
+ * we call function stubs instead, which would silently consume the drawing.
+ */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+ display->buggy_gradients = TRUE;
+-#else
+- display->buggy_gradients = FALSE;
+-#endif
+ display->buggy_pad_reflect = FALSE;
+ display->buggy_repeat = FALSE;
diff --git a/multilib-staging/lib32-gdk-pixbuf2/PKGBUILD b/multilib-staging/lib32-gdk-pixbuf2/PKGBUILD
new file mode 100644
index 000000000..28b102d55
--- /dev/null
+++ b/multilib-staging/lib32-gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 91063 2010-09-21 19:21:24Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=gdk-pixbuf2
+pkgname=lib32-$_pkgbasename
+pkgver=2.24.1
+pkgrel=2
+pkgdesc="An image loading library (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=(lib32-glib2 lib32-libpng lib32-libtiff lib32-libjpeg lib32-libx11
+ $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool' '!docs')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.24/gdk-pixbuf-${pkgver}.tar.xz)
+sha256sums=('da7a3f00db360913716368e19e336402755cafa93769f3cfa28a969303e4bee1')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --without-libjasper \
+ --with-x11 \
+ --with-included-loaders=png
+ make
+}
+
+package() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gdk-pixbuf-query-loaders gdk-pixbuf-query-loaders-32
+ rm gdk-pixbuf-csource
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-staging/lib32-gdk-pixbuf2/gdk-pixbuf2.install b/multilib-staging/lib32-gdk-pixbuf2/gdk-pixbuf2.install
new file mode 100644
index 000000000..92d58ef04
--- /dev/null
+++ b/multilib-staging/lib32-gdk-pixbuf2/gdk-pixbuf2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders-32 --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
+}
diff --git a/multilib-staging/lib32-glib2/PKGBUILD b/multilib-staging/lib32-glib2/PKGBUILD
new file mode 100644
index 000000000..a1a1f36f3
--- /dev/null
+++ b/multilib-staging/lib32-glib2/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 62040 2012-01-14 23:44:48Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=glib2
+pkgname=lib32-$_pkgbasename
+pkgver=2.30.2
+pkgrel=2
+pkgdesc="Common C routines used by GTK+ 2.4 and other libs (32-bit)"
+url="http://www.gtk.org/"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-pcre' 'lib32-zlib' 'lib32-dbus-core' lib32-libffi $_pkgbasename)
+makedepends=('gcc-multilib' python2)
+options=('!libtool' '!docs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.30/glib-${pkgver}.tar.xz)
+sha256sums=('f0e91e6333321ddb48fa12b5c66f56c3d5f05325748c66dd2e9016c278ff8e82')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/glib-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32 \
+ --enable-static --enable-shared --with-pcre=system --disable-fam
+ make
+}
+
+package() {
+ cd "${srcdir}/glib-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/{etc,usr/{share,include}}
+
+ cd "${pkgdir}"/usr/bin
+ mv gio-querymodules gio-querymodules-32
+ rm -f gdbus glib* gobject-query gsettings gtester*
+ rm -rf "$pkgdir"/usr/{bin/gdbus-codegen,lib32/gdbus-2.0}
+}
diff --git a/multilib-staging/lib32-glibc/PKGBUILD b/multilib-staging/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..ed4d6efa8
--- /dev/null
+++ b/multilib-staging/lib32-glibc/PKGBUILD
@@ -0,0 +1,176 @@
+# $Id: PKGBUILD 62030 2012-01-14 21:43:25Z 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 rebuilt with each major glibc version
+
+_pkgbasename=glibc
+pkgname=lib32-$_pkgbasename
+pkgver=2.15
+pkgrel=3.1
+_glibcdate=20111227
+pkgdesc="GNU C Library for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+depends=("glibc>=$pkgver")
+makedepends=('gcc-multilib>=4.6')
+options=('!strip' '!emptydirs')
+source=(ftp://ftp.archlinux.org/other/glibc/${_pkgbasename}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.14-libdl-crash.patch
+ glibc-2.14-revert-4768ae77.patch
+ glibc-2.14-reexport-rpc-interface.patch
+ glibc-2.14-reinstall-nis-rpc-headers.patch
+ glibc-2.15-lddebug-scopes.patch
+ glibc-2.15-revert-c5a0802a.patch
+ glibc-2.15-math64crash.patch
+ lib32-glibc.conf)
+md5sums=('6ffdf5832192b92f98bdd125317c0dfc'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '6970bcfeb3bf88913436d5112d16f588'
+ '7da8c554a3b591c7401d7023b1928afc'
+ 'c5de2a946215d647c8af5432ec4b0da0'
+ '55febbb72139ac7b65757df085024b83'
+ '3c219ddfb619b6df903cac4cc42c611d'
+ '7ae3e426251ae33e73dbad71f9c91378'
+ 'dc7550e659ddd685bd78a930d15a01f2'
+ '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://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/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ # Revert commit causing issues with crappy DNS servers...
+ # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER!
+ # Note that both these patches appear not to fix the issue completely:
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch
+
+ # re-export RPC interface until libtirpc is ready as a replacement
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
+
+ # propriety nvidia crash - https://bugzilla.redhat.com/show_bug.cgi?id=737223
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0c95ab64 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch
+
+ # revert commit c5a0802a - causes various hangs
+ # https://bugzilla.redhat.com/show_bug.cgi?id=769421
+ patch -Np1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
+
+ # revert optimized math routines that can cause crashes (FS#27736, FS#27743)
+ # obviously not a real fix...
+ patch -Np1 -i ${srcdir}/glibc-2.15-math64crash.patch
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ export CC="gcc -m32"
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/usr/lib32" >> configparms
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib32 --libexecdir=/usr/lib32 \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --enable-multi-arch i686-unknown-linux-gnu
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "s#=no#=yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share},var}
+
+ # We need one 32 bit specific header file
+ find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete
+
+ # Do not strip the following files for improved debugging support
+ # ("improved" as in not breaking gdb and valgrind...):
+ # ld-${pkgver}.so
+ # libc-${pkgver}.so
+ # libpthread-${pkgver}.so
+ # libthread_db-1.0.so
+
+ cd $pkgdir
+ strip $STRIP_BINARIES usr/lib32/getconf/*
+
+ strip $STRIP_STATIC usr/lib32/*.a
+
+ strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libcidn,libcrypt}-${pkgver}.so \
+ usr/lib32/libnss_{compat,db,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,{audit,gconv}/*.so}
+
+ # Dynamic linker
+ mkdir ${pkgdir}/lib
+ ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add lib32 paths to the default library search path
+ install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
+
+ # Symlink /usr/lib32/locale to /usr/lib/locale
+ ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
+}
diff --git a/multilib-staging/lib32-glibc/glibc-2.10-bz4781.patch b/multilib-staging/lib32-glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/multilib-staging/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-staging/lib32-glibc/glibc-2.10-dont-build-timezone.patch b/multilib-staging/lib32-glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/multilib-staging/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-staging/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/multilib-staging/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/multilib-staging/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-staging/lib32-glibc/glibc-2.14-libdl-crash.patch b/multilib-staging/lib32-glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..6c9d2718e
--- /dev/null
+++ b/multilib-staging/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-staging/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch b/multilib-staging/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
new file mode 100644
index 000000000..e2beea881
--- /dev/null
+++ b/multilib-staging/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
@@ -0,0 +1,26 @@
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 67e1ca2..5e7cca5 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -635,7 +635,7 @@ for linking")
+ # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+ # define libc_hidden_def(name) hidden_def (name)
+ # define libc_hidden_weak(name) hidden_weak (name)
+-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
++# define libc_hidden_nolink(name, version) hidden_def (name)
+ # define libc_hidden_ver(local, name) hidden_ver (local, name)
+ # define libc_hidden_data_def(name) hidden_data_def (name)
+ # define libc_hidden_data_weak(name) hidden_data_weak (name)
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 5134ce9..40c73d1 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+ des_crypt.h)
+ headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
+ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
+-headers = rpc/netdb.h
++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
+ install-others = $(inst_sysconfdir)/rpc
+ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
+ $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/multilib-staging/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/multilib-staging/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
new file mode 100644
index 000000000..eb0fd822d
--- /dev/null
+++ b/multilib-staging/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
@@ -0,0 +1,28 @@
+From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Tue, 17 May 2011 17:42:30 +0200
+Subject: [PATCH] Reinstall NIS RPC headers
+
+---
+ nis/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nis/Makefile b/nis/Makefile
+index b5c9609..d2934d9 100644
+--- a/nis/Makefile
++++ b/nis/Makefile
+@@ -23,9 +23,9 @@ subdir := nis
+
+ aux := nis_hash
+
++headers := $(wildcard rpcsvc/*.[hx])
+ distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
+- nisplus-parser.h nis_xdr.h nss \
+- $(wildcard rpcsvc/*.[hx])
++ nisplus-parser.h nis_xdr.h nss
+
+ # These are the databases available for the nis (and perhaps later nisplus)
+ # service. This must be a superset of the services in nss.
+--
+1.7.5.4
+
diff --git a/multilib-staging/lib32-glibc/glibc-2.14-revert-4768ae77.patch b/multilib-staging/lib32-glibc/glibc-2.14-revert-4768ae77.patch
new file mode 100644
index 000000000..11f087cb7
--- /dev/null
+++ b/multilib-staging/lib32-glibc/glibc-2.14-revert-4768ae77.patch
@@ -0,0 +1,37 @@
+diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c
+--- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000
++++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000
+@@ -549,7 +549,7 @@
+ ns, ansp, ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ } else {
+ /* Use datagrams. */
+@@ -559,7 +559,7 @@
+ ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ if (v_circuit)
+ // XXX Check whether both requests failed or
+@@ -1275,14 +1275,10 @@
+ (*thisresplenp > *thisanssizp)
+ ? *thisanssizp : *thisresplenp);
+
+- if (recvresp1 || (buf2 != NULL && recvresp2)) {
+- *resplen2 = 0;
++ if (recvresp1 || (buf2 != NULL && recvresp2))
+ return resplen;
+- }
+ if (buf2 != NULL)
+ {
+- /* No data from the first reply. */
+- resplen = 0;
+ /* We are waiting for a possible second reply. */
+ if (hp->id == anhp->id)
+ recvresp1 = 1;
diff --git a/multilib-staging/lib32-glibc/glibc-2.15-lddebug-scopes.patch b/multilib-staging/lib32-glibc/glibc-2.15-lddebug-scopes.patch
new file mode 100644
index 000000000..808cf8d7c
--- /dev/null
+++ b/multilib-staging/lib32-glibc/glibc-2.15-lddebug-scopes.patch
@@ -0,0 +1,27 @@
+From 0c95ab64cb4ec0d22bb222647d9d20c7b4903e38 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Fri, 7 Oct 2011 09:31:27 +0200
+Subject: [PATCH] Horrible workaround for horribly broken software
+
+---
+ elf/rtld.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 978c609..8422b9f 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -1393,7 +1393,9 @@ of this helper program; chances are you did not intend to run this program.\n\
+ char *copy = malloc (len);
+ if (copy == NULL)
+ _dl_fatal_printf ("out of memory\n");
+- l->l_libname->name = l->l_name = memcpy (copy, dsoname, len);
++ l->l_libname->name = memcpy (copy, dsoname, len);
++ if (GLRO(dl_debug_mask))
++ l->l_name = copy;
+ }
+
+ /* Add the vDSO to the object list. */
+--
+1.7.3.4
+
diff --git a/multilib-staging/lib32-glibc/glibc-2.15-math64crash.patch b/multilib-staging/lib32-glibc/glibc-2.15-math64crash.patch
new file mode 100644
index 000000000..d315bf266
--- /dev/null
+++ b/multilib-staging/lib32-glibc/glibc-2.15-math64crash.patch
@@ -0,0 +1,184 @@
+diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
+index be68903..a032da8 100644
+--- a/sysdeps/x86_64/fpu/multiarch/Makefile
++++ b/sysdeps/x86_64/fpu/multiarch/Makefile
+@@ -1,5 +1,5 @@
+ ifeq ($(subdir),math)
+-libm-sysdep_routines += s_floor-c s_ceil-c s_floorf-c s_ceilf-c \
++libm-sysdep_routines += s_floorf-c s_ceilf-c \
+ s_rint-c s_rintf-c s_nearbyint-c s_nearbyintf-c
+
+ ifeq ($(have-mfma4),yes)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c b/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
+deleted file mode 100644
+index 6a5ea3f..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
++++ /dev/null
+@@ -1,2 +0,0 @@
+-#define __ceil __ceil_c
+-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil.S b/sysdeps/x86_64/fpu/multiarch/s_ceil.S
+deleted file mode 100644
+index d0f8da3..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceil.S
++++ /dev/null
+@@ -1,40 +0,0 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+- Contributed by Ulrich Drepper <drepper@gmail.come>, 2011.
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-#include <machine/asm.h>
+-#include <init-arch.h>
+-
+-
+-ENTRY(__ceil)
+- .type __ceil, @gnu_indirect_function
+- call __get_cpu_features@plt
+- movq %rax, %rdx
+- leaq __ceil_sse41(%rip), %rax
+- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx)
+- jnz 2f
+- leaq __ceil_c(%rip), %rax
+-2: ret
+-END(__ceil)
+-weak_alias (__ceil, ceil)
+-
+-
+-ENTRY(__ceil_sse41)
+- roundsd $2, %xmm0, %xmm0
+- ret
+-END(__ceil_sse41)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c b/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
+deleted file mode 100644
+index 68733b6..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
++++ /dev/null
+@@ -1,3 +0,0 @@
+-#undef __floor
+-#define __floor __floor_c
+-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor.S b/sysdeps/x86_64/fpu/multiarch/s_floor.S
+deleted file mode 100644
+index 514ea95..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_floor.S
++++ /dev/null
+@@ -1,40 +0,0 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+- Contributed by Ulrich Drepper <drepper@gmail.come>, 2011.
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-#include <machine/asm.h>
+-#include <init-arch.h>
+-
+-
+-ENTRY(__floor)
+- .type __floor, @gnu_indirect_function
+- call __get_cpu_features@plt
+- movq %rax, %rdx
+- leaq __floor_sse41(%rip), %rax
+- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx)
+- jnz 2f
+- leaq __floor_c(%rip), %rax
+-2: ret
+-END(__floor)
+-weak_alias (__floor, floor)
+-
+-
+-ENTRY(__floor_sse41)
+- roundsd $1, %xmm0, %xmm0
+- ret
+-END(__floor_sse41)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+deleted file mode 100644
+index 1ba9dbc..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c
++++ /dev/null
+@@ -1,31 +0,0 @@
+-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
+-# include <init-arch.h>
+-# include <math.h>
+-# undef NAN
+-
+-extern double __cos_sse2 (double);
+-extern double __sin_sse2 (double);
+-extern double __cos_avx (double);
+-extern double __sin_avx (double);
+-# ifdef HAVE_FMA4_SUPPORT
+-extern double __cos_fma4 (double);
+-extern double __sin_fma4 (double);
+-# else
+-# undef HAS_FMA4
+-# define HAS_FMA4 0
+-# define __cos_fma4 ((void *) 0)
+-# define __sin_fma4 ((void *) 0)
+-# endif
+-
+-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2);
+-weak_alias (__cos, cos)
+-
+-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2);
+-weak_alias (__sin, sin)
+-
+-# define __cos __cos_sse2
+-# define __sin __sin_sse2
+-#endif
+-
+-
+-#include <sysdeps/ieee754/dbl-64/s_sin.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+deleted file mode 100644
+index 8f6601e..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c
++++ /dev/null
+@@ -1,21 +0,0 @@
+-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
+-# include <init-arch.h>
+-# include <math.h>
+-
+-extern double __tan_sse2 (double);
+-extern double __tan_avx (double);
+-# ifdef HAVE_FMA4_SUPPORT
+-extern double __tan_fma4 (double);
+-# else
+-# undef HAS_FMA4
+-# define HAS_FMA4 0
+-# define __tan_fma4 ((void *) 0)
+-# endif
+-
+-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2);
+-
+-# define tan __tan_sse2
+-#endif
+-
+-
+-#include <sysdeps/ieee754/dbl-64/s_tan.c>
diff --git a/multilib-staging/lib32-glibc/glibc-2.15-revert-c5a0802a.patch b/multilib-staging/lib32-glibc/glibc-2.15-revert-c5a0802a.patch
new file mode 100644
index 000000000..f532b95e8
--- /dev/null
+++ b/multilib-staging/lib32-glibc/glibc-2.15-revert-c5a0802a.patch
@@ -0,0 +1,229 @@
+diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000
+@@ -137,7 +137,6 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 18f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
+ movl %ebp, %edx
+ xorl %esi, %esi
+@@ -151,9 +150,6 @@ __pthread_cond_wait:
+ sete 16(%esp)
+ je 19f
+
+- cmpl $-EAGAIN, %eax
+- je 91f
+-
+ /* Normal and PI futexes dont mix. Use normal futex functions only
+ if the kernel does not support the PI futex functions. */
+ cmpl $-ENOSYS, %eax
+@@ -398,78 +394,6 @@ __pthread_cond_wait:
+ #endif
+ call __lll_unlock_wake
+ jmp 11b
+-
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+-
+- /* Get internal lock. */
+- movl $1, %edx
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %edx, (%ebx)
+-#else
+- cmpxchgl %edx, cond_lock(%ebx)
+-#endif
+- jz 92f
+-
+-#if cond_lock == 0
+- movl %ebx, %edx
+-#else
+- leal cond_lock(%ebx), %edx
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_lock_wait
+-
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- addl $1, cond_futex(%ebx)
+- movl cond_futex(%ebx), %ebp
+-
+- /* Unlock. */
+- LOCK
+-#if cond_lock == 0
+- subl $1, (%ebx)
+-#else
+- subl $1, cond_lock(%ebx)
+-#endif
+- je 93f
+-#if cond_lock == 0
+- movl %ebx, %eax
+-#else
+- leal cond_lock(%ebx), %eax
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_unlock_wake
+-
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorl %ecx, %ecx
+- movl dep_mutex(%ebx), %edi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -642,10 +566,6 @@ __condvar_w_cleanup:
+ .long .LcleanupEND-.Lsub_cond_futex
+ .long __condvar_w_cleanup-.LSTARTCODE
+ .uleb128 0
+- .long .LcleanupSTART2-.LSTARTCODE
+- .long .LcleanupEND2-.LcleanupSTART2
+- .long __condvar_w_cleanup-.LSTARTCODE
+- .uleb128 0
+ .long .LcallUR-.LSTARTCODE
+ .long .LENDCODE-.LcallUR
+ .long 0
+Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
+diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000
+@@ -23,7 +23,6 @@
+ #include <lowlevelcond.h>
+ #include <tcb-offsets.h>
+ #include <pthread-pi-defines.h>
+-#include <pthread-errnos.h>
+
+ #include <kernel-features.h>
+
+@@ -137,14 +136,11 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 61f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
+ movl $SYS_futex, %eax
+ syscall
+
+ movl $1, %r8d
+- cmpq $-EAGAIN, %rax
+- je 91f
+ #ifdef __ASSUME_REQUEUE_PI
+ jmp 62f
+ #else
+@@ -331,70 +327,6 @@ __pthread_cond_wait:
+
+ 13: movq %r10, %rax
+ jmp 14b
+-
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+- movq 8(%rsp), %rdi
+-
+- /* Get internal lock. */
+- movl $1, %esi
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %esi, (%rdi)
+-#else
+- cmpxchgl %esi, cond_lock(%rdi)
+-#endif
+- jz 92f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- cmpq $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- callq __lll_lock_wait
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- incl cond_futex(%rdi)
+- movl cond_futex(%rdi), %edx
+-
+- /* Release internal lock. */
+- LOCK
+-#if cond_lock == 0
+- decl (%rdi)
+-#else
+- decl cond_lock(%rdi)
+-#endif
+- jz 93f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- cmpq $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- /* The call preserves %rdx. */
+- callq __lll_unlock_wake
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorq %r10, %r10
+- movq dep_mutex(%rdi), %r8
+- leaq cond_futex(%rdi), %rdi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -547,15 +479,11 @@ __condvar_cleanup1:
+ .uleb128 .LcleanupSTART-.LSTARTCODE
+ .uleb128 .LcleanupEND-.LcleanupSTART
+ .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
+- .uleb128 .LcleanupSTART2-.LSTARTCODE
+- .uleb128 .LcleanupEND2-.LcleanupSTART2
+- .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
++ .uleb128 0
+ .uleb128 .LcallUR-.LSTARTCODE
+ .uleb128 .LENDCODE-.LcallUR
+ .uleb128 0
+- .uleb128 0
++ .uleb128 0
+ .Lcstend:
+
+
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej
diff --git a/multilib-staging/lib32-glibc/glibc-__i686.patch b/multilib-staging/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/multilib-staging/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-staging/lib32-glibc/lib32-glibc.conf b/multilib-staging/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib-staging/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/multilib-staging/lib32-gtk2/PKGBUILD b/multilib-staging/lib32-gtk2/PKGBUILD
new file mode 100644
index 000000000..b9c9036ca
--- /dev/null
+++ b/multilib-staging/lib32-gtk2/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 62043 2012-01-14 23:45:58Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=gtk2
+pkgname=lib32-$_pkgbasename
+pkgver=2.24.8
+pkgrel=2
+pkgdesc="The GTK+ Toolkit (v2) (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+install=gtk2.install
+depends=(lib32-{'atk>=1.30.0','pango>=1.28.0','cairo>=1.10.0','gdk-pixbuf2>=2.22.1'}
+ lib32-lib{'cups>=1.4.4',xcursor,'xrandr>=1.3','xi>=1.3',xinerama,xcomposite,xdamage}
+ $_pkgbasename)
+makedepends=('pkgconfig' 'gcc-multilib')
+options=('!libtool' '!docs')
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${pkgver}.tar.xz
+ xid-collision-debug.patch
+ gtk-modules-32.patch)
+sha256sums=('8a3b29f667933cf52eea2db7b066723edbc80443ca9c75b7cd7cbe8c8b90b93c'
+ 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+ '2effb13404442ae266d4c663347e88cd1ca19e9a83b452da1743bac16af9c7b0')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gtk+-${pkgver}"
+ patch -Np1 -i "${srcdir}/xid-collision-debug.patch"
+ patch -p1 -i ${srcdir}/gtk-modules-32.patch
+
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libdir=/usr/lib32 \
+ --with-xinput=yes
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gtk-query-immodules-2.0 gtk-query-immodules-2.0-32
+ rm -f gtk-builder-convert gtk-demo gtk-update-icon-cache
+}
diff --git a/multilib-staging/lib32-gtk2/gtk-modules-32.patch b/multilib-staging/lib32-gtk2/gtk-modules-32.patch
new file mode 100644
index 000000000..a2530c3bf
--- /dev/null
+++ b/multilib-staging/lib32-gtk2/gtk-modules-32.patch
@@ -0,0 +1,12 @@
+diff -ur gtk+-2.20.1/gtk/gtkrc.c gtk+-2.20.1-32/gtk/gtkrc.c
+--- gtk+-2.20.1/gtk/gtkrc.c 2010-05-03 01:28:21.000000000 +0200
++++ gtk+-2.20.1-32/gtk/gtkrc.c 2010-08-26 07:22:42.316920033 +0200
+@@ -450,7 +450,7 @@
+ if (im_module_file)
+ result = g_strdup (im_module_file);
+ else
+- result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL);
++ result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules-32", NULL);
+ }
+
+ return result;
diff --git a/multilib-staging/lib32-gtk2/gtk2.install b/multilib-staging/lib32-gtk2/gtk2.install
new file mode 100644
index 000000000..49f86f550
--- /dev/null
+++ b/multilib-staging/lib32-gtk2/gtk2.install
@@ -0,0 +1,16 @@
+post_install() {
+ GTK_PATH=/usr/lib32/gtk-2.0 usr/bin/gtk-query-immodules-2.0-32 > etc/gtk-2.0/gtk.immodules-32
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f etc/gtk-2.0/gtk.immodules-32 &>/dev/null
+ rm -f etc/gtk-2.0/gdk-pixbuf.loaders-32 &>/dev/null
+}
diff --git a/multilib-staging/lib32-gtk2/xid-collision-debug.patch b/multilib-staging/lib32-gtk2/xid-collision-debug.patch
new file mode 100644
index 000000000..d61238c3b
--- /dev/null
+++ b/multilib-staging/lib32-gtk2/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+ if (!display_x11->xid_ht)
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+-
++/*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+-
++*/
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+
diff --git a/multilib-staging/lib32-libcups/PKGBUILD b/multilib-staging/lib32-libcups/PKGBUILD
new file mode 100644
index 000000000..010da0cf7
--- /dev/null
+++ b/multilib-staging/lib32-libcups/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 62421 2012-01-19 21:25:14Z bluewind $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgbasename=libcups
+pkgname=lib32-$_pkgbasename
+pkgver=1.5.0
+pkgrel=2
+pkgdesc="The CUPS Printing System - client libraries (32-bit)"
+arch=('x86_64')
+license=('GPL')
+url="http://www.cups.org/"
+depends=(lib32-krb5 lib32-libtiff lib32-libpng $_pkgbasename)
+makedepends=(gcc-multilib)
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2)
+md5sums=('e54ed09ede2340fc3014913333520fe4')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/cups-${pkgver}
+
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-ldap --enable-raw-printing --disable-gssapi --disable-dbus \
+ --enable-ssl=no --disable-gnutls --enable-threads \
+ --with-optim="$CFLAGS" --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/cups-${pkgver}
+ make BUILDROOT=${pkgdir} install-libs
+}
+
diff --git a/multilib-staging/lib32-libpng/PKGBUILD b/multilib-staging/lib32-libpng/PKGBUILD
new file mode 100644
index 000000000..448a475b5
--- /dev/null
+++ b/multilib-staging/lib32-libpng/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 62262 2012-01-18 20:55:36Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Travis Willard <travis@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+_pkgbasename=libpng
+pkgname=lib32-$_pkgbasename
+pkgver=1.5.7
+_apngver=1.5.7
+pkgrel=1
+pkgdesc="A collection of routines used to create PNG format graphics files (32-bit)"
+arch=('x86_64')
+url="http://www.libpng.org/pub/png/libpng.html"
+license=('custom')
+depends=('lib32-zlib' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.xz"
+ "http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-${_apngver}-apng.patch.gz")
+md5sums=('c3ae9ce4e81ec0aafdd4ac961586ee0d'
+ '6c6a674048cec94db1bc35decf0d142c')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ # Add animated PNG (apng) support
+ # see http://sourceforge.net/projects/libpng-apng/
+ patch -p1 -i "${srcdir}/libpng-${_apngver}-apng.patch"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ cd contrib/pngminus
+ make PNGLIB="-L${pkgdir}/usr/lib32 -lpng" -f makefile.std png2pnm pnm2png
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-staging/lib32-libtiff/PKGBUILD b/multilib-staging/lib32-libtiff/PKGBUILD
new file mode 100644
index 000000000..2d6eb6a8e
--- /dev/null
+++ b/multilib-staging/lib32-libtiff/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 62312 2012-01-19 07:50:29Z bluewind $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+_pkgbasename=libtiff
+pkgname=lib32-$_pkgbasename
+pkgver=4.0.0
+pkgrel=1
+pkgdesc="Library for manipulation of TIFF images (32-bit)"
+arch=('x86_64')
+url="http://www.remotesensing.org/libtiff/"
+license=('custom')
+depends=('lib32-libjpeg' 'lib32-zlib' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz)
+sha1sums=('85d85520fea40fc9291995a60e3d40cf980b5522')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/tiff-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --libdir=/usr/lib32
+ make
+}
+
+check() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-staging/lib32-libtiff/libtiff-CVE-2009-2285.patch b/multilib-staging/lib32-libtiff/libtiff-CVE-2009-2285.patch
new file mode 100644
index 000000000..435a84b53
--- /dev/null
+++ b/multilib-staging/lib32-libtiff/libtiff-CVE-2009-2285.patch
@@ -0,0 +1,22 @@
+Index: tiff-3.8.2/libtiff/tif_lzw.c
+===================================================================
+--- tiff-3.8.2.orig/libtiff/tif_lzw.c
++++ tiff-3.8.2/libtiff/tif_lzw.c
+@@ -421,7 +421,7 @@ LZWDecode(TIFF* tif, tidata_t op0, tsize
+ NextCode(tif, sp, bp, code, GetNextCode);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
+@@ -624,7 +624,7 @@ LZWDecodeCompat(TIFF* tif, tidata_t op0,
+ NextCode(tif, sp, bp, code, GetNextCodeCompat);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
diff --git a/multilib-staging/lib32-pango/PKGBUILD b/multilib-staging/lib32-pango/PKGBUILD
new file mode 100644
index 000000000..aa0488509
--- /dev/null
+++ b/multilib-staging/lib32-pango/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 62049 2012-01-14 23:53:37Z heftig $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+# Maintainer: Biru Ionut <ionut@archlinux.ro>
+_pkgbasename=pango
+pkgname=lib32-$_pkgbasename
+pkgver=1.29.4
+pkgrel=2
+pkgdesc="A library for layout and rendering of text (32-bit)"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-glib2>=2.25.15' 'lib32-cairo>=1.10.0' 'lib32-libxft>=2.1.14'
+ 'lib32-freetype2>=2.4.2' $_pkgbasename)
+makedepends=("gcc-multilib")
+options=('!libtool' '!emptydirs')
+install=pango.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/1.29/${_pkgbasename}-${pkgver}.tar.xz
+ pango-modules-conffile.patch)
+url="http://www.pango.org/"
+sha256sums=('7ae8d1953e6098a2706df58c1f84555c06ace7006bb34c0e54ab9acd98c1127f'
+ '4a178b60dd420ae53baeabbecfaaeca4070a4b777b2b3f36d137cd70b5a270c3')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -p0 < ${srcdir}/pango-modules-conffile.patch
+ # No libthai support yet
+ ./configure --prefix=/usr --libdir=/usr/lib32 --sysconfdir=/etc \
+ --localstatedir=/var --with-included-modules=basic-fc \
+ --with-dynamic-modules=arabic-fc,arabic-lang,basic-fc,basic-win32,basic-x,basic-atsui,hangul-fc,hebrew-fc,indic-fc,indic-lang,khmer-fc,syriac-fc,tibetan-fc \
+ --disable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "$pkgdir"/etc
+ rm -rf "$pkgdir"/usr/{bin/pango-view,share,include}
+ mv "$pkgdir"/usr/bin/pango-querymodules "$pkgdir"/usr/bin/pango-querymodules-32
+}
diff --git a/multilib-staging/lib32-pango/pango-modules-conffile.patch b/multilib-staging/lib32-pango/pango-modules-conffile.patch
new file mode 100644
index 000000000..a959cf1c8
--- /dev/null
+++ b/multilib-staging/lib32-pango/pango-modules-conffile.patch
@@ -0,0 +1,20 @@
+--- pango/modules.c.orig 2010-08-26 06:45:49.329259966 +0200
++++ pango/modules.c 2010-08-26 06:46:13.786685177 +0200
+@@ -529,7 +529,7 @@
+
+ if (!file_str)
+ file_str = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+
+ files = pango_split_file_list (file_str);
+@@ -640,7 +640,7 @@
+ if (!no_module_warning)
+ {
+ gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+ g_critical ("No modules found:\n"
+ "No builtin or dynamically loaded modules were found.\n"
diff --git a/multilib-staging/lib32-pango/pango.install b/multilib-staging/lib32-pango/pango.install
new file mode 100644
index 000000000..173b6820f
--- /dev/null
+++ b/multilib-staging/lib32-pango/pango.install
@@ -0,0 +1,21 @@
+# arg 1: the new package version
+post_install() {
+ # we need to ldconfig first, in case xfree86's libs aren't
+ # in ld.so.cache yet
+ sbin/ldconfig -r .
+ usr/bin/pango-querymodules-32 >etc/pango/pango.modules-32
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ -f etc/pango/pango.modules-32 ]; then
+ rm etc/pango/pango.modules-32
+ fi
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ rm etc/pango/pango.modules-32
+}
diff --git a/multilib-staging/lib32-qt/PKGBUILD b/multilib-staging/lib32-qt/PKGBUILD
new file mode 100644
index 000000000..205e21a76
--- /dev/null
+++ b/multilib-staging/lib32-qt/PKGBUILD
@@ -0,0 +1,86 @@
+# $Id: PKGBUILD 62425 2012-01-19 21:55:49Z bluewind $
+# Maintainer: Florian Pritz <flo@xssn.at>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgbasename=qt
+pkgname=lib32-$_pkgbasename
+pkgver=4.8.0
+pkgrel=2
+pkgdesc='A cross-platform application and UI framework (32-bit)'
+arch=('x86_64')
+url='http://qt-project.org/'
+license=('GPL3' 'LGPL')
+depends=(lib32-{fontconfig,sqlite3,alsa-lib,glib2,dbus-core,openssl}
+ lib32-lib{png,tiff,mng,gl,sm,xrandr,xv,xi} $_pkgbasename)
+optdepends=('lib32-libxinerama: Xinerama support'
+ 'lib32-libxcursor: Xcursor support'
+ 'lib32-libxfixes: Xfixes support')
+makedepends=(cups gcc-multilib lib32-{mesa,libcups,libxfixes,gtk2})
+options=('!libtool')
+_pkgfqn="${_pkgbasename}-everywhere-opensource-src-${pkgver}"
+source=("ftp://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz")
+md5sums=('e8a5fdbeba2927c948d9f477a6abe904')
+
+build() {
+ cd $srcdir/$_pkgfqn
+
+ export QT4DIR=$srcdir/$_pkgfqn
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ # some of those are likely unnecessary, but I'm too lazy to find and remove them
+ sed -i "/^QMAKE_LINK\s/s|g++|g++ -m32|g" mkspecs/common/g++-base.conf
+ sed -i "s|-O2|${CXXFLAGS} -m32|" mkspecs/common/g++-base.conf
+ sed -i "s|-O2|${CXXFLAGS} -m32|" mkspecs/common/gcc-base.conf
+ sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf
+ sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS} -m32|g" mkspecs/common/gcc-base.conf
+ sed -i "s|-Wl,-O1|-m32 -Wl,-O1|" mkspecs/common/g++-unix.conf
+ sed -e "s|-O2|$CXXFLAGS -m32|" \
+ -e "/^QMAKE_RPATH/s| -Wl,-rpath,||g" \
+ -e "/^QMAKE_LINK\s/s|g++|g++ -m32|g" \
+ -e "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" \
+ -i mkspecs/common/g++.conf
+
+ ./configure -confirm-license -opensource -v -platform linux-g++-32 \
+ -prefix /usr \
+ -libdir /usr/lib32 \
+ -plugindir /usr/lib32/qt/plugins \
+ -importdir /usr/lib32/qt/imports \
+ -datadir /usr/share/qt \
+ -translationdir /usr/share/qt/translations \
+ -sysconfdir /etc \
+ -system-sqlite \
+ -no-phonon \
+ -no-phonon-backend \
+ -no-webkit \
+ -graphicssystem raster \
+ -openssl-linked \
+ -nomake demos \
+ -nomake examples \
+ -nomake docs \
+ -nomake tools \
+ -optimized-qmake \
+ -no-rpath \
+ -dbus-linked \
+ -reduce-relocations \
+ -no-openvg
+
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgfqn
+ make INSTALL_ROOT=$pkgdir install
+
+ # Fix wrong path in pkgconfig files
+ find ${pkgdir}/usr/lib32/pkgconfig -type f -name '*.pc' \
+ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+ # Fix wrong path in prl files
+ find ${pkgdir}/usr/lib32 -type f -name '*.prl' \
+ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-staging/libtool-multilib/PKGBUILD b/multilib-staging/libtool-multilib/PKGBUILD
new file mode 100644
index 000000000..abdc50ebc
--- /dev/null
+++ b/multilib-staging/libtool-multilib/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 62034 2012-01-14 22:04:47Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuild with each new gcc version
+
+pkgbase=libtool-multilib
+pkgname=(libtool-multilib lib32-libltdl)
+pkgver=2.4.2
+pkgrel=2.1
+pkgdesc="A generic library support script for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+_gccver=4.6.2
+makedepends=("gcc-multilib=$_gccver")
+options=('!libtool')
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz{,.sig})
+md5sums=('2ec8997e0c07249eb4cbd072417d70fe'
+ '1e6ba57420c82c663c85e745d11c7eed')
+
+build() {
+ cd "$srcdir"
+
+ rm -rf libtool-64 libtool-32
+ mv libtool-$pkgver libtool-64
+ cp -a libtool-64 libtool-32
+
+ msg2 "Building libtool-64..."
+ cd "$srcdir/libtool-64"
+ ./configure --prefix=/usr
+ make
+
+ msg2 "Building libtool-32..."
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+
+ cd "$srcdir/libtool-32"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+check() {
+ cd "$srcdir/libtool-64"
+ make check
+ cd "$srcdir/libtool-32"
+ make check
+}
+
+package_libtool-multilib() {
+ depends=('sh' "libltdl=$pkgver" 'tar' "gcc-multilib=$_gccver" "lib32-libltdl=$pkgver")
+ groups=('multilib-devel')
+ install=libtool.install
+ provides=("libtool=$pkgver-$pkgrel")
+ conflicts=(libtool)
+
+ cd "$srcdir/libtool-64"
+ make DESTDIR=${pkgdir} install-binSCRIPTS install-man install-info \
+ install-data-local
+ rm -rf ${pkgdir}/usr/share/libtool/libltdl/
+}
+
+package_lib32-libltdl() {
+ pkgdesc="A system independent dlopen wrapper for GNU libtool (32-bit)"
+ depends=(lib32-glibc libltdl)
+ replaces=(lib32-libtool)
+ provides=("lib32-libtool=$pkgver-$pkgrel")
+ conflicts=(lib32-libtool)
+
+ cd "$srcdir/libtool-32"
+ make DESTDIR="$pkgdir" install-libLTLIBRARIES
+}
diff --git a/multilib-staging/libtool-multilib/libtool.install b/multilib-staging/libtool-multilib/libtool.install
new file mode 100644
index 000000000..424c8cb88
--- /dev/null
+++ b/multilib-staging/libtool-multilib/libtool.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(libtool.info libtool.info-1 libtool.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-testing/binutils-multilib/PKGBUILD b/multilib-testing/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..6888c5181
--- /dev/null
+++ b/multilib-testing/binutils-multilib/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 62099 2012-01-16 01:54:07Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils-multilib
+pkgver=2.22
+pkgrel=4.1
+_date=20111227
+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=('c2377089c15bb1a1bfaeca8d0e59dd4d')
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared \
+ --enable-64-bit-bfd --enable-multilib
+
+ # check the host environment and makes sure all the necessary tools are available
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+
+ # Rebuild libiberty.a with -fPIC
+ cp -a libiberty libiberty-pic
+ make -C libiberty-pic clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty-pic
+
+ # Rebuild libbfd.a with -fPIC
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ cp -a bfd bfd-pic
+ make -C bfd-pic clean
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd-pic
+}
+
+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
+
+ # install libraries rebuilt with -fPIC
+ install -m644 libiberty-pic/libiberty.a ${pkgdir}/usr/lib
+ install -m644 bfd-pic/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/chuck/PKGBUILD b/multilib-testing/chuck/PKGBUILD
new file mode 100644
index 000000000..2250f2e39
--- /dev/null
+++ b/multilib-testing/chuck/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 62100 2012-01-16 01:54:11Z heftig $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=chuck
+pkgver=1.2.1.3
+pkgrel=5.1
+pkgdesc="Concurrent, on-the-fly audio programming language."
+arch=('i686' 'x86_64')
+url="http://chuck.cs.princeton.edu/"
+license=('GPL')
+depends=('gcc-libs' 'libsndfile' 'alsa-lib')
+makedepends=('bison' 'flex')
+source=(http://chuck.cs.princeton.edu/release/files/$pkgname-$pkgver.tgz)
+md5sums=('ac8459b4067c2491fbdeb61d122a5985')
+
+if [[ $CARCH == x86_64 ]]; then
+ depends=('lib32-gcc-libs' 'lib32-libsndfile' 'lib32-alsa-lib')
+ makedepends+=('gcc-multilib')
+fi
+
+build() {
+ if [[ $CARCH == x86_64 ]]; then
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ fi
+
+ cd $srcdir/$pkgname-$pkgver/src
+ CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ # This can be linux-alsa linux-jack linux-oss osx win32
+ make linux-alsa
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/src
+ install -D -m 755 chuck $pkgdir/usr/bin/chuck
+}
diff --git a/multilib-testing/dev86/PKGBUILD b/multilib-testing/dev86/PKGBUILD
new file mode 100644
index 000000000..bde7ba3be
--- /dev/null
+++ b/multilib-testing/dev86/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 59310 2011-11-23 10:19:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: Suat SARIALP <muhendis.suat@gmail.com>
+
+pkgname=dev86
+pkgver=0.16.18
+pkgrel=3
+pkgdesc="Simple C compiler to generate 8086 code"
+arch=('i686' 'x86_64')
+url="http://www.debath.co.uk/dev86/"
+license=(GPL)
+if [ "${CARCH}" == "x86_64" ]; then
+ depends=('lib32-glibc')
+ makedepends=('bin86' 'gcc-multilib')
+else
+ makedepends=('bin86')
+fi
+options=('!libtool' '!strip' '!makeflags')
+source=(http://www.debath.co.uk/dev86/Dev86src-$pkgver.tar.gz
+ dev86-pic.patch
+ dev86-0.16.17-fortify.patch)
+md5sums=('f2e06b547397383b2b2650b9c4fd9bab'
+ '1b750c5561a4bde5f83f65e5827feb73'
+ '07238f9203c6528ea1e34198e771ea12')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np0 -i $srcdir/dev86-pic.patch
+ patch -Np1 -i $srcdir/dev86-0.16.17-fortify.patch
+ if [ "${CARCH}" = "x86_64" ]; then
+ # x86_64 fix
+ sed -i.orig -e 's,alt-libs elksemu,alt-libs,' \
+ -e 's,install-lib install-emu,install-lib,' \
+ $srcdir/$pkgname-$pkgver/makefile.in
+ sed -i -e "s/-O2 -g/-O2 -g -m32/" makefile.in
+ sed -i 's|^LDFLAGS.*=$|LDFLAGS=-m32|' makefile.in
+ fi
+
+ unset CFLAGS
+ unset LDFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+
+ make PREFIX=/usr DIST="$pkgdir"
+ make install-all DIST="$pkgdir"
+ mkdir -p $pkgdir/usr/share
+ mv $pkgdir/usr/man $pkgdir/usr/share
+ # remove all the stuff supplied by bin86
+ rm $pkgdir/usr/bin/{as,ld,nm,objdump,size}86
+ rm $pkgdir/usr/share/man/man1/{as,ld}86.1
+}
diff --git a/multilib-testing/dev86/dev86-0.16.17-fortify.patch b/multilib-testing/dev86/dev86-0.16.17-fortify.patch
new file mode 100644
index 000000000..715d0c4ca
--- /dev/null
+++ b/multilib-testing/dev86/dev86-0.16.17-fortify.patch
@@ -0,0 +1,43 @@
+--- dev86-0.16.17/bcc/bcc.c
++++ dev86-0.16.17/bcc/bcc.c
+@@ -19,6 +19,7 @@
+ #ifdef __STDC__
+ #include <stdlib.h>
+ #ifndef MSDOS
++#include <limits.h>
+ #include <unistd.h>
+ #endif
+ #else
+@@ -596,12 +597,17 @@
+ }
+ }
+
+-void
+-command_reset()
+-{
+ #ifndef MAXPATHLEN
++#ifdef PATH_MAX
++#define MAXPATHLEN PATH_MAX
++#else
+ #define MAXPATHLEN 1024
+ #endif
++#endif
++
++void
++command_reset()
++{
+ char buf[MAXPATHLEN];
+ char ** prefix;
+ char * saved_cmd;
+@@ -1308,11 +1314,7 @@
+
+ for(d=s=ptr; d && *s; s=d)
+ {
+-#ifdef MAXPATHLEN
+ char buf[MAXPATHLEN];
+-#else
+- char buf[1024];
+-#endif
+
+ free(temp);
+ d=strchr(s, ':');
diff --git a/multilib-testing/dev86/dev86-pic.patch b/multilib-testing/dev86/dev86-pic.patch
new file mode 100644
index 000000000..439c2648b
--- /dev/null
+++ b/multilib-testing/dev86/dev86-pic.patch
@@ -0,0 +1,20 @@
+--- elksemu/elks.c.orig 2005-11-04 01:35:37.000000000 +0100
++++ elksemu/elks.c 2005-11-04 01:45:28.000000000 +0100
+@@ -129,8 +129,17 @@
+ static inline int vm86_mine(struct vm86_struct* v86)
+ {
+ int __res;
++#ifndef __PIC__
+ __asm__ __volatile__("int $0x80\n"
+ :"=a" (__res):"a" ((int)OLD_SYS_vm86), "b" ((int)v86));
++#else
++ __asm__ __volatile__(
++ "movl %%ebx,%%ecx\n\t"
++ "movl %2,%%ebx\n\t"
++ "int $0x80\n\t"
++ "movl %%ecx,%%ebx\n\t"
++ :"=a" (__res):"a" ((int)OLD_SYS_vm86), "r" ((int)v86) : "ecx");
++#endif
+ return __res;
+ }
+ #endif
diff --git a/multilib-testing/gcc-multilib/PKGBUILD b/multilib-testing/gcc-multilib/PKGBUILD
new file mode 100644
index 000000000..1db3a2749
--- /dev/null
+++ b/multilib-testing/gcc-multilib/PKGBUILD
@@ -0,0 +1,303 @@
+# $Id: PKGBUILD 62102 2012-01-16 01:54:25Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgbase='gcc-multilib'
+pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
+pkgver=4.6.2
+pkgrel=5.1
+_snapshot=4.6-20111223
+_libstdcppmanver=20111215
+pkgdesc="The GNU Compiler Collection for multilib"
+arch=('x86_64')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib'
+ 'lib32-glibc>=2.14')
+checkdepends=('dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.${_libstdcppmanver}.tar.bz2
+ gcc_pure64-multilib.patch
+ gcc-hash-style-both.patch)
+md5sums=('4755b9f6ac0abecbaa2097ed9738406a'
+ '450772ce32daed97d7383199f8797f33'
+ '7da5b7ab75b3c29993f953b18bc38579'
+ '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-multilib.patch
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+
+ ${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://bugs.archlinux.org/ \
+ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
+ --enable-shared --enable-threads=posix \
+ --with-system-zlib --enable-__cxa_atexit \
+ --disable-libunwind-exceptions --enable-clocale=gnu \
+ --enable-gnu-unique-object --enable-linker-build-id \
+ --with-ppl --enable-cloog-backend=isl \
+ --enable-lto --enable-gold --enable-ld=default \
+ --enable-plugin --with-plugin-ld=ld.gold \
+ --enable-multilib --disable-libssp --disable-libstdcxx-pch \
+ --enable-checking=release --with-fpmath=sse
+ make
+}
+
+check() {
+ cd gcc-build
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs-multilib()
+{
+ pkgdesc="Runtime libraries shipped by GCC for multilib"
+ depends=('glibc>=2.14' "lib32-gcc-libs=$pkgver-$pkgrel")
+ provides=("gcc-libs=$pkgver-$pkgrel")
+ conflicts=('gcc-libs')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
+
+ # remove stuff in lib32-gcc-libs
+ rm -rf ${pkgdir}/usr/lib32
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_lib32-gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC (32-bit)"
+ depends=('lib32-glibc>=2.14' "gcc-libs>=$pkgver")
+
+ cd gcc-build
+ make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libstdc++-v3/src; do
+ make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm ${pkgdir}/usr/lib32/libgfortran.spec
+
+ # remove stuff in gcc-libs-multilib
+ rm -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/info
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-multilib()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
+ depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl')
+ groups=('multilib-devel')
+ provides=("gcc=$pkgver-$pkgrel")
+ conflicts=('gcc')
+ install=gcc.install
+
+ cd gcc-build
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm $pkgdir/usr/lib{,32}/*.so*
+ rm $pkgdir/usr/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm $pkgdir/usr/lib{,32}/libgfortran.spec
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,{,32/}libgfortranbegin.a}
+ rm -r $pkgdir/usr/lib{,32}/go
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm $pkgdir/usr/share/man/man3/ffi*
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # install gengtype for plugin support
+ install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+ install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/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-multilib.patch b/multilib-testing/gcc-multilib/gcc_pure64-multilib.patch
new file mode 100644
index 000000000..73df6b873
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc_pure64-multilib.patch
@@ -0,0 +1,24 @@
+diff -u -r gcc-4.6-20111223/gcc/config/i386/linux64.h gcc-4.6-20111223-pure64/gcc/config/i386/linux64.h
+--- gcc-4.6-20111223/gcc/config/i386/linux64.h 2011-09-08 11:12:35.000000000 +0200
++++ gcc-4.6-20111223-pure64/gcc/config/i386/linux64.h 2012-01-14 19:52:33.688573352 +0100
+@@ -63,7 +63,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"
+
+ #if TARGET_64BIT_DEFAULT
+ #define SPEC_32 "m32"
+diff -u -r gcc-4.6-20111223/gcc/config/i386/t-linux64 gcc-4.6-20111223-pure64/gcc/config/i386/t-linux64
+--- gcc-4.6-20111223/gcc/config/i386/t-linux64 2009-04-21 21:03:23.000000000 +0200
++++ gcc-4.6-20111223-pure64/gcc/config/i386/t-linux64 2012-01-14 19:50:27.346242617 +0100
+@@ -25,7 +25,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/jack2-multilib/40-hpet-permissions.rules b/multilib-testing/jack2-multilib/40-hpet-permissions.rules
new file mode 100644
index 000000000..7af3780f9
--- /dev/null
+++ b/multilib-testing/jack2-multilib/40-hpet-permissions.rules
@@ -0,0 +1,2 @@
+KERNEL=="rtc0", GROUP="audio"
+KERNEL=="hpet", GROUP="audio"
diff --git a/multilib-testing/jack2-multilib/99-audio.conf b/multilib-testing/jack2-multilib/99-audio.conf
new file mode 100644
index 000000000..eb76ef920
--- /dev/null
+++ b/multilib-testing/jack2-multilib/99-audio.conf
@@ -0,0 +1,2 @@
+@audio - rtprio 99
+@audio - memlock unlimited
diff --git a/multilib-testing/jack2-multilib/PKGBUILD b/multilib-testing/jack2-multilib/PKGBUILD
new file mode 100644
index 000000000..6c45b64d6
--- /dev/null
+++ b/multilib-testing/jack2-multilib/PKGBUILD
@@ -0,0 +1,143 @@
+# $Id: PKGBUILD 52694 2011-07-27 17:23:48Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+# This one is in response to a need for an equivalent to lib32-jack for
+# jack2. A lib32-jack2 would require much patching and invading the pure
+# jack2 package, and what's more, the buildsystem provides a flag just to
+# build a hybrid jack2 in full. As such, we have opted to provide multilib
+# users with a replacement package instead of the usual lib32 add-on.
+#
+# See http://mailman.archlinux.org/pipermail/arch-multilib/2011-December/000251.html
+
+pkgbase=jack2-multilib
+pkgname=('jack2-multilib' 'jack2-dbus-multilib')
+#pkgname= # single build (overrides split)
+_tarname=jack
+pkgver=1.9.8
+pkgrel=1
+arch=('x86_64')
+url="http://jackaudio.org/"
+backup=(etc/security/limits.d/99-audio.conf)
+license=('GPL')
+makedepends=('python2' 'doxygen' 'libffado'
+ 'libsamplerate' 'lib32-dbus-core' 'lib32-celt'
+ 'gcc-multilib')
+source=("http://www.grame.fr/~letz/$_tarname-$pkgver.tgz"
+ '99-audio.conf'
+ '40-hpet-permissions.rules')
+md5sums=('1dd2ff054cab79dfc11d134756f27165'
+ 'ae65b7c9ebe0fff6c918ba9d97ae342d'
+ '471aad533ff56c5d3cbbf65ce32cadef')
+
+_pyfix() {
+ sed -i 's:bin/env python:bin/env python2:' \
+ "$pkgdir/usr/bin/jack_control"
+}
+
+_wafconf() {
+ python2 waf configure --prefix=/usr \
+ --alsa \
+ --firewire \
+ --mixed \
+ --doxygen $@
+}
+
+_isbuild() {
+ printf "%s\n" ${pkgname[@]} | grep -qx $1
+}
+
+_mklinks() {
+ ln -s /usr/lib32/libjack.so.0.1.0 "$pkgdir/usr/lib32/libjack.so.0"
+ ln -s /usr/lib32/libjack.so.0 "$pkgdir/usr/lib32/libjack.so"
+}
+
+build() {
+ cd "$srcdir/$_tarname-$pkgver"
+
+ export LINKFLAGS="$LDFLAGS"
+
+ # fix doxygen building
+ sed -i 's:build/default/html:html:' $_tarname-$pkgver/wscript
+
+ # we may do 2 different builds
+ cp -r $_tarname-$pkgver $_tarname-dbus-$pkgver
+
+ # mixed dbus/classic build
+ if _isbuild jack2-multilib; then
+ cd $_tarname-$pkgver
+ msg2 "Running Mixed D-Bus/Classic build"
+ _wafconf --classic --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+
+ # dbus-ONLY build
+ if _isbuild jack2-dbus-multilib; then
+ cd $_tarname-dbus-$pkgver
+ msg2 "Running D-Bus-only build"
+ _wafconf --dbus
+ python2 waf build $MAKEFLAGS
+ cd ..
+ fi
+}
+
+package_jack2-multilib() {
+ ! _isbuild jack2-multilib && return 0
+
+ pkgdesc="The next-generation JACK with SMP support & mixed mode"
+ depends=('libsamplerate' 'lib32-celt' 'lib32-gcc-libs')
+ optdepends=('libffado: FireWire support'
+ 'lib32-dbus-core: jackdbus'
+ 'python2: jack_control')
+ conflicts=('jack' 'jack2' 'lib32-jack')
+ provides=('jack' 'jackmp' 'jackdmp' 'jackdbus'
+ 'jack2' 'lib32-jack' 'lib32-jack2')
+
+ cd "$srcdir/$_tarname-$pkgver/$_tarname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ # fix for major python transition
+ _pyfix
+
+ # configure realtime access/scheduling
+ # see https://bugs.archlinux.org/task/26343
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ # should be done by upstream
+ # see http://trac.jackaudio.org/ticket/200
+ _mklinks
+}
+
+package_jack2-dbus-multilib() {
+ ! _isbuild jack2-dbus-multilib && return 0
+
+ pkgdesc="The next-generation JACK with SMP support & mixed mode (for D-BUS interaction only)"
+ depends=('libsamplerate' 'lib32-celt' 'lib32-dbus-core' 'lib32-gcc-libs')
+ optdepends=('libffado: FireWire support'
+ 'python2: jack_control')
+ conflicts=('jack' 'jack2' 'lib32-jack' 'jack2-multilib')
+ provides=('jack' 'jack2' 'jackmp' 'jackdmp' 'jackdbus'
+ 'jack2-dbus' 'jack2-multilib' 'lib32-jack' 'lib32-jack2')
+
+ cd "$srcdir/$_tarname-$pkgver/$_tarname-dbus-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ _pyfix
+
+ install -Dm644 "$srcdir/99-audio.conf" \
+ "$pkgdir/etc/security/limits.d/99-audio.conf"
+
+ install -Dm644 "$srcdir/40-hpet-permissions.rules" \
+ "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"
+
+ _mklinks
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-testing/lib32-gdk-pixbuf2/PKGBUILD b/multilib-testing/lib32-gdk-pixbuf2/PKGBUILD
new file mode 100644
index 000000000..eef9aca26
--- /dev/null
+++ b/multilib-testing/lib32-gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 91063 2010-09-21 19:21:24Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=gdk-pixbuf2
+pkgname=lib32-$_pkgbasename
+pkgver=2.24.1
+pkgrel=1
+pkgdesc="An image loading library (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=(lib32-glib2 lib32-libpng lib32-libtiff lib32-libjpeg lib32-libx11
+ $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool' '!docs')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.24/gdk-pixbuf-${pkgver}.tar.xz)
+sha256sums=('da7a3f00db360913716368e19e336402755cafa93769f3cfa28a969303e4bee1')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --without-libjasper \
+ --with-x11 \
+ --with-included-loaders=png
+ make
+}
+
+package() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gdk-pixbuf-query-loaders gdk-pixbuf-query-loaders-32
+ rm gdk-pixbuf-csource
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-testing/lib32-gdk-pixbuf2/gdk-pixbuf2.install b/multilib-testing/lib32-gdk-pixbuf2/gdk-pixbuf2.install
new file mode 100644
index 000000000..92d58ef04
--- /dev/null
+++ b/multilib-testing/lib32-gdk-pixbuf2/gdk-pixbuf2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders-32 --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
+}
diff --git a/multilib-testing/lib32-glib2/PKGBUILD b/multilib-testing/lib32-glib2/PKGBUILD
new file mode 100644
index 000000000..3dce5033d
--- /dev/null
+++ b/multilib-testing/lib32-glib2/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 62105 2012-01-16 01:54:43Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=glib2
+pkgname=lib32-$_pkgbasename
+pkgver=2.30.2
+pkgrel=2
+pkgdesc="Common C routines used by GTK+ 2.4 and other libs (32-bit)"
+url="http://www.gtk.org/"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-pcre' 'lib32-zlib' 'lib32-dbus-core' lib32-libffi $_pkgbasename)
+makedepends=('gcc-multilib' python2)
+options=('!libtool' '!docs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.30/glib-${pkgver}.tar.xz)
+sha256sums=('f0e91e6333321ddb48fa12b5c66f56c3d5f05325748c66dd2e9016c278ff8e82')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/glib-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32 \
+ --enable-static --enable-shared --with-pcre=system --disable-fam
+ make
+}
+
+package() {
+ cd "${srcdir}/glib-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/{etc,usr/{share,include}}
+
+ cd "${pkgdir}"/usr/bin
+ mv gio-querymodules gio-querymodules-32
+ rm -f gdbus glib* gobject-query gsettings gtester*
+ rm -rf "$pkgdir"/usr/{bin/gdbus-codegen,lib32/gdbus-2.0}
+}
diff --git a/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..b537d6891
--- /dev/null
+++ b/multilib-testing/lib32-glibc/PKGBUILD
@@ -0,0 +1,176 @@
+# $Id: PKGBUILD 62106 2012-01-16 01:54:58Z 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 rebuilt with each major glibc version
+
+_pkgbasename=glibc
+pkgname=lib32-$_pkgbasename
+pkgver=2.15
+pkgrel=3.1
+_glibcdate=20111227
+pkgdesc="GNU C Library for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+depends=("glibc>=$pkgver")
+makedepends=('gcc-multilib>=4.6')
+options=('!strip' '!emptydirs')
+source=(ftp://ftp.archlinux.org/other/glibc/${_pkgbasename}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.14-libdl-crash.patch
+ glibc-2.14-revert-4768ae77.patch
+ glibc-2.14-reexport-rpc-interface.patch
+ glibc-2.14-reinstall-nis-rpc-headers.patch
+ glibc-2.15-lddebug-scopes.patch
+ glibc-2.15-revert-c5a0802a.patch
+ glibc-2.15-math64crash.patch
+ lib32-glibc.conf)
+md5sums=('6ffdf5832192b92f98bdd125317c0dfc'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '6970bcfeb3bf88913436d5112d16f588'
+ '7da8c554a3b591c7401d7023b1928afc'
+ 'c5de2a946215d647c8af5432ec4b0da0'
+ '55febbb72139ac7b65757df085024b83'
+ '3c219ddfb619b6df903cac4cc42c611d'
+ '7ae3e426251ae33e73dbad71f9c91378'
+ 'dc7550e659ddd685bd78a930d15a01f2'
+ '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://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/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ # Revert commit causing issues with crappy DNS servers...
+ # Will be removed when workaround becomes annoying to maintain - USE A BETTER DNS SERVER!
+ # Note that both these patches appear not to fix the issue completely:
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=032c0ee3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-revert-4768ae77.patch
+
+ # re-export RPC interface until libtirpc is ready as a replacement
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
+
+ # propriety nvidia crash - https://bugzilla.redhat.com/show_bug.cgi?id=737223
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0c95ab64 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch
+
+ # revert commit c5a0802a - causes various hangs
+ # https://bugzilla.redhat.com/show_bug.cgi?id=769421
+ patch -Np1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
+
+ # revert optimized math routines that can cause crashes (FS#27736, FS#27743)
+ # obviously not a real fix...
+ patch -Np1 -i ${srcdir}/glibc-2.15-math64crash.patch
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ export CC="gcc -m32"
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/usr/lib32" >> configparms
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib32 --libexecdir=/usr/lib32 \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --enable-multi-arch i686-unknown-linux-gnu
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "s#=no#=yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share},var}
+
+ # We need one 32 bit specific header file
+ find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete
+
+ # Do not strip the following files for improved debugging support
+ # ("improved" as in not breaking gdb and valgrind...):
+ # ld-${pkgver}.so
+ # libc-${pkgver}.so
+ # libpthread-${pkgver}.so
+ # libthread_db-1.0.so
+
+ cd $pkgdir
+ strip $STRIP_BINARIES usr/lib32/getconf/*
+
+ strip $STRIP_STATIC usr/lib32/*.a
+
+ strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libcidn,libcrypt}-${pkgver}.so \
+ usr/lib32/libnss_{compat,db,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,{audit,gconv}/*.so}
+
+ # Dynamic linker
+ mkdir ${pkgdir}/lib
+ ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add lib32 paths to the default library search path
+ install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
+
+ # Symlink /usr/lib32/locale to /usr/lib/locale
+ ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
+}
diff --git a/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch b/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch b/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/multilib-testing/lib32-glibc/glibc-2.12.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.14-libdl-crash.patch b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..6c9d2718e
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
new file mode 100644
index 000000000..e2beea881
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
@@ -0,0 +1,26 @@
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 67e1ca2..5e7cca5 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -635,7 +635,7 @@ for linking")
+ # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+ # define libc_hidden_def(name) hidden_def (name)
+ # define libc_hidden_weak(name) hidden_weak (name)
+-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
++# define libc_hidden_nolink(name, version) hidden_def (name)
+ # define libc_hidden_ver(local, name) hidden_ver (local, name)
+ # define libc_hidden_data_def(name) hidden_data_def (name)
+ # define libc_hidden_data_weak(name) hidden_data_weak (name)
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 5134ce9..40c73d1 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+ des_crypt.h)
+ headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
+ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
+-headers = rpc/netdb.h
++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
+ install-others = $(inst_sysconfdir)/rpc
+ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
+ $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
new file mode 100644
index 000000000..eb0fd822d
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
@@ -0,0 +1,28 @@
+From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Tue, 17 May 2011 17:42:30 +0200
+Subject: [PATCH] Reinstall NIS RPC headers
+
+---
+ nis/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nis/Makefile b/nis/Makefile
+index b5c9609..d2934d9 100644
+--- a/nis/Makefile
++++ b/nis/Makefile
+@@ -23,9 +23,9 @@ subdir := nis
+
+ aux := nis_hash
+
++headers := $(wildcard rpcsvc/*.[hx])
+ distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
+- nisplus-parser.h nis_xdr.h nss \
+- $(wildcard rpcsvc/*.[hx])
++ nisplus-parser.h nis_xdr.h nss
+
+ # These are the databases available for the nis (and perhaps later nisplus)
+ # service. This must be a superset of the services in nss.
+--
+1.7.5.4
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch b/multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch
new file mode 100644
index 000000000..11f087cb7
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-revert-4768ae77.patch
@@ -0,0 +1,37 @@
+diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c
+--- glibc-orig//resolv/res_send.c 2011-06-10 18:59:03.041436996 +1000
++++ glibc/resolv/res_send.c 2011-06-10 19:08:09.379309323 +1000
+@@ -549,7 +549,7 @@
+ ns, ansp, ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ } else {
+ /* Use datagrams. */
+@@ -559,7 +559,7 @@
+ ansp2, nansp2, resplen2);
+ if (n < 0)
+ return (-1);
+- if (n == 0 && (buf2 == NULL || *resplen2 == 0))
++ if (n == 0)
+ goto next_ns;
+ if (v_circuit)
+ // XXX Check whether both requests failed or
+@@ -1275,14 +1275,10 @@
+ (*thisresplenp > *thisanssizp)
+ ? *thisanssizp : *thisresplenp);
+
+- if (recvresp1 || (buf2 != NULL && recvresp2)) {
+- *resplen2 = 0;
++ if (recvresp1 || (buf2 != NULL && recvresp2))
+ return resplen;
+- }
+ if (buf2 != NULL)
+ {
+- /* No data from the first reply. */
+- resplen = 0;
+ /* We are waiting for a possible second reply. */
+ if (hp->id == anhp->id)
+ recvresp1 = 1;
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch b/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch
new file mode 100644
index 000000000..808cf8d7c
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch
@@ -0,0 +1,27 @@
+From 0c95ab64cb4ec0d22bb222647d9d20c7b4903e38 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Fri, 7 Oct 2011 09:31:27 +0200
+Subject: [PATCH] Horrible workaround for horribly broken software
+
+---
+ elf/rtld.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 978c609..8422b9f 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -1393,7 +1393,9 @@ of this helper program; chances are you did not intend to run this program.\n\
+ char *copy = malloc (len);
+ if (copy == NULL)
+ _dl_fatal_printf ("out of memory\n");
+- l->l_libname->name = l->l_name = memcpy (copy, dsoname, len);
++ l->l_libname->name = memcpy (copy, dsoname, len);
++ if (GLRO(dl_debug_mask))
++ l->l_name = copy;
+ }
+
+ /* Add the vDSO to the object list. */
+--
+1.7.3.4
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-math64crash.patch b/multilib-testing/lib32-glibc/glibc-2.15-math64crash.patch
new file mode 100644
index 000000000..d315bf266
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-math64crash.patch
@@ -0,0 +1,184 @@
+diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
+index be68903..a032da8 100644
+--- a/sysdeps/x86_64/fpu/multiarch/Makefile
++++ b/sysdeps/x86_64/fpu/multiarch/Makefile
+@@ -1,5 +1,5 @@
+ ifeq ($(subdir),math)
+-libm-sysdep_routines += s_floor-c s_ceil-c s_floorf-c s_ceilf-c \
++libm-sysdep_routines += s_floorf-c s_ceilf-c \
+ s_rint-c s_rintf-c s_nearbyint-c s_nearbyintf-c
+
+ ifeq ($(have-mfma4),yes)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c b/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
+deleted file mode 100644
+index 6a5ea3f..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
++++ /dev/null
+@@ -1,2 +0,0 @@
+-#define __ceil __ceil_c
+-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil.S b/sysdeps/x86_64/fpu/multiarch/s_ceil.S
+deleted file mode 100644
+index d0f8da3..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceil.S
++++ /dev/null
+@@ -1,40 +0,0 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+- Contributed by Ulrich Drepper <drepper@gmail.come>, 2011.
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-#include <machine/asm.h>
+-#include <init-arch.h>
+-
+-
+-ENTRY(__ceil)
+- .type __ceil, @gnu_indirect_function
+- call __get_cpu_features@plt
+- movq %rax, %rdx
+- leaq __ceil_sse41(%rip), %rax
+- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx)
+- jnz 2f
+- leaq __ceil_c(%rip), %rax
+-2: ret
+-END(__ceil)
+-weak_alias (__ceil, ceil)
+-
+-
+-ENTRY(__ceil_sse41)
+- roundsd $2, %xmm0, %xmm0
+- ret
+-END(__ceil_sse41)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c b/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
+deleted file mode 100644
+index 68733b6..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
++++ /dev/null
+@@ -1,3 +0,0 @@
+-#undef __floor
+-#define __floor __floor_c
+-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor.S b/sysdeps/x86_64/fpu/multiarch/s_floor.S
+deleted file mode 100644
+index 514ea95..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_floor.S
++++ /dev/null
+@@ -1,40 +0,0 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+- Contributed by Ulrich Drepper <drepper@gmail.come>, 2011.
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-#include <machine/asm.h>
+-#include <init-arch.h>
+-
+-
+-ENTRY(__floor)
+- .type __floor, @gnu_indirect_function
+- call __get_cpu_features@plt
+- movq %rax, %rdx
+- leaq __floor_sse41(%rip), %rax
+- testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1(%rdx)
+- jnz 2f
+- leaq __floor_c(%rip), %rax
+-2: ret
+-END(__floor)
+-weak_alias (__floor, floor)
+-
+-
+-ENTRY(__floor_sse41)
+- roundsd $1, %xmm0, %xmm0
+- ret
+-END(__floor_sse41)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+deleted file mode 100644
+index 1ba9dbc..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c
++++ /dev/null
+@@ -1,31 +0,0 @@
+-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
+-# include <init-arch.h>
+-# include <math.h>
+-# undef NAN
+-
+-extern double __cos_sse2 (double);
+-extern double __sin_sse2 (double);
+-extern double __cos_avx (double);
+-extern double __sin_avx (double);
+-# ifdef HAVE_FMA4_SUPPORT
+-extern double __cos_fma4 (double);
+-extern double __sin_fma4 (double);
+-# else
+-# undef HAS_FMA4
+-# define HAS_FMA4 0
+-# define __cos_fma4 ((void *) 0)
+-# define __sin_fma4 ((void *) 0)
+-# endif
+-
+-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2);
+-weak_alias (__cos, cos)
+-
+-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2);
+-weak_alias (__sin, sin)
+-
+-# define __cos __cos_sse2
+-# define __sin __sin_sse2
+-#endif
+-
+-
+-#include <sysdeps/ieee754/dbl-64/s_sin.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+deleted file mode 100644
+index 8f6601e..0000000
+--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c
++++ /dev/null
+@@ -1,21 +0,0 @@
+-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
+-# include <init-arch.h>
+-# include <math.h>
+-
+-extern double __tan_sse2 (double);
+-extern double __tan_avx (double);
+-# ifdef HAVE_FMA4_SUPPORT
+-extern double __tan_fma4 (double);
+-# else
+-# undef HAS_FMA4
+-# define HAS_FMA4 0
+-# define __tan_fma4 ((void *) 0)
+-# endif
+-
+-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2);
+-
+-# define tan __tan_sse2
+-#endif
+-
+-
+-#include <sysdeps/ieee754/dbl-64/s_tan.c>
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch b/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch
new file mode 100644
index 000000000..f532b95e8
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch
@@ -0,0 +1,229 @@
+diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000
+@@ -137,7 +137,6 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 18f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
+ movl %ebp, %edx
+ xorl %esi, %esi
+@@ -151,9 +150,6 @@ __pthread_cond_wait:
+ sete 16(%esp)
+ je 19f
+
+- cmpl $-EAGAIN, %eax
+- je 91f
+-
+ /* Normal and PI futexes dont mix. Use normal futex functions only
+ if the kernel does not support the PI futex functions. */
+ cmpl $-ENOSYS, %eax
+@@ -398,78 +394,6 @@ __pthread_cond_wait:
+ #endif
+ call __lll_unlock_wake
+ jmp 11b
+-
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+-
+- /* Get internal lock. */
+- movl $1, %edx
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %edx, (%ebx)
+-#else
+- cmpxchgl %edx, cond_lock(%ebx)
+-#endif
+- jz 92f
+-
+-#if cond_lock == 0
+- movl %ebx, %edx
+-#else
+- leal cond_lock(%ebx), %edx
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_lock_wait
+-
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- addl $1, cond_futex(%ebx)
+- movl cond_futex(%ebx), %ebp
+-
+- /* Unlock. */
+- LOCK
+-#if cond_lock == 0
+- subl $1, (%ebx)
+-#else
+- subl $1, cond_lock(%ebx)
+-#endif
+- je 93f
+-#if cond_lock == 0
+- movl %ebx, %eax
+-#else
+- leal cond_lock(%ebx), %eax
+-#endif
+-#if (LLL_SHARED-LLL_PRIVATE) > 255
+- xorl %ecx, %ecx
+-#endif
+- cmpl $-1, dep_mutex(%ebx)
+- setne %cl
+- subl $1, %ecx
+- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+-#if LLL_PRIVATE != 0
+- addl $LLL_PRIVATE, %ecx
+-#endif
+- call __lll_unlock_wake
+-
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorl %ecx, %ecx
+- movl dep_mutex(%ebx), %edi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -642,10 +566,6 @@ __condvar_w_cleanup:
+ .long .LcleanupEND-.Lsub_cond_futex
+ .long __condvar_w_cleanup-.LSTARTCODE
+ .uleb128 0
+- .long .LcleanupSTART2-.LSTARTCODE
+- .long .LcleanupEND2-.LcleanupSTART2
+- .long __condvar_w_cleanup-.LSTARTCODE
+- .uleb128 0
+ .long .LcallUR-.LSTARTCODE
+ .long .LENDCODE-.LcallUR
+ .long 0
+Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
+diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000
+@@ -23,7 +23,6 @@
+ #include <lowlevelcond.h>
+ #include <tcb-offsets.h>
+ #include <pthread-pi-defines.h>
+-#include <pthread-errnos.h>
+
+ #include <kernel-features.h>
+
+@@ -137,14 +136,11 @@ __pthread_cond_wait:
+ cmpl $PI_BIT, %eax
+ jne 61f
+
+-90:
+ movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
+ movl $SYS_futex, %eax
+ syscall
+
+ movl $1, %r8d
+- cmpq $-EAGAIN, %rax
+- je 91f
+ #ifdef __ASSUME_REQUEUE_PI
+ jmp 62f
+ #else
+@@ -331,70 +327,6 @@ __pthread_cond_wait:
+
+ 13: movq %r10, %rax
+ jmp 14b
+-
+-91:
+-.LcleanupSTART2:
+- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
+- call it again. */
+- movq 8(%rsp), %rdi
+-
+- /* Get internal lock. */
+- movl $1, %esi
+- xorl %eax, %eax
+- LOCK
+-#if cond_lock == 0
+- cmpxchgl %esi, (%rdi)
+-#else
+- cmpxchgl %esi, cond_lock(%rdi)
+-#endif
+- jz 92f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- cmpq $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- callq __lll_lock_wait
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-92:
+- /* Increment the cond_futex value again, so it can be used as a new
+- expected value. */
+- incl cond_futex(%rdi)
+- movl cond_futex(%rdi), %edx
+-
+- /* Release internal lock. */
+- LOCK
+-#if cond_lock == 0
+- decl (%rdi)
+-#else
+- decl cond_lock(%rdi)
+-#endif
+- jz 93f
+-
+-#if cond_lock != 0
+- addq $cond_lock, %rdi
+-#endif
+- cmpq $-1, dep_mutex-cond_lock(%rdi)
+- movl $LLL_PRIVATE, %eax
+- movl $LLL_SHARED, %esi
+- cmovne %eax, %esi
+- /* The call preserves %rdx. */
+- callq __lll_unlock_wake
+-#if cond_lock != 0
+- subq $cond_lock, %rdi
+-#endif
+-93:
+- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
+- xorq %r10, %r10
+- movq dep_mutex(%rdi), %r8
+- leaq cond_futex(%rdi), %rdi
+- jmp 90b
+-.LcleanupEND2:
+-
+ .size __pthread_cond_wait, .-__pthread_cond_wait
+ versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2)
+@@ -547,15 +479,11 @@ __condvar_cleanup1:
+ .uleb128 .LcleanupSTART-.LSTARTCODE
+ .uleb128 .LcleanupEND-.LcleanupSTART
+ .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
+- .uleb128 .LcleanupSTART2-.LSTARTCODE
+- .uleb128 .LcleanupEND2-.LcleanupSTART2
+- .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
++ .uleb128 0
+ .uleb128 .LcallUR-.LSTARTCODE
+ .uleb128 .LENDCODE-.LcallUR
+ .uleb128 0
+- .uleb128 0
++ .uleb128 0
+ .Lcstend:
+
+
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej
diff --git a/multilib-testing/lib32-glibc/glibc-__i686.patch b/multilib-testing/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/multilib-testing/lib32-glibc/lib32-glibc.conf b/multilib-testing/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib-testing/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/multilib-testing/lib32-gtk2/PKGBUILD b/multilib-testing/lib32-gtk2/PKGBUILD
new file mode 100644
index 000000000..c941bab84
--- /dev/null
+++ b/multilib-testing/lib32-gtk2/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 62107 2012-01-16 01:55:04Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=gtk2
+pkgname=lib32-$_pkgbasename
+pkgver=2.24.8
+pkgrel=2
+pkgdesc="The GTK+ Toolkit (v2) (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+install=gtk2.install
+depends=(lib32-{'atk>=1.30.0','pango>=1.28.0','cairo>=1.10.0','gdk-pixbuf2>=2.22.1'}
+ lib32-lib{'cups>=1.4.4',xcursor,'xrandr>=1.3','xi>=1.3',xinerama,xcomposite,xdamage}
+ $_pkgbasename)
+makedepends=('pkgconfig' 'gcc-multilib')
+options=('!libtool' '!docs')
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${pkgver}.tar.xz
+ xid-collision-debug.patch
+ gtk-modules-32.patch)
+sha256sums=('8a3b29f667933cf52eea2db7b066723edbc80443ca9c75b7cd7cbe8c8b90b93c'
+ 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+ '2effb13404442ae266d4c663347e88cd1ca19e9a83b452da1743bac16af9c7b0')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gtk+-${pkgver}"
+ patch -Np1 -i "${srcdir}/xid-collision-debug.patch"
+ patch -p1 -i ${srcdir}/gtk-modules-32.patch
+
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libdir=/usr/lib32 \
+ --with-xinput=yes
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gtk-query-immodules-2.0 gtk-query-immodules-2.0-32
+ rm -f gtk-builder-convert gtk-demo gtk-update-icon-cache
+}
diff --git a/multilib-testing/lib32-gtk2/gtk-modules-32.patch b/multilib-testing/lib32-gtk2/gtk-modules-32.patch
new file mode 100644
index 000000000..a2530c3bf
--- /dev/null
+++ b/multilib-testing/lib32-gtk2/gtk-modules-32.patch
@@ -0,0 +1,12 @@
+diff -ur gtk+-2.20.1/gtk/gtkrc.c gtk+-2.20.1-32/gtk/gtkrc.c
+--- gtk+-2.20.1/gtk/gtkrc.c 2010-05-03 01:28:21.000000000 +0200
++++ gtk+-2.20.1-32/gtk/gtkrc.c 2010-08-26 07:22:42.316920033 +0200
+@@ -450,7 +450,7 @@
+ if (im_module_file)
+ result = g_strdup (im_module_file);
+ else
+- result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL);
++ result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules-32", NULL);
+ }
+
+ return result;
diff --git a/multilib-testing/lib32-gtk2/gtk2.install b/multilib-testing/lib32-gtk2/gtk2.install
new file mode 100644
index 000000000..49f86f550
--- /dev/null
+++ b/multilib-testing/lib32-gtk2/gtk2.install
@@ -0,0 +1,16 @@
+post_install() {
+ GTK_PATH=/usr/lib32/gtk-2.0 usr/bin/gtk-query-immodules-2.0-32 > etc/gtk-2.0/gtk.immodules-32
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f etc/gtk-2.0/gtk.immodules-32 &>/dev/null
+ rm -f etc/gtk-2.0/gdk-pixbuf.loaders-32 &>/dev/null
+}
diff --git a/multilib-testing/lib32-gtk2/xid-collision-debug.patch b/multilib-testing/lib32-gtk2/xid-collision-debug.patch
new file mode 100644
index 000000000..d61238c3b
--- /dev/null
+++ b/multilib-testing/lib32-gtk2/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+ if (!display_x11->xid_ht)
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+-
++/*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+-
++*/
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+
diff --git a/multilib-testing/lib32-libxcb/PKGBUILD b/multilib-testing/lib32-libxcb/PKGBUILD
new file mode 100644
index 000000000..42d8435a5
--- /dev/null
+++ b/multilib-testing/lib32-libxcb/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 62186 2012-01-17 19:44:58Z bluewind $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxcb
+pkgname=lib32-$_pkgbasename
+pkgver=1.8
+pkgrel=1
+pkgdesc="X11 client-side library (32-bit)"
+arch=(x86_64)
+url="http://xcb.freedesktop.org/"
+depends=('xcb-proto>=1.7' 'lib32-libxdmcp' 'lib32-libxau'
+ $_pkgbasename)
+makedepends=('pkgconfig' 'libxslt' 'python2' 'gcc-multilib'
+ 'autoconf')
+options=('!libtool')
+license=('custom')
+source=(${url}/dist/${_pkgbasename}-${pkgver}.tar.bz2
+ libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('18b76759d5bbb863777f37bf3aec23ebaa31d5be'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libxcb-1.1-no-pthread-stubs.patch"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ PYTHON=/usr/bin/python2 ./autogen.sh --prefix=/usr --enable-xinput --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch b/multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
new file mode 100644
index 000000000..f17de1b1d
--- /dev/null
+++ b/multilib-testing/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -0,0 +1,12 @@
+diff -up libxcb-1.1/configure.ac.pthread-stubs libxcb-1.1/configure.ac
+--- libxcb-1.1/configure.ac.pthread-stubs 2007-11-04 18:17:11.000000000 -0500
++++ libxcb-1.1/configure.ac 2007-11-12 10:27:06.000000000 -0500
+@@ -31,7 +31,7 @@ AC_SUBST(HTML_CHECK_RESULT)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
+-NEEDED="pthread-stubs xau >= 0.99.2"
++NEEDED="xau >= 0.99.2"
+ PKG_CHECK_MODULES(NEEDED, $NEEDED)
+
+ have_xdmcp="no"
diff --git a/multilib-testing/lib32-pango/PKGBUILD b/multilib-testing/lib32-pango/PKGBUILD
new file mode 100644
index 000000000..e0c677b12
--- /dev/null
+++ b/multilib-testing/lib32-pango/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 62109 2012-01-16 01:55:13Z heftig $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+# Maintainer: Biru Ionut <ionut@archlinux.ro>
+_pkgbasename=pango
+pkgname=lib32-$_pkgbasename
+pkgver=1.29.4
+pkgrel=2
+pkgdesc="A library for layout and rendering of text (32-bit)"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-glib2>=2.25.15' 'lib32-cairo>=1.10.0' 'lib32-libxft>=2.1.14'
+ 'lib32-freetype2>=2.4.2' $_pkgbasename)
+makedepends=("gcc-multilib")
+options=('!libtool' '!emptydirs')
+install=pango.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/1.29/${_pkgbasename}-${pkgver}.tar.xz
+ pango-modules-conffile.patch)
+url="http://www.pango.org/"
+sha256sums=('7ae8d1953e6098a2706df58c1f84555c06ace7006bb34c0e54ab9acd98c1127f'
+ '4a178b60dd420ae53baeabbecfaaeca4070a4b777b2b3f36d137cd70b5a270c3')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -p0 < ${srcdir}/pango-modules-conffile.patch
+ # No libthai support yet
+ ./configure --prefix=/usr --libdir=/usr/lib32 --sysconfdir=/etc \
+ --localstatedir=/var --with-included-modules=basic-fc \
+ --with-dynamic-modules=arabic-fc,arabic-lang,basic-fc,basic-win32,basic-x,basic-atsui,hangul-fc,hebrew-fc,indic-fc,indic-lang,khmer-fc,syriac-fc,tibetan-fc \
+ --disable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "$pkgdir"/etc
+ rm -rf "$pkgdir"/usr/{bin/pango-view,share,include}
+ mv "$pkgdir"/usr/bin/pango-querymodules "$pkgdir"/usr/bin/pango-querymodules-32
+}
diff --git a/multilib-testing/lib32-pango/pango-modules-conffile.patch b/multilib-testing/lib32-pango/pango-modules-conffile.patch
new file mode 100644
index 000000000..a959cf1c8
--- /dev/null
+++ b/multilib-testing/lib32-pango/pango-modules-conffile.patch
@@ -0,0 +1,20 @@
+--- pango/modules.c.orig 2010-08-26 06:45:49.329259966 +0200
++++ pango/modules.c 2010-08-26 06:46:13.786685177 +0200
+@@ -529,7 +529,7 @@
+
+ if (!file_str)
+ file_str = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+
+ files = pango_split_file_list (file_str);
+@@ -640,7 +640,7 @@
+ if (!no_module_warning)
+ {
+ gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+ g_critical ("No modules found:\n"
+ "No builtin or dynamically loaded modules were found.\n"
diff --git a/multilib-testing/lib32-pango/pango.install b/multilib-testing/lib32-pango/pango.install
new file mode 100644
index 000000000..173b6820f
--- /dev/null
+++ b/multilib-testing/lib32-pango/pango.install
@@ -0,0 +1,21 @@
+# arg 1: the new package version
+post_install() {
+ # we need to ldconfig first, in case xfree86's libs aren't
+ # in ld.so.cache yet
+ sbin/ldconfig -r .
+ usr/bin/pango-querymodules-32 >etc/pango/pango.modules-32
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ -f etc/pango/pango.modules-32 ]; then
+ rm etc/pango/pango.modules-32
+ fi
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ rm etc/pango/pango.modules-32
+}
diff --git a/multilib-testing/libtool-multilib/PKGBUILD b/multilib-testing/libtool-multilib/PKGBUILD
new file mode 100644
index 000000000..54b26abc4
--- /dev/null
+++ b/multilib-testing/libtool-multilib/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 62110 2012-01-16 01:55:19Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuild with each new gcc version
+
+pkgbase=libtool-multilib
+pkgname=(libtool-multilib lib32-libltdl)
+pkgver=2.4.2
+pkgrel=2.1
+pkgdesc="A generic library support script for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+_gccver=4.6.2
+makedepends=("gcc-multilib=$_gccver")
+options=('!libtool')
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz{,.sig})
+md5sums=('2ec8997e0c07249eb4cbd072417d70fe'
+ '1e6ba57420c82c663c85e745d11c7eed')
+
+build() {
+ cd "$srcdir"
+
+ rm -rf libtool-64 libtool-32
+ mv libtool-$pkgver libtool-64
+ cp -a libtool-64 libtool-32
+
+ msg2 "Building libtool-64..."
+ cd "$srcdir/libtool-64"
+ ./configure --prefix=/usr
+ make
+
+ msg2 "Building libtool-32..."
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+
+ cd "$srcdir/libtool-32"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+check() {
+ cd "$srcdir/libtool-64"
+ make check
+ cd "$srcdir/libtool-32"
+ make check
+}
+
+package_libtool-multilib() {
+ depends=('sh' "libltdl=$pkgver" 'tar' "gcc-multilib=$_gccver" "lib32-libltdl=$pkgver")
+ groups=('multilib-devel')
+ install=libtool.install
+ provides=("libtool=$pkgver-$pkgrel")
+ conflicts=(libtool)
+
+ cd "$srcdir/libtool-64"
+ make DESTDIR=${pkgdir} install-binSCRIPTS install-man install-info \
+ install-data-local
+ rm -rf ${pkgdir}/usr/share/libtool/libltdl/
+}
+
+package_lib32-libltdl() {
+ pkgdesc="A system independent dlopen wrapper for GNU libtool (32-bit)"
+ depends=(lib32-glibc libltdl)
+ replaces=(lib32-libtool)
+ provides=("lib32-libtool=$pkgver-$pkgrel")
+ conflicts=(lib32-libtool)
+
+ cd "$srcdir/libtool-32"
+ make DESTDIR="$pkgdir" install-libLTLIBRARIES
+}
diff --git a/multilib-testing/libtool-multilib/libtool.install b/multilib-testing/libtool-multilib/libtool.install
new file mode 100644
index 000000000..424c8cb88
--- /dev/null
+++ b/multilib-testing/libtool-multilib/libtool.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(libtool.info libtool.info-1 libtool.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-testing/nspluginwrapper/PKGBUILD b/multilib-testing/nspluginwrapper/PKGBUILD
new file mode 100644
index 000000000..7e88d8712
--- /dev/null
+++ b/multilib-testing/nspluginwrapper/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 62111 2012-01-16 01:55:23Z heftig $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=nspluginwrapper
+pkgver=1.4.4
+pkgrel=2.1
+pkgdesc="Cross-platform NPAPI compatible plugin viewer"
+arch=('i686' 'x86_64')
+url="http://nspluginwrapper.davidben.net/"
+license=('GPL')
+depends=(
+ 'curl'
+ 'libxt' 'lib32-libxt'
+ 'gcc-libs' 'lib32-gcc-libs'
+ 'gtk2' 'lib32-gtk2'
+)
+makedepends=('gcc-multilib')
+install="install"
+source=(http://nspluginwrapper.davidben.net/download/$pkgname-$pkgver.tar.gz
+ 'fix_missing_lib.patch')
+md5sums=('36f3e290fc4ce56f65ee695078961188'
+ 'd40ad2f55d9989e04e3ef0cf4326b1df')
+
+if [[ $CARCH == i686 ]]; then
+ # Strip lib32 etc. on i686
+ depends=(${depends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*-multilib*/})
+ optdepends=(${optdepends[@]/*32-*/})
+fi
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p0 -i "$srcdir/fix_missing_lib.patch"
+
+ configure_args=""
+ if [[ $CARCH == x86_64 ]]; then
+ configure_args="$configure_args --with-lib32=lib32 --with-lib64=lib"
+ fi
+
+ ./configure $configure_args
+ make -j1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make -j1 DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-testing/nspluginwrapper/fix_missing_lib.patch b/multilib-testing/nspluginwrapper/fix_missing_lib.patch
new file mode 100644
index 000000000..f239053f1
--- /dev/null
+++ b/multilib-testing/nspluginwrapper/fix_missing_lib.patch
@@ -0,0 +1,11 @@
+--- Makefile 2012-01-15 13:25:28.922775770 +0100
++++ Makefile.new 2012-01-15 13:25:09.185815643 +0100
+@@ -142,7 +142,7 @@
+ npplayer_LDFLAGS = $(LDFLAGS)
+ npplayer_LDFLAGS += $(libpthread_LDFLAGS)
+ npplayer_LIBS = $(GTK_LIBS) $(GLIB_LIBS) $(CURL_LIBS) $(X_LIBS)
+-npplayer_LIBS += $(libpthread_LIBS) $(libsocket_LIBS)
++npplayer_LIBS += $(libpthread_LIBS) $(libsocket_LIBS) -ldl
+
+ libnoxshm_LIBRARY = libnoxshm.so
+ libnoxshm_RAWSRCS = libnoxshm.c
diff --git a/multilib-testing/nspluginwrapper/install b/multilib-testing/nspluginwrapper/install
new file mode 100644
index 000000000..78e196fdb
--- /dev/null
+++ b/multilib-testing/nspluginwrapper/install
@@ -0,0 +1,5 @@
+post_upgrade() {
+ for i in `nspluginwrapper -l | grep -v "^ "`; do
+ /usr/bin/nspluginwrapper -u "$i"
+ done
+}
diff --git a/multilib-testing/q4wine/PKGBUILD b/multilib-testing/q4wine/PKGBUILD
new file mode 100644
index 000000000..6bcafffa1
--- /dev/null
+++ b/multilib-testing/q4wine/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 62112 2012-01-16 01:55:29Z heftig $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Chris Giles <Chris.G.27 (at) Gmail.com>
+
+pkgname=q4wine
+pkgver=0.121
+pkgrel=3
+pkgdesc="A Qt4 GUI for Wine"
+arch=("i686" "x86_64")
+url="http://sourceforge.net/projects/${pkgname}/"
+license=("GPL3")
+depends=("qt" "wine" "sqlite3" "which" "icoutils")
+makedepends=("cmake")
+optdepends=("winetricks" "fuseiso")
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver/_/-}.tar.bz2)
+md5sums=('2de5de62f57ba6b26247198df339d81a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_WINETRIKS=ON \
+ -DLIBS_ENTRY_PATH=/usr/lib/$pkgname .
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/multilib-testing/q4wine/q4wine.desktop b/multilib-testing/q4wine/q4wine.desktop
new file mode 100644
index 000000000..2b1415848
--- /dev/null
+++ b/multilib-testing/q4wine/q4wine.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Name=Q4Wine
+GenericName=A Qt4 GUI for Wine
+Comment=A Qt4 GUI for Wine
+#Version=0.1
+Type=Application
+Categories=KDE;Qt;Settings
+Terminal=false
+Encoding=UTF-8
+Icon=wine
+Exec=q4wine
+#ServiceTypes=inode/directory
+#Actions=Create;
+#X-KDE-Submenu=
+#X-KDE-Priority=TopLevel
+#X-KDE-Icon=tgz
+X-KDE-StartupNotify=true
+#X-DCOP-ServiceType=Unique
diff --git a/multilib-testing/wine/PKGBUILD b/multilib-testing/wine/PKGBUILD
new file mode 100644
index 000000000..ef3a5008f
--- /dev/null
+++ b/multilib-testing/wine/PKGBUILD
@@ -0,0 +1,145 @@
+# $Id: PKGBUILD 62113 2012-01-16 01:55:33Z heftig $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=wine
+pkgver=1.3.37
+pkgrel=1.1
+
+_pkgbasever=${pkgver/rc/-rc}
+
+source=(http://ibiblio.org/pub/linux/system/emulators/$pkgname/$pkgname-$_pkgbasever.tar.bz2)
+md5sums=('4bf25be22c130765283d9953d03b65c4')
+
+pkgdesc="A compatibility layer for running Windows programs"
+url="http://www.winehq.com"
+arch=(i686 x86_64)
+license=(LGPL)
+install=wine.install
+
+depends=(
+ fontconfig lib32-fontconfig
+ mesa lib32-mesa
+ libxcursor lib32-libxcursor
+ libxrandr lib32-libxrandr
+ libxdamage lib32-libxdamage
+ libxi lib32-libxi
+ gettext lib32-gettext
+ desktop-file-utils
+)
+
+makedepends=(autoconf ncurses bison perl fontforge flex prelink
+ 'gcc>=4.5.0-2' 'gcc-multilib>=4.5.0-2'
+ giflib lib32-giflib
+ libpng lib32-libpng
+ libxinerama lib32-libxinerama
+ libxcomposite lib32-libxcomposite
+ libxmu lib32-libxmu
+ libxxf86vm lib32-libxxf86vm
+ libxml2 lib32-libxml2
+ libldap lib32-libldap
+ lcms lib32-lcms
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ v4l-utils lib32-v4l-utils
+ alsa-lib lib32-alsa-lib
+ oss
+)
+
+optdepends=(
+ giflib lib32-giflib
+ libpng lib32-libpng
+ libldap lib32-libldap
+ lcms lib32-lcms
+ libxml2 lib32-libxml2
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ v4l-utils lib32-v4l-utils
+ libpulse lib32-libpulse
+ alsa-plugins lib32-alsa-plugins
+ alsa-lib lib32-alsa-lib
+ oss cups
+)
+
+if [[ $CARCH == i686 ]]; then
+ # Strip lib32 etc. on i686
+ depends=(${depends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*-multilib*/})
+ optdepends=(${optdepends[@]/*32-*/})
+else
+ provides=("bin32-wine=$pkgver" "wine-wow64=$pkgver")
+ conflicts=('bin32-wine' 'wine-wow64')
+ replaces=('bin32-wine')
+fi
+
+build() {
+ cd "$srcdir"
+
+ # Allow ccache to work
+ mv $pkgname-$_pkgbasever $pkgname
+
+ # Get rid of old build dirs
+ rm -rf $pkgname-{32,64}-build
+ mkdir $pkgname-32-build
+
+ # These additional CFLAGS solve FS#27662
+ export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/} -D_FORTIFY_SOURCE=0"
+ export CXXFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/} -D_FORTIFY_SOURCE=0"
+
+ if [[ $CARCH == x86_64 ]]; then
+ msg2 "Building Wine-64..."
+
+ mkdir $pkgname-64-build
+ cd "$srcdir/$pkgname-64-build"
+ ../$pkgname/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib \
+ --with-x \
+ --enable-win64
+
+ make
+
+ _wine32opts=(
+ --libdir=/usr/lib32
+ --with-wine64="$srcdir/$pkgname-64-build"
+ )
+
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ fi
+
+ msg2 "Building Wine-32..."
+ cd "$srcdir/$pkgname-32-build"
+ ../$pkgname/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-x \
+ "${_wine32opts[@]}"
+
+ # These additional CFLAGS solve FS#27560
+ make CFLAGS+="-mstackrealign" CXXFLAGS+="-mstackrealign"
+}
+
+package() {
+ msg2 "Packaging Wine-32..."
+ cd "$srcdir/$pkgname-32-build"
+
+ if [[ $CARCH == i686 ]]; then
+ make prefix="$pkgdir/usr" install
+ else
+ make prefix="$pkgdir/usr" \
+ libdir="$pkgdir/usr/lib32" \
+ dlldir="$pkgdir/usr/lib32/wine" install
+
+ msg2 "Packaging Wine-64..."
+ cd "$srcdir/$pkgname-64-build"
+ make prefix="$pkgdir/usr" \
+ libdir="$pkgdir/usr/lib" \
+ dlldir="$pkgdir/usr/lib/wine" install
+ fi
+}
+
+# vim:set ts=8 sts=2 sw=2 et:
diff --git a/multilib-testing/wine/wine.install b/multilib-testing/wine/wine.install
new file mode 100644
index 000000000..0548b7ffd
--- /dev/null
+++ b/multilib-testing/wine/wine.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ #echo "This wine package is wow64 enabled. This means it can run 32bit/64bit Windows apps on x86_64."
+ #echo "If you are on x86_64, the default WINEARCH will be win64."
+ #echo "This will cause a lot of Windows applications to malfunction even if they usually work in wine."
+ #echo "Please create your ~/.wine with 'WINEARCH=win32 winecfg' if you are unsure and on x86_64."
+ #echo "See the Arch wiki on wine for more information."
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/multilib/gcc-multilib/gcc_pure64-multilib.patch b/multilib/gcc-multilib/gcc_pure64-multilib.patch
new file mode 100644
index 000000000..73df6b873
--- /dev/null
+++ b/multilib/gcc-multilib/gcc_pure64-multilib.patch
@@ -0,0 +1,24 @@
+diff -u -r gcc-4.6-20111223/gcc/config/i386/linux64.h gcc-4.6-20111223-pure64/gcc/config/i386/linux64.h
+--- gcc-4.6-20111223/gcc/config/i386/linux64.h 2011-09-08 11:12:35.000000000 +0200
++++ gcc-4.6-20111223-pure64/gcc/config/i386/linux64.h 2012-01-14 19:52:33.688573352 +0100
+@@ -63,7 +63,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"
+
+ #if TARGET_64BIT_DEFAULT
+ #define SPEC_32 "m32"
+diff -u -r gcc-4.6-20111223/gcc/config/i386/t-linux64 gcc-4.6-20111223-pure64/gcc/config/i386/t-linux64
+--- gcc-4.6-20111223/gcc/config/i386/t-linux64 2009-04-21 21:03:23.000000000 +0200
++++ gcc-4.6-20111223-pure64/gcc/config/i386/t-linux64 2012-01-14 19:50:27.346242617 +0100
+@@ -25,7 +25,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/nspluginwrapper/fix_missing_lib.patch b/multilib/nspluginwrapper/fix_missing_lib.patch
new file mode 100644
index 000000000..f239053f1
--- /dev/null
+++ b/multilib/nspluginwrapper/fix_missing_lib.patch
@@ -0,0 +1,11 @@
+--- Makefile 2012-01-15 13:25:28.922775770 +0100
++++ Makefile.new 2012-01-15 13:25:09.185815643 +0100
+@@ -142,7 +142,7 @@
+ npplayer_LDFLAGS = $(LDFLAGS)
+ npplayer_LDFLAGS += $(libpthread_LDFLAGS)
+ npplayer_LIBS = $(GTK_LIBS) $(GLIB_LIBS) $(CURL_LIBS) $(X_LIBS)
+-npplayer_LIBS += $(libpthread_LIBS) $(libsocket_LIBS)
++npplayer_LIBS += $(libpthread_LIBS) $(libsocket_LIBS) -ldl
+
+ libnoxshm_LIBRARY = libnoxshm.so
+ libnoxshm_RAWSRCS = libnoxshm.c
diff --git a/staging/abiword/PKGBUILD b/staging/abiword/PKGBUILD
new file mode 100644
index 000000000..68ff94733
--- /dev/null
+++ b/staging/abiword/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 146946 2012-01-19 14:59:03Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Maël Lavault <moimael@neuf.fr>
+
+pkgbase=abiword
+pkgname=('abiword' 'abiword-plugins')
+pkgver=2.8.6
+pkgrel=7
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.abisource.com"
+makedepends=('pkgconfig' 'asio' 'boost' 'fribidi' 'goffice' 'libwmf' 'wv' 'link-grammar' 'gtkmathview'
+ 'aiksaurus' 'libxslt' 'enchant' 'libots' 'libwpg' 'librsvg' 'loudmouth' 'libsoup')
+options=('!makeflags' '!libtool')
+source=("http://www.abisource.com/downloads/${pkgbase}/${pkgver}/source/${pkgbase}-${pkgver}.tar.gz"
+ 'compat_libwpg_0_9.patch'
+ 'abiword-2.8.6-no-undefined.patch'
+ 'abiword-2.8.6-libpng15.patch')
+md5sums=('f883b0a7f26229a9c66fd6a1a94381aa'
+ '09446a2ebba8288fc611e88f7cf17298'
+ '42e2614b6e0aad457d91f6ce20b6f225'
+ '40e370e7e88c5437140ef18037abfbd3')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/compat_libwpg_0_9.patch"
+ # fix a gcc 4.6.x build issue, patch from Fedora
+ patch -Np1 -i "${srcdir}/abiword-2.8.6-no-undefined.patch"
+ patch -Np0 -i "${srcdir}/abiword-2.8.6-libpng15.patch"
+
+ libtoolize --force
+ autoreconf
+
+ ./configure --prefix=/usr \
+ --enable-clipart \
+ --enable-templates \
+ --enable-collab-backend-xmpp \
+ --enable-collab-backend-tcp \
+ --enable-collab-backend-service \
+ --disable-collab-backend-sugar \
+ --enable-plugins --without-gnomevfs \
+ --with-gio \
+ --with-goffice \
+ --disable-static \
+ --with-psiconv-config=/nothere
+ make
+}
+
+package_abiword() {
+ pkgdesc="A fully-featured word processor"
+ depends=('fribidi' 'wv' 'goffice' 'librsvg' 'enchant' 'desktop-file-utils')
+ install=$pkgname.install
+ optdepends=('abiword-plugins')
+ conflicts=("abiword-plugins<${pkgver}-${pkgrel}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i plugins/Makefile \
+ -e 's/ collab / /' \
+ -e 's/ wpg / /' \
+ -e 's/ wmf / /' \
+ -e 's/ grammar / /' \
+ -e 's/ mathview / /' \
+ -e 's/ aiksaurus / /' \
+ -e 's/ latex / /' \
+ -e 's/ ots / /' \
+ -e 's/ wordperfect / /'
+ make DESTDIR="${pkgdir}" install
+}
+
+package_abiword-plugins() {
+ pkgdesc="Additional plugins for Abiword"
+ depends=("abiword=${pkgver}-${pkgrel}" 'loudmouth' 'libwpg' 'libwmf' 'link-grammar'
+ 'gtkmathview' 'aiksaurus' 'libxslt' 'libsoup' 'libots' 'libgsf')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/plugins"
+ for dir in collab wpg wmf grammar mathview aiksaurus latex ots wordperfect; do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+}
diff --git a/staging/abiword/abiword-2.8.6-libpng15.patch b/staging/abiword/abiword-2.8.6-libpng15.patch
new file mode 100644
index 000000000..7eded4c83
--- /dev/null
+++ b/staging/abiword/abiword-2.8.6-libpng15.patch
@@ -0,0 +1,100 @@
+$NetBSD: patch-plugins_bmp_xp_ie__impGraphic__BMP.cpp,v 1.1 2011/02/01 10:48:15 wiz Exp $
+
+Fix build with png-1.5.
+
+--- plugins/bmp/xp/ie_impGraphic_BMP.cpp.orig 2009-06-25 04:02:06.000000000 +0000
++++ plugins/bmp/xp/ie_impGraphic_BMP.cpp
+@@ -191,7 +191,10 @@ UT_Error IE_ImpGraphic_BMP::_convertGrap
+
+ /* Clean Up Memory Used */
+
+- FREEP(m_pPNGInfo->palette);
++ png_colorp palette;
++ int num_palette;
++ png_get_PLTE( m_pPNG, m_pPNGInfo, &palette, &num_palette );
++ FREEP(palette);
+ DELETEP(pBB);
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+
+@@ -313,7 +316,7 @@ UT_Error IE_ImpGraphic_BMP::Initialize_P
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+@@ -332,7 +335,7 @@ UT_Error IE_ImpGraphic_BMP::Initialize_P
+ UT_Error IE_ImpGraphic_BMP::Convert_BMP_Pallet(UT_ByteBuf* pBB)
+ {
+ /* Reset error handling for libpng */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+ return UT_ERROR;
+@@ -372,7 +375,7 @@ UT_Error IE_ImpGraphic_BMP::Initialize_P
+ UT_Error IE_ImpGraphic_BMP::Convert_BMP(UT_ByteBuf* pBB)
+ {
+ /* Reset error handling for libpng */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+ return UT_ERROR;
+
+$NetBSD: patch-plugins_garble_xp_abiword-garble-png.cpp,v 1.1 2011/02/01 10:48:15 wiz Exp $
+
+Fix build with png-1.5.
+
+--- plugins/garble/xp/abiword-garble-png.cpp.orig 2009-09-05 15:34:44.000000000 +0000
++++ plugins/garble/xp/abiword-garble-png.cpp
+@@ -79,7 +79,7 @@ bool abiword_document::garble_png( void*
+ png_set_strip_alpha( png_ptr );
+ png_set_interlace_handling( png_ptr );
+ png_set_bgr( png_ptr );
+- rowbytes = info_ptr->rowbytes;
++ rowbytes = png_get_rowbytes( png_ptr, info_ptr );
+ png_destroy_read_struct( &png_ptr, &info_ptr, NULL );
+ }
+
+$NetBSD: patch-af,v 1.12 2011/01/15 15:07:11 wiz Exp $
+
+Fix build with png-1.5.
+
+--- src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp.orig 2009-07-01 04:02:04.000000000 +0000
++++ src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp
+@@ -185,7 +185,7 @@ UT_Error IE_ImpGraphic_GdkPixbuf::import
+ /** needed for the stejmp context */
+ UT_Error IE_ImpGraphic_GdkPixbuf::_png_write(GdkPixbuf * pixbuf)
+ {
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ DELETEP(m_pPngBB);
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+@@ -446,7 +446,7 @@ UT_Error IE_ImpGraphic_GdkPixbuf::Initia
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+$NetBSD: patch-ae,v 1.21 2011/01/15 15:07:11 wiz Exp $
+
+Fix build with png-1.5.
+
+--- src/af/util/xp/ut_png.cpp.orig 2008-02-24 03:33:07.000000000 +0000
++++ src/af/util/xp/ut_png.cpp
+@@ -71,7 +71,7 @@ bool UT_PNG_getDimensions(const UT_ByteB
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_read_struct(&png_ptr, &info_ptr, static_cast<png_infopp>(NULL));
diff --git a/staging/abiword/abiword-2.8.6-no-undefined.patch b/staging/abiword/abiword-2.8.6-no-undefined.patch
new file mode 100644
index 000000000..c07000edb
--- /dev/null
+++ b/staging/abiword/abiword-2.8.6-no-undefined.patch
@@ -0,0 +1,21 @@
+diff -u -r abiword-2.8.6.orig/src/Makefile.am abiword-2.8.6/src/Makefile.am
+--- abiword-2.8.6.orig/src/Makefile.am 2009-09-09 15:11:01.000000000 +0200
++++ abiword-2.8.6/src/Makefile.am 2011-08-02 23:35:51.904761961 +0200
+@@ -107,7 +107,7 @@
+
+ AbiWord_LDFLAGS = \
+ $(DEPS_LIBS) \
+- --no-undefined \
++ -Wl,--no-undefined \
+ -avoid-version \
+ -export-dynamic \
+ -headerpad_max_install_names
+@@ -129,7 +129,7 @@
+
+ abiword_LDFLAGS = \
+ $(platform_ldflags) \
+- --no-undefined \
++ -Wl,--no-undefined \
+ -avoid-version \
+ -export-dynamic
+
diff --git a/staging/abiword/abiword.install b/staging/abiword/abiword.install
new file mode 100644
index 000000000..2eaa60550
--- /dev/null
+++ b/staging/abiword/abiword.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/staging/abiword/compat_libwpg_0_9.patch b/staging/abiword/compat_libwpg_0_9.patch
new file mode 100644
index 000000000..cf36e188e
--- /dev/null
+++ b/staging/abiword/compat_libwpg_0_9.patch
@@ -0,0 +1,371 @@
+diff -Nur abiword-2.8.6.orig//plugin-configure.m4 abiword-2.8.6/plugin-configure.m4
+--- abiword-2.8.6.orig//plugin-configure.m4 2010-06-13 14:17:27.000000000 -0700
++++ abiword-2.8.6/plugin-configure.m4 2010-12-06 13:59:43.083048588 -0800
+@@ -794,7 +794,7 @@
+ AC_SUBST([OPENXML_LIBS])
+
+
+-wpg_pkgs="$gsf_req libwpg-0.1 >= 0.1.0 libwpd-0.8 >= 0.8.0"
++wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0"
+ wpg_deps="no"
+
+ if test "$enable_wpg" != ""; then
+@@ -1497,8 +1497,8 @@
+ AC_SUBST([EML_LIBS])
+
+
+-wordperfect_pkgs="libwpd-0.8 >= 0.8.0 $gsf_req"
+-wordperfect_wps_pkgs='libwps-0.1 >= 0.1.0'
++wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
++wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0'
+ wordperfect_deps="no"
+
+ WORDPERFECT_CFLAGS=
+diff -Nur abiword-2.8.6.orig//plugins/wordperfect/plugin.m4 abiword-2.8.6/plugins/wordperfect/plugin.m4
+--- abiword-2.8.6.orig//plugins/wordperfect/plugin.m4 2010-05-30 07:50:46.000000000 -0700
++++ abiword-2.8.6/plugins/wordperfect/plugin.m4 2010-12-06 13:59:53.929715254 -0800
+@@ -1,6 +1,6 @@
+
+-wordperfect_pkgs="libwpd-0.8 >= 0.8.0 $gsf_req"
+-wordperfect_wps_pkgs='libwps-0.1 >= 0.1.0'
++wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
++wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0'
+ wordperfect_deps="no"
+
+ WORDPERFECT_CFLAGS=
+diff -Nur abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.cpp abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.cpp
+--- abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.cpp 2010-02-06 13:06:11.000000000 -0800
++++ abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.cpp 2010-12-06 13:59:53.926381921 -0800
+@@ -60,7 +60,7 @@
+
+ // Stream class
+
+-#include <libwpd/WPXStream.h>
++#include <libwpd-stream/libwpd-stream.h>
+
+ #include <gsf/gsf-input.h>
+ #include <gsf/gsf-infile.h>
+@@ -70,12 +70,7 @@
+ #include <libwps/libwps.h>
+ #endif
+
+-class AbiWordperfectInputStream :
+-#ifdef HAVE_LIBWPS
+- public WPSInputStream
+-#else
+- public WPXInputStream
+-#endif
++class AbiWordperfectInputStream : public WPXInputStream
+ {
+ public:
+ AbiWordperfectInputStream(GsfInput *input);
+@@ -86,7 +81,7 @@
+
+ virtual WPXInputStream * getDocumentOLEStream(const char * name);
+
+- virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
++ virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
+ virtual int seek(long offset, WPX_SEEK_TYPE seekType);
+ virtual long tell();
+ virtual bool atEOS();
+@@ -98,11 +93,7 @@
+ };
+
+ AbiWordperfectInputStream::AbiWordperfectInputStream(GsfInput *input) :
+-#ifdef HAVE_LIBWPS
+- WPSInputStream(),
+-#else
+- WPXInputStream(true),
+-#endif
++ WPXInputStream(),
+ m_input(input),
+ m_ole(NULL)
+ {
+@@ -117,9 +108,9 @@
+ g_object_unref(G_OBJECT(m_input));
+ }
+
+-const uint8_t * AbiWordperfectInputStream::read(size_t numBytes, size_t &numBytesRead)
++const unsigned char * AbiWordperfectInputStream::read(unsigned long numBytes, unsigned long &numBytesRead)
+ {
+- const uint8_t *buf = gsf_input_read(m_input, numBytes, NULL);
++ const unsigned char *buf = gsf_input_read(m_input, numBytes, NULL);
+
+ if (buf == NULL)
+ numBytesRead = 0;
+@@ -256,19 +247,12 @@
+ {
+ AbiWordperfectInputStream gsfInput(input);
+
+- WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput, true);
++ WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput);
+
+ switch (confidence)
+ {
+ case WPD_CONFIDENCE_NONE:
+- // libwpd > 0.7.1 reports POOR if the text file is plain text (that _could_ be a WP4x document)
+- // however, we'll let the text importer handle such cases
+- case WPD_CONFIDENCE_POOR:
+ return UT_CONFIDENCE_ZILCH;
+- case WPD_CONFIDENCE_LIKELY:
+- return UT_CONFIDENCE_SOSO;
+- case WPD_CONFIDENCE_GOOD:
+- return UT_CONFIDENCE_GOOD;
+ case WPD_CONFIDENCE_EXCELLENT:
+ return UT_CONFIDENCE_PERFECT;
+ default:
+@@ -328,7 +312,7 @@
+ UT_Error IE_Imp_WordPerfect::_loadFile(GsfInput * input)
+ {
+ AbiWordperfectInputStream gsfInput(input);
+- WPDResult error = WPDocument::parse(&gsfInput, static_cast<WPXHLListenerImpl *>(this));
++ WPDResult error = WPDocument::parse(&gsfInput, static_cast<WPXDocumentInterface *>(this), NULL);
+
+ if (error != WPD_OK)
+ {
+@@ -381,9 +365,9 @@
+ float marginLeft = 1.0f, marginRight = 1.0f;
+
+ if (propList["fo:margin-left"])
+- marginLeft = propList["fo:margin-left"]->getFloat();
++ marginLeft = propList["fo:margin-left"]->getDouble();
+ if (propList["fo:margin-right"])
+- marginRight = propList["fo:margin-right"]->getFloat();
++ marginRight = propList["fo:margin-right"]->getDouble();
+
+ if (marginLeft != m_leftPageMargin || marginRight != m_rightPageMargin /* || */
+ /* marginTop != m_marginBottom || marginBottom != m_marginBottom */ )
+@@ -456,15 +440,15 @@
+ float marginTop = 0.0f, marginBottom = 0.0f;
+ float marginLeft = 0.0f, marginRight = 0.0f, textIndent = 0.0f;
+ if (propList["fo:margin-top"])
+- marginTop = propList["fo:margin-top"]->getFloat();
++ marginTop = propList["fo:margin-top"]->getDouble();
+ if (propList["fo:margin-bottom"])
+- marginBottom = propList["fo:margin-bottom"]->getFloat();
++ marginBottom = propList["fo:margin-bottom"]->getDouble();
+ if (propList["fo:margin-left"])
+- marginLeft = propList["fo:margin-left"]->getFloat();
++ marginLeft = propList["fo:margin-left"]->getDouble();
+ if (propList["fo:margin-right"])
+- marginRight = propList["fo:margin-right"]->getFloat();
++ marginRight = propList["fo:margin-right"]->getDouble();
+ if (propList["fo:text-indent"])
+- textIndent = propList["fo:text-indent"]->getFloat();
++ textIndent = propList["fo:text-indent"]->getDouble();
+
+ m_topMargin = marginTop;
+ m_bottomMargin = marginBottom;
+@@ -487,7 +471,7 @@
+
+ float lineSpacing = 1.0f;
+ if (propList["fo:line-height"])
+- lineSpacing = propList["fo:line-height"]->getFloat();
++ lineSpacing = propList["fo:line-height"]->getDouble();
+
+ UT_String tmpBuffer;
+ UT_String_sprintf(tmpBuffer, "; margin-top:%.4fin; margin-bottom:%.4fin; margin-left:%.4fin; margin-right:%.4fin; text-indent:%.4fin; line-height:%.4f",
+@@ -504,7 +488,7 @@
+ propBuffer += tmpBuffer;
+ if (i()["style:position"])
+ {
+- UT_String_sprintf(tmpBuffer, "%.4fin", i()["style:position"]->getFloat());
++ UT_String_sprintf(tmpBuffer, "%.4fin", i()["style:position"]->getDouble());
+ propBuffer += tmpBuffer;
+ }
+
+@@ -640,9 +624,9 @@
+
+ // TODO: support spaceAfter
+ if (propList["fo:margin-left"])
+- marginLeft = propList["fo:margin-left"]->getFloat();
++ marginLeft = propList["fo:margin-left"]->getDouble();
+ if (propList["fo:margin-right"])
+- marginRight = propList["fo:margin-right"]->getFloat();
++ marginRight = propList["fo:margin-right"]->getDouble();
+
+ if (marginLeft != m_leftSectionMargin || marginRight != m_rightSectionMargin || m_sectionColumnsCount != columnsCount)
+ m_bSectionChanged = true;
+@@ -709,9 +693,9 @@
+ if (propList["style:num-format"])
+ listType = propList["style:num-format"]->getStr().cstr()[0];
+ if (propList["text:space-before"])
+- listLeftOffset = propList["text:space-before"]->getFloat();
++ listLeftOffset = propList["text:space-before"]->getDouble();
+ if (propList["text:min-label-width"])
+- listMinLabelWidth = propList["text:min-label-width"]->getFloat();
++ listMinLabelWidth = propList["text:min-label-width"]->getDouble();
+
+ if (!m_pCurrentListDefinition ||
+ m_pCurrentListDefinition->getOutlineHash() != listID ||
+@@ -749,9 +733,9 @@
+ if (propList["libwpd:level"])
+ level = propList["libwpd:level"]->getInt();
+ if (propList["text:space-before"])
+- listLeftOffset = propList["text:space-before"]->getFloat();
++ listLeftOffset = propList["text:space-before"]->getDouble();
+ if (propList["text:min-label-width"])
+- listMinLabelWidth = propList["text:min-label-width"]->getFloat();
++ listMinLabelWidth = propList["text:min-label-width"]->getDouble();
+
+ if (!m_pCurrentListDefinition || m_pCurrentListDefinition->getOutlineHash() != listID)
+ {
+@@ -871,10 +855,10 @@
+
+ UT_String_sprintf(tempBuffer, "margin-left:%.4fin; ", m_pCurrentListDefinition->getListLeftOffset(m_iCurrentListLevel)
+ + m_pCurrentListDefinition->getListMinLabelWidth(m_iCurrentListLevel)
+- - (propList["fo:text-indent"] ? propList["fo:text-indent"]->getFloat() : 0.0f));
++ - (propList["fo:text-indent"] ? propList["fo:text-indent"]->getDouble() : 0.0f));
+ propBuffer += tempBuffer;
+ UT_String_sprintf(tempBuffer, "text-indent:%.4fin", - m_pCurrentListDefinition->getListMinLabelWidth(m_iCurrentListLevel)
+- + (propList["fo:text-indent"] ? propList["fo:text-indent"]->getFloat() : 0.0f));
++ + (propList["fo:text-indent"] ? propList["fo:text-indent"]->getDouble() : 0.0f));
+ propBuffer += tempBuffer;
+
+ listAttribs[attribsCount++] = PT_PROPS_ATTRIBUTE_NAME;
+@@ -1263,7 +1247,7 @@
+ virtual UT_Error _loadFile(GsfInput * input)
+ {
+ AbiWordperfectInputStream gsfInput(input);
+- WPSResult error = WPSDocument::parse(&gsfInput, static_cast<WPXHLListenerImpl *>(this));
++ WPSResult error = WPSDocument::parse(&gsfInput, static_cast<WPXDocumentInterface *>(this));
+
+ if (error != WPS_OK)
+ {
+@@ -1302,18 +1286,12 @@
+ {
+ AbiWordperfectInputStream gsfInput(input);
+
+- WPSConfidence confidence = WPSDocument::isFileFormatSupported(&gsfInput, true);
++ WPSConfidence confidence = WPSDocument::isFileFormatSupported(&gsfInput);
+
+ switch (confidence)
+ {
+ case WPS_CONFIDENCE_NONE:
+ return UT_CONFIDENCE_ZILCH;
+- case WPS_CONFIDENCE_POOR:
+- return UT_CONFIDENCE_POOR;
+- case WPS_CONFIDENCE_LIKELY:
+- return UT_CONFIDENCE_SOSO;
+- case WPS_CONFIDENCE_GOOD:
+- return UT_CONFIDENCE_GOOD;
+ case WPS_CONFIDENCE_EXCELLENT:
+ return UT_CONFIDENCE_PERFECT;
+ default:
+diff -Nur abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.h abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.h
+--- abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.h 2009-06-19 01:55:49.000000000 -0700
++++ abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.h 2010-12-06 13:59:53.929715254 -0800
+@@ -30,13 +30,7 @@
+ #define IE_IMP_WP_H
+
+ #include <stdio.h>
+-#ifdef _WIN32
+-#define POINT WPX_POINT
+-#endif
+ #include <libwpd/libwpd.h>
+-#ifdef _WIN32
+-#undef POINT
+-#endif
+ #include "ie_imp.h"
+ #include "ut_string.h"
+ #include "ut_string_class.h"
+@@ -98,7 +92,7 @@
+ IE_Imp ** ppie);
+ };
+
+-class IE_Imp_WordPerfect : public IE_Imp, public WPXHLListenerImpl
++class IE_Imp_WordPerfect : public IE_Imp, public WPXDocumentInterface
+ {
+ public:
+ IE_Imp_WordPerfect(PD_Document * pDocument);
+@@ -154,6 +148,21 @@
+ virtual void insertCoveredTableCell(const WPXPropertyList & /*propList*/) {}
+ virtual void closeTable();
+
++ virtual void definePageStyle(const WPXPropertyList&) {}
++ virtual void defineParagraphStyle(const WPXPropertyList&, const WPXPropertyListVector&) {}
++ virtual void defineCharacterStyle(const WPXPropertyList&) {}
++ virtual void defineSectionStyle(const WPXPropertyList&, const WPXPropertyListVector&) {}
++ virtual void insertSpace() {}
++ virtual void insertField(const WPXString&, const WPXPropertyList&) {}
++ virtual void openComment(const WPXPropertyList&) {}
++ virtual void closeComment() {}
++ virtual void openTextBox(const WPXPropertyList&) {}
++ virtual void closeTextBox() {}
++ virtual void openFrame(const WPXPropertyList&) {}
++ virtual void closeFrame() {}
++ virtual void insertBinaryObject(const WPXPropertyList&, const WPXBinaryData&) {}
++ virtual void insertEquation(const WPXPropertyList&, const WPXString&) {}
++
+
+ protected:
+ virtual UT_Error _loadFile(GsfInput * input);
+diff -Nur abiword-2.8.6.orig//plugins/wpg/plugin.m4 abiword-2.8.6/plugins/wpg/plugin.m4
+--- abiword-2.8.6.orig//plugins/wpg/plugin.m4 2010-05-30 07:50:46.000000000 -0700
++++ abiword-2.8.6/plugins/wpg/plugin.m4 2010-12-06 13:59:53.929715254 -0800
+@@ -1,5 +1,5 @@
+
+-wpg_pkgs="$gsf_req libwpg-0.1 >= 0.1.0 libwpd-0.8 >= 0.8.0"
++wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0"
+ wpg_deps="no"
+
+ if test "$enable_wpg" != ""; then
+diff -Nur abiword-2.8.6.orig//plugins/wpg/xp/ie_impGraphic_WPG.cpp abiword-2.8.6/plugins/wpg/xp/ie_impGraphic_WPG.cpp
+--- abiword-2.8.6.orig//plugins/wpg/xp/ie_impGraphic_WPG.cpp 2008-08-15 14:52:32.000000000 -0700
++++ abiword-2.8.6/plugins/wpg/xp/ie_impGraphic_WPG.cpp 2010-12-06 13:59:53.923048588 -0800
+@@ -31,11 +31,10 @@
+ #include <gsf/gsf-input-memory.h>
+ #include <gsf/gsf-input-stdio.h>
+ #include <gsf/gsf-infile-msole.h>
+-#include <libwpd/WPXStream.h>
++#include <libwpd-stream/libwpd-stream.h>
+ #include "xap_Module.h"
+
+ using libwpg::WPGraphics;
+-using libwpg::WPGString;
+
+ ABI_PLUGIN_DECLARE("WPG")
+
+@@ -48,7 +47,7 @@
+ virtual bool isOLEStream();
+ virtual WPXInputStream * getDocumentOLEStream();
+ virtual WPXInputStream * getDocumentOLEStream(const char * name);
+- virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
++ virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
+ virtual int seek(long offset, WPX_SEEK_TYPE seekType);
+ virtual long tell();
+ virtual bool atEOS();
+@@ -60,7 +59,7 @@
+ };
+
+ AbiWordPerfectGraphicsInputStream::AbiWordPerfectGraphicsInputStream(GsfInput *input) :
+- WPXInputStream(true),
++ WPXInputStream(),
+ m_input(input),
+ m_ole(NULL)
+ {
+@@ -75,9 +74,9 @@
+ g_object_unref(G_OBJECT(m_input));
+ }
+
+-const uint8_t * AbiWordPerfectGraphicsInputStream::read(size_t numBytes, size_t &numBytesRead)
++const unsigned char * AbiWordPerfectGraphicsInputStream::read(unsigned long numBytes, unsigned long &numBytesRead)
+ {
+- const uint8_t *buf = gsf_input_read(m_input, numBytes, NULL);
++ const unsigned char *buf = gsf_input_read(m_input, numBytes, NULL);
+
+ if (buf == NULL)
+ numBytesRead = 0;
+@@ -245,10 +244,10 @@
+ UT_Error IE_Imp_WordPerfectGraphics::importGraphic(GsfInput *input, FG_Graphic **ppfg)
+ {
+ AbiWordPerfectGraphicsInputStream gsfInput(input);
+- WPGString svgOutput;
++ WPXString svgOutput;
+ if (WPGraphics::generateSVG(&gsfInput, svgOutput))
+ {
+- GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.length(), false);
++ GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.len(), false);
+ UT_Error result = IE_ImpGraphic::loadGraphic(svgInput, IE_ImpGraphic::fileTypeForSuffix(".svg"), ppfg);
+ g_object_unref(svgInput);
+ return result;
diff --git a/staging/allegro/PKGBUILD b/staging/allegro/PKGBUILD
new file mode 100644
index 000000000..3533ac18d
--- /dev/null
+++ b/staging/allegro/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146877 2012-01-19 02:37:38Z eric $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=allegro
+pkgver=5.0.5
+pkgrel=2
+pkgdesc="Portable library mainly aimed at video game and multimedia programming"
+arch=('i686' 'x86_64')
+url="http://alleg.sourceforge.net/"
+license=('custom')
+depends=('jack' 'libxpm' 'libxxf86vm' 'libxxf86dga' 'libxcursor' 'libpng' 'libgl' 'libjpeg')
+makedepends=('cmake' 'mesa' 'freetype2')
+source=(http://downloads.sourceforge.net/alleg/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4d879afe7062f7dc9b8913cba2e44bdf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build && cd build
+
+ cmake "../${pkgname}-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWANT_DOCS=OFF
+
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 ../${pkgname}-${pkgver}/LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/alsaplayer/PKGBUILD b/staging/alsaplayer/PKGBUILD
new file mode 100644
index 000000000..d723ee447
--- /dev/null
+++ b/staging/alsaplayer/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 146875 2012-01-19 02:21:54Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=alsaplayer
+pkgver=0.99.81
+pkgrel=3
+pkgdesc="A heavily multi-threaded PCM player that tries to excercise the ALSA library and driver quite a bit"
+arch=('i686' 'x86_64')
+url="http://www.alsaplayer.org/"
+license=('GPL')
+depends=('gcc-libs' 'desktop-file-utils')
+makedepends=('gtk2' 'libid3tag' 'libvorbis' 'libmad' 'libmikmod' 'jack' 'mesa' 'audiofile' 'doxygen')
+optdepends=('gtk2: for the gtk2 GUI interface' \
+ 'libgl: for the OpenGL visual plugins' \
+ 'jack: for JACK audio server output support' \
+ 'audiofile: for support of various audio formats like AIFF, WAVE, .snd/.au' \
+ 'libid3tag: for flac support' \
+ 'flac: for flac support' \
+ 'libmad: for MPEG support' \
+ 'libsndfile: for sndfile support' \
+ 'libvorbis: for ogg vorbis support' \
+ 'libmikmod: for mod, s3m, it and xm formats supports')
+options=('!libtool')
+install=alsaplayer.install
+source=(http://www.alsaplayer.org/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('25817ebd1e5c36da31a88363315a1bf7a945ddfd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-audiofile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/alsaplayer/alsaplayer.install b/staging/alsaplayer/alsaplayer.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/staging/alsaplayer/alsaplayer.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/amule/PKGBUILD b/staging/amule/PKGBUILD
new file mode 100644
index 000000000..22280b542
--- /dev/null
+++ b/staging/amule/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 146942 2012-01-19 13:36:15Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Henrik Ronellenfitsch <searinox@web.de>
+# Contributor: Alessio Sergi <sergi.alessio {at} gmail.com>
+# Contributor: Dario 'Dax' Vilardi <dax [at] deelab [dot] org>
+
+pkgname=amule
+pkgver=10708
+pkgrel=2
+pkgdesc="An eMule-like client for ed2k p2p network"
+arch=('i686' 'x86_64')
+url="http://www.amule.org"
+license=('GPL')
+depends=('wxgtk' 'gd' 'geoip' 'libupnp' 'crypto++' 'libsm')
+source=("http://amule.sourceforge.net/tarballs/aMule-SVN-r${pkgver}.tar.bz2")
+md5sums=('3c1c2a03b24c9ec7ba6fd675382f26a3')
+
+build() {
+ cd "${srcdir}/aMule-SVN-r${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-cas \
+ --enable-wxcas \
+ --enable-amule-daemon \
+ --enable-amulecmd \
+ --enable-amule-gui \
+ --enable-alc \
+ --enable-alcc \
+ --enable-webserver \
+ --disable-debug \
+ --enable-optimize \
+ --enable-ccache \
+ --enable-geoip \
+ --enable-upnp
+
+ make
+}
+
+package() {
+ cd "${srcdir}/aMule-SVN-r${pkgver}"
+
+ make DESTDIR=${pkgdir}/ install
+}
diff --git a/staging/autopano-sift-c/PKGBUILD b/staging/autopano-sift-c/PKGBUILD
new file mode 100644
index 000000000..35f76e38a
--- /dev/null
+++ b/staging/autopano-sift-c/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 146969 2012-01-19 19:16:11Z eric $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=autopano-sift-c
+pkgver=2.5.1
+pkgrel=3
+pkgdesc="Identify key feature points within arbitrary images"
+arch=('i686' 'x86_64')
+url="http://hugin.sourceforge.net/"
+license=('GPL2')
+depends=('libxml2' 'libpano13' 'gcc-libs')
+makedepends=('cmake')
+provides=('autopano-sift')
+conflicts=('autopano-sift')
+replaces=('autopano-sift')
+source=(http://downloads.sourceforge.net/sourceforge/hugin/autopano-sift-C-${pkgver}.tar.gz)
+md5sums=('b9bade07e8c4f2ea383c22a082c260e0')
+
+build() {
+ cd "${srcdir}/autopano-sift-C-${pkgver}"
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ sed -i 's/-lz/-lz -lm/' CMakeFiles/{autopano,generatekeys}.dir/link.txt
+ make
+}
+
+package() {
+ cd "${srcdir}/autopano-sift-C-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/cairo/PKGBUILD b/staging/cairo/PKGBUILD
new file mode 100644
index 000000000..37aac6a2f
--- /dev/null
+++ b/staging/cairo/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 146832 2012-01-18 20:00:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Brice Carpentier <brice@daknet.org>
+
+pkgname=cairo
+pkgver=1.10.2
+pkgrel=3
+pkgdesc="Cairo vector graphics library"
+arch=(i686 x86_64)
+license=('LGPL' 'MPL')
+url="http://cairographics.org/"
+depends=('libpng' 'libxrender' 'fontconfig' 'pixman' 'glib2' 'sh')
+options=('!libtool')
+source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.gz
+ cairo-1.10.0-buggy_gradients.patch)
+sha1sums=('ccce5ae03f99c505db97c286a0c9a90a926d3c6e'
+ '8b843a9934e5112b6188e5bcf4adfc1fdaf9fa04')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "${srcdir}/cairo-1.10.0-buggy_gradients.patch"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-tee
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check || /bin/true # 248 Passed, 65 Failed [2 crashed, 8 expected], 28 Skipped
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/staging/cairo/cairo-1.10.0-buggy_gradients.patch b/staging/cairo/cairo-1.10.0-buggy_gradients.patch
new file mode 100644
index 000000000..368e356d3
--- /dev/null
+++ b/staging/cairo/cairo-1.10.0-buggy_gradients.patch
@@ -0,0 +1,13 @@
+--- a/src/cairo-xlib-display.c.ubuntu 2010-08-04 11:57:49.000000000 +0200
++++ b/src/cairo-xlib-display.c 2010-08-04 11:58:28.000000000 +0200
+@@ -353,11 +353,7 @@
+ /* Prior to Render 0.10, there is no protocol support for gradients and
+ * we call function stubs instead, which would silently consume the drawing.
+ */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+ display->buggy_gradients = TRUE;
+-#else
+- display->buggy_gradients = FALSE;
+-#endif
+ display->buggy_pad_reflect = FALSE;
+ display->buggy_repeat = FALSE;
diff --git a/staging/celestia/PKGBUILD b/staging/celestia/PKGBUILD
new file mode 100644
index 000000000..495903615
--- /dev/null
+++ b/staging/celestia/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 146981 2012-01-19 21:57:20Z giovanni $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=celestia
+pkgver=1.6.1
+pkgrel=2
+pkgdesc="Real-time space simulation"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.shatters.net/celestia/"
+depends=('gtk2' 'libtheora' 'lua' 'gtkglext' 'glut' 'libxmu' 'mesa' 'libjpeg')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/sourceforge/celestia/${pkgname}-${pkgver}.tar.gz"
+ 'celestia-1.6.1-gcc46.patch'
+ 'celestia-1.6.1-libpng15.patch'
+ 'celestia-1.6.1-linking.patch')
+sha1sums=('1f0fdf4525a8b9d6c708e1f6383babed670d18e7'
+ '7c08ca391603806d788cb8f3342acedafc924eef'
+ '46ecc4e10b24191384bc848c206652498843adf0'
+ '534c8eee18d13a868c91f0b870ebecc05f3e7ae1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # build patch
+ patch -Np0 -i "${srcdir}/celestia-1.6.1-gcc46.patch"
+ patch -Np0 -i "${srcdir}/celestia-1.6.1-libpng15.patch"
+ patch -Np1 -i "${srcdir}/celestia-1.6.1-linking.patch"
+
+ # This version of Celestia has a bug in the font rendering and requires -fsigned-char
+ export CFLAGS="$CFLAGS -fsigned-char"
+ export CXXFLAGS="$CXXFLAGS -fsigned-char"
+
+ autoreconf
+ ./configure --prefix=/usr \
+ --with-lua=/usr \
+ --datadir=/usr/share \
+ --with-gtk \
+ --disable-rpath \
+ --with-lua
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/staging/celestia/celestia-1.5.1-gcc44.patch b/staging/celestia/celestia-1.5.1-gcc44.patch
new file mode 100644
index 000000000..b1ee896f0
--- /dev/null
+++ b/staging/celestia/celestia-1.5.1-gcc44.patch
@@ -0,0 +1,20 @@
+--- src/celengine/overlay.h.orig 2009-07-08 02:27:08.000000000 -0400
++++ src/celengine/overlay.h 2009-07-08 02:27:28.000000000 -0400
+@@ -10,6 +10,7 @@
+ #ifndef _OVERLAY_H_
+ #define _OVERLAY_H_
+
++#include <cstdio>
+ #include <string>
+ #include <iostream>
+ #include <celtxf/texturefont.h>
+--- src/celengine/star.cpp.orig 2009-07-08 02:40:52.000000000 -0400
++++ src/celengine/star.cpp 2009-07-08 02:41:08.000000000 -0400
+@@ -8,6 +8,7 @@
+ // of the License, or (at your option) any later version.
+
+ #include <celmath/mathlib.h>
++#include <cstdio>
+ #include <cstring>
+ #include <cassert>
+ #include "celestia.h"
diff --git a/staging/celestia/celestia-1.6.1-gcc46.patch b/staging/celestia/celestia-1.6.1-gcc46.patch
new file mode 100644
index 000000000..ddf4036f2
--- /dev/null
+++ b/staging/celestia/celestia-1.6.1-gcc46.patch
@@ -0,0 +1,13 @@
+http://bugs.gentoo.org/show_bug.cgi?id=366073
+
+Patch written by Nils Larsson <ni1s@nerdshack.com>
+--- src/celengine/frametree.h
++++ src/celengine/frametree.h
+@@ -14,6 +14,7 @@
+ #define _CELENGINE_FRAMETREE_H_
+
+ #include <vector>
++#include <cstddef>
+
+ class Star;
+ class Body;
diff --git a/staging/celestia/celestia-1.6.1-gentoo.patch b/staging/celestia/celestia-1.6.1-gentoo.patch
new file mode 100644
index 000000000..57fffe159
--- /dev/null
+++ b/staging/celestia/celestia-1.6.1-gentoo.patch
@@ -0,0 +1,23 @@
+--- src/celestia/Makefile.am 2011-06-07 19:15:51.502000147 +0200
++++ src/celestia/Makefile.am.new 2011-06-07 19:15:47.208000302 +0200
+@@ -15,6 +15,7 @@
+ if ENABLE_GTK
+ SUBDIRS += gtk
+ celestiaGTKLIBS = $(GTK_LIBS) gtk/libgtkgui.a
++LIBS += $(GTK_LIBS)
+ endif
+
+ COMMONSOURCES = \
+
+Index: src/celengine/frametree.h
+===================================================================
+--- src/celengine/frametree.h (revision 5163)
++++ src/celengine/frametree.h (arbetskopia)
+@@ -14,6 +14,7 @@
+ #define _CELENGINE_FRAMETREE_H_
+
+ #include <vector>
++#include <cstddef>
+
+ class Star;
+ class Body;
diff --git a/staging/celestia/celestia-1.6.1-libpng15.patch b/staging/celestia/celestia-1.6.1-libpng15.patch
new file mode 100644
index 000000000..5dffbab24
--- /dev/null
+++ b/staging/celestia/celestia-1.6.1-libpng15.patch
@@ -0,0 +1,14 @@
+imagecapture.cpp:184:40: error: ‘Z_BEST_COMPRESSION’ was not declared in this scope
+
+--- src/celestia/imagecapture.cpp
++++ src/celestia/imagecapture.cpp
+@@ -31,6 +31,9 @@
+ #include "png.h"
+ #endif
+
++// Z_BEST_COMPRESSION
++#include <zlib.h>
++
+ // Define png_jmpbuf() in case we are using a pre-1.0.6 version of libpng
+ #ifndef png_jmpbuf
+ #define png_jmpbuf(png_ptr) png_ptr->jmpbuf
diff --git a/staging/celestia/celestia-1.6.1-linking.patch b/staging/celestia/celestia-1.6.1-linking.patch
new file mode 100644
index 000000000..d610d5243
--- /dev/null
+++ b/staging/celestia/celestia-1.6.1-linking.patch
@@ -0,0 +1,54 @@
+Fix linking issues:
+ * underlinking GLUT (bug #372123, #387609)
+ * as-needed (bug #281258)
+
+--- a/src/celestia/Makefile.am
++++ b/src/celestia/Makefile.am
+@@ -7,14 +7,15 @@
+
+ if ENABLE_KDE
+ SUBDIRS += kde
+-celestiaKDELIBS = $(LIB_QT) $(LIB_KDECORE) $(LIB_KDEUI) $(LIB_KFILE) \
+- $(LIBSOCKET) -lDCOP kde/libkdegui.a
++celestiaKDELIBS = kde/libkdegui.a
+ celestia_LDFLAGS = $(all_libraries) $(KDE_RPATH)
++LIBS += $(LIB_QT) $(LIB_KDECORE) $(LIB_KDEUI) $(LIB_KFILE) $(LIBSOCKET) -lDCOP
+ endif
+
+ if ENABLE_GTK
+ SUBDIRS += gtk
+-celestiaGTKLIBS = $(GTK_LIBS) gtk/libgtkgui.a
++celestiaGTKLIBS = gtk/libgtkgui.a
++LIBS += $(GTK_LIBS)
+ endif
+
+ COMMONSOURCES = \
+@@ -62,6 +63,7 @@
+
+ if ENABLE_GLUT
+ GLUTSOURCES = glutmain.cpp
++GLUTLIBS = -lGL
+ endif
+
+ if ENABLE_THEORA
+@@ -80,15 +82,16 @@
+ celestia_LDADD = \
+ $(celestiaKDELIBS) \
+ $(celestiaGTKLIBS) \
+- $(DL_LIBS) \
+- $(LUA_LIBS) \
+- $(THEORA_LIBS) \
+ ../celengine/libcelengine.a \
+ ../celtxf/libceltxf.a \
+ ../cel3ds/libcel3ds.a \
+ ../celmath/libcelmath.a \
+ ../celutil/libcelutil.a \
+- $(SPICE_LIBS)
++ $(LUA_LIBS) \
++ $(THEORA_LIBS) \
++ $(GLUTLIBS) \
++ $(SPICE_LIBS) \
++ $(DL_LIBS)
+
+ noinst_HEADERS = $(wildcard *.h)
+ noinst_DATA = ../../celestia
diff --git a/staging/dvdauthor/PKGBUILD b/staging/dvdauthor/PKGBUILD
new file mode 100644
index 000000000..849754c1e
--- /dev/null
+++ b/staging/dvdauthor/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 146985 2012-01-19 22:25:27Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+# Contributor: Nicolai Lissner <nlissne@linux01.gwdg.de>
+
+pkgname=dvdauthor
+pkgver=0.7.0
+pkgrel=4
+pkgdesc="DVD authoring tools"
+arch=('i686' 'x86_64')
+url="http://dvdauthor.sourceforge.net/"
+license=('GPL')
+depends=('libdvdread' 'imagemagick' 'libxml2' 'libpng' 'fribidi')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'dvdauthor-0.7.0-libpng15.patch')
+md5sums=('33a447fb98ab3293ac40f869eedc17ff'
+ '9ea90bbea6adb0469c8c1b2f7d033f11')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ patch -Np0 -i "${srcdir}/dvdauthor-0.7.0-libpng15.patch"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/dvdauthor/dvdauthor-0.7.0-libpng15.patch b/staging/dvdauthor/dvdauthor-0.7.0-libpng15.patch
new file mode 100644
index 000000000..2bb636380
--- /dev/null
+++ b/staging/dvdauthor/dvdauthor-0.7.0-libpng15.patch
@@ -0,0 +1,19 @@
+--- src/spuunmux.c
++++ src/spuunmux.c
+@@ -39,6 +39,7 @@
+ #include <netinet/in.h>
+
+ #include <png.h>
++#include <zlib.h>
+
+ #include "rgb.h"
+ #include "common.h"
+@@ -610,7 +611,7 @@
+ png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
+ return -1;
+ } /*if*/
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ fclose(fp);
diff --git a/staging/enblend-enfuse/PKGBUILD b/staging/enblend-enfuse/PKGBUILD
new file mode 100644
index 000000000..b8e04522a
--- /dev/null
+++ b/staging/enblend-enfuse/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 146965 2012-01-19 18:31:50Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Dominik Ryba <domryba@post.pl>
+
+pkgname=enblend-enfuse
+pkgver=4.0
+pkgrel=5
+pkgdesc="Intelligent blend tool for overlapping picture"
+arch=("i686" "x86_64")
+license=('GPL')
+url="http://enblend.sourceforge.net"
+depends=('openexr' 'glew>=1.5' 'libxmi' 'freeglut' 'lcms' 'libpng')
+makedepends=('boost')
+replaces=('enblend')
+conflicts=('enblend')
+provides=('enblend')
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/sourceforge/enblend/${pkgname}-${pkgver}.tar.gz{,.asc} \
+ libpng-1.4.patch enblend-4.0-libpng15.patch)
+sha1sums=('34c3a5ce11c6ef0ef520d8a15a3cb6a94a567033'
+ 'aac6364b29b0a9d6c61c3db0982f52ce1579e934'
+ 'eae6cf48ea082865130302d0b4d1ca0b884a563b'
+ '71e961d90be842eafe9d473d8d70b04b29077036')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-753b534c819d"
+ sed -i 's/info.arith_code = TRUE/info.arith_code = FALSE/' src/vigra_impex/jpeg.cxx
+ patch -p1 -i ../libpng-1.4.patch
+ patch -p0 -i ../enblend-4.0-libpng15.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-753b534c819d"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 doc/enblend.info "${pkgdir}/usr/share/info/enblend.info"
+ install -D -m644 doc/enfuse.info "${pkgdir}/usr/share/info/enfuse.info"
+}
diff --git a/staging/enblend-enfuse/enblend-4.0-libpng15.patch b/staging/enblend-enfuse/enblend-4.0-libpng15.patch
new file mode 100644
index 000000000..d4465ccad
--- /dev/null
+++ b/staging/enblend-enfuse/enblend-4.0-libpng15.patch
@@ -0,0 +1,220 @@
+--- src/vigra_impex/png.cxx
++++ src/vigra_impex/png.cxx
+@@ -81,7 +81,7 @@
+ static void PngError( png_structp png_ptr, png_const_charp error_msg )
+ {
+ png_error_message = std::string(error_msg);
+- longjmp( png_ptr->jmpbuf, 1 );
++ longjmp( png_jmpbuf( png_ptr ), 1 );
+ }
+
+ // called on non-fatal errors
+@@ -213,7 +213,7 @@
+ vigra_postcondition( png != 0, "could not create the read struct." );
+
+ // create info struct
+- if (setjmp(png->jmpbuf)) {
++ if (setjmp(png_jmpbuf( png ))) {
+ png_destroy_read_struct( &png, &info, NULL );
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_create_info_struct(): ").c_str() );
+ }
+@@ -221,14 +221,14 @@
+ vigra_postcondition( info != 0, "could not create the info struct." );
+
+ // init png i/o
+- if (setjmp(png->jmpbuf)) {
++ if (setjmp(png_jmpbuf( png ))) {
+ png_destroy_read_struct( &png, &info, NULL );
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_init_io(): ").c_str() );
+ }
+ png_init_io( png, file.get() );
+
+ // specify that the signature was already read
+- if (setjmp(png->jmpbuf)) {
++ if (setjmp(png_jmpbuf( png ))) {
+ png_destroy_read_struct( &png, &info, NULL );
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_set_sig_bytes(): ").c_str() );
+ }
+@@ -244,13 +244,13 @@
+ void PngDecoderImpl::init()
+ {
+ // read all chunks up to the image data
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_read_info(): ").c_str() );
+ png_read_info( png, info );
+
+ // pull over the header fields
+ int interlace_method, compression_method, filter_method;
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_get_IHDR(): ").c_str() );
+ png_get_IHDR( png, info, &width, &height, &bit_depth, &color_type,
+ &interlace_method, &compression_method, &filter_method );
+@@ -264,7 +264,7 @@
+
+ // transform palette to rgb
+ if ( color_type == PNG_COLOR_TYPE_PALETTE) {
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_palette_to_rgb(): ").c_str() );
+ png_set_palette_to_rgb(png);
+ color_type = PNG_COLOR_TYPE_RGB;
+@@ -273,7 +273,7 @@
+
+ // expand gray values to at least one byte size
+ if ( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 ) {
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false,png_error_message.insert(0, "error in png_set_expand_gray_1_2_4_to_8(): ").c_str());
+ png_set_expand_gray_1_2_4_to_8(png);
+ bit_depth = 8;
+@@ -283,7 +283,7 @@
+ #if 0
+ // strip alpha channel
+ if ( color_type & PNG_COLOR_MASK_ALPHA ) {
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_set_strip_alpha(): ").c_str() );
+ png_set_strip_alpha(png);
+ color_type ^= PNG_COLOR_MASK_ALPHA;
+@@ -323,12 +323,12 @@
+
+ // read icc profile
+ #if (PNG_LIBPNG_VER > 10008) && defined(PNG_READ_iCCP_SUPPORTED)
+- char * dummyName;
++ png_charpp dummyName;
+ int dummyCompType;
+- char * profilePtr;
++ png_bytepp profilePtr;
+ png_uint_32 profileLen;
+- if (info->valid & PNG_INFO_iCCP) {
+- png_get_iCCP(png, info, &dummyName, &dummyCompType, &profilePtr, &profileLen) ;
++ if (png_get_valid(png, info, PNG_INFO_iCCP)) {
++ png_get_iCCP(png, info, dummyName, &dummyCompType, profilePtr, &profileLen) ;
+ iccProfilePtr = (unsigned char *) profilePtr;
+ iccProfileLength = profileLen;
+ }
+@@ -340,7 +340,7 @@
+ // image gamma
+ double image_gamma = 0.45455;
+ if ( png_get_valid( png, info, PNG_INFO_gAMA ) ) {
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_get_gAMA(): ").c_str() );
+ png_get_gAMA( png, info, &image_gamma );
+ }
+@@ -349,26 +349,26 @@
+ double screen_gamma = 2.2;
+
+ // set gamma correction
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_set_gamma(): ").c_str() );
+ png_set_gamma( png, screen_gamma, image_gamma );
+ #endif
+
+ // interlace handling, get number of read passes needed
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false,png_error_message.insert(0, "error in png_set_interlace_handling(): ").c_str());
+ n_interlace_passes = png_set_interlace_handling(png);
+
+ // update png library state to reflect any changes that were made
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_read_update_info(): ").c_str() );
+ png_read_update_info( png, info );
+
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false,png_error_message.insert(0, "error in png_get_channels(): ").c_str());
+ n_channels = png_get_channels(png, info);
+
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false,png_error_message.insert(0, "error in png_get_rowbytes(): ").c_str());
+ rowsize = png_get_rowbytes(png, info);
+
+@@ -379,7 +379,7 @@
+ void PngDecoderImpl::nextScanline()
+ {
+ for (int i=0; i < n_interlace_passes; i++) {
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false,png_error_message.insert(0, "error in png_read_row(): ").c_str());
+ png_read_row(png, row_data.begin(), NULL);
+ }
+@@ -545,7 +545,7 @@
+ vigra_postcondition( png != 0, "could not create the write struct." );
+
+ // create info struct
+- if (setjmp(png->jmpbuf)) {
++ if (setjmp(png_jmpbuf( png ))) {
+ png_destroy_write_struct( &png, &info );
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_info_struct(): ").c_str() );
+ }
+@@ -556,7 +556,7 @@
+ }
+
+ // init png i/o
+- if (setjmp(png->jmpbuf)) {
++ if (setjmp(png_jmpbuf( png ))) {
+ png_destroy_write_struct( &png, &info );
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_init_io(): ").c_str() );
+ }
+@@ -571,7 +571,7 @@
+ void PngEncoderImpl::finalize()
+ {
+ // write the IHDR
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_set_IHDR(): ").c_str() );
+ png_set_IHDR( png, info, width, height, bit_depth, color_type,
+ PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
+@@ -579,7 +579,7 @@
+
+ // set resolution
+ if (x_resolution > 0 && y_resolution > 0) {
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_set_pHYs(): ").c_str() );
+ png_set_pHYs(png, info, (png_uint_32) (x_resolution / 0.0254 + 0.5),
+ (png_uint_32) (y_resolution / 0.0254 + 0.5),
+@@ -588,7 +588,7 @@
+
+ // set offset
+ if (position.x > 0 && position.y > 0) {
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_set_oFFs(): ").c_str() );
+ png_set_oFFs(png, info, position.x, position.y, PNG_OFFSET_PIXEL);
+ }
+@@ -597,12 +597,12 @@
+ // set icc profile
+ if (iccProfile.size() > 0) {
+ png_set_iCCP(png, info, "icc", 0,
+- (char *)iccProfile.begin(), iccProfile.size());
++ iccProfile.begin(), iccProfile.size());
+ }
+ #endif
+
+ // write the info struct
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_write_info(): ").c_str() );
+ png_write_info( png, info );
+
+@@ -634,10 +634,10 @@
+ }
+
+ // write the whole image
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_write_image(): ").c_str() );
+ png_write_image( png, row_pointers.begin() );
+- if (setjmp(png->jmpbuf))
++ if (setjmp(png_jmpbuf( png )))
+ vigra_postcondition( false, png_error_message.insert(0, "error in png_write_end(): ").c_str() );
+ png_write_end(png, info);
+ }
diff --git a/staging/enblend-enfuse/enblend-enfuse.install b/staging/enblend-enfuse/enblend-enfuse.install
new file mode 100644
index 000000000..24ea28a4e
--- /dev/null
+++ b/staging/enblend-enfuse/enblend-enfuse.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(enblend.info enfuse.info)
+
+post_install() {
+ [[ -x usr/bin/install-info ]] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [[ -x usr/bin/install-info ]] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/enblend-enfuse/libpng-1.4.patch b/staging/enblend-enfuse/libpng-1.4.patch
new file mode 100644
index 000000000..3bf852b58
--- /dev/null
+++ b/staging/enblend-enfuse/libpng-1.4.patch
@@ -0,0 +1,14 @@
+diff -Naur enblend-enfuse-3.2-orig/src/vigra_impex/png.cxx enblend-enfuse-3.2/src/vigra_impex/png.cxx
+--- enblend-enfuse-3.2-orig/src/vigra_impex/png.cxx 2010-01-19 22:09:36.000000000 -0500
++++ enblend-enfuse-3.2/src/vigra_impex/png.cxx 2010-01-19 22:13:43.000000000 -0500
+@@ -275,8 +275,8 @@
+ // expand gray values to at least one byte size
+ if ( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 ) {
+ if (setjmp(png->jmpbuf))
+- vigra_postcondition( false,png_error_message.insert(0, "error in png_set_gray_1_2_4_to_8(): ").c_str());
+- png_set_gray_1_2_4_to_8(png);
++ vigra_postcondition( false,png_error_message.insert(0, "error in png_set_expand_gray_1_2_4_to_8(): ").c_str());
++ png_set_expand_gray_1_2_4_to_8(png);
+ bit_depth = 8;
+ }
+
diff --git a/staging/fbida/PKGBUILD b/staging/fbida/PKGBUILD
new file mode 100644
index 000000000..c7fa1f6d6
--- /dev/null
+++ b/staging/fbida/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 146887 2012-01-19 03:44:47Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fbida
+pkgver=2.08
+pkgrel=2
+pkgdesc="Few applications to display and elementary edit images: fbi, fbgs, ida, exiftran"
+arch=('i686' 'x86_64')
+url="http://www.kraxel.org/blog/linux/fbida/"
+license=('GPL2')
+depends=('giflib' 'libtiff' 'libexif' 'lesstif' 'libpng' 'fontconfig' 'curl')
+makedepends=('libxpm')
+optdepends=('ghostscript: to use fbgs')
+source=(http://www.kraxel.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9b3693ab26a58194e36b479bffb61ed0')
+sha1sums=('597e0953c68112bf7c363b1ccaa94e72100b116a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/ungif/gif/' GNUmakefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" prefix=/usr install
+}
diff --git a/staging/feh/PKGBUILD b/staging/feh/PKGBUILD
new file mode 100644
index 000000000..794de592d
--- /dev/null
+++ b/staging/feh/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 146881 2012-01-19 03:22:03Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=feh
+pkgver=2.2
+pkgrel=2
+pkgdesc='Fast and light imlib2-based image viewer'
+url='http://feh.finalrewind.org/'
+license=('MIT')
+arch=('i686' 'x86_64')
+depends=('giblib' 'curl' 'libxinerama')
+optdepends=('perl: feh-cam, webcam wrapper for feh')
+makedepends=('libxt')
+source=("${url}${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('655db5f558cdb268ff55cb088994d78331bd39aa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/fltk/PKGBUILD b/staging/fltk/PKGBUILD
new file mode 100644
index 000000000..2a830946f
--- /dev/null
+++ b/staging/fltk/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 146979 2012-01-19 21:29:09Z eric $
+# Maintainer:
+
+pkgbase=fltk
+pkgname=('fltk' 'fltk-docs' 'fltk-games')
+pkgver=1.3.0
+pkgrel=3
+arch=('i686' 'x86_64')
+license=('custom:LGPL')
+url="http://www.fltk.org/"
+makedepends=('mesa' 'doxygen' 'libjpeg' 'libpng' 'libxft' 'libxinerama' \
+ 'alsa-lib' 'desktop-file-utils')
+source=(http://ftp.easysw.com/pub/$pkgbase/$pkgver/$pkgbase-$pkgver-source.tar.gz)
+md5sums=('44d5d7ba06afdd36ea17da6b4b703ca3')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ sed -i -e 's/$(LINKFLTK)/$(LINKSHARED)/' \
+ -e 's/$(LINKFLTKIMG)/$(LINKSHARED)/' test/Makefile
+ ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared
+ make
+ cd documentation
+ make html
+}
+
+package_fltk() {
+ pkgdesc="Graphical user interface toolkit for X"
+ depends=('libjpeg' 'libpng' 'libxft' 'libxinerama' 'hicolor-icon-theme' \
+ 'desktop-file-utils' 'xdg-utils')
+ options=('!docs')
+ install=fltk.install
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+ (cd fluid; make DESTDIR="$pkgdir" install install-linux)
+ chmod 644 "$pkgdir"/usr/lib/*.a
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_fltk-docs() {
+ pkgdesc="Graphical user interface toolkit for X (documentation)"
+
+ cd "$srcdir/$pkgbase-$pkgver/documentation"
+ install -d "$pkgdir"/usr/share/doc/fltk/
+ for _file in html/* ; do
+ install -m644 $_file "$pkgdir"/usr/share/doc/fltk/
+ done
+ cd ../test
+ make DESTDIR="$pkgdir" install
+ install -D -m644 ../COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_fltk-games() {
+ pkgdesc="Example games that accompany FLTK: blocks, checkers and sudoku"
+ depends=('alsa-lib' 'fltk')
+ install=fltk-games.install
+
+ cd "$srcdir/$pkgbase-$pkgver/test"
+ make DESTDIR="$pkgdir" install-linux
+ (cd ../documentation; make DESTDIR="$pkgdir" install-linux)
+ install -D -m644 ../COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/fltk/fltk-games.install b/staging/fltk/fltk-games.install
new file mode 100644
index 000000000..f3fe2b08b
--- /dev/null
+++ b/staging/fltk/fltk-games.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/fltk/fltk.install b/staging/fltk/fltk.install
new file mode 100644
index 000000000..f89ec8213
--- /dev/null
+++ b/staging/fltk/fltk.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/fontforge/PKGBUILD b/staging/fontforge/PKGBUILD
new file mode 100644
index 000000000..f5dc25f1a
--- /dev/null
+++ b/staging/fontforge/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 146903 2012-01-19 04:55:00Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=fontforge
+pkgver=20120119
+pkgrel=1
+pkgdesc='Outline and bitmap font editor'
+arch=('i686' 'x86_64')
+url='http://fontforge.sourceforge.net/'
+license=('BSD')
+depends=('libxkbui' 'libxi' 'libxml2' 'pango' 'giflib' 'libtiff' 'python2' 'libspiro')
+options=('!libtool' '!makeflags')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('2c363af075e77bf35d21ee1939e3d6ab39a9f80c')
+
+# git clone git://fontforge.git.sourceforge.net/gitroot/fontforge/fontforge; cd fontforge; git archive --prefix=${pkgname}-${pkgver}/ master | xz > ../${pkgname}-${pkgver}.tar.xz
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/python /python2 /g' Makefile.dynamic.in
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-type3 \
+ --enable-devicetables \
+ --enable-double \
+ --with-regular-link \
+ --with-python=python2 \
+ --enable-pyextension \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/fvwm/PKGBUILD b/staging/fvwm/PKGBUILD
new file mode 100644
index 000000000..89af20969
--- /dev/null
+++ b/staging/fvwm/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 146983 2012-01-19 22:19:37Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fvwm
+pkgver=2.6.3
+pkgrel=2
+pkgdesc="A multiple large virtual desktop window manager originally derived from twm"
+arch=('i686' 'x86_64')
+url="http://www.fvwm.org"
+license=('GPL' 'custom')
+depends=('imlib' 'fribidi' 'perl' 'libstroke' 'libxpm' 'librsvg' 'libxinerama' 'libxcursor')
+makedepends=('libxslt')
+provides=('fvwm-devel')
+conflicts=('fvwm-devel')
+replaces=('fvwm-devel')
+options=('!emptydirs' '!makeflags')
+source=(ftp://ftp.fvwm.org/pub/fvwm/version-${pkgver%%.*}/${pkgname}-${pkgver}.tar.bz2 fvwm.desktop)
+sha1sums=('7a04dae0e4a17f4d908589e704b48246b7c05e39'
+ '6fd8fd767f32f88cc8b4743a2ba49bcfcdb32bcb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --with-stroke-library
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 sample.fvwmrc/{decor_examples,DecorMwm,DecorWin95,new-features,system.*} "${pkgdir}/usr/share/doc/fvwm"
+ install -D -m644 ../fvwm.desktop "${pkgdir}/usr/share/xsessions/fvwm.desktop"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/staging/fvwm/fvwm.desktop b/staging/fvwm/fvwm.desktop
new file mode 100644
index 000000000..e297a6109
--- /dev/null
+++ b/staging/fvwm/fvwm.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=FVWM
+Comment=The fvwm window manager
+Type=XSession
+Exec=/usr/bin/fvwm
+TryExec=/usr/bin/fvwm
diff --git a/staging/gd/PKGBUILD b/staging/gd/PKGBUILD
new file mode 100644
index 000000000..d2c40835a
--- /dev/null
+++ b/staging/gd/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 146845 2012-01-18 20:23:55Z ibiru $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=gd
+pkgver=2.0.36RC1
+pkgrel=5
+pkgdesc="Library for the dynamic creation of images by programmers"
+arch=('i686' 'x86_64')
+url="http://www.libgd.org/"
+license=('custom')
+depends=('libpng' 'fontconfig' 'libjpeg')
+optdepends=('perl: bdftogd script')
+options=('!libtool')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'libpng14.patch')
+md5sums=('e876979ca3130623a4e7866d9579171a'
+ '7921556f4960e8d66cf4fb67ea7101b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/libpng14.patch
+ ./configure --prefix=/usr --without-xpm
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/gd/libpng14.patch b/staging/gd/libpng14.patch
new file mode 100644
index 000000000..19a3fda91
--- /dev/null
+++ b/staging/gd/libpng14.patch
@@ -0,0 +1,12 @@
+diff -Nur gd-2.0.36RC1.orig/gd_png.c gd-2.0.36RC1/gd_png.c
+--- gd-2.0.36RC1.orig/gd_png.c 2007-11-27 10:30:34.000000000 +0200
++++ gd-2.0.36RC1/gd_png.c 2010-01-17 17:14:11.000000000 +0200
+@@ -151,7 +151,7 @@
+ return NULL;
+ }
+
+- if (!png_check_sig (sig, 8)) { /* bad signature */
++ if (png_sig_cmp (sig, 0, 8)) { /* bad signature */
+ return NULL; /* bad signature */
+ }
+
diff --git a/staging/gdk-pixbuf2/PKGBUILD b/staging/gdk-pixbuf2/PKGBUILD
new file mode 100644
index 000000000..bf38ef13e
--- /dev/null
+++ b/staging/gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 146826 2012-01-18 19:45:40Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gdk-pixbuf2
+pkgver=2.24.1
+pkgrel=2
+pkgdesc="An image loading library"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libpng' 'libtiff' 'libjpeg' 'libx11')
+makedepends=('gtk-doc' 'gobject-introspection')
+options=('!libtool')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.24/gdk-pixbuf-$pkgver.tar.xz)
+sha256sums=('da7a3f00db360913716368e19e336402755cafa93769f3cfa28a969303e4bee1')
+
+build() {
+ cd "$srcdir/gdk-pixbuf-$pkgver"
+
+ ./configure --prefix=/usr \
+ --without-libjasper \
+ --with-x11 \
+ --with-included-loaders=png
+ make
+}
+
+package() {
+ cd "$srcdir/gdk-pixbuf-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/gdk-pixbuf2/gdk-pixbuf2.install b/staging/gdk-pixbuf2/gdk-pixbuf2.install
new file mode 100644
index 000000000..1b35942cb
--- /dev/null
+++ b/staging/gdk-pixbuf2/gdk-pixbuf2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
+}
diff --git a/staging/gegl/PKGBUILD b/staging/gegl/PKGBUILD
new file mode 100644
index 000000000..9fecb8b2e
--- /dev/null
+++ b/staging/gegl/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146879 2012-01-19 03:20:59Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gegl
+pkgver=0.1.8
+pkgrel=2
+pkgdesc="Graph based image processing framework"
+arch=('i686' 'x86_64')
+url="http://www.gegl.org/"
+license=('GPL3' 'LGPL3')
+depends=('babl' 'gtk2')
+makedepends=('ruby' 'lua' 'openexr' 'ffmpeg' 'librsvg' 'jasper' 'exiv2')
+optdepends=('openexr: for using the openexr plugin' \
+ 'ffmpeg: for using the ffmpeg plugin' \
+ 'librsvg: for using the svg plugin' \
+ 'jasper: for using the jasper plugin')
+options=('!libtool')
+source=(ftp://ftp.gimp.org/pub/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('3d4d902580f5c5122b01b5188b6b5da03089ecac')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-sdl --with-openexr --with-librsvg \
+ --with-libavformat --with-jasper --disable-docs
+ make
+}
+
+#check() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# make check
+#}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/gif2png/PKGBUILD b/staging/gif2png/PKGBUILD
new file mode 100644
index 000000000..2e530eaba
--- /dev/null
+++ b/staging/gif2png/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146933 2012-01-19 11:45:57Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Andrew Rose <ody@netrux.com>
+
+pkgname=gif2png
+pkgver=2.5.4
+pkgrel=3
+pkgdesc="A GIF to PNG image format converter"
+arch=('i686' 'x86_64')
+url="http://www.catb.org/~esr/gif2png/"
+license=('ZLIB')
+depends=('libpng')
+optdepends=('python2: for using web2png')
+source=("http://www.catb.org/~esr/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'gif2png-2.5.4-libpng15.patch')
+md5sums=('d63ea3fc6b6119589e8d4d6fead30df9'
+ 'd4d6d31e04e7448315eae56bb12d4df6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's#env python#env python2#' web2png
+ patch -Np0 -i ${srcdir}/gif2png-2.5.4-libpng15.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/staging/gif2png/gif2png-2.5.4-libpng15.patch b/staging/gif2png/gif2png-2.5.4-libpng15.patch
new file mode 100644
index 000000000..9e5c333bb
--- /dev/null
+++ b/staging/gif2png/gif2png-2.5.4-libpng15.patch
@@ -0,0 +1,43 @@
+ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/graphics/gif2png/patches/patch-aa
+
+--- gif2png.c
++++ gif2png.c
+@@ -10,6 +10,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <unistd.h> /* for isatty() */
++#include <zlib.h>
+
+ #if !defined(TRUE)
+ #define FALSE 0
+@@ -120,8 +121,8 @@ int writefile(struct GIFelement *s,struc
+ int colors_used = 0;
+ byte remap[MAXCMSIZE];
+ int low_prec;
+- png_struct *png_ptr = xalloc(sizeof (png_struct));
+- png_info *info_ptr = xalloc(sizeof (png_info));
++ png_struct *png_ptr;
++ png_info *info_ptr;
+ int p;
+ int gray_bitdepth;
+ png_color pal_rgb[MAXCMSIZE], *pltep;
+@@ -136,6 +137,19 @@ int writefile(struct GIFelement *s,struc
+ png_text software;
+ png_text comment;
+
++ png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
++ if (png_ptr == NULL) {
++ fprintf(stderr, "gif2png: fatal error, out of memory\n");
++ fprintf(stderr, "gif2png: exiting ungracefully\n");
++ exit(1);
++ }
++ info_ptr = png_create_info_struct(png_ptr);
++ if (info_ptr == NULL) {
++ fprintf(stderr, "gif2png: fatal error, out of memory\n");
++ fprintf(stderr, "gif2png: exiting ungracefully\n");
++ exit(1);
++ }
++
+ /* these volatile declarations prevent gcc warnings ("variable might be
+ * clobbered by `longjmp' or `vfork'") */
+ volatile int gray = TRUE;
diff --git a/staging/glhack/PKGBUILD b/staging/glhack/PKGBUILD
new file mode 100644
index 000000000..6ac706ee1
--- /dev/null
+++ b/staging/glhack/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 146929 2012-01-19 10:08:04Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=glhack
+pkgver=1.2
+pkgrel=6
+pkgdesc="A port of Nethack, a single player dungeon exploration game in 2D"
+arch=('i686' 'x86_64')
+url="http://glhack.sourceforge.net/"
+license=('custom')
+depends=('sdl' 'libpng' 'libgl')
+makedepends=('mesa')
+options=('!makeflags')
+install=glhack.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz glhack-libpng15.patch)
+sha1sums=('7dc46e6bd4a3c2ec10ab4d314acfbb30cefc6eae'
+ '4cf1a13e76cc1f1eb3708d42c74b85b7f321092d')
+
+build(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i ../glhack-libpng15.patch
+ sed -i 's|/usr/lib/games|/usr/share|' include/config.h
+ sed -i 's|/var/lib/games/glhack|/var/games/glhack|' include/unixconf.h
+ sed -i -e 's|PREFIX = /usr|PREFIX = $(DESTDIR)/usr|' Makefile
+ sed -i -e 's|VARDIR = /var/lib/games/glhack|VARDIR = $(DESTDIR)/var/games/glhack|' Makefile
+ sed -i -e 's|/usr/man/man6|$(DESTDIR)/usr/share/man/man6|' doc/Makefile
+ sed -i -e 's|GAMEDIR = $(PREFIX)/lib/games/$(GAME)|GAMEDIR = $(PREFIX)/share/$(GAME)|' Makefile
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}"/usr/share/man/man{5,6}
+ make DESTDIR="$pkgdir" install
+ install -D -m644 dat/license "${pkgdir}/usr/share/licenses/${pkgname}/license"
+
+# Renaming man pages which conflicts with nethack
+ cd "${pkgdir}/usr/share/man/man6"
+ for manpage in dgn_comp dlb lev_comp nethack recover; do
+ mv $manpage.6 $manpage-glhack.6
+ done
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ mv "${pkgdir}/usr/share/glhack/glhack" "${pkgdir}/usr/bin/glhack"
+ mv "${pkgdir}/usr/share/glhack/recover_glhack" "${pkgdir}/usr/bin/recover_glhack"
+
+ chown -R root:root "${pkgdir}/usr/share/glhack"
+
+ rm -r "${pkgdir}"/var/games/glhack
+ install -d "${pkgdir}/var/games/glhack/save"
+ chmod -R 775 "${pkgdir}/var/games"
+ chown -R root:games "${pkgdir}/var/games"
+}
diff --git a/staging/glhack/glhack-libpng15.patch b/staging/glhack/glhack-libpng15.patch
new file mode 100644
index 000000000..d8e644d1c
--- /dev/null
+++ b/staging/glhack/glhack-libpng15.patch
@@ -0,0 +1,11 @@
+--- win/gl/gl_image.c.old 2012-01-19 04:01:26.000000000 -0500
++++ win/gl/gl_image.c 2012-01-19 04:03:04.000000000 -0500
+@@ -486,7 +486,7 @@
+ /* set error handling since we are using the setjmp/longjmp method
+ * (this is the normal method of doing things with libpng).
+ */
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ sdlgl_warning("Problem within LibPNG (unknown)\n");
+ goto failed;
diff --git a/staging/glhack/glhack.install b/staging/glhack/glhack.install
new file mode 100644
index 000000000..78e1655bc
--- /dev/null
+++ b/staging/glhack/glhack.install
@@ -0,0 +1,24 @@
+post_install() {
+ touch var/games/glhack/{record,perm,logfile}
+ chown root:games var/games/glhack/{record,perm,logfile}
+ chmod 664 var/games/glhack/{record,perm,logfile}
+}
+
+pre_upgrade() {
+ install -d -m775 var/games/glhack
+ chown root:games var/games/glhack
+ [ -e usr/share/glhack/record ] && cp usr/share/glhack/record var/games/glhack
+ [ -e usr/share/glhack/perm ] && cp usr/share/glhack/perm var/games/glhack
+ [ -e usr/share/glhack/logfile ] && cp usr/share/glhack/logfile var/games/glhack
+ if [ -d usr/share/glhack/save ]; then
+ chmod g-s usr/share/glhack/save
+ mv usr/share/glhack/save var/games/glhack
+ else
+ install -d -m775 var/games/glhack/save
+ fi
+ chown root:games var/games/glhack/save
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/staging/gmime/PKGBUILD b/staging/gmime/PKGBUILD
new file mode 100644
index 000000000..013a38c82
--- /dev/null
+++ b/staging/gmime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 146576 2012-01-13 20:06:15Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gmime
+pkgver=2.6.4
+pkgrel=1
+pkgdesc="Core mime parsing library"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://spruce.sourceforge.net/gmime/"
+depends=('glib2' 'gpgme' 'zlib')
+makedepends=('gtk-sharp-2')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('2e85076c223fe8bf1392a7c1affa4454cb3bb6dec83016ad6e3230c65533f163')
+
+build() {
+ # get rid of that .wapi errors in fakeroot
+ export MONO_SHARED_DIR="$srcdir/weird"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/staging/graphicsmagick/PKGBUILD b/staging/graphicsmagick/PKGBUILD
new file mode 100644
index 000000000..7ca0a92e3
--- /dev/null
+++ b/staging/graphicsmagick/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 146915 2012-01-19 05:34:57Z bisson $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Anton Leontiev <bunder@t-25.ru>
+
+pkgname=graphicsmagick
+pkgver=1.3.13
+pkgrel=2
+pkgdesc='Image processing system'
+url='http://www.graphicsmagick.org/'
+arch=('i686' 'x86_64')
+license=('MIT')
+makedepends=('perl')
+depends=('bzip2' 'freetype2' 'ghostscript' 'jasper' 'lcms2' 'xz'
+ 'libtiff' 'libwmf' 'libsm' 'libxml2' 'libltdl')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/GraphicsMagick-${pkgver}.tar.xz")
+sha1sums=('b85b21785bb072fd795f7fc6ac902cffae4e96e6')
+
+build() {
+ cd "${srcdir}/GraphicsMagick-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --with-perl \
+ --enable-shared \
+ --disable-static \
+ --with-gs-font-dir=/usr/share/fonts/Type1 \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/GraphicsMagick-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # Install MIT license
+ install -Dm644 "Copyright.txt" "${pkgdir}/usr/share/licenses/${pkgname}/Copyright.txt"
+
+ # Install perl bindings
+ # The patching was introduced in order to build perl module without installing package itself and
+ # not to introduce unnecessary path into LD_RUN_PATH
+ cd PerlMagick
+ sed -i -e "s:'LDDLFLAGS' => \"\(.*\)\":'LDDLFLAGS' => \"-L${pkgdir}/usr/lib \1\":" Makefile.PL
+ perl Makefile.PL INSTALLDIRS=vendor PREFIX=/usr DESTDIR="${pkgdir}"
+ sed -i -e "s/LDLOADLIBS =/LDLOADLIBS = -lGraphicsMagick/" Makefile
+ make
+ make install
+
+ # Remove perllocal.pod and .packlist
+ rm -rf "${pkgdir}/usr/lib/perl5/core_perl"
+ rm "${pkgdir}/usr/lib/perl5/vendor_perl/auto/Graphics/Magick/.packlist"
+}
diff --git a/staging/graphviz/LICENSE b/staging/graphviz/LICENSE
new file mode 100644
index 000000000..16cc69a52
--- /dev/null
+++ b/staging/graphviz/LICENSE
@@ -0,0 +1,87 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
diff --git a/staging/graphviz/PKGBUILD b/staging/graphviz/PKGBUILD
new file mode 100644
index 000000000..41270f5fb
--- /dev/null
+++ b/staging/graphviz/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 146913 2012-01-19 05:23:33Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: kevin <kevin@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=graphviz
+pkgver=2.28.0
+pkgrel=7
+pkgdesc='Graph visualization software'
+url='http://www.graphviz.org/'
+license=('custom:EPL')
+arch=('i686' 'x86_64')
+depends=('libltdl' 'gd' 'librsvg' 'libxaw' 'ghostscript' 'pango' 'gts')
+makedepends=('swig' 'mono' 'guile' 'lua' 'ocaml' 'perl' 'php' 'python2' 'r' 'ruby' 'tk' 'qt')
+optdepends=('mono: sharp bindings'
+ 'guile: guile bindings'
+ 'lua: lua bindings'
+ 'ocaml: ocaml bindings'
+ 'perl: perl bindings'
+ 'php: php bindings'
+ 'python2: python bindings'
+ 'r: r bindings'
+ 'ruby: ruby bindings'
+ 'tcl: tcl bindings'
+ 'qt: gvedit')
+source=("${url}/pub/${pkgname}/stable/SOURCES/${pkgname}-${pkgver}.tar.gz"
+ 'LICENSE')
+sha1sums=('4725d88a13e071ee22e632de551d4a55ca08ee7d'
+ 'e78277e502c29abb74b9587a5dc951ec392554ea')
+
+options=('!libtool')
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i "/RUBY_INCLUDES=\"/s|\"$| `eval echo -I/usr/include/ruby-1.9.1/{$CARCH-linux,ruby/backward,}`\"|" configure
+ sed -i '/LIBPOSTFIX="64"/d' configure
+ export PYTHON=python2
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # cf. http://www.graphviz.org/License.php
+ install -Dm644 ../LICENSE "${pkgdir}"/usr/share/licenses/graphviz/LICENSE
+}
diff --git a/staging/graphviz/install b/staging/graphviz/install
new file mode 100644
index 000000000..65fba522b
--- /dev/null
+++ b/staging/graphviz/install
@@ -0,0 +1,12 @@
+post_install() {
+ rm -f usr/lib/graphviz/config{,6}
+ usr/bin/dot -c
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/graphviz/config{,6}
+}
diff --git a/staging/grilo-plugins/PKGBUILD b/staging/grilo-plugins/PKGBUILD
new file mode 100644
index 000000000..53fb29f9b
--- /dev/null
+++ b/staging/grilo-plugins/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 146585 2012-01-13 21:27:23Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=grilo-plugins
+pkgver=0.1.18
+pkgrel=2
+pkgdesc="Plugins for Grilo"
+url="http://www.gnome.org"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('grilo')
+makedepends=('gupnp-av' 'libgdata' 'libquvi' 'sqlite3' 'gmime' 'libgcrypt'
+ 'rest' 'libtracker-sparql')
+optdepends=('gupnp-av: uPnP plugin'
+ 'libgdata: Youtube plugin'
+ 'libquvi: Youtube plugin'
+ 'sqlite3: Podcasts plugin'
+ 'gmime: Podcasts plugin'
+ 'sqlite3: Bookmarks plugin'
+ 'sqlite3: Metadata store plugin'
+ 'libgcrypt: Vimeo plugin'
+ 'rest: Blip.tv plugin'
+ 'libtracker-sparql: Tracker plugin')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('7e382f402119f4f270380627a2f49b30a6c43a47ecd645bf5ffe4e0cd99a1c79')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --enable-shoutcast
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/gtkglext/PKGBUILD b/staging/gtkglext/PKGBUILD
new file mode 100644
index 000000000..60357e286
--- /dev/null
+++ b/staging/gtkglext/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 146971 2012-01-19 19:43:46Z giovanni $
+# Maintainer:
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gtkglext
+pkgver=1.2.0
+pkgrel=7
+pkgdesc="opengl extensions for gtk2"
+arch=('i686' 'x86_64')
+url="http://gtkglext.sourceforge.net/"
+license=('LGPL')
+depends=('gtk2' 'mesa' 'libxmu')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/gtkglext/${pkgname}-${pkgver}.tar.bz2"
+ 'gtk2.20.patch')
+md5sums=('ed7ba24ce06a8630c07f2d0ee5f04ab4'
+ 'e5a87ec3f2d0e616c6f32f90c3f7237f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/gtk2.20.patch"
+ sed '/AC_PATH_XTRA/d' -i configure.in
+
+ autoreconf --force --install
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/gtkglext/gtk2.20.patch b/staging/gtkglext/gtk2.20.patch
new file mode 100644
index 000000000..54b34c11e
--- /dev/null
+++ b/staging/gtkglext/gtk2.20.patch
@@ -0,0 +1,77 @@
+diff -Nur gtkglext-1.2.0.orig/gtk/gtkglwidget.c gtkglext-1.2.0/gtk/gtkglwidget.c
+--- gtkglext-1.2.0.orig/gtk/gtkglwidget.c 2004-02-20 11:38:36.000000000 +0200
++++ gtkglext-1.2.0/gtk/gtkglwidget.c 2010-04-20 19:29:42.941917275 +0300
+@@ -127,7 +127,7 @@
+ * Synchronize OpenGL and window resizing request streams.
+ */
+
+- if (GTK_WIDGET_REALIZED (widget) && private->is_realized)
++ if (gtk_widget_get_realized (widget) && private->is_realized)
+ {
+ gldrawable = gdk_window_get_gl_drawable (widget->window);
+ gdk_gl_drawable_wait_gdk (gldrawable);
+@@ -154,7 +154,7 @@
+ * Remove OpenGL-capability from widget->window.
+ */
+
+- if (GTK_WIDGET_REALIZED (widget))
++ if (gtk_widget_get_realized (widget))
+ gdk_window_unset_gl_capability (widget->window);
+
+ private->is_realized = FALSE;
+@@ -174,7 +174,7 @@
+ */
+
+ toplevel = gtk_widget_get_toplevel (widget);
+- if (GTK_WIDGET_TOPLEVEL (toplevel) && !GTK_WIDGET_REALIZED (toplevel))
++ if (gtk_widget_is_toplevel (toplevel) && !gtk_widget_get_realized (toplevel))
+ {
+ GTK_GL_NOTE (MISC,
+ g_message (" - Install colormap to the top-level window."));
+@@ -194,7 +194,7 @@
+ * Set a background of "None" on window to avoid AIX X server crash.
+ */
+
+- if (GTK_WIDGET_REALIZED (widget))
++ if (gtk_widget_get_realized (widget))
+ {
+ GTK_GL_NOTE (MISC,
+ g_message (" - window->bg_pixmap = %p",
+@@ -250,8 +250,8 @@
+ GTK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+- g_return_val_if_fail (!GTK_WIDGET_NO_WINDOW (widget), FALSE);
+- g_return_val_if_fail (!GTK_WIDGET_REALIZED (widget), FALSE);
++ g_return_val_if_fail (gtk_widget_get_has_window (widget), FALSE);
++ g_return_val_if_fail (!gtk_widget_get_realized (widget), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ /*
+@@ -432,7 +432,7 @@
+ GTK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
+
+ gldrawable = gdk_window_get_gl_drawable (widget->window);
+ if (gldrawable == NULL)
+@@ -474,7 +474,7 @@
+ GLWidgetPrivate *private;
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
+
+ private = g_object_get_qdata (G_OBJECT (widget), quark_gl_private);
+ if (private == NULL)
+@@ -501,7 +501,7 @@
+ gtk_widget_get_gl_window (GtkWidget *widget)
+ {
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
+
+ return gdk_window_get_gl_window (widget->window);
+ }
diff --git a/staging/hugin/PKGBUILD b/staging/hugin/PKGBUILD
new file mode 100644
index 000000000..f481c13d3
--- /dev/null
+++ b/staging/hugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 146975 2012-01-19 20:40:48Z eric $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dominik Ryba <domryba@post.pl>
+
+pkgname=hugin
+pkgver=2011.4.0
+pkgrel=1
+pkgdesc="A frontend to the panorama-tools"
+arch=('i686' 'x86_64')
+url="http://hugin.sourceforge.net/"
+license=('GPL')
+depends=('wxgtk' 'boost-libs' 'enblend-enfuse' 'exiv2' 'autopano-sift-c'
+ 'lapack' 'desktop-file-utils' 'make' 'perl-image-exiftool')
+makedepends=('zip' 'cmake' 'boost' 'tclap')
+install=hugin.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('21ec7331d5e196aca2a8771d3c9101dd181ad93b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build && cd build
+ cmake "${srcdir}/${pkgname}-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_EXE_LINKER_FLAGS="-lpthread" \
+ -DENABLE_LAPACK=yes
+ make
+}
+
+package(){
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/hugin/hugin.install b/staging/hugin/hugin.install
new file mode 100644
index 000000000..362749233
--- /dev/null
+++ b/staging/hugin/hugin.install
@@ -0,0 +1,15 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
diff --git a/staging/imagemagick/PKGBUILD b/staging/imagemagick/PKGBUILD
new file mode 100644
index 000000000..91331d359
--- /dev/null
+++ b/staging/imagemagick/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 146973 2012-01-19 20:16:27Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgbase=imagemagick
+pkgname=('imagemagick' 'imagemagick-doc')
+pkgver=6.7.4.7
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.imagemagick.org/"
+license=('custom')
+depends=('perl' 'libltdl' 'lcms2' 'libxt' 'fontconfig' 'libxext' 'libjpeg-turbo')
+makedepends=('ghostscript' 'openexr' 'libwmf' 'librsvg' 'libxml2' 'jasper' 'libpng')
+source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \
+ perlmagick.rpath.patch)
+sha1sums=('87cde464a569d8b34ef8edae817fbe4f51f8c2d0'
+ '23405f80904b1de94ebd7bd6fe2a332471b8c283')
+
+build() {
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+
+ sed '/AC_PATH_XTRA/d' -i configure.ac
+ autoreconf
+ patch -p0 -i ../perlmagick.rpath.patch
+
+ LIBS="$LIBS -L/usr/lib/perl5/core_perl/CORE -lperl" \
+ ./configure --prefix=/usr --sysconfdir=/etc --with-modules --disable-static \
+ --enable-openmp --with-wmf --with-openexr --with-xml --with-lcms2 --with-jp2 \
+ --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \
+ --with-perl --with-perl-options="INSTALLDIRS=vendor" \
+ --without-gvc --without-djvu --without-autotrace --without-webp \
+ --without-jbig --without-fpx --without-dps --without-fftw --without-lqr
+ make
+}
+
+check() {
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make check
+}
+
+package_imagemagick() {
+ pkgdesc="An image viewing/manipulation program"
+ optdepends=('ghostscript: for Ghostscript support'
+ 'openexr: for OpenEXR support'
+ 'libwmf: for WMF support'
+ 'librsvg: for SVG support'
+ 'libxml2: for XML support'
+ 'jasper: for JPEG-2000 support'
+ 'libpng: for PNG support')
+ backup=('etc/ImageMagick/coder.xml'
+ 'etc/ImageMagick/colors.xml'
+ 'etc/ImageMagick/delegates.xml'
+ 'etc/ImageMagick/log.xml'
+ 'etc/ImageMagick/magic.xml'
+ 'etc/ImageMagick/mime.xml'
+ 'etc/ImageMagick/policy.xml'
+ 'etc/ImageMagick/sRGB.icc'
+ 'etc/ImageMagick/thresholds.xml'
+ 'etc/ImageMagick/type.xml'
+ 'etc/ImageMagick/type-dejavu.xml'
+ 'etc/ImageMagick/type-ghostscript.xml'
+ 'etc/ImageMagick/type-windows.xml')
+ options=('!makeflags' '!docs' 'libtool')
+
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make DESTDIR="${pkgdir}" install
+ chmod 755 "${pkgdir}/usr/lib/perl5/vendor_perl/auto/Image/Magick/Magick.so"
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick/LICENSE"
+ install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick/NOTICE"
+
+#Cleaning
+ find "${pkgdir}" -name '*.bs' -delete
+ rm -f "${pkgdir}"/usr/lib/*.la
+}
+
+package_imagemagick-doc() {
+ pkgdesc="The ImageMagick documentation (utilities manuals and libraries API)"
+ depends=()
+ options=('!makeflags')
+
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make DESTDIR="${pkgdir}" install-data-html
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick-doc/LICENSE"
+ install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick-doc/NOTICE"
+}
diff --git a/staging/imagemagick/perlmagick.rpath.patch b/staging/imagemagick/perlmagick.rpath.patch
new file mode 100644
index 000000000..958c0f2ee
--- /dev/null
+++ b/staging/imagemagick/perlmagick.rpath.patch
@@ -0,0 +1,10 @@
+--- Makefile.in.orig 2009-05-26 16:22:11.000000000 -0300
++++ Makefile.in 2009-05-26 16:23:27.000000000 -0300
+@@ -10067,6 +10067,7 @@
+
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@$(PERLMAKEFILE): perl-sources $(PERLMAKEMAKER)
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @PERL@ Makefile.PL $(PERL_MAKE_OPTIONS)
++@WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @SED@ -i 's|LD_RUN_PATH|DIE_LD_RUN_PATH_DIE|g' Makefile
+
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@install-exec-perl: $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(PERLMAKEFILE)
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && $(MAKE) CC='@CC@' install
diff --git a/staging/imlib/CAN-2004-1026.patch b/staging/imlib/CAN-2004-1026.patch
new file mode 100644
index 000000000..c820270d4
--- /dev/null
+++ b/staging/imlib/CAN-2004-1026.patch
@@ -0,0 +1,510 @@
+diff -urN imlib-1.9.13.orig/Imlib/load.c imlib-1.9.13/Imlib/load.c
+--- imlib-1.9.13.orig/Imlib/load.c Wed Mar 13 19:06:29 2002
++++ imlib-1.9.13/Imlib/load.c Thu Sep 16 17:21:01 2004
+@@ -4,6 +4,8 @@
+ #include "Imlib_private.h"
+ #include <setjmp.h>
+
++#define G_MAXINT ((int) 0x7fffffff)
++
+ /* Split the ID - damages input */
+
+ static char *
+@@ -41,13 +43,17 @@
+
+ /*
+ * Make sure we don't wrap on our memory allocations
++ * we check G_MAXINT/4 because rend.c malloc's w * h * bpp
++ * + 3 is safety margin
+ */
+
+ void * _imlib_malloc_image(unsigned int w, unsigned int h)
+ {
+- if( w > 32767 || h > 32767)
+- return NULL;
+- return malloc(w * h * 3);
++ if (w <= 0 || w > 32767 ||
++ h <= 0 || h > 32767 ||
++ h >= (G_MAXINT/4 - 1) / w)
++ return NULL;
++ return malloc(w * h * 3 + 3);
+ }
+
+ #ifdef HAVE_LIBJPEG
+@@ -360,7 +366,9 @@
+ npix = ww * hh;
+ *w = (int)ww;
+ *h = (int)hh;
+- if(ww > 32767 || hh > 32767)
++ if (ww <= 0 || ww > 32767 ||
++ hh <= 0 || hh > 32767 ||
++ hh >= (G_MAXINT/sizeof(uint32)) / ww)
+ {
+ TIFFClose(tif);
+ return NULL;
+@@ -463,7 +471,7 @@
+ }
+ *w = gif->Image.Width;
+ *h = gif->Image.Height;
+- if (*h > 32767 || *w > 32767)
++ if (*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
+ {
+ return NULL;
+ }
+@@ -965,7 +973,12 @@
+ comment = 0;
+ quote = 0;
+ context = 0;
++ memset(lookup, 0, sizeof(lookup));
++
+ line = malloc(lsz);
++ if (!line)
++ return NULL;
++
+ while (!done)
+ {
+ pc = c;
+@@ -994,25 +1007,25 @@
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", w, h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM files wth colors > 32766 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM files with characters per pixel > 5 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (*w > 32767)
++ if (*w <= 0 || *w > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for file\n");
+ free(line);
+ return NULL;
+ }
+- if (*h > 32767)
++ if (*h <= 0 || *h > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for file\n");
+ free(line);
+@@ -1045,11 +1058,13 @@
+ {
+ int slen;
+ int hascolor, iscolor;
++ int space;
+
+ iscolor = 0;
+ hascolor = 0;
+ tok[0] = 0;
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ s[0] = 0;
+ len = strlen(line);
+ strncpy(cmap[j].str, line, cpp);
+@@ -1072,10 +1087,10 @@
+ {
+ if (k >= len)
+ {
+- if (col[0])
+- strcat(col, " ");
+- if (strlen(col) + strlen(s) < sizeof(col))
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ if (col[0])
+ {
+@@ -1105,14 +1120,17 @@
+ }
+ }
+ }
+- strcpy(tok, s);
++ if (slen < sizeof(tok));
++ strcpy(tok, s);
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ }
+ else
+ {
+- if (col[0])
+- strcat(col, " ");
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -=1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ }
+ }
+@@ -1341,12 +1359,12 @@
+ sscanf(s, "%i %i", w, h);
+ a = *w;
+ b = *h;
+- if (a > 32767)
++ if (a <= 0 || a > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for file\n");
+ return NULL;
+ }
+- if (b > 32767)
++ if (b <= 0 || b > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for file\n");
+ return NULL;
+diff -urN imlib-1.9.13.orig/Imlib/utils.c imlib-1.9.13/Imlib/utils.c
+--- imlib-1.9.13.orig/Imlib/utils.c Mon Mar 4 17:45:28 2002
++++ imlib-1.9.13/Imlib/utils.c Thu Sep 16 17:21:15 2004
+@@ -1496,36 +1496,56 @@
+ context = 0;
+ ptr = NULL;
+ end = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ while (!done)
+ {
+ line = data[count++];
++ if (!line)
++ break;
++ line = strdup(line);
++ if (!line)
++ break;
++ len = strlen(line);
++ for (i = 0; i < len; ++i)
++ {
++ c = line[i];
++ if (c < 32)
++ line[i] = 32;
++ else if (c > 127)
++ line[i] = 127;
++ }
++
+ if (context == 0)
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM data wth colors > 32766 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM data with characters per pixel > 5 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (w > 32767)
++ if (w <= 0 || w > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (h > 32767)
++ if (h <= 0 || h > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+ cmap = malloc(sizeof(struct _cmap) * ncolors);
+@@ -1533,6 +1553,7 @@
+ if (!cmap)
+ {
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->rgb_width = w;
+@@ -1542,6 +1563,7 @@
+ {
+ free(cmap);
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->alpha_data = NULL;
+@@ -1817,6 +1839,7 @@
+ }
+ if ((ptr) && ((ptr - im->rgb_data) >= w * h * 3))
+ done = 1;
++ free(line);
+ }
+ if (!transp)
+ {
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-gif.c imlib-1.9.13/gdk_imlib/io-gif.c
+--- imlib-1.9.13.orig/gdk_imlib/io-gif.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-gif.c Thu Sep 16 16:11:31 2004
+@@ -55,7 +55,7 @@
+ }
+ *w = gif->Image.Width;
+ *h = gif->Image.Height;
+- if(*h > 32767 || *w > 32767)
++ if(*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
+ {
+ return NULL;
+ }
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-ppm.c imlib-1.9.13/gdk_imlib/io-ppm.c
+--- imlib-1.9.13.orig/gdk_imlib/io-ppm.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-ppm.c Thu Sep 16 16:13:13 2004
+@@ -53,12 +53,12 @@
+ sscanf(s, "%i %i", w, h);
+ a = *w;
+ b = *h;
+- if (a > 32767)
++ if (a <= 0 || a > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for file\n");
+ return NULL;
+ }
+- if (b > 32767)
++ if (b <= 0 || b > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for file\n");
+ return NULL;
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-tiff.c imlib-1.9.13/gdk_imlib/io-tiff.c
+--- imlib-1.9.13.orig/gdk_imlib/io-tiff.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-tiff.c Thu Sep 16 16:13:57 2004
+@@ -36,7 +36,9 @@
+ npix = ww * hh;
+ *w = (int)ww;
+ *h = (int)hh;
+- if(ww > 32767 || hh > 32767)
++ if (ww <= 0 || ww > 32767 ||
++ hh <= 0 || hh > 32767 ||
++ hh >= (G_MAXINT/sizeof(uint32)) / ww)
+ {
+ TIFFClose(tif);
+ return NULL;
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-xpm.c imlib-1.9.13/gdk_imlib/io-xpm.c
+--- imlib-1.9.13.orig/gdk_imlib/io-xpm.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-xpm.c Thu Sep 16 17:08:24 2004
+@@ -40,8 +40,12 @@
+ context = 0;
+ i = j = 0;
+ cmap = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ line = malloc(lsz);
++ if (!line)
++ return NULL;
++
+ while (!done)
+ {
+ pc = c;
+@@ -70,25 +74,25 @@
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", w, h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM files wth colors > 32766 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM files with characters per pixel > 5 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (*w > 32767)
++ if (*w <= 0 || *w > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for file\n");
+ free(line);
+ return NULL;
+ }
+- if (*h > 32767)
++ if (*h <= 0 || *h > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for file\n");
+ free(line);
+@@ -120,11 +124,13 @@
+ {
+ int slen;
+ int hascolor, iscolor;
++ int space;
+
+ hascolor = 0;
+ iscolor = 0;
+ tok[0] = 0;
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ s[0] = 0;
+ len = strlen(line);
+ strncpy(cmap[j].str, line, cpp);
+@@ -147,10 +153,10 @@
+ {
+ if (k >= len)
+ {
+- if (col[0])
+- strcat(col, " ");
+- if (strlen(col) + strlen(s) < sizeof(col))
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strncat(col, " ", space), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ if (col[0])
+ {
+@@ -180,14 +186,17 @@
+ }
+ }
+ }
+- strcpy(tok, s);
++ if (slen < sizeof(tok))
++ strcpy(tok, s);
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ }
+ else
+ {
+- if (col[0])
+- strcat(col, " ");
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ }
+ }
+diff -urN imlib-1.9.13.orig/gdk_imlib/misc.c imlib-1.9.13/gdk_imlib/misc.c
+--- imlib-1.9.13.orig/gdk_imlib/misc.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/misc.c Thu Sep 16 16:35:32 2004
+@@ -1355,11 +1355,16 @@
+
+ /*
+ * Make sure we don't wrap on our memory allocations
++ * we check G_MAX_INT/4 because rend.c malloc's w * h * bpp
++ * + 3 is safety margin
+ */
+
+ void *_gdk_malloc_image(unsigned int w, unsigned int h)
+ {
+- if( w > 32767 || h > 32767)
++ if (w <= 0 || w > 32767 ||
++ h <= 0 || h > 32767 ||
++ h >= (G_MAXINT/4 - 1) / w)
+ return NULL;
+- return malloc(w * h * 3);
++ return malloc(w * h * 3 + 3);
+ }
++
+diff -urN imlib-1.9.13.orig/gdk_imlib/utils.c imlib-1.9.13/gdk_imlib/utils.c
+--- imlib-1.9.13.orig/gdk_imlib/utils.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/utils.c Thu Sep 16 17:28:35 2004
+@@ -1236,36 +1236,56 @@
+ context = 0;
+ ptr = NULL;
+ end = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ while (!done)
+ {
+ line = data[count++];
++ if (!line)
++ break;
++ line = strdup(line);
++ if (!line)
++ break;
++ len = strlen(line);
++ for (i = 0; i < len; ++i)
++ {
++ c = line[i];
++ if (c < 32)
++ line[i] = 32;
++ else if (c > 127)
++ line[i] = 127;
++ }
++
+ if (context == 0)
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM data wth colors > 32766 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM data with characters per pixel > 5 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (w > 32767)
++ if (w <= 0 || w > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (h > 32767)
++ if (h <= 0 || h > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+ cmap = malloc(sizeof(struct _cmap) * ncolors);
+@@ -1273,6 +1293,7 @@
+ if (!cmap)
+ {
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->rgb_width = w;
+@@ -1282,6 +1303,7 @@
+ {
+ free(cmap);
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->alpha_data = NULL;
+@@ -1355,7 +1377,7 @@
+ strcpy(col + colptr, " ");
+ colptr++;
+ }
+- if (colptr + ls <= sizeof(col))
++ if (colptr + ls < sizeof(col))
+ {
+ strcpy(col + colptr, s);
+ colptr += ls;
+@@ -1558,6 +1580,7 @@
+ }
+ if ((ptr) && ((ptr - im->rgb_data) >= w * h * 3))
+ done = 1;
++ free(line);
+ }
+ if (!transp)
+ {
diff --git a/staging/imlib/PKGBUILD b/staging/imlib/PKGBUILD
new file mode 100644
index 000000000..a24025502
--- /dev/null
+++ b/staging/imlib/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 146849 2012-01-18 20:31:10Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=imlib
+pkgver=1.9.15
+pkgrel=11
+pkgdesc="General image handling library for X11 and Gtk"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/imlib/"
+license=('GPL')
+depends=('gtk' 'giflib' 'libpng' 'libtiff')
+makedepends=('libxt')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/${pkgname}-${pkgver}.tar.bz2
+ debian-bug448360.patch CAN-2004-1026.patch aclocal-fixes.patch imlib-1.9.15-libpng15.patch)
+sha1sums=('c9a732a354fbb3c7e1a426e5d19fc92d73f8f720'
+ 'fe2fd9ce4d7bc62271e724153de39012de8ec5ee'
+ 'ec1b47281c1a7fb21abe841f948ecc56ed13f310'
+ 'af54cb1ee0c8c6122b277284ebdd1022e31df3b5'
+ '33c3aaa43eb624f2a6ab0406285a8515903333e3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/debian-bug448360.patch"
+ patch -p1 -i "${srcdir}/CAN-2004-1026.patch"
+ patch -p0 -i "${srcdir}/aclocal-fixes.patch"
+ patch -p0 -i "${srcdir}/imlib-1.9.15-libpng15.patch"
+ sed '/AC_PATH_XTRA/d' -i configure.in
+ libtoolize --force
+ cp /usr/bin/libtool .
+ autoreconf --force --install
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --enable-shm --disable-static
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/imlib/aclocal-fixes.patch b/staging/imlib/aclocal-fixes.patch
new file mode 100644
index 000000000..04ef737e7
--- /dev/null
+++ b/staging/imlib/aclocal-fixes.patch
@@ -0,0 +1,20 @@
+--- imlib.m4.orig 2006-03-05 12:41:14.000000000 +0000
++++ imlib.m4 2006-03-05 12:44:15.000000000 +0000
+@@ -6,7 +6,7 @@
+ dnl AM_PATH_IMLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+ dnl Test for IMLIB, and define IMLIB_CFLAGS and IMLIB_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_IMLIB,
++AC_DEFUN([AM_PATH_IMLIB],
+ [dnl
+ dnl Get the cflags and libraries from the imlib-config script
+ dnl
+@@ -164,7 +164,7 @@
+ ])
+
+ # Check for gdk-imlib
+-AC_DEFUN(AM_PATH_GDK_IMLIB,
++AC_DEFUN([AM_PATH_GDK_IMLIB],
+ [dnl
+ dnl Get the cflags and libraries from the imlib-config script
+ dnl
diff --git a/staging/imlib/debian-bug448360.patch b/staging/imlib/debian-bug448360.patch
new file mode 100644
index 000000000..f1c0ef111
--- /dev/null
+++ b/staging/imlib/debian-bug448360.patch
@@ -0,0 +1,92 @@
+diff -up -ru imlib-1.9.15.orig/gdk_imlib/misc.c imlib-1.9.15/gdk_imlib/misc.c
+--- imlib-1.9.15.orig/gdk_imlib/misc.c 2002-03-04 18:06:32.000000000 +0100
++++ imlib-1.9.15/gdk_imlib/misc.c 2007-10-28 14:00:04.000000000 +0100
+@@ -674,6 +674,10 @@ gdk_imlib_init_params(GdkImlibInitParams
+ visual = gdk_rgb_get_visual();
+ id->x.visual = GDK_VISUAL_XVISUAL(visual); /* the visual type */
+ id->x.depth = visual->depth; /* the depth of the screen in bpp */
++
++ id->x.shm = 0;
++ id->x.shmp = 0;
++ id->max_shm = 0;
+ #ifdef HAVE_SHM
+ if (XShmQueryExtension(id->x.disp))
+ {
+@@ -689,17 +693,14 @@ gdk_imlib_init_params(GdkImlibInitParams
+ id->x.last_xim = NULL;
+ id->x.last_sxim = NULL;
+ id->max_shm = 0x7fffffff;
+- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap) &&
++ (pm == True))
+ id->x.shmp = 1;
+ }
+ }
+ }
+- else
+ #endif
+- {
+- id->x.shm = 0;
+- id->x.shmp = 0;
+- }
++
+ id->cache.on_image = 0;
+ id->cache.size_image = 0;
+ id->cache.num_image = 0;
+@@ -935,8 +936,8 @@ gdk_imlib_init_params(GdkImlibInitParams
+ }
+ if (p->flags & PARAMS_SHAREDPIXMAPS)
+ {
+- if (id->x.shm)
+- id->x.shmp = p->sharedpixmaps;
++ if (!p->sharedpixmaps)
++ id->x.shmp = 0;
+ }
+ if (p->flags & PARAMS_PALETTEOVERRIDE)
+ override = p->paletteoverride;
+diff -up -ru imlib-1.9.15.orig/Imlib/misc.c imlib-1.9.15/Imlib/misc.c
+--- imlib-1.9.15.orig/Imlib/misc.c 2004-09-21 02:22:59.000000000 +0200
++++ imlib-1.9.15/Imlib/misc.c 2007-10-28 14:00:23.000000000 +0100
+@@ -675,6 +675,10 @@ Imlib_init_with_params(Display * disp, I
+ id->x.root = DefaultRootWindow(disp); /* the root window id */
+ id->x.visual = DefaultVisual(disp, id->x.screen); /* the visual type */
+ id->x.depth = DefaultDepth(disp, id->x.screen); /* the depth of the screen in bpp */
++
++ id->x.shm = 0;
++ id->x.shmp = 0;
++ id->max_shm = 0;
+ #ifdef HAVE_SHM
+ if (XShmQueryExtension(id->x.disp))
+ {
+@@ -690,17 +694,14 @@ Imlib_init_with_params(Display * disp, I
+ id->x.last_xim = NULL;
+ id->x.last_sxim = NULL;
+ id->max_shm = 0x7fffffff;
+- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap &&
++ (pm == True)))
+ id->x.shmp = 1;
+ }
+ }
+ }
+- else
+ #endif
+- {
+- id->x.shm = 0;
+- id->x.shmp = 0;
+- }
++
+ id->cache.on_image = 0;
+ id->cache.size_image = 0;
+ id->cache.num_image = 0;
+@@ -952,8 +953,8 @@ Imlib_init_with_params(Display * disp, I
+ }
+ if (p->flags & PARAMS_SHAREDPIXMAPS)
+ {
+- if (id->x.shm)
+- id->x.shmp = p->sharedpixmaps;
++ if (!p->sharedpixmaps)
++ id->x.shmp = 0;
+ }
+ if (p->flags & PARAMS_PALETTEOVERRIDE)
+ override = p->paletteoverride;
diff --git a/staging/imlib/imlib-1.9.15-libpng15.patch b/staging/imlib/imlib-1.9.15-libpng15.patch
new file mode 100644
index 000000000..7837cd488
--- /dev/null
+++ b/staging/imlib/imlib-1.9.15-libpng15.patch
@@ -0,0 +1,142 @@
+--- gdk_imlib/io-png.c
++++ gdk_imlib/io-png.c
+@@ -40,13 +40,13 @@
+ return NULL;
+ }
+
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -275,13 +275,13 @@
+ return NULL;
+ }
+
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -301,6 +301,9 @@
+ /* Setup Translators */
+ if (color_type == PNG_COLOR_TYPE_PALETTE)
+ png_set_expand(png_ptr);
++ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
++ png_set_expand(png_ptr);
++
+ png_set_strip_16(png_ptr);
+ png_set_packing(png_ptr);
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
+@@ -440,13 +443,13 @@
+ return NULL;
+ }
+
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -635,7 +638,7 @@
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+ return 0;
+ }
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ fclose(f);
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+--- Imlib/load.c
++++ Imlib/load.c
+@@ -197,12 +197,12 @@
+ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return NULL;
+ }
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -260,7 +260,8 @@
+ png_read_image(png_ptr, lines);
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ ptr = data;
+- if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
++ if (color_type == PNG_COLOR_TYPE_GRAY
++ || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+ {
+ for (y = 0; y < *h; y++)
+ {
+@@ -285,6 +286,7 @@
+ }
+ }
+ }
++#if 0
+ else if (color_type == PNG_COLOR_TYPE_GRAY)
+ {
+ for (y = 0; y < *h; y++)
+@@ -300,6 +302,7 @@
+ }
+ }
+ }
++#endif
+ else
+ {
+ for (y = 0; y < *h; y++)
+--- Imlib/save.c
++++ Imlib/save.c
+@@ -342,7 +342,7 @@
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+ return 0;
+ }
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ fclose(f);
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+--- Imlib/utils.c
++++ Imlib/utils.c
+@@ -1981,14 +1981,13 @@
+ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return NULL;
+ }
+-
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
diff --git a/staging/kdelibs3/PKGBUILD b/staging/kdelibs3/PKGBUILD
new file mode 100644
index 000000000..e59d262b1
--- /dev/null
+++ b/staging/kdelibs3/PKGBUILD
@@ -0,0 +1,94 @@
+# $Id: PKGBUILD 146921 2012-01-19 08:17:01Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kdelibs3
+pkgver=3.5.10
+pkgrel=12
+pkgdesc='KDE3 Core Libraries'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 'libcups' 'jasper'
+ 'libidn' 'openexr' 'aspell' 'qt3' 'ca-certificates')
+makedepends=('cups' 'hspell')
+optdepends=('hspell: for Hebrew spell-checking support')
+options=('libtool')
+install=kdelibs3.install
+source=("ftp://ftp.kde.org/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2"
+ 'ftp://ftp.archlinux.org/other/kde/kde-3.5-1074156.patch.gz'
+ 'acinclude.patch'
+ 'kde3.profile'
+ 'kde4-compatibility.patch'
+ 'kconf_updaterc'
+ 'openssl.patch'
+ 'kdelibs3-missing-include.patch')
+sha1sums=('c930a25f4419134def55b8466c3a6f737227fb82'
+ 'c8ca21e4848a627760746d0a8a64bf4f90684c3e'
+ '50c9de71b102507fb78b192ecc22a5fc3e031bc3'
+ 'fbd6e773edf3e8bb8e1272629984025e041da2ca'
+ '5fbbf7a5e2032878815fa055bfb5020f478d2b25'
+ '35e56fe4c5f71685e64b13f448dcacc620166e06'
+ '50e92950498463defb9149ffcf8cbc2e8cd1063b'
+ 'e5f5b8c060a2db9cedb82bf18caadfa869921779')
+
+build() {
+ cd "$srcdir"/kdelibs-${pkgver}
+
+ . /etc/profile.d/qt3.sh
+ . "$srcdir"/kde3.profile
+
+ patch -p0 -i "$srcdir"/kde-3.5-1074156.patch
+ patch -p1 -i "$srcdir"/acinclude.patch
+ patch -p1 -i "$srcdir"/kde4-compatibility.patch
+ patch -p1 -i "${srcdir}"/openssl.patch
+ patch -p0 -i "$srcdir"/kdelibs3-missing-include.patch
+
+ sed -iautomake -e 's|automake\*1.10\*|automake\*1.1[0-5]\*|' admin/cvs.sh
+ make -f admin/Makefile.common cvs
+
+ ./configure --prefix=/opt/kde \
+ --with-distribution='Arch Linux' \
+ --with-alsa \
+ --disable-debug \
+ --disable-dnssd \
+ --disable-dnotify \
+ --enable-inotify \
+ --enable-sendfile \
+ --without-lua \
+ --with-hspell \
+ --enable-gcc-hidden-visibility \
+ --enable-final \
+ --enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \
+ --without-arts \
+ --disable-libfam
+ make
+}
+
+package() {
+ cd "$srcdir"/kdelibs-${pkgver}
+
+ make DESTDIR="$pkgdir" install
+
+ # disable broken kconf_update by default
+ install -D -m644 "$srcdir"/kconf_updaterc \
+ "$pkgdir"/opt/kde/share/config/kconf_updaterc
+
+ # install KDE3 profile
+ install -D -m755 "$srcdir"/kde3.profile "$pkgdir"/etc/profile.d/kde3.sh
+ # make KDE3 styles available to Qt3
+ install -d -m755 "$pkgdir"/opt/qt/plugins
+ ln -sf /opt/kde/lib/kde3/plugins/styles "$pkgdir"/opt/qt/plugins/styles
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt
+
+ # we don't have khelpcenter anyway
+ rm -rf "$pkgdir"/opt/kde/share/doc
+
+ install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/
+ echo '/opt/kde/lib' > "${pkgdir}"/etc/ld.so.conf.d/kdelibs3.conf
+}
diff --git a/staging/kdelibs3/acinclude.patch b/staging/kdelibs3/acinclude.patch
new file mode 100644
index 000000000..0610d6df5
--- /dev/null
+++ b/staging/kdelibs3/acinclude.patch
@@ -0,0 +1,66 @@
+2009-12-10 Stepan Kasal <skasal@redhat.com>
+
+The change of implementation of AC_REQUIRE in 2.64 caused a regression
+in the arts project.
+This can be fixed by shuffling some macro calls.
+
+I suppose that most of this patch will not be needed with a future
+release of Autoconf.
+But the last chunk of this patch is a real bug in this source and
+should go upstream.
+
+--- arts-1.5.10/admin/acinclude.m4.in 2008-08-20 18:07:05.000000000 +0200
++++ arts-1.5.10/admin/acinclude.m4.in 2009-12-09 17:30:57.000000000 +0100
+@@ -3081,8 +3081,18 @@
+ fi
+ ])
+
++AC_DEFUN([AC_CHECK_COMPILERS_CC],
++[
++ dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
++ CFLAGS=" $CFLAGS"
++ AC_PROG_CC
++ CXXFLAGS=" $CXXFLAGS"
++ AC_PROG_CXX
++])
++
+ AC_DEFUN([AC_CHECK_COMPILERS],
+ [
++ AC_REQUIRE([AC_CHECK_COMPILERS_CC])
+ AC_ARG_ENABLE(debug,
+ AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
+ [
+@@ -3141,11 +3151,6 @@
+ [kde_use_profiling="no"]
+ )
+
+- dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
+- CFLAGS=" $CFLAGS"
+-
+- AC_PROG_CC
+-
+ AC_PROG_CPP
+
+ if test "$GCC" = "yes"; then
+@@ -3174,10 +3179,6 @@
+ LDFLAGS=""
+ fi
+
+- CXXFLAGS=" $CXXFLAGS"
+-
+- AC_PROG_CXX
+-
+ KDE_CHECK_FOR_BAD_COMPILER
+
+ if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
+@@ -3503,8 +3504,8 @@
+ AC_REQUIRE([AC_LIBTOOL_DLOPEN])
+ AC_REQUIRE([KDE_CHECK_LIB64])
+
+-AC_OBJEXT
+-AC_EXEEXT
++AC_REQUIRE([AC_OBJEXT])
++AC_REQUIRE([AC_EXEEXT])
+
+ AM_PROG_LIBTOOL
+ AC_LIBTOOL_CXX
diff --git a/staging/kdelibs3/kconf_updaterc b/staging/kdelibs3/kconf_updaterc
new file mode 100644
index 000000000..24c2623fb
--- /dev/null
+++ b/staging/kdelibs3/kconf_updaterc
@@ -0,0 +1,2 @@
+updateInfoAdded=false
+autoUpdateDisabled=true
diff --git a/staging/kdelibs3/kde3.profile b/staging/kdelibs3/kde3.profile
new file mode 100755
index 000000000..ef09631ff
--- /dev/null
+++ b/staging/kdelibs3/kde3.profile
@@ -0,0 +1,6 @@
+export PATH=$PATH:/opt/kde/bin
+if [ ! -z $XDG_DATA_DIRS ]; then
+ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/opt/kde/share
+else
+ export XDG_DATA_DIRS=/opt/kde/share
+fi
diff --git a/staging/kdelibs3/kde4-compatibility.patch b/staging/kdelibs3/kde4-compatibility.patch
new file mode 100644
index 000000000..129c314ae
--- /dev/null
+++ b/staging/kdelibs3/kde4-compatibility.patch
@@ -0,0 +1,1012 @@
+diff -Nura kdelibs-3.5.10/kdecore/kcrash.cpp kdelibs-3.5.10.new/kdecore/kcrash.cpp
+--- kdelibs-3.5.10/kdecore/kcrash.cpp 2007-01-15 12:34:17.000000000 +0100
++++ kdelibs-3.5.10.new/kdecore/kcrash.cpp 2009-08-06 06:18:06.000000000 +0200
+@@ -158,7 +158,7 @@
+ int i = 0;
+
+ // argument 0 has to be drkonqi
+- argv[i++] = "drkonqi";
++ argv[i++] = "/usr/lib/kde4/libexec/drkonqi";
+
+ #if defined Q_WS_X11
+ // start up on the correct display
+@@ -325,7 +325,7 @@
+ _exit(253);
+ if(!geteuid() && setuid(getuid()) < 0)
+ _exit(253);
+- execvp("drkonqi", const_cast< char** >( argv ));
++ execvp("/usr/lib/kde4/libexec/drkonqi", const_cast< char** >( argv ));
+ _exit(errno);
+ }
+ else
+diff -Nura kdelibs-3.5.10/kded/Makefile.am kdelibs-3.5.10.new/kded/Makefile.am
+--- kdelibs-3.5.10/kded/Makefile.am 2005-10-10 17:06:29.000000000 +0200
++++ kdelibs-3.5.10.new/kded/Makefile.am 2009-08-06 06:21:37.000000000 +0200
+@@ -58,7 +58,7 @@
+ servicetype_DATA = kdedmodule.desktop
+ servicetypedir = $(kde_servicetypesdir)
+
+-xdg_menu_DATA = applications.menu
++xdg_menu_DATA = kde-applications.menu
+
+ update_DATA = kded.upd
+ updatedir = $(kde_datadir)/kconf_update
+diff -Nura kdelibs-3.5.10/kded/Makefile.in kdelibs-3.5.10.new/kded/Makefile.in
+--- kdelibs-3.5.10/kded/Makefile.in 2008-08-20 18:05:57.000000000 +0200
++++ kdelibs-3.5.10.new/kded/Makefile.in 2009-08-06 06:22:19.000000000 +0200
+@@ -535,7 +535,7 @@
+
+ servicetype_DATA = kdedmodule.desktop
+ servicetypedir = $(kde_servicetypesdir)
+-xdg_menu_DATA = applications.menu
++xdg_menu_DATA = kde-applications.menu
+ update_DATA = kded.upd
+ updatedir = $(kde_datadir)/kconf_update
+ #>- all: all-am
+@@ -1173,7 +1173,7 @@
+ -rm -f kded.moc vfolder_menu.moc kdedmodule.moc kbuildsycoca.moc
+
+ #>+ 2
+-KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am
++KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h kde-applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am
+
+ #>+ 2
+ docs-am:
+diff -Nura kdelibs-3.5.10/kded/applications.menu kdelibs-3.5.10.new/kded/applications.menu
+--- kdelibs-3.5.10/kded/applications.menu 2005-09-10 10:27:40.000000000 +0200
++++ kdelibs-3.5.10.new/kded/applications.menu 1970-01-01 01:00:00.000000000 +0100
+@@ -1,469 +0,0 @@
+- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+-
+-<Menu>
+- <Name>Applications</Name>
+- <Directory>kde-main.directory</Directory>
+- <!-- Search the default locations -->
+- <KDELegacyDirs/>
+- <DefaultAppDirs/>
+- <DefaultDirectoryDirs/>
+- <DefaultLayout>
+- <Merge type="menus"/>
+- <Merge type="files"/>
+- <Separator/>
+- <Menuname>More</Menuname>
+- </DefaultLayout>
+- <Layout>
+- <Merge type="menus"/>
+- <Menuname>Applications</Menuname>
+- <Merge type="files"/>
+- </Layout>
+-
+- <Menu>
+- <Name>Applications</Name>
+- <Directory>kde-unknown.directory</Directory>
+- <OnlyUnallocated/>
+- <Include>
+- <Not>
+- <!-- Don't list non-KDE core applications -->
+- <And>
+- <Category>Core</Category>
+- <Not><Category>KDE</Category></Not>
+- </And>
+- <!-- Don't list SUSE's YaST in here -->
+- <Category>X-SuSE-YaST</Category>
+- </Not>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Development</Name>
+- <Directory>kde-development.directory</Directory>
+- <Menu>
+- <Name>X-KDE-KDevelopIDE</Name>
+- <Directory>kde-development-kdevelop.directory</Directory>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Category>X-KDE-KDevelopIDE</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Translation</Name>
+- <Directory>kde-development-translation.directory</Directory>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Category>Translation</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Web Development</Name>
+- <Directory>kde-development-webdevelopment.directory</Directory>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Category>WebDevelopment</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Not><Category>X-KDE-KDevelopIDE</Category></Not>
+- <Not><Category>Translation</Category></Not>
+- <Not><Category>WebDevelopment</Category></Not>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Science</Name>
+- <Directory>kde-science.directory</Directory>
+- <Include>
+- <And><!-- Include /any/ Science app which is not an Education app -->
+- <Or>
+- <Category>Astronomy</Category>
+- <Category>Biology</Category>
+- <Category>Chemistry</Category>
+- <Category>Geology</Category>
+- <Category>MedicalSoftware</Category>
+- <Category>Physics</Category>
+- <Category>Math</Category>
+- <Category>Science</Category>
+- </Or>
+- <Not><Category>Education</Category></Not>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Edutainment</Name>
+- <Directory>kde-edutainment.directory</Directory>
+- <Menu>
+- <Name>Languages</Name>
+- <Directory>kde-edu-languages.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Or>
+- <Category>Languages</Category>
+- <Category>X-KDE-Edu-Language</Category>
+- </Or>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Mathematics</Name>
+- <Directory>kde-edu-mathematics.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Category>Math</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Miscellaneous</Name>
+- <Directory>kde-edu-miscellaneous.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Not>
+- <Category>Languages</Category>
+- <Category>X-KDE-Edu-Language</Category>
+- <Category>Math</Category>
+- <Category>Science</Category>
+- <Category>Teaching</Category>
+- <Category>X-KDE-Edu-Teaching</Category>
+- </Not>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Science</Name>
+- <Directory>kde-edu-science.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Category>Science</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Tools</Name>
+- <Directory>kde-edu-tools.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Or>
+- <Category>Teaching</Category>
+- <Category>X-KDE-Edu-Teaching</Category>
+- </Or>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Games</Name>
+- <Directory>kde-games.directory</Directory>
+- <Menu>
+- <Name>Arcade</Name>
+- <Directory>kde-games-arcade.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>ArcadeGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Board</Name>
+- <Directory>kde-games-board.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>BoardGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Card</Name>
+- <Directory>kde-games-card.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>CardGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Kidsgames</Name>
+- <Directory>kde-games-kids.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Or>
+- <Category>X-KDE-KidsGame</Category>
+- <Category>KidsGame</Category>
+- </Or>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>TacticStrategy</Name>
+- <Directory>kde-games-strategy.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>StrategyGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Not>
+- <Category>ArcadeGame</Category>
+- <Category>BoardGame</Category>
+- <Category>CardGame</Category>
+- <Category>X-KDE-KidsGame</Category>
+- <Category>KidsGame</Category>
+- <Category>StrategyGame</Category>
+- </Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>Toys</Name>
+- <Directory>kde-toys.directory</Directory>
+- <Include>
+- <Category>Amusement</Category>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Graphics</Name>
+- <Directory>kde-graphics.directory</Directory>
+- <Include>
+- <And>
+- <Category>Graphics</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Graphics</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Internet</Name>
+- <Directory>kde-internet.directory</Directory>
+- <Include>
+- <And>
+- <Category>Network</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>Terminal</Name>
+- <Directory>kde-internet-terminal.directory</Directory>
+- </Menu>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Network</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Multimedia</Name>
+- <Directory>kde-multimedia.directory</Directory>
+- <Include>
+- <And>
+- <Category>AudioVideo</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>AudioVideo</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Office</Name>
+- <Directory>kde-office.directory</Directory>
+- <Layout>
+- <Merge type="menus"/>
+- <Filename>kde-koshell.desktop</Filename>
+- <Filename>kde-Kontact.desktop</Filename>
+- <Separator/>
+- <Filename>kde-kword.desktop</Filename>
+- <Filename>kde-kspread.desktop</Filename>
+- <Filename>kde-kpresenter.desktop</Filename>
+- <Merge type="files"/>
+- <Separator/>
+- <Menuname>More</Menuname>
+- </Layout>
+- <Include>
+- <And>
+- <Category>Office</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Office</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Settingsmenu</Name>
+- <Directory>kde-settingsmenu.directory</Directory>
+- <Include>
+- <Category>Settings</Category>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>System</Name>
+- <Directory>kde-system.directory</Directory>
+- <Include>
+- <And>
+- <Category>System</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>System</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>ScreenSavers</Name>
+- <Directory>kde-system-screensavers.directory</Directory>
+- </Menu>
+- <Menu>
+- <Name>Terminal</Name>
+- <Directory>kde-system-terminal.directory</Directory>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Utilities</Name>
+- <Directory>kde-utilities.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Not><Category>Accessibility</Category></Not>
+- <Not><Category>X-KDE-Utilities-Desktop</Category></Not>
+- <Not><Category>X-KDE-Utilities-File</Category></Not>
+- <Not><Category>X-KDE-Utilities-Peripherals</Category></Not>
+- <Not><Category>X-KDE-Utilities-PIM</Category></Not>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>Accessibility</Name>
+- <Directory>kde-utilities-accessibility.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>Accessibility</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Desktop</Name>
+- <Directory>kde-utilities-desktop.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-Desktop</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Editors</Name>
+- <Directory>kde-editors.directory</Directory>
+- <Include>
+- <Category>TextEditor</Category>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>File</Name>
+- <Directory>kde-utilities-file.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-File</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Peripherals</Name>
+- <Directory>kde-utilities-peripherals.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-Peripherals</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>PIM</Name>
+- <Directory>kde-utilities-pim.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-PIM</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>XUtilities</Name>
+- <Directory>kde-utilities-xutils.directory</Directory>
+- </Menu>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Include>
+- <And>
+- <Category>KDE</Category>
+- <Category>Core</Category>
+- </And>
+- </Include>
+- <DefaultMergeDirs/>
+- <MergeFile>applications-kmenuedit.menu</MergeFile>
+-</Menu>
+diff -Nura kdelibs-3.5.10/kded/kbuildsycoca.cpp kdelibs-3.5.10.new/kded/kbuildsycoca.cpp
+--- kdelibs-3.5.10/kded/kbuildsycoca.cpp 2007-05-14 09:52:43.000000000 +0200
++++ kdelibs-3.5.10.new/kded/kbuildsycoca.cpp 2009-08-06 06:23:48.000000000 +0200
+@@ -379,7 +379,7 @@
+ connect(g_vfolder, SIGNAL(newService(const QString &, KService **)),
+ this, SLOT(slotCreateEntry(const QString &, KService **)));
+
+- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+
+ KServiceGroup *entry = g_bsgf->addNew("/", kdeMenu->directoryFile, 0, false);
+ entry->setLayoutInfo(kdeMenu->layoutList);
+diff -Nura kdelibs-3.5.10/kded/kde-applications.menu kdelibs-3.5.10.new/kded/kde-applications.menu
+--- kdelibs-3.5.10/kded/kde-applications.menu 1970-01-01 01:00:00.000000000 +0100
++++ kdelibs-3.5.10.new/kded/kde-applications.menu 2005-09-10 10:27:40.000000000 +0200
+@@ -0,0 +1,469 @@
++ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
++ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
++
++<Menu>
++ <Name>Applications</Name>
++ <Directory>kde-main.directory</Directory>
++ <!-- Search the default locations -->
++ <KDELegacyDirs/>
++ <DefaultAppDirs/>
++ <DefaultDirectoryDirs/>
++ <DefaultLayout>
++ <Merge type="menus"/>
++ <Merge type="files"/>
++ <Separator/>
++ <Menuname>More</Menuname>
++ </DefaultLayout>
++ <Layout>
++ <Merge type="menus"/>
++ <Menuname>Applications</Menuname>
++ <Merge type="files"/>
++ </Layout>
++
++ <Menu>
++ <Name>Applications</Name>
++ <Directory>kde-unknown.directory</Directory>
++ <OnlyUnallocated/>
++ <Include>
++ <Not>
++ <!-- Don't list non-KDE core applications -->
++ <And>
++ <Category>Core</Category>
++ <Not><Category>KDE</Category></Not>
++ </And>
++ <!-- Don't list SUSE's YaST in here -->
++ <Category>X-SuSE-YaST</Category>
++ </Not>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Development</Name>
++ <Directory>kde-development.directory</Directory>
++ <Menu>
++ <Name>X-KDE-KDevelopIDE</Name>
++ <Directory>kde-development-kdevelop.directory</Directory>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Category>X-KDE-KDevelopIDE</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Translation</Name>
++ <Directory>kde-development-translation.directory</Directory>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Category>Translation</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Web Development</Name>
++ <Directory>kde-development-webdevelopment.directory</Directory>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Category>WebDevelopment</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Not><Category>X-KDE-KDevelopIDE</Category></Not>
++ <Not><Category>Translation</Category></Not>
++ <Not><Category>WebDevelopment</Category></Not>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Science</Name>
++ <Directory>kde-science.directory</Directory>
++ <Include>
++ <And><!-- Include /any/ Science app which is not an Education app -->
++ <Or>
++ <Category>Astronomy</Category>
++ <Category>Biology</Category>
++ <Category>Chemistry</Category>
++ <Category>Geology</Category>
++ <Category>MedicalSoftware</Category>
++ <Category>Physics</Category>
++ <Category>Math</Category>
++ <Category>Science</Category>
++ </Or>
++ <Not><Category>Education</Category></Not>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Edutainment</Name>
++ <Directory>kde-edutainment.directory</Directory>
++ <Menu>
++ <Name>Languages</Name>
++ <Directory>kde-edu-languages.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Or>
++ <Category>Languages</Category>
++ <Category>X-KDE-Edu-Language</Category>
++ </Or>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Mathematics</Name>
++ <Directory>kde-edu-mathematics.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Category>Math</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Miscellaneous</Name>
++ <Directory>kde-edu-miscellaneous.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Not>
++ <Category>Languages</Category>
++ <Category>X-KDE-Edu-Language</Category>
++ <Category>Math</Category>
++ <Category>Science</Category>
++ <Category>Teaching</Category>
++ <Category>X-KDE-Edu-Teaching</Category>
++ </Not>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Science</Name>
++ <Directory>kde-edu-science.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Category>Science</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Tools</Name>
++ <Directory>kde-edu-tools.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Or>
++ <Category>Teaching</Category>
++ <Category>X-KDE-Edu-Teaching</Category>
++ </Or>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Games</Name>
++ <Directory>kde-games.directory</Directory>
++ <Menu>
++ <Name>Arcade</Name>
++ <Directory>kde-games-arcade.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>ArcadeGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Board</Name>
++ <Directory>kde-games-board.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>BoardGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Card</Name>
++ <Directory>kde-games-card.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>CardGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Kidsgames</Name>
++ <Directory>kde-games-kids.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Or>
++ <Category>X-KDE-KidsGame</Category>
++ <Category>KidsGame</Category>
++ </Or>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>TacticStrategy</Name>
++ <Directory>kde-games-strategy.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>StrategyGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Not>
++ <Category>ArcadeGame</Category>
++ <Category>BoardGame</Category>
++ <Category>CardGame</Category>
++ <Category>X-KDE-KidsGame</Category>
++ <Category>KidsGame</Category>
++ <Category>StrategyGame</Category>
++ </Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>Toys</Name>
++ <Directory>kde-toys.directory</Directory>
++ <Include>
++ <Category>Amusement</Category>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Graphics</Name>
++ <Directory>kde-graphics.directory</Directory>
++ <Include>
++ <And>
++ <Category>Graphics</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Graphics</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Internet</Name>
++ <Directory>kde-internet.directory</Directory>
++ <Include>
++ <And>
++ <Category>Network</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>Terminal</Name>
++ <Directory>kde-internet-terminal.directory</Directory>
++ </Menu>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Network</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Multimedia</Name>
++ <Directory>kde-multimedia.directory</Directory>
++ <Include>
++ <And>
++ <Category>AudioVideo</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>AudioVideo</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Office</Name>
++ <Directory>kde-office.directory</Directory>
++ <Layout>
++ <Merge type="menus"/>
++ <Filename>kde-koshell.desktop</Filename>
++ <Filename>kde-Kontact.desktop</Filename>
++ <Separator/>
++ <Filename>kde-kword.desktop</Filename>
++ <Filename>kde-kspread.desktop</Filename>
++ <Filename>kde-kpresenter.desktop</Filename>
++ <Merge type="files"/>
++ <Separator/>
++ <Menuname>More</Menuname>
++ </Layout>
++ <Include>
++ <And>
++ <Category>Office</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Office</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Settingsmenu</Name>
++ <Directory>kde-settingsmenu.directory</Directory>
++ <Include>
++ <Category>Settings</Category>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>System</Name>
++ <Directory>kde-system.directory</Directory>
++ <Include>
++ <And>
++ <Category>System</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>System</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>ScreenSavers</Name>
++ <Directory>kde-system-screensavers.directory</Directory>
++ </Menu>
++ <Menu>
++ <Name>Terminal</Name>
++ <Directory>kde-system-terminal.directory</Directory>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Utilities</Name>
++ <Directory>kde-utilities.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Not><Category>Accessibility</Category></Not>
++ <Not><Category>X-KDE-Utilities-Desktop</Category></Not>
++ <Not><Category>X-KDE-Utilities-File</Category></Not>
++ <Not><Category>X-KDE-Utilities-Peripherals</Category></Not>
++ <Not><Category>X-KDE-Utilities-PIM</Category></Not>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>Accessibility</Name>
++ <Directory>kde-utilities-accessibility.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>Accessibility</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Desktop</Name>
++ <Directory>kde-utilities-desktop.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-Desktop</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Editors</Name>
++ <Directory>kde-editors.directory</Directory>
++ <Include>
++ <Category>TextEditor</Category>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>File</Name>
++ <Directory>kde-utilities-file.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-File</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Peripherals</Name>
++ <Directory>kde-utilities-peripherals.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-Peripherals</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>PIM</Name>
++ <Directory>kde-utilities-pim.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-PIM</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>XUtilities</Name>
++ <Directory>kde-utilities-xutils.directory</Directory>
++ </Menu>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Include>
++ <And>
++ <Category>KDE</Category>
++ <Category>Core</Category>
++ </And>
++ </Include>
++ <DefaultMergeDirs/>
++ <MergeFile>applications-kmenuedit.menu</MergeFile>
++</Menu>
diff --git a/staging/kdelibs3/kdelibs3-missing-include.patch b/staging/kdelibs3/kdelibs3-missing-include.patch
new file mode 100644
index 000000000..5b84ef746
--- /dev/null
+++ b/staging/kdelibs3/kdelibs3-missing-include.patch
@@ -0,0 +1,10 @@
+--- kdeprint/cups/cupsdconf2/cups-util.c.old 2012-01-19 01:30:26.000000000 -0500
++++ kdeprint/cups/cupsdconf2/cups-util.c 2012-01-19 01:31:33.000000000 -0500
+@@ -2,6 +2,7 @@
+ #include <cups/http.h>
+ #include <cups/cups.h>
+ #include <stdlib.h>
++#include <stdio.h>
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
diff --git a/staging/kdelibs3/kdelibs3.install b/staging/kdelibs3/kdelibs3.install
new file mode 100644
index 000000000..7291ac0a2
--- /dev/null
+++ b/staging/kdelibs3/kdelibs3.install
@@ -0,0 +1,12 @@
+post_install() {
+ post_remove
+}
+
+post_upgrade() {
+ post_remove
+}
+
+post_remove() {
+ # this can be removed in future versions
+ sed -ie '/\/opt\/kde\/lib/d' etc/ld.so.conf
+}
diff --git a/staging/kdelibs3/openssl.patch b/staging/kdelibs3/openssl.patch
new file mode 100644
index 000000000..a948b884a
--- /dev/null
+++ b/staging/kdelibs3/openssl.patch
@@ -0,0 +1,180 @@
+diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.cc
+--- kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x 2009-09-04 23:10:53.000000000 +0200
++++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-09-04 23:10:53.000000000 +0200
+@@ -96,9 +96,14 @@ static int (*K_BIO_write) (BIO *b, cons
+ static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *,
+ const EVP_CIPHER *,unsigned char *,int ,
+ pem_password_cb *, void *) = 0L;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L;
++static ASN1_ITEM *K_NETSCAPE_X509_it = 0L;
++#else
+ static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L;
+ static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L;
+ static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L;
++#endif
+ static int (*K_X509_print_fp) (FILE *, X509*) = 0L;
+ static int (*K_i2d_PKCS12) (PKCS12*, unsigned char**) = 0L;
+ static int (*K_i2d_PKCS12_fp) (FILE *, PKCS12*) = 0L;
+@@ -430,9 +435,14 @@ KConfig *cfg;
+ K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) _cryptoLib->symbol("BIO_ctrl");
+ K_BIO_write = (int (*) (BIO *b, const void *data, int len)) _cryptoLib->symbol("BIO_write");
+ K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) _cryptoLib->symbol("PEM_ASN1_write_bio");
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_item_i2d_fp");
++ K_NETSCAPE_X509_it = (ASN1_ITEM *) _cryptoLib->symbol("NETSCAPE_X509_it");
++#else
+ K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) _cryptoLib->symbol("X509_asn1_meth");
+ K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_i2d_fp");
+ K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) _cryptoLib->symbol("i2d_ASN1_HEADER");
++#endif
+ K_X509_print_fp = (int (*)(FILE*, X509*)) _cryptoLib->symbol("X509_print_fp");
+ K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) _cryptoLib->symbol("i2d_PKCS12");
+ K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) _cryptoLib->symbol("i2d_PKCS12_fp");
+@@ -594,7 +604,7 @@ KConfig *cfg;
+ K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) _sslLib->symbol("SSL_set_session");
+ K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, long)) _sslLib->symbol("d2i_SSL_SESSION");
+ K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) _sslLib->symbol("i2d_SSL_SESSION");
+- K_SSL_get_ciphers = (STACK *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers");
++ K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers");
+ #endif
+
+
+@@ -982,7 +992,13 @@ int KOpenSSLProxy::PEM_write_bio_X509(BI
+ else return -1;
+ }
+
+-
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) {
++ if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it)
++ return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x);
++ else return -1;
++}
++#else
+ ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) {
+ if (K_X509_asn1_meth) return (K_X509_asn1_meth)();
+ else return 0L;
+@@ -994,7 +1010,7 @@ int KOpenSSLProxy::ASN1_i2d_fp(FILE *out
+ return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x);
+ else return -1;
+ }
+-
++#endif
+
+ int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) {
+ if (K_X509_print_fp) return (K_X509_print_fp)(fp, x);
+diff -up kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.h
+--- kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x 2006-07-22 10:16:39.000000000 +0200
++++ kdelibs-3.5.10/kio/kssl/kopenssl.h 2009-09-04 23:10:53.000000000 +0200
+@@ -48,6 +48,9 @@ class KOpenSSLProxyPrivate;
+ #include <openssl/stack.h>
+ #include <openssl/bn.h>
+ #undef crypt
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++#define STACK _STACK
++#endif
+ #endif
+
+ #include <kstaticdeleter.h>
+@@ -446,12 +449,12 @@ public:
+ */
+ int PEM_write_bio_X509(BIO *bp, X509 *x);
+
+-
++#if OPENSSL_VERSION_NUMBER < 0x10000000L
+ /*
+ * X509_asn1_meth - used for netscape output
+ */
+ ASN1_METHOD *X509_asn1_meth();
+-
++#endif
+
+ /*
+ * ASN1_i2d_fp - used for netscape output
+@@ -531,6 +534,9 @@ public:
+ */
+ void sk_free(STACK *s);
+
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); }
++#endif
+
+ /*
+ * Number of elements in the stack
+@@ -543,6 +549,9 @@ public:
+ */
+ char *sk_value(STACK *s, int n);
+
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); }
++#endif
+
+ /*
+ * Create a new stack
+@@ -555,6 +564,9 @@ public:
+ */
+ int sk_push(STACK *s, char *d);
+
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
++#endif
+
+ /*
+ * Duplicate the stack
+diff -up kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc
+--- kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x 2005-10-10 17:05:44.000000000 +0200
++++ kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc 2009-09-04 23:10:53.000000000 +0200
+@@ -87,7 +87,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate
+
+
+ STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList<KSSLCertificate> &certs) {
+- STACK_OF(X509) *x509 = sk_new(NULL);
++ STACK_OF(X509) *x509 = reinterpret_cast<STACK_OF(X509)*>(sk_new(NULL));
+ KSSLCertificate *cert = certs.first();
+ while(cert) {
+ sk_X509_push(x509, cert->getCert());
+diff -up kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksslcertificate.cc
+--- kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x 2006-01-19 18:06:12.000000000 +0100
++++ kdelibs-3.5.10/kio/kssl/ksslcertificate.cc 2009-09-04 23:10:53.000000000 +0200
+@@ -1003,17 +1003,31 @@ return qba;
+ QByteArray KSSLCertificate::toNetscape() {
+ QByteArray qba;
+ #ifdef KSSL_HAVE_SSL
+-ASN1_HEADER ah;
+-ASN1_OCTET_STRING os;
+-KTempFile ktf;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ NETSCAPE_X509 nx;
++ ASN1_OCTET_STRING hdr;
++#else
++ ASN1_HEADER ah;
++ ASN1_OCTET_STRING os;
++#endif
++ KTempFile ktf;
+
+- os.data = (unsigned char *)NETSCAPE_CERT_HDR;
+- os.length = strlen(NETSCAPE_CERT_HDR);
+- ah.header = &os;
+- ah.data = (char *)getCert();
+- ah.meth = d->kossl->X509_asn1_meth();
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ hdr.data = (unsigned char *)NETSCAPE_CERT_HDR;
++ hdr.length = strlen(NETSCAPE_CERT_HDR);
++ nx.header = &hdr;
++ nx.cert = getCert();
++
++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx);
++#else
++ os.data = (unsigned char *)NETSCAPE_CERT_HDR;
++ os.length = strlen(NETSCAPE_CERT_HDR);
++ ah.header = &os;
++ ah.data = (char *)getCert();
++ ah.meth = d->kossl->X509_asn1_meth();
+
+- d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah);
++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah);
++#endif
+
+ ktf.close();
+
diff --git a/staging/lbreakout2/PKGBUILD b/staging/lbreakout2/PKGBUILD
new file mode 100644
index 000000000..814fc5520
--- /dev/null
+++ b/staging/lbreakout2/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 146936 2012-01-19 12:08:17Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=lbreakout2
+pkgver=2.6.3
+pkgrel=3
+pkgdesc="A breakout game with nice effects, graphics, and sounds"
+arch=('i686' 'x86_64')
+url="http://lgames.sourceforge.net"
+license=('GPL')
+depends=('sdl_mixer' 'libpng')
+backup=('var/games/lbreakout2/lbreakout2.hscr')
+source=("http://downloads.sourceforge.net/lgames/${pkgname}-${pkgver/_/-}.tar.gz"
+ 'lbreakout2.desktop'
+ 'lbreakout2.png')
+md5sums=('43900187bc935475cd6489569cd2230a'
+ '14cd34a72a8f4e3b8f385f9023625241'
+ '94e2fa393eb2a7d4494641dec580573b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+
+ ./configure --prefix=/usr \
+ --localstatedir=/var/games/lbreakout2
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+
+ make DESTDIR=${pkgdir}/ doc_dir=/usr/share/doc install
+
+ chmod -R 755 ${pkgdir}/usr
+ chown root:games ${pkgdir}/var/games
+ chmod 775 ${pkgdir}/var/games
+ chown root:games ${pkgdir}/var/games/lbreakout2
+ chmod 755 ${pkgdir}/var/games/lbreakout2
+ chown root:games ${pkgdir}/var/games/lbreakout2/lbreakout2.hscr
+ chmod 775 ${pkgdir}/var/games/lbreakout2/lbreakout2.hscr
+
+ install -Dm644 ${srcdir}/lbreakout2.png ${pkgdir}/usr/share/pixmaps/lbreakout2.png
+ install -Dm644 ${srcdir}/lbreakout2.desktop ${pkgdir}/usr/share/applications/lbreakout2.desktop
+}
diff --git a/staging/lbreakout2/lbreakout2.desktop b/staging/lbreakout2/lbreakout2.desktop
new file mode 100644
index 000000000..c8ef945da
--- /dev/null
+++ b/staging/lbreakout2/lbreakout2.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+Name=Linux Breakout 2
+Comment=Breakout and Arkanoid style arcade game
+Icon=/usr/share/pixmaps/lbreakout2.png
+TryExec=lbreakout2
+Exec=lbreakout2
+Terminal=false
+Categories=Application;Game;
diff --git a/staging/lbreakout2/lbreakout2.png b/staging/lbreakout2/lbreakout2.png
new file mode 100644
index 000000000..f9541e184
--- /dev/null
+++ b/staging/lbreakout2/lbreakout2.png
Binary files differ
diff --git a/staging/lcms/PKGBUILD b/staging/lcms/PKGBUILD
new file mode 100644
index 000000000..bb67c9e75
--- /dev/null
+++ b/staging/lcms/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 146955 2012-01-19 17:30:11Z eric $
+# Maintainer: Tobias Kieslich <neri@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=lcms
+pkgver=1.19
+pkgrel=2
+pkgdesc="Lightweight color management development library/engine"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('libtiff')
+url="http://www.littlecms.com"
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8af94611baf20d9646c7c2c285859818')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm 644 COPYING \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/lcms2/PKGBUILD b/staging/lcms2/PKGBUILD
new file mode 100644
index 000000000..e3d08a500
--- /dev/null
+++ b/staging/lcms2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 146836 2012-01-18 20:10:04Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=lcms2
+pkgver=2.3
+pkgrel=2
+pkgdesc="Small-footprint color management engine, version 2"
+arch=('i686' 'x86_64')
+license=('MIT')
+depends=('libtiff')
+url="http://www.littlecms.com"
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/lcms/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('67d5fabda2f5777ca8387766539b9c871d993133')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/libgdiplus/PKGBUILD b/staging/libgdiplus/PKGBUILD
new file mode 100644
index 000000000..26c513066
--- /dev/null
+++ b/staging/libgdiplus/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 146859 2012-01-18 21:23:30Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=libgdiplus
+pkgver=2.10
+pkgrel=2
+pkgdesc="An Open Source Implementation of the GDI+ API"
+arch=(i686 x86_64)
+license=('MPL' 'LGPL')
+url="http://www.mono-project.com"
+depends=('libtiff>=3.9.2-2' 'cairo>=1.8.10' 'giflib' 'glib2>=2.24.0' 'libexif')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://download.mono-project.com/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2 libpng15.patch)
+md5sums=('451966e8f637e3a1f02d1d30f900255d'
+ 'a2d143676bbaceeb88b4c34069e93986')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 <../libpng15.patch
+ ./configure --prefix=/usr --with-cairo=system || return 1
+
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/staging/libgdiplus/gdiplus-png14.patch b/staging/libgdiplus/gdiplus-png14.patch
new file mode 100644
index 000000000..d13260812
--- /dev/null
+++ b/staging/libgdiplus/gdiplus-png14.patch
@@ -0,0 +1,20 @@
+--- src/pngcodec.c.orig 2010-01-16 23:47:17.000000000 +0100
++++ src/pngcodec.c 2010-01-16 23:49:49.000000000 +0100
+@@ -352,7 +352,7 @@
+ info_ptr->palette[i].blue,
+ info_ptr->palette[i].green,
+ info_ptr->palette[i].red,
+- info_ptr->trans[i]); /* alpha */
++ info_ptr->trans_alpha[i]); /* alpha */
+ }
+ }
+
+@@ -418,7 +418,7 @@
+ }
+
+ if ((color_type == PNG_COLOR_TYPE_GRAY) && (bit_depth < 8)) {
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
diff --git a/staging/libgdiplus/libpng15.patch b/staging/libgdiplus/libpng15.patch
new file mode 100644
index 000000000..31a1c0162
--- /dev/null
+++ b/staging/libgdiplus/libpng15.patch
@@ -0,0 +1,164 @@
+$NetBSD: patch-aa,v 1.8 2011/01/21 10:21:51 wiz Exp $
+
+Fix build with png-1.5.
+
+--- src/pngcodec.c.orig 2010-11-03 16:52:54.000000000 +0000
++++ src/pngcodec.c
+@@ -116,10 +116,15 @@ gdip_load_png_properties (png_structp pn
+ bitmap_data->dpi_horz = png_get_x_pixels_per_inch(png_ptr, info_ptr);
+ bitmap_data->dpi_vert = png_get_y_pixels_per_inch(png_ptr, info_ptr);
+ #elif defined(PNG_pHYs_SUPPORTED)
+- if ((info_ptr->valid & PNG_INFO_pHYs) && (info_ptr->phys_unit_type == PNG_RESOLUTION_METER)) {
+- bitmap_data->image_flags |= ImageFlagsHasRealDPI;
+- bitmap_data->dpi_horz = info_ptr->x_pixels_per_unit * 0.0254;
+- bitmap_data->dpi_vert = info_ptr->y_pixels_per_unit * 0.0254;
++ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_pHYs)) {
++ png_uint_32 res_x, res_y;
++ int unit_type;
++ png_get_pHYs (png_ptr, info_ptr, &res_x, &res_y, &unit_type);
++ if (unit_type == PNG_RESOLUTION_METER) {
++ bitmap_data->image_flags |= ImageFlagsHasRealDPI;
++ bitmap_data->dpi_horz = res_x * 0.0254;
++ bitmap_data->dpi_vert = res_y * 0.0254;
++ }
+ }
+ #endif
+ /* default to screen resolution (if nothing was provided or available) */
+@@ -130,7 +135,7 @@ gdip_load_png_properties (png_structp pn
+ #if defined(PNG_iCCP_SUPPORTED)
+ {
+ png_charp name;
+- png_charp profile;
++ png_bytep profile;
+ png_uint_32 proflen;
+ int compression_type;
+
+@@ -292,6 +297,11 @@ gdip_load_png_image_from_file_or_stream
+ ImageFlags colourspace_flag;
+ int i;
+ int j;
++ png_colorp png_palette;
++ int png_num_palette;
++ png_bytep trans_alpha;
++ int num_trans;
++ png_color_16p trans_color;
+
+ width = png_get_image_width (png_ptr, info_ptr);
+ height = png_get_image_height (png_ptr, info_ptr);
+@@ -309,6 +319,8 @@ gdip_load_png_image_from_file_or_stream
+ }
+
+ /* Copy palette. */
++ png_get_PLTE (png_ptr, info_ptr, &png_palette, &png_num_palette);
++
+ num_colours = 1 << bit_depth;
+
+ if (png_get_color_type (png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY) {
+@@ -321,8 +333,8 @@ gdip_load_png_image_from_file_or_stream
+ colourspace_flag = ImageFlagsColorSpaceRGB;
+
+ palette_entries = num_colours;
+- if (palette_entries > info_ptr->num_palette) {
+- palette_entries = info_ptr->num_palette;
++ if (palette_entries > png_num_palette) {
++ palette_entries = png_num_palette;
+ }
+
+ palette = GdipAlloc (sizeof(ColorPalette) + (num_colours - 1) * sizeof(ARGB));
+@@ -331,29 +343,30 @@ gdip_load_png_image_from_file_or_stream
+
+ for (i=0; i < palette_entries; i++) {
+ set_pixel_bgra (&palette->Entries[i], 0,
+- info_ptr->palette[i].blue,
+- info_ptr->palette[i].green,
+- info_ptr->palette[i].red,
++ png_palette[i].blue,
++ png_palette[i].green,
++ png_palette[i].red,
+ 0xFF); /* alpha */
+ }
+ }
+
++ png_get_tRNS (png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color);
+ /* Make sure transparency is respected. */
+- if (info_ptr->num_trans > 0) {
++ if (num_trans > 0) {
+ palette->Flags |= PaletteFlagsHasAlpha;
+ colourspace_flag |= ImageFlagsHasAlpha;
+
+- if (info_ptr->num_trans > info_ptr->num_palette) {
+- info_ptr->num_trans = info_ptr->num_palette;
++ if (num_trans > png_num_palette) {
++ num_trans = png_num_palette;
+ }
+
+- for (i=0; i < info_ptr->num_trans; i++) {
++ for (i=0; i < num_trans; i++) {
+ set_pixel_bgra(&palette->Entries[i], 0,
+- info_ptr->palette[i].blue,
+- info_ptr->palette[i].green,
+- info_ptr->palette[i].red,
++ png_palette[i].blue,
++ png_palette[i].green,
++ png_palette[i].red,
+ #if PNG_LIBPNG_VER > 10399
+- info_ptr->trans_alpha [i]); /* alpha */
++ trans_alpha [i]); /* alpha */
+ #else
+ info_ptr->trans[i]); /* alpha */
+ #endif
+@@ -398,6 +411,8 @@ gdip_load_png_image_from_file_or_stream
+ BYTE bit_depth;
+ int stride;
+ int interlace;
++ png_colorp png_palette;
++ int png_num_palette;
+ png_bytep *row_pointers;
+ BYTE *rawptr;
+ int i, j;
+@@ -490,32 +505,33 @@ gdip_load_png_image_from_file_or_stream
+ png_byte palette = 0;
+ png_byte pix = *rowp++;
+
++ png_get_PLTE (png_ptr, info_ptr, &png_palette, &png_num_palette);
+ palette = (pix >> 6) & 0x03;
+ set_pixel_bgra (rawptr, 0,
+- info_ptr->palette[palette].blue,
+- info_ptr->palette[palette].green,
+- info_ptr->palette[palette].red,
++ png_palette[palette].blue,
++ png_palette[palette].green,
++ png_palette[palette].red,
+ 0xFF); /* alpha */
+
+ palette = (pix >> 4) & 0x03;
+ set_pixel_bgra (rawptr, 4,
+- info_ptr->palette[palette].blue,
+- info_ptr->palette[palette].green,
+- info_ptr->palette[palette].red,
++ png_palette[palette].blue,
++ png_palette[palette].green,
++ png_palette[palette].red,
+ 0xFF); /* alpha */
+
+ palette = (pix >> 2) & 0x03;
+ set_pixel_bgra (rawptr, 8,
+- info_ptr->palette[palette].blue,
+- info_ptr->palette[palette].green,
+- info_ptr->palette[palette].red,
++ png_palette[palette].blue,
++ png_palette[palette].green,
++ png_palette[palette].red,
+ 0xFF); /* alpha */
+
+ palette = pix & 0x03;
+ set_pixel_bgra (rawptr, 12,
+- info_ptr->palette[palette].blue,
+- info_ptr->palette[palette].green,
+- info_ptr->palette[palette].red,
++ png_palette[palette].blue,
++ png_palette[palette].green,
++ png_palette[palette].red,
+ 0xFF); /* alpha */
+ rawptr += 16;
+ }
diff --git a/staging/libpano13/PKGBUILD b/staging/libpano13/PKGBUILD
new file mode 100644
index 000000000..c4d1054e6
--- /dev/null
+++ b/staging/libpano13/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 146959 2012-01-19 17:50:13Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libpano13
+pkgver=2.9.18
+pkgrel=2
+pkgdesc="Basic library to calculate panoramical pictures - core functions of the panotools"
+arch=('i686' 'x86_64')
+url="http://panotools.sourceforge.net/"
+license=('GPL2')
+depends=('libpng' 'libtiff')
+makedepends=('openjdk6')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/panotools/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9c3a4fce8b6f1d79e395896ce5d8776e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-java=${JAVA_HOME}
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/libpng/PKGBUILD b/staging/libpng/PKGBUILD
new file mode 100644
index 000000000..433f422dd
--- /dev/null
+++ b/staging/libpng/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 146824 2012-01-18 19:24:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Travis Willard <travis@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=libpng
+pkgver=1.5.7
+_apngver=1.5.7
+pkgrel=1
+pkgdesc="A collection of routines used to create PNG format graphics files"
+arch=('i686' 'x86_64')
+url="http://www.libpng.org/pub/png/libpng.html"
+license=('custom')
+depends=('zlib' 'sh')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.xz"
+ "http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-$_apngver-apng.patch.gz")
+md5sums=('c3ae9ce4e81ec0aafdd4ac961586ee0d'
+ '6c6a674048cec94db1bc35decf0d142c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Add animated PNG (apng) support
+ # see http://sourceforge.net/projects/libpng-apng/
+ patch -p1 -i "$srcdir/libpng-$_apngver-apng.patch"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ cd contrib/pngminus
+ make PNGLIB="-L$pkgdir/usr/lib -lpng" -f makefile.std png2pnm pnm2png
+ install -m755 png2pnm pnm2png "$pkgdir/usr/bin/"
+ install -D -m644 ../../LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/staging/librsvg/PKGBUILD b/staging/librsvg/PKGBUILD
new file mode 100644
index 000000000..90ffdcd13
--- /dev/null
+++ b/staging/librsvg/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 146839 2012-01-18 20:16:37Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=librsvg
+pkgver=2.34.2
+pkgrel=2
+pkgdesc="A SVG viewing library"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gdk-pixbuf2' 'pango' 'libcroco')
+makedepends=('intltool' 'gtk2')
+optdepends=('gtk2: for rsvg-view support')
+options=('!libtool' '!emptydirs')
+url="http://librsvg.sourceforge.net/"
+install=librsvg.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/2.34/$pkgname-$pkgver.tar.xz)
+sha256sums=('5de701325b84c0a15ab6892f49ffd6471722044bfe0b350725bf420642ee4464')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' rsvg.in
+ ./configure --prefix=/usr --libexecdir=/usr/lib/$pkgname \
+ --with-croco --disable-static \
+ --with-svgz
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/staging/librsvg/librsvg.install b/staging/librsvg/librsvg.install
new file mode 100644
index 000000000..4d48b071f
--- /dev/null
+++ b/staging/librsvg/librsvg.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/libtiff/PKGBUILD b/staging/libtiff/PKGBUILD
new file mode 100644
index 000000000..16d6dded5
--- /dev/null
+++ b/staging/libtiff/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 146823 2012-01-18 19:24:43Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libtiff
+pkgver=4.0.0
+pkgrel=1
+pkgdesc="Library for manipulation of TIFF images"
+arch=('i686' 'x86_64')
+url="http://www.remotesensing.org/libtiff/"
+license=('custom')
+depends=('libjpeg' 'zlib' 'xz')
+makedepends=('freeglut')
+optdepends=('freeglut: for using tiffgt')
+options=('!libtool')
+source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz)
+sha1sums=('85d85520fea40fc9291995a60e3d40cf980b5522')
+
+build() {
+ cd "${srcdir}/tiff-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/libunique3/PKGBUILD b/staging/libunique3/PKGBUILD
new file mode 100644
index 000000000..f641e0925
--- /dev/null
+++ b/staging/libunique3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 146851 2012-01-18 20:41:52Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=libunique3
+pkgver=3.0.2
+pkgrel=2
+pkgdesc="Library for writing single instance applications for GTK3"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk3')
+makedepends=('gtk-doc' 'gobject-introspection')
+options=('!libtool')
+url="http://live.gnome.org/LibUnique"
+source=(http://ftp.gnome.org/pub/gnome/sources/libunique/${pkgver%.*}/libunique-$pkgver.tar.xz)
+sha256sums=('a8f02ce073e2b920cca8ac45d418e7cb64438ad0814780c5912c6d63f8a4e038')
+
+build() {
+ cd "$srcdir/libunique-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-dbus
+ make
+}
+
+package() {
+ cd "$srcdir/libunique-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/staging/libwmf/PKGBUILD b/staging/libwmf/PKGBUILD
new file mode 100644
index 000000000..0222a1832
--- /dev/null
+++ b/staging/libwmf/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 146861 2012-01-18 21:36:12Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libwmf
+pkgver=0.2.8.4
+pkgrel=9
+pkgdesc="A library for reading vector images in Microsoft's native Windows Metafile Format (WMF)"
+arch=('i686' 'x86_64')
+url="http://wvware.sourceforge.net/libwmf.html"
+license=('LGPL')
+depends=('libpng' 'libx11' 'libjpeg' 'gsfonts')
+makedepends=('gtk2' 'libxt')
+optdepends=('gdk-pixbuf2: for pixbuf loader')
+options=('!libtool' '!docs' '!emptydirs')
+install=libwmf.install
+source=(http://downloads.sourceforge.net/sourceforge/wvware/${pkgname}-${pkgver}.tar.gz
+ libwmf-0.2.8.4-libpng-1.5.patch libwmf-0.2.8.4-useafterfree.patch)
+sha1sums=('822ab3bd0f5e8f39ad732f2774a8e9f18fc91e89'
+ '42aa4c2a82e4e14044c875a7f439baea732a355a'
+ 'ea6d28880840e86c96f9079bfd591da54dcffa5c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/libwmf-0.2.8.4-libpng-1.5.patch"
+ patch -p1 -i "${srcdir}/libwmf-0.2.8.4-useafterfree.patch"
+ ./configure --prefix=/usr \
+ --with-gsfontdir=/usr/share/fonts/Type1 \
+ --with-fontdir=/usr/share/fonts/Type1 \
+ --with-gsfontmap=/usr/share/ghostscript/8.15/lib/Fontmap.GS
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ #Remove fonts, these are in gsfonts
+ rm -rf "${pkgdir}/usr/share/fonts"
+ #Remove static GTK loader, can't use it anyways
+ rm -f "${pkgdir}"/usr/lib/gtk-2.0/*/loaders/io-wmf.a
+}
diff --git a/staging/libwmf/libwmf-0.2.8.4-libpng-1.5.patch b/staging/libwmf/libwmf-0.2.8.4-libpng-1.5.patch
new file mode 100644
index 000000000..3528c74eb
--- /dev/null
+++ b/staging/libwmf/libwmf-0.2.8.4-libpng-1.5.patch
@@ -0,0 +1,12 @@
+diff -urN libwmf-0.2.8.4.old/src/ipa/ipa/bmp.h libwmf-0.2.8.4/src/ipa/ipa/bmp.h
+--- libwmf-0.2.8.4.old/src/ipa/ipa/bmp.h 2011-05-23 19:14:23.000000000 +0200
++++ libwmf-0.2.8.4/src/ipa/ipa/bmp.h 2011-05-23 19:15:11.000000000 +0200
+@@ -66,7 +66,7 @@
+ return;
+ }
+
+- if (setjmp (png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ { WMF_DEBUG (API,"Failed to write bitmap as PNG! (setjmp failed)");
+ png_destroy_write_struct (&png_ptr,&info_ptr);
+ wmf_free (API,buffer);
diff --git a/staging/libwmf/libwmf-0.2.8.4-useafterfree.patch b/staging/libwmf/libwmf-0.2.8.4-useafterfree.patch
new file mode 100644
index 000000000..328c5411f
--- /dev/null
+++ b/staging/libwmf/libwmf-0.2.8.4-useafterfree.patch
@@ -0,0 +1,10 @@
+--- libwmf-0.2.8.4/src/extra/gd/gd_clip.c.CVE-2009-1364-im-clip-list 2009-04-24 04:06:44.000000000 -0400
++++ libwmf-0.2.8.4/src/extra/gd/gd_clip.c 2009-04-24 04:08:30.000000000 -0400
+@@ -70,6 +70,7 @@ void gdClipSetAdd(gdImagePtr im,gdClipRe
+ { more = gdRealloc (im->clip->list,(im->clip->max + 8) * sizeof (gdClipRectangle));
+ if (more == 0) return;
+ im->clip->max += 8;
++ im->clip->list = more;
+ }
+ im->clip->list[im->clip->count] = (*rect);
+ im->clip->count++;
diff --git a/staging/libwmf/libwmf.install b/staging/libwmf/libwmf.install
new file mode 100644
index 000000000..9c99a901b
--- /dev/null
+++ b/staging/libwmf/libwmf.install
@@ -0,0 +1,13 @@
+post_install() {
+ if [ -x usr/bin/gdk-pixbuf-query-loaders ]; then
+ gdk-pixbuf-query-loaders > etc/gtk-2.0/gdk-pixbuf.loaders
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/staging/libxfcegui4/PKGBUILD b/staging/libxfcegui4/PKGBUILD
new file mode 100644
index 000000000..d00dda2c5
--- /dev/null
+++ b/staging/libxfcegui4/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 146865 2012-01-18 23:54:43Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=libxfcegui4
+pkgver=4.8.1
+pkgrel=4
+pkgdesc="Various Gtk widgets for Xfce"
+arch=('i686' 'x86_64')
+url="http://www.xfce.org/"
+license=('GPL2')
+depends=('startup-notification' "xfconf>=4.8.0" "libglade" 'libsm'
+ 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=$pkgname.install
+source=(http://archive.xfce.org/src/xfce/$pkgname/4.8/$pkgname-$pkgver.tar.bz2)
+sha256sums=('309a81823cdfdb7301bc6a5199e14f0df29b58dae89a9302c7839b9b94812443')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/libxfcegui4/libxfcegui4.install b/staging/libxfcegui4/libxfcegui4.install
new file mode 100644
index 000000000..abf924aa2
--- /dev/null
+++ b/staging/libxfcegui4/libxfcegui4.install
@@ -0,0 +1,14 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/links/PKGBUILD b/staging/links/PKGBUILD
new file mode 100644
index 000000000..185990ac7
--- /dev/null
+++ b/staging/links/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 146834 2012-01-18 20:01:18Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=links
+pkgver=2.5
+pkgrel=1
+pkgdesc="A text WWW browser, similar to Lynx"
+arch=('i686' 'x86_64')
+url="http://links.twibright.com/"
+license=('GPL')
+depends=('bzip2' 'xz' 'zlib' 'openssl' 'gpm')
+makedepends=('libtiff' 'libpng' 'libxt')
+optdepends=('libx11: for using xlinks' 'libtiff: for using xlinks' 'libpng: for using xlinks')
+provides=('links-g')
+conflicts=('links-g')
+replaces=('links-g')
+source=(http://links.twibright.com/download/${pkgname}-${pkgver}.tar.bz2 links.desktop)
+sha1sums=('fe4bc37be8aebd9196c35ffef724435cea94349c'
+ '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/staging/links/links.desktop b/staging/links/links.desktop
new file mode 100644
index 000000000..9d6338a5b
--- /dev/null
+++ b/staging/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/staging/mail-notification/PKGBUILD b/staging/mail-notification/PKGBUILD
new file mode 100644
index 000000000..2867010e9
--- /dev/null
+++ b/staging/mail-notification/PKGBUILD
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 146578 2012-01-13 20:32:35Z ibiru $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=mail-notification
+pkgver=5.4
+pkgrel=10
+pkgdesc="Tray icon application that informs you if you have new mail"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/mailnotify/"
+license=('GPL3' 'FDL')
+depends=('gmime' 'libnotify' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnome')
+makedepends=('gob2' 'intltool' 'evolution' 'gnome-doc-utils' 'gtk2')
+options=('!libtool' '!emptydirs')
+install=mail-notification.install
+source=(http://savannah.nongnu.org/download/mailnotify-orig/${pkgname}-${pkgver}.tar.bz2
+ dont-update-cache.patch
+ remove-ubuntu-special-case.patch
+ mail-notification-5.4-evolution.patch
+ mail-notification-5.4-sasl_encode64.patch
+ mail-notification-5.4-evolution-gtkhtml.patch
+ mail-notification-5.4-camel_headers.patch
+ mail-notification-5.4-icons.patch
+ mail-notification-5.4-weak.patch
+ mail-notification-5.4-popup-attach.patch
+ mail-notification-5.4-kde-trayicon.patch
+ mail-notification-5.4-evolution-3-0-support.patch
+ mail-notification-5.4-gtk3-support.patch
+ mail-notification-5.4-add-fallback-icon.patch
+ mail-notification-5.4-gmime.patch
+ mail-notification-5.4-libx11.patch)
+md5sums=('c8dc33a61251acb5474e56eab6b18f43'
+ '6007bc30e789dab0a8282038e0335eb9'
+ '9cadd61bbd9c324b2916ec980231e0f2'
+ 'aa6f80820899f904c25988772f70ade9'
+ '125513ed059f62469377eb0ab794dbed'
+ 'c595a3962ab13a65be24a941e28faa9c'
+ 'f79939f593b2e8659e302df72c2b54b1'
+ '244b7ef2aec7656e8df390be87c10e2b'
+ '31bde95dfd39449959d8b3316f91429c'
+ 'cdead6a88d1779f69a5f40dc75d5cb84'
+ 'c7991b831834724eddc1c6802c3e06a6'
+ 'b370b1085ebb2814bd5d345a6d2b45ea'
+ '1ba948759110787dd57097cff157b75a'
+ '09df61b4dc29c676ac81ff9054e840ac'
+ '0944695e9b9b30f39028f85c83c6a7e2'
+ 'c3f643ef16aab3b4fe9ff5b333bff41a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i "${srcdir}/dont-update-cache.patch"
+ patch -Np0 -i "${srcdir}/remove-ubuntu-special-case.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-sasl_encode64.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution-gtkhtml.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-camel_headers.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-icons.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-weak.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-popup-attach.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-kde-trayicon.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-evolution-3-0-support.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-gtk3-support.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-add-fallback-icon.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-gmime.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-libx11.patch"
+
+ gtk-builder-convert ui/mailbox-properties-dialog.glade ui/mailbox-properties-dialog.ui
+ gtk-builder-convert ui/properties-dialog.glade ui/properties-dialog.ui
+
+ ./jb configure prefix=/usr sysconfdir=/etc \
+ localstatedir=/var destdir="${pkgdir}" \
+ gconf-schemas-dir=/etc/gconf/schemas install-gconf-schemas=no \
+ cflags="${CFLAGS}" cppflags="${CXXFLAGS}" ldflags="${LDFLAGS}" \
+ library-mode=0755
+ ./jb build
+ GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 ./jb install
+
+ rm -f "${pkgdir}/usr/share/mail-notification/"*.glade
+ install -m644 ui/mailbox-properties-dialog.ui "${pkgdir}/usr/share/mail-notification/"
+ install -m644 ui/properties-dialog.ui "${pkgdir}/usr/share/mail-notification/"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas --domain mail-notification ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/staging/mail-notification/dont-update-cache.patch b/staging/mail-notification/dont-update-cache.patch
new file mode 100644
index 000000000..81216835e
--- /dev/null
+++ b/staging/mail-notification/dont-update-cache.patch
@@ -0,0 +1,22 @@
+--- jbsrc/jb.c.~1~ 2008-03-20 16:53:02.000000000 +0100
++++ jbsrc/jb.c 2008-03-26 20:51:45.641363619 +0100
+@@ -327,7 +327,6 @@
+ jb_package_add_resources (void)
+ {
+ JBGroup *group;
+- JBRule *rule;
+ JBObject *object;
+
+ if (jb_variable_get_bool("compile-warnings"))
+@@ -362,11 +361,6 @@
+ if (jb_variable_get_bool("hotmail"))
+ jb_group_add_data_file(group, "hotmail.png", "$pkgdatadir");
+
+- rule = jb_rule_new();
+- jb_rule_set_install_message(rule, "updating the GTK+ icon cache");
+- jb_rule_add_install_command(rule, "-gtk-update-icon-cache -f -t $datadir/icons/hicolor");
+- jb_group_add_resource(group, JB_GROUP_RESOURCE(rule));
+-
+ jb_group_add(group);
+
+ /*** data ******************************************************************/
diff --git a/staging/mail-notification/mail-notification-5.4-add-fallback-icon.patch b/staging/mail-notification/mail-notification-5.4-add-fallback-icon.patch
new file mode 100644
index 000000000..41c28e870
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-add-fallback-icon.patch
@@ -0,0 +1,16 @@
+--- src/mn-stock.c.orig 2011-02-17 17:42:39.886767087 +0100
++++ src/mn-stock.c 2011-02-17 17:49:37.415541177 +0100
+@@ -86,6 +86,13 @@
+ gtk_icon_source_set_icon_name(icon_source, icons[i].icon_name);
+ gtk_icon_set_add_source(icon_set, icon_source);
+ gtk_icon_source_free(icon_source);
++
++ /* Add a fallback icon */
++ icon_source = gtk_icon_source_new();
++ gtk_icon_source_set_icon_name(icon_source, "mail-notification");
++ gtk_icon_source_set_state_wildcarded(icon_source, TRUE);
++ gtk_icon_set_add_source(icon_set, icon_source);
++ gtk_icon_source_free(icon_source);
+ }
+ else if (icons[i].source_stock_id)
+ {
diff --git a/staging/mail-notification/mail-notification-5.4-camel_headers.patch b/staging/mail-notification/mail-notification-5.4-camel_headers.patch
new file mode 100644
index 000000000..861e3d215
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-camel_headers.patch
@@ -0,0 +1,36 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-message.c mail-notification-5.4-OK/build/src/mn-evolution-message.c
+--- mail-notification-5.4/build/src/mn-evolution-message.c 2008-05-22 19:47:51.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-message.c 2010-05-04 18:13:31.000000000 +0400
+@@ -25,7 +25,7 @@
+ #line 24 "src/mn-evolution-message.gob"
+
+ #include <glib/gi18n.h>
+-#include <camel/camel-folder-summary.h>
++#include <camel/camel.h>
+ #include "mn-evolution-mailbox.h"
+ #include "mn-message-private.h"
+ #include "mn-evolution-client.h"
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-server.c mail-notification-5.4-OK/build/src/mn-evolution-server.c
+--- mail-notification-5.4/build/src/mn-evolution-server.c 2010-05-04 18:12:56.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-server.c 2010-05-04 18:13:39.000000000 +0400
+@@ -28,7 +28,7 @@
+ #include <libintl.h>
+ #include <gobject/gvaluecollector.h>
+ #include <libedataserver/eds-version.h>
+-#include <camel/camel-folder.h>
++#include <camel/camel.h>
+ #if EDS_CHECK_VERSION(2,29,0)
+ #include <shell/e-shell.h>
+ #include <mail/e-mail-browser.h>
+diff -Nrbu mail-notification-5.4/src/mn-evolution-plugin.c mail-notification-5.4-OK/src/mn-evolution-plugin.c
+--- mail-notification-5.4/src/mn-evolution-plugin.c 2010-05-04 18:12:56.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-evolution-plugin.c 2010-05-04 18:13:20.000000000 +0400
+@@ -24,7 +24,7 @@
+ #include <dbus/dbus.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <dbus/dbus-glib-bindings.h>
+-#include <camel/camel-folder.h>
++#include <camel/camel.h>
+ #include <mail/em-event.h>
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
diff --git a/staging/mail-notification/mail-notification-5.4-evolution-3-0-support.patch b/staging/mail-notification/mail-notification-5.4-evolution-3-0-support.patch
new file mode 100644
index 000000000..51938b5fa
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-evolution-3-0-support.patch
@@ -0,0 +1,122 @@
+--- jbsrc/lib/src/extras/jb-evolution-plugin.c.evolution30 2011-02-02 00:09:33.945696868 +0100
++++ jbsrc/lib/src/extras/jb-evolution-plugin.c 2011-02-02 00:28:09.096275028 +0100
+@@ -41,7 +41,7 @@
+ if (! minversion)
+ minversion = "2.12";
+
+- packages = g_strdup_printf("evolution-plugin >= %s libgtkhtml-3.15 gtkhtml-editor-3.14", minversion);
++ packages = g_strdup_printf("evolution-plugin-3.0 >= %s libgtkhtml-4.0 gtkhtml-editor-4.0", minversion);
+ result = jb_check_packages("Evolution", "evolution-plugin", packages);
+ g_free(packages);
+
+@@ -53,7 +53,7 @@
+ char *plugindir;
+
+ jb_message_checking("for the Evolution plugin directory");
+- plugindir = jb_get_package_variable("evolution-plugin", "plugindir");
++ plugindir = jb_get_package_variable("evolution-plugin-3.0", "plugindir");
+ jb_message_result_string(plugindir ? plugindir : "not found");
+
+ if (! plugindir)
+--- src/mn-evolution-plugin.c.orig 2011-02-09 00:07:37.422002566 +0100
++++ src/mn-evolution-plugin.c 2011-02-09 00:12:43.652678682 +0100
+@@ -25,6 +25,7 @@
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <dbus/dbus-glib-bindings.h>
+ #include <camel/camel.h>
++#include <libedataserver/eds-version.h>
+ #include <mail/em-event.h>
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
+@@ -240,7 +241,11 @@
+ EMEventTargetFolder *folder)
+ {
+ if (evo_server)
++#if EDS_CHECK_VERSION(3,1,0)
++ mn_evolution_server_folder_changed(evo_server, e_mail_folder_uri_build(folder->store, folder->folder_name));
++#else
+ mn_evolution_server_folder_changed(evo_server, folder->uri);
++#endif
+ }
+
+ void
+@@ -249,10 +250,16 @@
+ {
+ if (evo_server)
+ {
+- char *url;
++#if EDS_CHECK_VERSION(2,91,0)
++ const char *url = camel_folder_get_uri(message->folder);
++#else
++ char *url = mail_tools_folder_to_url(message->folder);
++#endif
+
+- url = mail_tools_folder_to_url(message->folder);
+ mn_evolution_server_message_reading(evo_server, url);
++
++#if !EDS_CHECK_VERSION(2,91,0)
+ g_free(url);
++#endif
+ }
+ }
+--- build/src/mn-evolution-server.c.orig 2011-02-09 00:17:38.850944227 +0100
++++ build/src/mn-evolution-server.c 2011-02-09 22:21:54.155346478 +0100
+@@ -496,11 +496,15 @@
+
+ if (! folder)
+ {
+- folder = mail_tool_uri_to_folder(uri, 0,
+ #if EDS_CHECK_VERSION(2,91,0)
+- NULL,
++ static EMailSession * session = NULL;
++ if (!session)
++ session = e_mail_session_new();
++
++ folder = e_mail_session_uri_to_folder_sync(session, uri, 0, NULL, NULL);
++#else
++ folder = mail_tool_uri_to_folder(uri, 0, NULL);
+ #endif
+- NULL);
+ if (folder)
+ self_cache_folder(uri, folder);
+ else
+@@ -677,7 +681,12 @@
+ folder = self_lookup_folder(folder_uri, err);
+ if (folder)
+ {
++#if EDS_CHECK_VERSION(3,1,0)
++ *ret = g_strdup(camel_folder_get_display_name(folder));
++#else
+ *ret = g_strdup(camel_folder_get_name(folder));
++#endif
++
+ #if EDS_CHECK_VERSION(2,31,0)
+ g_object_unref(folder);
+ #else
+@@ -725,8 +734,12 @@
+ shell = e_shell_get_default ();
+ shell_backend = e_shell_get_backend_by_name (shell, "mail");
+
+- browser = e_mail_browser_new (shell_backend);
++ browser = e_mail_browser_new (E_MAIL_BACKEND(shell_backend));
++#if EDS_CHECK_VERSION(3,1,0)
++ e_mail_reader_set_folder (E_MAIL_READER (browser), folder);
++#else
+ e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri);
++#endif
+ e_mail_reader_set_message (E_MAIL_READER (browser), message_uid);
+ gtk_widget_show (browser);
+ #else
+--- build/src/mn-evolution-folder-tree-server.c.orig 2011-06-17 22:01:49.226886994 +0200
++++ build/src/mn-evolution-folder-tree-server.c 2011-06-18 00:34:23.046889847 +0200
+@@ -444,7 +444,9 @@
+ {
+ #line 61 "src/mn-evolution-folder-tree-server.gob"
+
+-#if EDS_CHECK_VERSION(2,91,0)
++#if EDS_CHECK_VERSION(3,1,0)
++ selfp->tree = em_folder_tree_new(NULL, NULL);
++#elif EDS_CHECK_VERSION(2,91,0)
+ selfp->session = e_mail_session_new();
+ selfp->tree = em_folder_tree_new(selfp->session);
+ #elif EDS_CHECK_VERSION(2,29,0)
diff --git a/staging/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch b/staging/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch
new file mode 100644
index 000000000..283ef36d6
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch
@@ -0,0 +1,12 @@
+diff -Nrbu mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c mail-notification-5.4-OK/jbsrc/lib/src/extras/jb-evolution-plugin.c
+--- mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c 2008-04-27 18:47:43.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/lib/src/extras/jb-evolution-plugin.c 2009-08-21 19:48:22.000000000 +0400
+@@ -41,7 +41,7 @@
+ if (! minversion)
+ minversion = "2.12";
+
+- packages = g_strdup_printf("evolution-plugin >= %s", minversion);
++ packages = g_strdup_printf("evolution-plugin >= %s libgtkhtml-3.15 gtkhtml-editor-3.14", minversion);
+ result = jb_check_packages("Evolution", "evolution-plugin", packages);
+ g_free(packages);
+
diff --git a/staging/mail-notification/mail-notification-5.4-evolution.patch b/staging/mail-notification/mail-notification-5.4-evolution.patch
new file mode 100644
index 000000000..87514c22d
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-evolution.patch
@@ -0,0 +1,244 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c
+--- mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c 2008-05-22 19:47:48.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c 2010-10-12 16:50:15.000000000 +0400
+@@ -25,7 +25,10 @@
+ #line 24 "src/mn-evolution-folder-tree-server.gob"
+
+ #include <dbus/dbus.h>
++#include <libedataserver/eds-version.h>
++#if !EDS_CHECK_VERSION(2,29,0)
+ #include <mail/mail-component.h>
++#endif
+ #include <mail/em-folder-tree.h>
+ #include "mn-evolution-plugin.h"
+ #include "mn-evolution.h"
+@@ -441,10 +444,17 @@
+ {
+ #line 61 "src/mn-evolution-folder-tree-server.gob"
+
++#if EDS_CHECK_VERSION(2,91,0)
++ selfp->session = e_mail_session_new();
++ selfp->tree = em_folder_tree_new(selfp->session);
++#elif EDS_CHECK_VERSION(2,29,0)
++ selfp->tree = em_folder_tree_new();
++#else
+ EMFolderTreeModel *model;
+
+ model = mail_component_peek_tree_model(mail_component_peek());
+ selfp->tree = em_folder_tree_new_with_model(model);
++#endif
+
+ selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id);
+ gtk_container_add(GTK_CONTAINER(selfp->plug), selfp->tree);
+@@ -469,6 +479,10 @@
+ {
+ #line 80 "src/mn-evolution-folder-tree-server.gob"
+
++#if EDS_CHECK_VERSION(2,91,0)
++ g_object_unref(selfp->session);
++ selfp->session = NULL;
++#endif
+ g_signal_handlers_disconnect_by_func(selfp->plug, self_plug_destroy_h, self);
+ }}
+ #line 475 "mn-evolution-folder-tree-server.c"
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-server.c mail-notification-5.4-OK/build/src/mn-evolution-server.c
+--- mail-notification-5.4/build/src/mn-evolution-server.c 2008-05-22 19:47:48.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-server.c 2010-10-12 16:50:40.000000000 +0400
+@@ -27,12 +27,22 @@
+ #include <stdio.h>
+ #include <libintl.h>
+ #include <gobject/gvaluecollector.h>
++#include <libedataserver/eds-version.h>
+ #include <camel/camel-folder.h>
++#if EDS_CHECK_VERSION(2,29,0)
++#include <shell/e-shell.h>
++#include <mail/e-mail-browser.h>
++#else
+ #include <mail/em-folder-view.h>
+ #include <mail/em-format.h>
+ #include <mail/em-message-browser.h>
++#endif
+ #include <mail/em-utils.h>
++#if EDS_CHECK_VERSION(2,91,0)
++#include <mail/e-mail-session.h>
++#else
+ #include <mail/mail-session.h>
++#endif
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
+ #include "mn-evolution-folder-tree-server.h"
+@@ -391,10 +397,18 @@
+ info = g_new0(FolderInfo, 1);
+ info->uri = g_strdup(uri);
+ info->folder = folder;
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_ref(folder);
++#else
+ camel_object_ref(folder);
++#endif
+
+ /* uncache the folder when it is deleted */
++#if EDS_CHECK_VERSION(2,31,0)
++ g_signal_connect(folder, "deleted", G_CALLBACK(self_folder_deleted_cb), info);
++#else
+ camel_object_hook_event(folder, "deleted", self_folder_deleted_cb, info);
++#endif
+
+ g_hash_table_replace(folders, info->uri, info);
+ }}
+@@ -413,8 +427,13 @@
+ {
+ #line 105 "src/mn-evolution-server.gob"
+
++#if EDS_CHECK_VERSION(2,31,0)
++ g_signal_handlers_disconnect_by_func(info->folder, self_folder_deleted_cb, info);
++ g_object_unref(info->folder);
++#else
+ camel_object_unhook_event(info->folder, "deleted", self_folder_deleted_cb, info);
+ camel_object_unref(info->folder);
++#endif
+ g_free(info->uri);
+ g_free(info);
+ }}
+@@ -461,7 +480,11 @@
+ if (info)
+ {
+ folder = info->folder;
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_ref(folder);
++#else
+ camel_object_ref(folder);
++#endif
+ }
+ }
+ else
+@@ -469,7 +492,11 @@
+
+ if (! folder)
+ {
+- folder = mail_tool_uri_to_folder(uri, 0, NULL);
++ folder = mail_tool_uri_to_folder(uri, 0,
++#if EDS_CHECK_VERSION(2,91,0)
++ NULL,
++#endif
++ NULL);
+ if (folder)
+ self_cache_folder(uri, folder);
+ else
+@@ -595,14 +622,23 @@
+
+ for (i = 0; i < summary->len; i++)
+ {
++#if EDS_CHECK_VERSION(2,23,5)
++ char *uid = summary->pdata[i];
++ CamelMessageInfo *info = camel_folder_get_message_info(folder, uid);
++#else
+ CamelMessageInfo *info = summary->pdata[i];
++#endif
+
+ if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
+ g_ptr_array_add(*ret, self_camel_message_info_to_dbus_struct(info));
+ }
+
+ camel_folder_free_summary(folder, summary);
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -638,7 +674,11 @@
+ if (folder)
+ {
+ *ret = g_strdup(camel_folder_get_name(folder));
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -673,6 +713,19 @@
+ folder = self_lookup_folder(folder_uri, err);
+ if (folder)
+ {
++#if EDS_CHECK_VERSION(2,29,0)
++ EShell *shell;
++ EShellBackend *shell_backend;
++ GtkWidget *browser;
++
++ shell = e_shell_get_default ();
++ shell_backend = e_shell_get_backend_by_name (shell, "mail");
++
++ browser = e_mail_browser_new (shell_backend);
++ e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri);
++ e_mail_reader_set_message (E_MAIL_READER (browser), message_uid);
++ gtk_widget_show (browser);
++#else
+ GtkWidget *browser;
+
+ /* modelled after Evolution's handleuri_got_folder() */
+@@ -683,8 +736,13 @@
+ em_folder_view_set_folder((EMFolderView *) browser, folder, folder_uri);
+ em_folder_view_set_message((EMFolderView *) browser, message_uid, FALSE);
+ gtk_widget_show(((EMMessageBrowser *) browser)->window);
++#endif
+
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -721,7 +779,11 @@
+ if (folder)
+ {
+ status = camel_folder_set_message_flags(folder, message_uid, flags, flags);
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+
+ if (! status)
+ g_set_error(err,
+diff -Nrbu mail-notification-5.4/src/mn-evolution-plugin.c mail-notification-5.4-OK/src/mn-evolution-plugin.c
+--- mail-notification-5.4/src/mn-evolution-plugin.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-evolution-plugin.c 2010-10-12 16:50:15.000000000 +0400
+@@ -204,7 +204,7 @@
+ }
+
+ int
+-e_plugin_lib_enable (EPluginLib *ep, int enable)
++e_plugin_lib_enable (EPlugin *ep, int enable)
+ {
+ static gboolean enabled = FALSE;
+ GError *err = NULL;
+--- mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h.orig 2010-11-13 13:55:01.571934066 +0100
++++ mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h 2010-11-13 13:56:07.019487418 +0100
+@@ -4,6 +4,10 @@
+ #define __MN_EVOLUTION_FOLDER_TREE_SERVER_PRIVATE_H__
+
+ #include "mn-evolution-folder-tree-server.h"
++#include <libedataserver/eds-version.h>
++#if EDS_CHECK_VERSION(2,91,0)
++#include <mail/e-mail-session.h>
++#endif
+
+ #ifdef __cplusplus
+ extern "C" {
+@@ -23,6 +23,9 @@
+ #line 41 "src/mn-evolution-folder-tree-server.gob"
+ GtkWidget * tree;
+ #line 26 "mn-evolution-folder-tree-server-private.h"
++#if EDS_CHECK_VERSION(2,91,0)
++ EMailSession * session;
++#endif
+ };
+
+ #ifdef __cplusplus
diff --git a/staging/mail-notification/mail-notification-5.4-gmime.patch b/staging/mail-notification/mail-notification-5.4-gmime.patch
new file mode 100644
index 000000000..5f516a46b
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-gmime.patch
@@ -0,0 +1,63 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:28.000000000 +0300
+@@ -265,7 +265,7 @@
+ mime_message = g_mime_parser_construct_message(parser);
+ if (mime_message)
+ {
+- if (g_mime_message_get_header(mime_message, "X-Mozilla-Status"))
++ if (g_mime_object_get_header(mime_message, "X-Mozilla-Status"))
+ {
+ #if WITH_MOZILLA
+ type = MN_TYPE_MOZILLA_MAILBOX_BACKEND;
+diff -Nrbu mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:46:47.000000000 +0300
+@@ -167,7 +167,7 @@
+
+ const char *header;
+
+- header = g_mime_message_get_header(mime_message, header_name);
++ header = g_mime_object_get_header(mime_message, header_name);
+ if (header && mn_str_ishex(header))
+ return strtol(header, NULL, 16);
+ else
+diff -Nrbu mail-notification-5.4/jbsrc/jb.c mail-notification-5.4-OK/jbsrc/jb.c
+--- mail-notification-5.4/jbsrc/jb.c 2008-05-22 19:47:04.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/jb.c 2008-12-23 14:43:09.000000000 +0300
+@@ -166,7 +166,7 @@
+ jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
+ jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
+
+- jb_check_packages_for_options("GMime", "gmime", "gmime-2.0 >= 2.2.7",
++ jb_check_packages_for_options("GMime", "gmime", "gmime-2.6",
+ "hotmail",
+ "imap",
+ "maildir",
+diff -Nrbu mail-notification-5.4/src/mn-message-mime.c mail-notification-5.4-OK/src/mn-message-mime.c
+--- mail-notification-5.4/src/mn-message-mime.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-message-mime.c 2008-12-23 14:46:35.000000000 +0300
+@@ -33,12 +33,12 @@
+ g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), FALSE);
+
+ /* SpamAssassin */
+- spam = g_mime_message_get_header(mime_message, "X-Spam-Status");
++ spam = g_mime_object_get_header(mime_message, "X-Spam-Status");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+ /* bogofilter */
+- spam = g_mime_message_get_header(mime_message, "X-Bogosity");
++ spam = g_mime_object_get_header(mime_message, "X-Bogosity");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+@@ -89,7 +89,7 @@
+ {
+ const char *status;
+
+- status = g_mime_message_get_header(mime_message, "Status");
++ status = g_mime_object_get_header(mime_message, "Status");
+ if (status && strchr(status, 'R'))
+ return NULL; /* the message was read */
+ else if (status && strchr(status, 'O'))
diff --git a/staging/mail-notification/mail-notification-5.4-gtk3-support.patch b/staging/mail-notification/mail-notification-5.4-gtk3-support.patch
new file mode 100644
index 000000000..6a29f8622
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-gtk3-support.patch
@@ -0,0 +1,1416 @@
+--- build/src/mn-dialog.c.orig 2011-02-02 23:08:09.816659245 +0100
++++ build/src/mn-dialog.c 2011-02-02 23:09:16.988113774 +0100
+@@ -106,8 +106,7 @@
+ #line 27 "src/mn-dialog.gob"
+
+ gtk_container_set_border_width(GTK_CONTAINER(self), 5);
+- gtk_dialog_set_has_separator(GTK_DIALOG(self), FALSE);
+- gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(self)->vbox), 2);
++ gtk_box_set_spacing(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(self))), 2);
+
+ #line 113 "mn-dialog.c"
+ }
+--- jbsrc/jb.c.orig 2011-02-02 23:40:33.567924712 +0100
++++ jbsrc/jb.c 2011-02-02 23:39:39.680803618 +0100
+@@ -163,7 +163,7 @@
+ {
+ jb_check_glibc();
+
+- jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
++ jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-3.0 libgnome-2.0 >= 2.14.0 gnome-vfs-2.0 libxml-2.0 libnotify >= 0.4.1");
+ jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
+
+ jb_check_packages_for_options("GMime", "gmime", "gmime-2.6",
+--- build/src/mn-file-chooser-button.c.orig 2011-02-02 23:38:01.503049512 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-02 23:38:16.988222034 +0100
+@@ -358,7 +358,7 @@
+ g_signal_connect(selfp->dialog, "response", G_CALLBACK(self_response_h), self);
+ }
+
+- if (! GTK_WIDGET_VISIBLE(selfp->dialog))
++ if (! gtk_widget_get_visible(selfp->dialog))
+ {
+ GtkWindow *parent;
+
+--- build/src/mn-sound-player.c.orig 2011-02-02 23:55:02.436500397 +0100
++++ build/src/mn-sound-player.c 2011-02-02 23:55:09.125141055 +0100
+@@ -27,7 +27,7 @@
+ #include <sys/types.h>
+ #include <signal.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-conf.h"
+ #include "mn-locked-callback.h"
+ #include "mn-util.h"
+--- build/src/mn-file-chooser-button.c.orig 2011-02-02 23:55:21.857457045 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-02 23:55:30.422996901 +0100
+@@ -25,7 +25,7 @@
+ #line 39 "src/mn-file-chooser-button.gob"
+
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+
+ #line 32 "mn-file-chooser-button.c"
+--- build/src/mn-message.c.orig 2011-02-02 23:55:41.160420099 +0100
++++ build/src/mn-message.c 2011-02-02 23:55:47.755065850 +0100
+@@ -26,7 +26,7 @@
+
+ #include <errno.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include <libgnomevfs/gnome-vfs.h>
+ #include "mn-conf.h"
+ #include "mn-util.h"
+--- build/src/mn-file-chooser-button.c.orig 2011-02-03 00:15:16.178407712 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-03 00:18:17.865681563 +0100
+@@ -463,6 +463,7 @@
+
+ GDK_THREADS_ENTER();
+
++#if 0
+ if (results)
+ {
+ GnomeVFSGetFileInfoResult *result = results->data;
+@@ -494,6 +495,7 @@
+ }
+ }
+ }
++#endif
+
+ selfp->async_handle = NULL;
+ g_object_unref(self);
+--- build/src/mn-evolution-folder-tree-server.c.orig 2011-02-07 20:17:09.574274620 +0100
++++ build/src/mn-evolution-folder-tree-server.c 2011-02-07 20:23:25.196053994 +0100
+@@ -25,6 +25,7 @@
+ #line 24 "src/mn-evolution-folder-tree-server.gob"
+
+ #include <dbus/dbus.h>
++#include <gtk/gtkx.h>
+ #include <libedataserver/eds-version.h>
+ #if !EDS_CHECK_VERSION(2,29,0)
+ #include <mail/mail-component.h>
+@@ -71,7 +72,7 @@
+ static void mn_evolution_folder_tree_server_finalize (MNEvolutionFolderTreeServer * self);
+ #line 70 "mn-evolution-folder-tree-server.c"
+ #line 84 "src/mn-evolution-folder-tree-server.gob"
+-static void mn_evolution_folder_tree_server_plug_destroy_h (GtkObject * object, gpointer user_data);
++static void mn_evolution_folder_tree_server_plug_destroy_h (GtkWidget * object, gpointer user_data);
+ #line 73 "mn-evolution-folder-tree-server.c"
+ #line 104 "src/mn-evolution-folder-tree-server.gob"
+ static void mn_evolution_folder_tree_server_selected_h (EMFolderTree * tree, const char * full_name, const char * uri, guint32 flags, gpointer user_data);
+@@ -456,7 +457,7 @@
+ selfp->tree = em_folder_tree_new_with_model(model);
+ #endif
+
+- selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id);
++ selfp->plug = gtk_plug_new((Window) selfp->id);
+ gtk_container_add(GTK_CONTAINER(selfp->plug), selfp->tree);
+ gtk_widget_show_all(selfp->plug);
+
+@@ -490,7 +491,7 @@
+
+ #line 84 "src/mn-evolution-folder-tree-server.gob"
+ static void
+-mn_evolution_folder_tree_server_plug_destroy_h (GtkObject * object, gpointer user_data)
++mn_evolution_folder_tree_server_plug_destroy_h (GtkWidget * object, gpointer user_data)
+ {
+ #line 482 "mn-evolution-folder-tree-server.c"
+ #define __GOB_FUNCTION__ "MN:Evolution:Folder:Tree:Server::plug_destroy_h"
+--- src/eggtrayicon.h.orig 2011-02-07 20:25:26.352057350 +0100
++++ src/eggtrayicon.h 2011-02-07 20:27:54.495032920 +0100
+@@ -23,10 +23,9 @@
+ #ifndef __EGG_TRAY_ICON_H__
+ #define __EGG_TRAY_ICON_H__
+
+-#include <gtk/gtkplug.h>
+-#ifdef GDK_WINDOWING_X11
++#include <gtk/gtk.h>
++#include <gtk/gtkx.h>
+ #include <gdk/gdkx.h>
+-#endif
+
+ G_BEGIN_DECLS
+
+--- build/src/mn-mail-icon.c.orig 2011-02-07 20:24:58.971663075 +0100
++++ build/src/mn-mail-icon.c 2011-02-07 20:30:33.714401306 +0100
+@@ -833,11 +833,13 @@
+ #line 239 "src/mn-mail-icon.gob"
+
+ GtkWidget *widget = user_data;
++ GtkAllocation allocation;
+
+- gdk_window_get_origin(widget->window, x, y);
++ gdk_window_get_origin(gtk_widget_get_window(widget), x, y);
++ gtk_widget_get_allocation(widget, &allocation);
+
+- *x += widget->allocation.x;
+- *y += widget->allocation.y;
++ *x += allocation.x;
++ *y += allocation.y;
+
+ if (*y > gdk_screen_get_height(gtk_widget_get_screen(widget)) / 2)
+ {
+@@ -847,7 +849,7 @@
+ *y -= req.height;
+ }
+ else
+- *y += widget->allocation.height;
++ *y += allocation.height;
+
+ *push_in = TRUE;
+ }}
+--- build/src/mn-mail-icon-widget.c.orig 2011-02-07 20:31:19.475816763 +0100
++++ build/src/mn-mail-icon-widget.c 2011-02-07 21:53:48.858814715 +0100
+@@ -64,9 +64,13 @@
+ #line 65 "mn-mail-icon-widget.c"
+ #line 110 "src/mn-mail-icon-widget.gob"
+ static void ___7_mn_mail_icon_widget_size_request (GtkWidget * widget, GtkRequisition * requisition);
++static void
++mn_mail_icon_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width);
++static void
++mn_mail_icon_widget_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height);
+ #line 68 "mn-mail-icon-widget.c"
+ #line 132 "src/mn-mail-icon-widget.gob"
+-static gboolean ___8_mn_mail_icon_widget_expose_event (GtkWidget * widget, GdkEventExpose * event);
++static gboolean ___8_mn_mail_icon_widget_draw (GtkWidget * widget, cairo_t *cr);
+ #line 71 "mn-mail-icon-widget.c"
+ #line 244 "src/mn-mail-icon-widget.gob"
+ static GdkPixbuf * mn_mail_icon_widget_render_icon (MNMailIconWidget * self);
+@@ -187,9 +191,10 @@
+ parent_class = g_type_class_ref (GTK_TYPE_WIDGET);
+
+ #line 110 "src/mn-mail-icon-widget.gob"
+- gtk_widget_class->size_request = ___7_mn_mail_icon_widget_size_request;
++ gtk_widget_class->get_preferred_width = mn_mail_icon_widget_get_preferred_width;
++ gtk_widget_class->get_preferred_height = mn_mail_icon_widget_get_preferred_height;
+ #line 132 "src/mn-mail-icon-widget.gob"
+- gtk_widget_class->expose_event = ___8_mn_mail_icon_widget_expose_event;
++ gtk_widget_class->draw = ___8_mn_mail_icon_widget_draw;
+ #line 194 "mn-mail-icon-widget.c"
+ g_object_class->dispose = ___dispose;
+ g_object_class->finalize = ___finalize;
+@@ -234,7 +239,7 @@
+ {
+ #line 93 "src/mn-mail-icon-widget.gob"
+
+- GTK_WIDGET_SET_FLAGS(self, GTK_NO_WINDOW);
++ gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
+
+ gtk_widget_set_name(GTK_WIDGET(self), "mn-mail-icon");
+
+@@ -457,9 +462,28 @@
+ #undef __GOB_FUNCTION__
+ #undef PARENT_HANDLER
+
++static void
++mn_mail_icon_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
++{
++ GtkRequisition requisition;
++
++ ___7_mn_mail_icon_widget_size_request (widget, &requisition);
++ *minimal_width = *natural_width = requisition.width;
++}
++
++static void
++mn_mail_icon_widget_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
++{
++ GtkRequisition requisition;
++
++ ___7_mn_mail_icon_widget_size_request (widget, &requisition);
++
++ *minimal_height = *natural_height = requisition.height;
++}
++
+ #line 132 "src/mn-mail-icon-widget.gob"
+ static gboolean
+-___8_mn_mail_icon_widget_expose_event (GtkWidget * widget G_GNUC_UNUSED, GdkEventExpose * event)
++___8_mn_mail_icon_widget_draw (GtkWidget * widget G_GNUC_UNUSED, cairo_t *cr)
+ #line 464 "mn-mail-icon-widget.c"
+ #define PARENT_HANDLER(___widget,___event) \
+ ((GTK_WIDGET_CLASS(parent_class)->expose_event)? \
+@@ -472,7 +496,7 @@
+
+ Self *self = SELF(widget);
+
+- if (! GTK_WIDGET_DRAWABLE(widget) || ! selfp->stock_id)
++ if (! gtk_widget_is_drawable(widget) || ! selfp->stock_id)
+ return FALSE;
+
+ if (selfp->is_on)
+@@ -480,23 +504,34 @@
+ int x;
+ int y;
+ GdkRectangle image_area;
++ GtkAllocation allocation;
++ GtkRequisition requisition;
+
+ /* note: widget->requisition is the pixbuf size, see size_request() */
+
+- x = floor(widget->allocation.x + ((widget->allocation.width - widget->requisition.width) * ICON_XALIGN));
+- y = floor(widget->allocation.y + ((widget->allocation.height - widget->requisition.height) * ICON_YALIGN));
++ gtk_widget_get_allocation(widget, &allocation);
++ gtk_widget_get_requisition(widget, &requisition);
++
++ x = floor(allocation.x + ((allocation.width - requisition.width) * ICON_XALIGN));
++ y = floor(allocation.y + ((allocation.height - requisition.height) * ICON_YALIGN));
+
+ image_area.x = x;
+ image_area.y = y;
+- image_area.width = widget->requisition.width;
+- image_area.height = widget->requisition.height;
++ image_area.width = requisition.width;
++ image_area.height = requisition.height;
+
++#if 0
+ if (gdk_rectangle_intersect(&event->area, &image_area, &image_area))
++#endif
+ {
+ GdkPixbuf *pixbuf;
+
+ pixbuf = self_render_icon(self);
++ gdk_cairo_set_source_pixbuf(cr, pixbuf, image_area.x, image_area.y);
++ cairo_move_to(cr, image_area.x - x, image_area.y - y);
++ cairo_paint(cr);
+
++#if 0
+ gdk_draw_pixbuf(widget->window,
+ NULL,
+ pixbuf,
+@@ -509,6 +544,7 @@
+ GDK_RGB_DITHER_NORMAL,
+ 0,
+ 0);
++#endif
+
+ g_object_unref(pixbuf);
+ }
+@@ -523,13 +559,16 @@
+ int box_y;
+ int box_width;
+ int box_height;
++ GtkAllocation allocation;
++
++ gtk_widget_get_allocation(widget, &allocation);
+
+ if (! selfp->count_layout)
+ {
+ const char *size;
+ char *markup;
+
+- if (widget->allocation.height < 32)
++ if (allocation.height < 32)
+ size = "small";
+ else
+ size = "medium";
+@@ -546,17 +585,16 @@
+ box_width = count_rect.width + COUNT_BOX_XPAD * 2;
+ box_height = count_rect.height + COUNT_BOX_YPAD * 2;
+
+- box_x = widget->allocation.x + widget->allocation.width - box_width - COUNT_BOX_XMARGIN;
+- box_y = widget->allocation.y + widget->allocation.height - box_height - COUNT_BOX_YMARGIN;
++ box_x = allocation.x + allocation.width - box_width - COUNT_BOX_XMARGIN;
++ box_y = allocation.y + allocation.height - box_height - COUNT_BOX_YMARGIN;
+
+ count_x = box_x - count_rect.x + COUNT_BOX_XPAD;
+ count_y = box_y - count_rect.y + COUNT_BOX_YPAD;
+
+- gtk_paint_box(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_box(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ GTK_SHADOW_OUT,
+- &event->area,
+ widget,
+ NULL,
+ box_x,
+@@ -564,11 +602,10 @@
+ box_width,
+ box_height);
+
+- gtk_paint_layout(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_layout(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ FALSE,
+- &event->area,
+ widget,
+ NULL,
+ count_x,
+--- build/src/mn-mailbox-properties-dialog.c.orig 2011-02-07 21:57:31.257251776 +0100
++++ build/src/mn-mailbox-properties-dialog.c 2011-02-07 21:56:56.989854854 +0100
+@@ -456,7 +456,7 @@
+ MNMailboxProperties *properties;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+- PKGDATADIR G_DIR_SEPARATOR_S "mailbox-properties-dialog.glade",
++ PKGDATADIR G_DIR_SEPARATOR_S "mailbox-properties-dialog.ui",
+ "notebook",
+ "mn_mailbox_properties_dialog_",
+ "notebook", &self->notebook,
+@@ -1290,7 +1290,7 @@
+ {
+ #line 686 "src/mn-mailbox-properties-dialog.gob"
+
+- if (GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(self)->default_widget))
++ if (gtk_widget_is_sensitive(gtk_window_get_default_widget(GTK_WINDOW(self))))
+ gtk_window_activate_default(GTK_WINDOW(self));
+ else
+ {
+@@ -1313,9 +1313,9 @@
+ if (elem->data == entry)
+ break;
+
+- if (GTK_WIDGET_MAPPED(elem->data)
+- && GTK_WIDGET_VISIBLE(elem->data)
+- && GTK_WIDGET_SENSITIVE(elem->data))
++ if (gtk_widget_get_mapped(elem->data)
++ && gtk_widget_get_visible(elem->data)
++ && gtk_widget_get_sensitive(elem->data))
+ next = elem->data;
+ }
+ while (! next);
+--- build/src/mn-mailbox-view.c.orig 2011-02-07 22:18:49.962462920 +0100
++++ build/src/mn-mailbox-view.c 2011-02-07 23:01:39.990363248 +0100
+@@ -412,23 +412,23 @@
+ binding_set = gtk_binding_set_by_class(class);
+
+ /* Delete removes a row */
+- gtk_binding_entry_add_signal(binding_set, GDK_Delete, 0, "activate-remove", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_KP_Delete, 0, "activate-remove", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Delete, 0, "activate-remove", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_KP_Delete, 0, "activate-remove", 0);
+
+ /* HIG 2.0 cut/copy/paste shortcuts */
+- gtk_binding_entry_add_signal(binding_set, GDK_x, GDK_CONTROL_MASK, "activate-cut", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_c, GDK_CONTROL_MASK, "activate-copy", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_v, GDK_CONTROL_MASK, "activate-paste", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_x, GDK_CONTROL_MASK, "activate-cut", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_c, GDK_CONTROL_MASK, "activate-copy", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_v, GDK_CONTROL_MASK, "activate-paste", 0);
+
+ /* cut/copy/paste shortcuts taken from gtkentry.c */
+- gtk_binding_entry_add_signal(binding_set, GDK_Delete, GDK_SHIFT_MASK, "activate-cut", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_CONTROL_MASK, "activate-copy", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_SHIFT_MASK, "activate-paste", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Delete, GDK_SHIFT_MASK, "activate-cut", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Insert, GDK_CONTROL_MASK, "activate-copy", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK, "activate-paste", 0);
+
+ /* HIG 2.0 properties */
+- gtk_binding_entry_add_signal(binding_set, GDK_Return, GDK_MOD1_MASK, "activate-properties", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Return, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
+
+ #line 434 "mn-mailbox-view.c"
+ }
+@@ -934,14 +934,13 @@
+ #line 183 "src/mn-mailbox-view.gob"
+
+ GtkSelectionData *data;
+-
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_MAILBOXES].atom);
+ if (data)
+ {
+ GSList *configurations;
+ GSList *l;
+
+- memcpy(&configurations, data->data, data->length);
++ memcpy(&configurations, gtk_selection_data_get_data(data), gtk_selection_data_get_length(data));
+
+ MN_LIST_FOREACH(l, configurations)
+ {
+@@ -962,14 +961,14 @@
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_GNOME_COPIED_FILES].atom);
+ if (data)
+ {
+- if (data->format == 8 && data->length > 0)
++ if (gtk_selection_data_get_format(data) == 8 && gtk_selection_data_get_length(data) > 0)
+ {
+ char *gnome_copied_files;
+ gboolean status;
+ MNGnomeCopiedFilesType type;
+ GSList *uri_list;
+
+- gnome_copied_files = g_strndup(data->data, data->length);
++ gnome_copied_files = g_strndup(gtk_selection_data_get_data(data), gtk_selection_data_get_length(data));
+ status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
+ g_free(gnome_copied_files);
+
+--- build/src/mn-shell.c.orig 2011-02-07 23:02:17.852293679 +0100
++++ build/src/mn-shell.c 2011-02-07 23:04:39.223548403 +0100
+@@ -158,7 +158,7 @@
+ static void mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data);
+ #line 160 "mn-shell.c"
+ #line 499 "src/mn-shell.gob"
+-static void mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data);
++static void mn_shell_icon_destroy_h (GtkWidget * object, gpointer user_data);
+ #line 163 "mn-shell.c"
+ #line 508 "src/mn-shell.gob"
+ static void mn_shell_update_sensitivity (MNShell * self);
+@@ -1006,7 +1006,7 @@
+
+ #line 499 "src/mn-shell.gob"
+ static void
+-mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
++mn_shell_icon_destroy_h (GtkWidget * object, gpointer user_data)
+ {
+ #line 1004 "mn-shell.c"
+ #define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
+--- build/src/mn-text-table.c.orig 2011-02-07 23:05:08.799927792 +0100
++++ build/src/mn-text-table.c 2011-02-07 23:18:06.480056895 +0100
+@@ -69,9 +69,11 @@
+ #line 70 "mn-text-table.c"
+ #line 104 "src/mn-text-table.gob"
+ static void ___4_mn_text_table_size_request (GtkWidget * widget, GtkRequisition * requisition);
++static void mn_text_table_get_preferred_width (GtkWidget * widget, gint * minimal_width, gint * natural_width);
++static void mn_text_table_get_preferred_height (GtkWidget * widget, gint * minimal_height, gint * natural_height);
+ #line 73 "mn-text-table.c"
+ #line 115 "src/mn-text-table.gob"
+-static gboolean ___5_mn_text_table_expose_event (GtkWidget * widget, GdkEventExpose * event);
++static gboolean ___5_mn_text_table_draw (GtkWidget * widget, cairo_t *cr);
+ #line 76 "mn-text-table.c"
+ #line 165 "src/mn-text-table.gob"
+ static void mn_text_table_set_dirty (MNTextTable * self);
+@@ -188,9 +190,10 @@
+ parent_class = g_type_class_ref (GTK_TYPE_WIDGET);
+
+ #line 104 "src/mn-text-table.gob"
+- gtk_widget_class->size_request = ___4_mn_text_table_size_request;
++ gtk_widget_class->get_preferred_width = mn_text_table_get_preferred_width;
++ gtk_widget_class->get_preferred_height = mn_text_table_get_preferred_height;
+ #line 115 "src/mn-text-table.gob"
+- gtk_widget_class->expose_event = ___5_mn_text_table_expose_event;
++ gtk_widget_class->draw = ___5_mn_text_table_draw;
+ #line 257 "src/mn-text-table.gob"
+ c->clear = ___real_mn_text_table_clear;
+ #line 197 "mn-text-table.c"
+@@ -216,7 +219,7 @@
+ {
+ #line 80 "src/mn-text-table.gob"
+
+- GTK_WIDGET_SET_FLAGS(self, GTK_NO_WINDOW);
++ gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
+
+ g_object_connect(self,
+ "swapped-signal::style-set", self_context_changed, self,
+@@ -290,9 +293,29 @@
+ #undef __GOB_FUNCTION__
+ #undef PARENT_HANDLER
+
++static void
++mn_text_table_get_preferred_width (GtkWidget * widget, gint * minimal_width, gint * natural_width)
++{
++ GtkRequisition requisition;
++
++ ___4_mn_text_table_size_request (widget, &requisition);
++
++ *minimal_width = *natural_width = requisition.width;
++}
++
++static void
++mn_text_table_get_preferred_height (GtkWidget * widget, gint * minimal_height, gint * natural_height)
++{
++ GtkRequisition requisition;
++
++ ___4_mn_text_table_size_request (widget, &requisition);
++
++ *minimal_height = *natural_height = requisition.height;
++}
++
+ #line 115 "src/mn-text-table.gob"
+ static gboolean
+-___5_mn_text_table_expose_event (GtkWidget * widget G_GNUC_UNUSED, GdkEventExpose * event)
++___5_mn_text_table_draw (GtkWidget * widget G_GNUC_UNUSED, cairo_t *cr)
+ #line 297 "mn-text-table.c"
+ #define PARENT_HANDLER(___widget,___event) \
+ ((GTK_WIDGET_CLASS(parent_class)->expose_event)? \
+@@ -304,10 +327,14 @@
+ #line 117 "src/mn-text-table.gob"
+
+ Self *self = SELF(widget);
++ GtkAllocation allocation;
+ int i;
+- int y = widget->allocation.y;
++ int y;
++
++ gtk_widget_get_allocation(widget, &allocation);
++ y = 0;
+
+- if (! GTK_WIDGET_DRAWABLE(widget))
++ if (! gtk_widget_is_drawable(widget))
+ return FALSE;
+
+ self_relayout(self);
+@@ -316,7 +343,7 @@
+ {
+ Row *row = g_ptr_array_index(selfp->rows, i);
+ int j;
+- int x = widget->allocation.x;
++ int x = 0;
+ int column = 0;
+
+ MN_ARRAY_FOREACH(j, row->cells)
+@@ -324,11 +351,10 @@
+ MNTextTableCell *cell = g_ptr_array_index(row->cells, j);
+
+ if (cell->layout)
+- gtk_paint_layout(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_layout(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ FALSE,
+- &event->area,
+ widget,
+ NULL,
+ x,
+--- build/src/mn-tooltips.c.orig 2011-02-07 23:19:05.903761972 +0100
++++ build/src/mn-tooltips.c 2011-02-07 23:41:19.368621912 +0100
+@@ -104,7 +104,7 @@
+ static void mn_tooltips_set_tip_widget_real (MNTooltips * self, GtkWidget * widget, GtkWidget * tip_widget, int border_width);
+ #line 106 "mn-tooltips.c"
+ #line 287 "src/mn-tooltips.gob"
+-static gboolean mn_tooltips_paint_window (MNTooltips * self);
++static gboolean mn_tooltips_paint_window (MNTooltips * self, cairo_t *cr);
+ #line 109 "mn-tooltips.c"
+ #line 308 "src/mn-tooltips.gob"
+ static void mn_tooltips_draw_tips (MNTooltips * self);
+@@ -422,7 +422,13 @@
+
+ if (! selfp->window)
+ {
++ GtkStyleContext *ctx;
++
+ selfp->window = gtk_window_new(GTK_WINDOW_POPUP);
++
++ ctx = gtk_widget_get_style_context(GTK_WIDGET(selfp->window));
++ gtk_style_context_add_class(ctx, "tooltip");
++
+ self_update_screen(self, TRUE);
+ gtk_widget_set_app_paintable(selfp->window, TRUE);
+ gtk_window_set_resizable(GTK_WINDOW(selfp->window), FALSE);
+@@ -430,7 +430,7 @@
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->window), selfp->border_width);
+
+ g_signal_connect_swapped(selfp->window,
+- "expose-event",
++ "draw",
+ G_CALLBACK(self_paint_window),
+ self);
+
+@@ -490,7 +490,7 @@
+
+ if (selfp->active_data
+ && selfp->active_data->widget == widget
+- && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
++ && gtk_widget_is_drawable(selfp->active_data->widget))
+ {
+ if (data->tip_widget)
+ g_object_unref(data->tip_widget);
+@@ -594,7 +594,7 @@
+
+ #line 287 "src/mn-tooltips.gob"
+ static gboolean
+-mn_tooltips_paint_window (MNTooltips * self)
++mn_tooltips_paint_window (MNTooltips * self, cairo_t *cr)
+ {
+ #line 600 "mn-tooltips.c"
+ #define __GOB_FUNCTION__ "MN:Tooltips::paint_window"
+@@ -608,18 +608,13 @@
+
+ GtkRequisition req;
+
+- gtk_widget_size_request(selfp->window, &req);
+- gtk_paint_flat_box(selfp->window->style,
+- selfp->window->window,
+- GTK_STATE_NORMAL,
+- GTK_SHADOW_OUT,
+- NULL,
+- selfp->window,
+- "tooltip",
+- 0,
+- 0,
+- req.width,
+- req.height);
++ gtk_widget_size_request(GTK_WIDGET(selfp->window), &req);
++ gtk_render_background(gtk_widget_get_style_context(GTK_WIDGET(selfp->window)),
++ cr,
++ 0,
++ 0,
++ req.width,
++ req.height);
+
+ return FALSE;
+ }}
+@@ -651,10 +650,11 @@
+ gint monitor_num, px, py;
+ GdkRectangle monitor;
+ int screen_width;
++ GtkAllocation allocation;
+
+ if (! selfp->window)
+ self_force_window(self);
+- else if (GTK_WIDGET_VISIBLE(selfp->window))
++ else if (gtk_widget_get_visible(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+
+ gtk_widget_ensure_style(selfp->window);
+@@ -670,7 +670,7 @@
+
+ data = selfp->active_data;
+
+- child = GTK_BIN(selfp->window)->child;
++ child = gtk_bin_get_child(GTK_BIN(selfp->window));
+ if (child)
+ gtk_container_remove(GTK_CONTAINER(selfp->window), child);
+
+@@ -684,14 +684,16 @@
+ w = requisition.width;
+ h = requisition.height;
+
+- gdk_window_get_origin(widget->window, &x, &y);
+- if (GTK_WIDGET_NO_WINDOW(widget))
++ gtk_widget_get_allocation(selfp->window, &allocation);
++
++ gdk_window_get_origin(gtk_widget_get_window(widget), &x, &y);
++ if (! gtk_widget_get_has_window(widget))
+ {
+- x += widget->allocation.x;
+- y += widget->allocation.y;
++ x += allocation.x;
++ y += allocation.y;
+ }
+
+- x += widget->allocation.width / 2;
++ x += allocation.width / 2;
+
+ if (! keyboard_mode)
+ gdk_window_get_pointer(gdk_screen_get_root_window(screen), &x, NULL, NULL);
+@@ -712,11 +714,11 @@
+ else if (x < monitor.x)
+ x = monitor.x;
+
+- if ((y + h + widget->allocation.height + 4) > monitor.y + monitor.height
++ if ((y + h + allocation.height + 4) > monitor.y + monitor.height
+ && (y - 4) > monitor.y)
+ y = y - h - 4;
+ else
+- y = y + widget->allocation.height + 4;
++ y = y + allocation.height + 4;
+
+ /*
+ * The following block is not part of GTK+ and has been added to
+@@ -760,7 +762,7 @@
+
+ Self *self = SELF(data);
+
+- if (selfp->active_data && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
++ if (selfp->active_data && gtk_widget_is_drawable(selfp->active_data->widget))
+ self_draw_tips(self);
+
+ selfp->timeout_id = 0;
+@@ -785,7 +787,7 @@
+
+ if (selfp->window)
+ {
+- if (GTK_WIDGET_VISIBLE(selfp->window))
++ if (gtk_widget_get_visible(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+ gtk_widget_hide(selfp->window);
+ }
+@@ -802,7 +804,7 @@
+ {
+ TooltipsData *data = l->data;
+
+- if (data->widget == widget && GTK_WIDGET_DRAWABLE(widget))
++ if (data->widget == widget && gtk_widget_is_drawable(widget))
+ {
+ selfp->active_data = data;
+ break;
+@@ -937,7 +939,7 @@
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+- GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
++ GtkWidget *focus = gtk_window_get_focus(GTK_WINDOW(toplevel));
+
+ g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(TRUE));
+
+@@ -966,7 +968,7 @@
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+- GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
++ GtkWidget *focus = gtk_window_get_focus(GTK_WINDOW(toplevel));
+
+ if (focus)
+ self_hide_tip(focus);
+@@ -1057,24 +1059,24 @@
+ break;
+
+ case GDK_ENTER_NOTIFY:
+- if (! (GTK_IS_MENU_ITEM(widget) && GTK_MENU_ITEM(widget)->submenu))
++ if (! (GTK_IS_MENU_ITEM(widget) && gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget))))
+ self_start_delay(self, widget);
+ break;
+
+ case GDK_LEAVE_NOTIFY:
+ self_set_active_widget(self, NULL);
+- selfp->use_sticky_delay = selfp->window && GTK_WIDGET_VISIBLE(selfp->window);
++ selfp->use_sticky_delay = selfp->window && gtk_widget_get_visible(selfp->window);
+ break;
+
+ case GDK_MOTION_NOTIFY:
+ /* Handle menu items specially ... pend popup for each motion
+ * on other widgets, we ignore motion.
+ */
+- if (GTK_IS_MENU_ITEM(widget) && ! GTK_MENU_ITEM(widget)->submenu)
++ if (GTK_IS_MENU_ITEM(widget) && ! gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)))
+ {
+ /* Completely evil hack to make sure we get the LEAVE_NOTIFY
+ */
+- GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
++ //GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
+ self_set_active_widget(self, NULL);
+ self_start_delay(self, widget);
+ break;
+--- src/nautilus-cell-renderer-pixbuf-emblem.c.orig 2011-02-08 00:16:43.847831409 +0100
++++ src/nautilus-cell-renderer-pixbuf-emblem.c 2011-02-08 00:32:59.128682767 +0100
+@@ -39,17 +39,16 @@
+ GtkWidget *widget);
+ static void nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+- GdkRectangle *rectangle,
++ const GdkRectangle *rectangle,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height);
+ static void nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+- GdkWindow *window,
++ cairo_t *cr,
+ GtkWidget *widget,
+- GdkRectangle *background_area,
+- GdkRectangle *cell_area,
+- GdkRectangle *expose_area,
++ const GdkRectangle *background_area,
++ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
+
+ enum {
+@@ -356,7 +355,7 @@
+ static void
+ nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+- GdkRectangle *cell_area,
++ const GdkRectangle *cell_area,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+@@ -368,6 +367,10 @@
+ gint pixbuf_height = 0;
+ gint calc_width;
+ gint calc_height;
++ int xpad;
++ int ypad;
++ gfloat xalign;
++ gfloat yalign;
+
+ if (!cellpixbuf->pixbuf && cellinfo->stock_id)
+ nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (cellpixbuf, widget);
+@@ -385,8 +388,11 @@
+ pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellpixbuf->pixbuf_expander_closed));
+ }
+
+- calc_width = (gint) cell->xpad * 2 + pixbuf_width;
+- calc_height = (gint) cell->ypad * 2 + pixbuf_height;
++ gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
++ gtk_cell_renderer_get_alignment(cell, &xalign, &yalign);
++
++ calc_width = (gint) xpad * 2 + pixbuf_width;
++ calc_height = (gint) ypad * 2 + pixbuf_height;
+
+ if (x_offset) *x_offset = 0;
+ if (y_offset) *y_offset = 0;
+@@ -394,14 +400,14 @@
+ if (cell_area && pixbuf_width > 0 && pixbuf_height > 0) {
+ if (x_offset) {
+ *x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
+- 1.0 - cell->xalign : cell->xalign) *
+- (cell_area->width - calc_width - 2 * cell->xpad));
+- *x_offset = MAX (*x_offset, 0) + cell->xpad;
++ 1.0 - xalign : xalign) *
++ (cell_area->width - calc_width - 2 * xpad));
++ *x_offset = MAX (*x_offset, 0) + xpad;
+ }
+ if (y_offset) {
+- *y_offset = (cell->yalign *
+- (cell_area->height - calc_height - 2 * cell->ypad));
+- *y_offset = MAX (*y_offset, 0) + cell->ypad;
++ *y_offset = (yalign *
++ (cell_area->height - calc_height - 2 * ypad));
++ *y_offset = MAX (*y_offset, 0) + ypad;
+ }
+ }
+
+@@ -414,11 +420,10 @@
+
+ static void
+ nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+- GdkWindow *window,
++ cairo_t *cr,
+ GtkWidget *widget,
+- GdkRectangle *background_area,
+- GdkRectangle *cell_area,
+- GdkRectangle *expose_area,
++ const GdkRectangle *background_area,
++ const GdkRectangle *cell_area,
+ GtkCellRendererState flags)
+
+ {
+@@ -429,13 +434,19 @@
+ GdkRectangle pix_emblem_rect;
+ GdkRectangle draw_rect;
+ gboolean stock_pixbuf = FALSE;
++ gboolean is_expander = FALSE;
++ gboolean is_expanded = FALSE;
++ int xpad;
++ int ypad;
++
++ g_object_get(cell, "is-expander", &is_expander, "is-expanded", &is_expanded, NULL);
+
+ pixbuf = cellpixbuf->pixbuf;
+- if (cell->is_expander) {
+- if (cell->is_expanded &&
++ if (is_expander) {
++ if (is_expanded &&
+ cellpixbuf->pixbuf_expander_open != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_open;
+- } else if (!cell->is_expanded &&
++ } else if (!is_expanded &&
+ cellpixbuf->pixbuf_expander_closed != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_closed;
+ }
+@@ -456,15 +467,20 @@
+ if (stock_pixbuf)
+ pixbuf = cellpixbuf->pixbuf;
+
++ gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
++
+ pix_rect.x += cell_area->x;
+ pix_rect.y += cell_area->y;
+- pix_rect.width -= cell->xpad * 2;
+- pix_rect.height -= cell->ypad * 2;
++ pix_rect.width -= xpad * 2;
++ pix_rect.height -= ypad * 2;
+
++ if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect)) {
++#if 0
+ if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
++
+ gdk_draw_pixbuf (window,
+- widget->style->black_gc,
++ gtk_widget_get_style(widget)->black_gc,
+ pixbuf,
+ /* pixbuf 0, 0 is at pix_rect.x, pix_rect.y */
+ draw_rect.x - pix_rect.x,
+@@ -475,6 +491,11 @@
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
++#endif
++
++ cairo_move_to (cr, draw_rect.x - pix_rect.x, draw_rect.y - pix_rect.y);
++ gdk_cairo_set_source_pixbuf (cr, pixbuf, draw_rect.x, draw_rect.y);
++ cairo_paint (cr);
+ }
+
+ if (cellpixbuf->pixbuf_emblem) {
+@@ -482,8 +503,11 @@
+ pix_emblem_rect.height = gdk_pixbuf_get_height (cellpixbuf->pixbuf_emblem);
+ pix_emblem_rect.x = pix_rect.x;
+ pix_emblem_rect.y = pix_rect.y + pix_rect.height - pix_emblem_rect.height;
++ if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect)) {
++#if 0
+ if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
++
+ gdk_draw_pixbuf (window,
+ widget->style->black_gc,
+ cellpixbuf->pixbuf_emblem,
+@@ -496,6 +520,11 @@
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
++#endif
++
++ cairo_move_to (cr, draw_rect.x - pix_emblem_rect.x, draw_rect.y - pix_emblem_rect.y);
++ gdk_cairo_set_source_pixbuf (cr, cellpixbuf->pixbuf_emblem, draw_rect.x, draw_rect.y);
++ cairo_paint (cr);
+ }
+ }
+ }
+--- src/nautilus-cell-renderer-pixbuf-emblem.h.orig 2011-02-07 22:18:12.336471764 +0100
++++ src/nautilus-cell-renderer-pixbuf-emblem.h 2011-02-08 00:20:30.461758697 +0100
+@@ -25,18 +25,18 @@
+ #ifndef NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+
+-#include <gtk/gtkcellrenderer.h>
++#include <gtk/gtk.h>
+
+ #define NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM \
+ (nautilus_cell_renderer_pixbuf_emblem_get_type ())
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+- (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
++ (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+- (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
++ (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
+ #define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+- (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
++ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+ #define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+- (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
++ (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+
+ typedef struct _NautilusCellRendererPixbufEmblem NautilusCellRendererPixbufEmblem;
+ typedef struct _NautilusCellRendererPixbufEmblemClass NautilusCellRendererPixbufEmblemClass;
+--- build/src/mn-authenticated-mailbox.c.orig 2011-02-08 00:34:16.332610802 +0100
++++ build/src/mn-authenticated-mailbox.c 2011-02-08 00:36:23.706936717 +0100
+@@ -25,7 +25,7 @@
+ #line 29 "src/mn-authenticated-mailbox.gob"
+
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-mailbox-private.h"
+ #include "mn-shell.h"
+ #include "mn-util.h"
+@@ -859,6 +859,7 @@
+
+ /* keep the title in sync with gnome-authentication-manager */
+
++#if 0
+ /* translators: header capitalization */
+ selfp->auth_dialog = gnome_password_dialog_new(_("Authentication Required"),
+ message,
+@@ -891,6 +892,9 @@
+ gtk_widget_destroy(selfp->auth_dialog);
+
+ return ok;
++#else
++ return FALSE;
++#endif
+ }}
+ #line 896 "mn-authenticated-mailbox.c"
+ #undef __GOB_FUNCTION__
+--- build/src/mn-about-dialog.c.orig 2011-02-08 22:20:54.469841262 +0100
++++ build/src/mn-about-dialog.c 2011-02-08 22:21:13.309839037 +0100
+@@ -111,9 +111,11 @@
+ {
+ #line 32 "src/mn-about-dialog.gob"
+
++#if 0
+ gtk_about_dialog_set_email_hook(self_activate_link_cb, "mailto:", NULL);
+ gtk_about_dialog_set_url_hook(self_activate_link_cb, NULL, NULL);
+-
++#endif
++
+ #line 118 "mn-about-dialog.c"
+ }
+ }
+--- build/src/mn-autodetect-mailbox-properties.c.orig 2011-02-08 22:21:58.639427345 +0100
++++ build/src/mn-autodetect-mailbox-properties.c 2011-02-08 22:22:43.564035901 +0100
+@@ -355,10 +355,9 @@
+
+ toplevel = gtk_widget_get_toplevel(GTK_WIDGET(button));
+ /* translators: header capitalization */
+- selfp->chooser = gtk_file_chooser_dialog_new_with_backend(_("Select a File or Folder"),
++ selfp->chooser = gtk_file_chooser_dialog_new(_("Select a File or Folder"),
+ GTK_WINDOW(toplevel),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+- "gnome-vfs",
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, 1,
+ NULL);
+--- build/src/mn-pi-mailbox-properties.c.orig 2011-02-08 22:30:08.051375715 +0100
++++ build/src/mn-pi-mailbox-properties.c 2011-02-08 22:30:21.398665261 +0100
+@@ -415,7 +415,7 @@
+ int i;
+
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+- gtk_widget_set_sensitive(self->port_spin[i], GTK_WIDGET_SENSITIVE(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
++ gtk_widget_set_sensitive(self->port_spin[i], gtk_widget_get_sensitive(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
+
+ g_object_notify(G_OBJECT(self), "complete");
+ }}
+--- src/eggtrayicon.c.orig 2011-02-07 23:42:30.405791829 +0100
++++ src/eggtrayicon.c 2011-02-08 23:06:16.092968325 +0100
+@@ -25,7 +25,7 @@
+
+ #include "eggtrayicon.h"
+
+-#include <gdkconfig.h>
++#include <gdk/gdk.h>
+ #if defined (GDK_WINDOWING_X11)
+ #include <gdk/gdkx.h>
+ #include <X11/Xatom.h>
+@@ -258,7 +258,7 @@
+ {
+ GdkWindow *gdkwin;
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (widget),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+@@ -290,7 +290,7 @@
+ ev.window = window;
+ ev.message_type = icon->system_tray_opcode_atom;
+ ev.format = 32;
+- ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window);
++ ev.data.l[0] = gdk_x11_get_server_time (gtk_widget_get_window(GTK_WIDGET (icon)));
+ ev.data.l[1] = message;
+ ev.data.l[2] = data1;
+ ev.data.l[3] = data2;
+@@ -342,12 +342,12 @@
+ {
+ GdkWindow *gdkwin;
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+
+- if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
++ if (dock_if_realized && gtk_widget_get_realized (GTK_WIDGET(icon)))
+ egg_tray_icon_send_dock_request (icon);
+
+ egg_tray_icon_get_orientation_property (icon);
+@@ -355,10 +355,16 @@
+ }
+
+ static gboolean
+-transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
++transparent_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
+ {
+- gdk_window_clear_area (widget->window, event->area.x, event->area.y,
++#if 0
++ gdk_window_clear_area (gtk_widget_get_window(widget), event->area.x, event->area.y,
+ event->area.width, event->area.height);
++#endif
++ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
++ //gdk_cairo_region (cr, event->region);
++ cairo_fill (cr);
++
+ return FALSE;
+ }
+
+@@ -366,20 +372,20 @@
+ make_transparent_again (GtkWidget *widget, GtkStyle *previous_style,
+ gpointer user_data)
+ {
+- gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
++ //gdk_window_set_back_pixmap (gtk_widget_get_window(widget), NULL, TRUE);
+ }
+
+ static void
+ make_transparent (GtkWidget *widget, gpointer user_data)
+ {
+- if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget))
++ if (! gtk_widget_get_has_window (widget) || gtk_widget_get_app_paintable (widget))
+ return;
+
+ gtk_widget_set_app_paintable (widget, TRUE);
+ gtk_widget_set_double_buffered (widget, FALSE);
+- gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
+- g_signal_connect (widget, "expose_event",
+- G_CALLBACK (transparent_expose_event), NULL);
++ //gdk_window_set_back_pixmap (gtk_widget_get_window(widget), NULL, TRUE);
++ g_signal_connect (widget, "draw",
++ G_CALLBACK (transparent_draw), NULL);
+ g_signal_connect_after (widget, "style_set",
+ G_CALLBACK (make_transparent_again), NULL);
+ }
+@@ -391,7 +397,7 @@
+
+ g_return_if_fail (icon->manager_window != None);
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+--- build/src/mn-properties-dialog.c.orig 2011-02-08 23:37:12.605200174 +0100
++++ build/src/mn-properties-dialog.c 2011-02-08 23:37:18.601881191 +0100
+@@ -183,7 +183,7 @@
+ GtkTreeSelection *selection;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+- PKGDATADIR G_DIR_SEPARATOR_S "properties-dialog.glade",
++ PKGDATADIR G_DIR_SEPARATOR_S "properties-dialog.ui",
+ "main_vbox",
+ "mn_properties_dialog_",
+ "notebook", &selfp->notebook,
+--- src/mn-util.c.orig 2011-02-08 00:01:25.167207512 +0100
++++ src/mn-util.c 2011-02-09 00:01:35.718285446 +0100
+@@ -26,8 +26,7 @@
+ #include <gmodule.h>
+ #include <glib/gi18n.h>
+ #include <gobject/gvaluecollector.h>
+-#include <gnome.h>
+-#include <glade/glade.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+ #include "mn-mailboxes.h"
+ #include "mn-shell.h"
+@@ -303,49 +302,55 @@
+ return pixbuf;
+ }
+
+-static GladeXML *
++static GtkBuilder *
+ mn_glade_xml_new (const char *filename, const char *root, const char *domain)
+ {
+- GladeXML *xml;
++ GtkBuilder *builder;
++ GError *err = NULL;
+
+ g_return_val_if_fail(filename != NULL, NULL);
+
+- xml = glade_xml_new(filename, root, domain);
+- if (! xml)
+- mn_show_fatal_error_dialog(NULL, "Unable to load interface \"%s\".", filename);
++ builder = gtk_builder_new();
++ gtk_builder_set_translation_domain(builder, domain);
++ if (! gtk_builder_add_from_file(builder, filename, &err)) {
++ mn_show_fatal_error_dialog(NULL, "Unable to load interface \"%s\": %s.", filename, err->message);
++ g_error_free(err);
++ g_object_unref(builder);
++ return NULL;
++ }
+
+- return xml;
++ return builder;
+ }
+
+ static GtkWidget *
+-mn_glade_xml_get_widget (GladeXML *xml, const char *widget_name)
++mn_glade_xml_get_widget (GtkBuilder *builder, const char *widget_name)
+ {
+ GtkWidget *widget;
+
+- g_return_val_if_fail(GLADE_IS_XML(xml), NULL);
++ g_return_val_if_fail(GTK_IS_BUILDER(builder), NULL);
+ g_return_val_if_fail(widget_name != NULL, NULL);
+
+- widget = glade_xml_get_widget(xml, widget_name);
++ widget = GTK_WIDGET(gtk_builder_get_object(builder, widget_name));
+ if (! widget)
+- mn_show_fatal_error_dialog(NULL, "Widget \"%s\" not found in interface \"%s\".", widget_name, xml->filename);
++ mn_show_fatal_error_dialog(NULL, "Widget \"%s\" not found in interface.", widget_name);
+
+ return widget;
+ }
+
+ static void
+-create_interface_connect_cb (const char *handler_name,
++create_interface_connect_cb (GtkBuilder *builder,
+ GObject *object,
+ const char *signal_name,
+- const char *signal_data,
++ const char *handler_name,
+ GObject *connect_object,
+- gboolean after,
++ GConnectFlags flags,
+ gpointer user_data)
+ {
+ static GModule *module = NULL;
+ ContainerCreateInterfaceConnectInfo *info = user_data;
+ char *cb_name;
+ GCallback cb;
+- GConnectFlags flags;
++ GConnectFlags cflags;
+
+ if (! module)
+ {
+@@ -359,11 +364,9 @@
+ mn_show_fatal_error_dialog(NULL, "Signal handler \"%s\" not found.", cb_name);
+ g_free(cb_name);
+
+- flags = G_CONNECT_SWAPPED;
+- if (after)
+- flags |= G_CONNECT_AFTER;
++ cflags = G_CONNECT_SWAPPED;
+
+- g_signal_connect_data(object, signal_name, cb, info->container, NULL, flags);
++ g_signal_connect_data(object, signal_name, cb, info->container, NULL, cflags);
+ }
+
+ void
+@@ -373,7 +376,7 @@
+ const char *callback_prefix,
+ ...)
+ {
+- GladeXML *xml;
++ GtkBuilder *xml;
+ GtkWidget *child;
+ ContainerCreateInterfaceConnectInfo info;
+ va_list args;
+@@ -387,14 +390,16 @@
+ xml = mn_glade_xml_new(filename, child_name, NULL);
+ child = mn_glade_xml_get_widget(xml, child_name);
+
+- if (GTK_IS_DIALOG(container))
+- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(container)->vbox), child, TRUE, TRUE, 0);
+- else
++ if (GTK_IS_DIALOG(container)) {
++ gtk_widget_unparent(child);
++ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(container))), child, TRUE, TRUE, 0);
++ } else {
+ gtk_container_add(container, child);
++ }
+
+ info.container = container;
+ info.callback_prefix = callback_prefix;
+- glade_xml_signal_autoconnect_full(xml, create_interface_connect_cb, &info);
++ gtk_builder_connect_signals_full(xml, create_interface_connect_cb, &info);
+
+ va_start(args, callback_prefix);
+
+@@ -422,7 +427,7 @@
+
+ toplevel = gtk_widget_get_toplevel(widget);
+
+- return GTK_WIDGET_TOPLEVEL(toplevel) ? GTK_WINDOW(toplevel) : NULL;
++ return gtk_widget_get_toplevel(toplevel) ? GTK_WINDOW(toplevel) : NULL;
+ }
+
+ static void
+@@ -493,9 +498,11 @@
+ gpointer user_data)
+ {
+ GtkAdjustment *adjustment;
++ GtkAllocation allocation;
+
++ gtk_widget_get_allocation(widget, &allocation);
+ adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(widget));
+- gtk_adjustment_set_value(adjustment, (double) y / (widget->allocation.height - 2) * (adjustment->upper - adjustment->page_size));
++ gtk_adjustment_set_value(adjustment, (double) y / (allocation.height - 2) * (gtk_adjustment_get_upper(adjustment) - gtk_adjustment_get_page_size(adjustment)));
+
+ return TRUE; /* we're forcibly in a drop zone */
+ }
+@@ -562,7 +569,7 @@
+ MNMailbox *mailbox;
+
+ /* text/x-moz-url is encoded in UCS-2 but in format 8: broken */
+- if (selection_data->format != 8 || selection_data->length <= 0 || (selection_data->length % 2) != 0)
++ if (gtk_selection_data_get_format(selection_data) != 8 || gtk_selection_data_get_length(selection_data) <= 0 || (gtk_selection_data_get_length(selection_data) % 2) != 0)
+ {
+ mn_show_error_dialog(mn_widget_get_parent_window(widget),
+ _("A drag and drop error has occurred"),
+@@ -570,8 +577,8 @@
+ return;
+ }
+
+- char_data = (const guint16 *) selection_data->data;
+- char_len = selection_data->length / 2;
++ char_data = (const guint16 *) gtk_selection_data_get_data(selection_data);
++ char_len = gtk_selection_data_get_length(selection_data) / 2;
+
+ url = g_string_new(NULL);
+ for (i = 0; i < char_len && char_data[i] != '\n'; i++)
+@@ -1322,7 +1329,7 @@
+ }
+
+ static void
+-dialog_run_nonmodal_destroy_h (GtkObject *object, gpointer user_data)
++dialog_run_nonmodal_destroy_h (GtkWidget *object, gpointer user_data)
+ {
+ RunNonmodalInfo *info = user_data;
+
+@@ -1375,7 +1382,7 @@
+
+ g_object_ref(dialog);
+
+- if (! GTK_WIDGET_VISIBLE(dialog))
++ if (! gtk_widget_get_visible(dialog))
+ gtk_widget_show(GTK_WIDGET(dialog));
+
+ g_object_connect(dialog,
+--- src/mn-main.c.gtk3 2008-05-22 17:45:35.000000000 +0200
++++ src/mn-main.c 2011-02-08 23:32:33.800030659 +0100
+@@ -21,7 +21,7 @@
+ #include <stdlib.h>
+ #include <signal.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include <libgnomevfs/gnome-vfs.h>
+ #include <libnotify/notify.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+@@ -452,7 +452,7 @@
+
+ gnome_program_init(PACKAGE,
+ VERSION,
+- LIBGNOMEUI_MODULE,
++ LIBGNOME_MODULE,
+ argc,
+ argv,
+ GNOME_PARAM_HUMAN_READABLE_NAME, _("Mail Notification"),
+@@ -460,6 +460,8 @@
+ GNOME_PARAM_GOPTION_CONTEXT, option_context,
+ NULL);
+
++ gtk_init(&argc, &argv);
++
+ if (arg_version)
+ {
+ print_version();
+@@ -497,7 +499,9 @@
+ if (! gnome_vfs_init())
+ mn_show_fatal_error_dialog(NULL, _("Unable to initialize the GnomeVFS library."));
+
++#if 0
+ gnome_authentication_manager_init();
++#endif
+
+ /* must be called before init_gmime() */
+ mn_conf_init();
+--- src/mn-conf.c.gtk3 2008-05-22 17:45:35.000000000 +0200
++++ src/mn-conf.c 2011-02-07 20:07:01.630580132 +0100
+@@ -23,7 +23,7 @@
+ #include <errno.h>
+ #include <stdarg.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+ #include "mn-conf.h"
+ #include "mn-shell.h"
+--- data/mail-notification.desktop.in.orig 2011-07-08 13:46:52.327548264 +0200
++++ data/mail-notification.desktop.in 2011-07-08 13:47:00.732704467 +0200
+@@ -5,7 +5,7 @@
+ _Comment=Get notified when new mail arrives
+ Type=Application
+ Categories=GNOME;GTK;Network;Email;
+-Exec=mail-notification --sm-disable
++Exec=mail-notification
+ Terminal=false
+ StartupNotify=true
+ X-GNOME-DocPath=mail-notification/mail-notification.xml
diff --git a/staging/mail-notification/mail-notification-5.4-icons.patch b/staging/mail-notification/mail-notification-5.4-icons.patch
new file mode 100644
index 000000000..48d54742a
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-icons.patch
@@ -0,0 +1,39 @@
+diff -Nrbu mail-notification-5.4/src/mn-stock.c mail-notification-5.4-OK/src/mn-stock.c
+--- mail-notification-5.4/src/mn-stock.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-stock.c 2010-05-24 19:36:03.000000000 +0400
+@@ -32,11 +32,11 @@
+ const char *icon_name;
+ const char *source_stock_id;
+ } icons[] = {
+- { MN_STOCK_MAIL, NULL, "stock_mail" },
+- { MN_STOCK_NO_MAIL, NULL, "stock_inbox" },
+- { MN_STOCK_LOCAL, NULL, "stock_folder" },
+- { MN_STOCK_REMOTE, NULL, "stock_internet" },
+- { MN_STOCK_UNKNOWN, NULL, "stock_unknown" },
++ { MN_STOCK_MAIL, NULL, "mail-message-new" },
++ { MN_STOCK_NO_MAIL, NULL, "mail-notification" },
++ { MN_STOCK_LOCAL, NULL, "folder" },
++ { MN_STOCK_REMOTE, NULL, "applications-internet" },
++ { MN_STOCK_UNKNOWN, NULL, "dialog-question" },
+ { MN_STOCK_ERROR, NULL, NULL, GTK_STOCK_DIALOG_ERROR },
+ #if WITH_GMAIL
+ { MN_STOCK_GMAIL, PKGDATADIR G_DIR_SEPARATOR_S "gmail.png" },
+@@ -48,14 +48,14 @@
+ { MN_STOCK_HOTMAIL, PKGDATADIR G_DIR_SEPARATOR_S "hotmail.png" },
+ #endif
+ #if WITH_MBOX || WITH_MOZILLA || WITH_MH || WITH_MAILDIR || WITH_SYLPHEED
+- { MN_STOCK_SYSTEM_MAILBOX, NULL, "system" },
++ { MN_STOCK_SYSTEM_MAILBOX, NULL, "applications-system" },
+ #endif
+ #if WITH_EVOLUTION
+ { MN_STOCK_EVOLUTION_MAILBOX, NULL, "evolution" },
+ #endif
+- { MN_STOCK_MAIL_READER, NULL, "stock_mail-handling" },
+- { MN_STOCK_OPEN_MESSAGE, NULL, "stock_mail-open" },
+- { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "stock_mark" }
++ { MN_STOCK_MAIL_READER, NULL, "mail-unread" },
++ { MN_STOCK_OPEN_MESSAGE, NULL, "mail-read" },
++ { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "mail-mark-read" }
+ };
+ GtkIconFactory *factory;
+ GtkIconTheme *icon_theme;
diff --git a/staging/mail-notification/mail-notification-5.4-kde-trayicon.patch b/staging/mail-notification/mail-notification-5.4-kde-trayicon.patch
new file mode 100644
index 000000000..a3bdc8372
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-kde-trayicon.patch
@@ -0,0 +1,72 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-shell.c mail-notification-5.4-OK/build/src/mn-shell.c
+--- mail-notification-5.4/build/src/mn-shell.c 2010-10-11 17:45:23.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-shell.c 2010-10-11 17:45:48.000000000 +0400
+@@ -313,6 +313,29 @@
+ #undef __GOB_FUNCTION__
+
+ static void
++mn_shell_init_icon_base (MNShell * self)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (MN_IS_SHELL (self));
++
++ self->icon = MN_MAIL_ICON(mn_mail_icon_new());
++ mn_add_weak_pointer(&self->icon);
++
++ g_object_connect(self->icon,
++ "signal::activate", self_icon_activate_h, self,
++ "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
++ "signal::activate-open-latest-message", self_icon_activate_open_latest_message_h, self,
++ "swapped-signal::activate-consider-new-mail-as-read", self_consider_new_mail_as_read, self,
++ "swapped-signal::activate-update", self_update, self,
++ "signal::activate-properties", self_icon_activate_properties_h, self,
++ "signal::activate-help", self_icon_activate_help_h, self,
++ "signal::activate-about", self_icon_activate_about_h, self,
++ "swapped-signal::activate-remove", self_quit, self,
++ "signal::destroy", self_icon_destroy_h, self,
++ NULL);
++}
++
++static void
+ mn_shell_init (MNShell * o G_GNUC_UNUSED)
+ {
+ #define __GOB_FUNCTION__ "MN:Shell::init"
+@@ -793,22 +816,7 @@
+ {
+ #line 360 "src/mn-shell.gob"
+
+- self->icon = MN_MAIL_ICON(mn_mail_icon_new());
+- mn_add_weak_pointer(&self->icon);
+-
+- g_object_connect(self->icon,
+- "signal::activate", self_icon_activate_h, self,
+- "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
+- "signal::activate-open-latest-message", self_icon_activate_open_latest_message_h, self,
+- "swapped-signal::activate-consider-new-mail-as-read", self_consider_new_mail_as_read, self,
+- "swapped-signal::activate-update", self_update, self,
+- "signal::activate-properties", self_icon_activate_properties_h, self,
+- "signal::activate-help", self_icon_activate_help_h, self,
+- "signal::activate-about", self_icon_activate_about_h, self,
+- "swapped-signal::activate-remove", self_quit, self,
+- "signal::destroy", self_icon_destroy_h, self,
+- NULL);
+-
++ mn_shell_init_icon_base(self);
+ self_update_sensitivity(self);
+ self_update_tooltip(self);
+ self_update_icon(self);
+@@ -1094,7 +1102,13 @@
+ }
+ else
+ {
+- gtk_widget_hide(GTK_WIDGET(self->icon));
++ /* Re-create the icon as a regular gtk_widget_hide causes the
++ * icon to remain visible on non-GNOME environments. We can't
++ * use the callback self_icon_destroy_h here as it can cause an
++ * endless recursion */
++ g_signal_handlers_disconnect_by_func(self->icon, self_icon_destroy_h, self);
++ gtk_widget_destroy(GTK_WIDGET(self->icon));
++ mn_shell_init_icon_base(self);
+ mn_mail_icon_set_blinking(self->icon, FALSE);
+ }
+ }}
diff --git a/staging/mail-notification/mail-notification-5.4-libx11.patch b/staging/mail-notification/mail-notification-5.4-libx11.patch
new file mode 100644
index 000000000..bb3574fda
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-libx11.patch
@@ -0,0 +1,13 @@
+Link with libX11 explicitly.
+
+--- mail-notification-5.4.dfsg.1.orig/jbsrc/jb.c
++++ mail-notification-5.4.dfsg.1/jbsrc/jb.c
+@@ -445,6 +445,8 @@
+
+ jb_compile_options_add_libs(object->compile_options, "-lm");
+
++ jb_compile_options_add_libs(object->compile_options, "-lX11");
++
+ jb_compile_options_add_package(object->compile_options, "gettext");
+ jb_compile_options_add_package(object->compile_options, "gnome");
+ jb_compile_options_add_package(object->compile_options, "dbus");
diff --git a/staging/mail-notification/mail-notification-5.4-popup-attach.patch b/staging/mail-notification/mail-notification-5.4-popup-attach.patch
new file mode 100644
index 000000000..b8d5f6a09
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-popup-attach.patch
@@ -0,0 +1,45 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-popup.c mail-notification-5.4-OK/build/src/mn-popup.c
+--- mail-notification-5.4/build/src/mn-popup.c 2008-05-22 19:47:49.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-popup.c 2010-10-11 17:42:32.000000000 +0400
+@@ -177,6 +177,29 @@
+ #undef __GOB_FUNCTION__
+
+ static void
++mn_popup_wait_for_icon_to_become_ready (void)
++{
++ int x, y;
++ int count = 0;
++
++ /* When the tray icon is created, it can still take some time before
++ * it has arrived at the correct position. This is especially the case
++ * on KDE environments. To work around this, add a little delay of at
++ * most 2 seconds before showing a popup which is attached to the notification */
++ do {
++ gdk_window_get_origin (gtk_widget_get_window (mn_shell->icon), &x, &y);
++
++ if (x != 0 || y != 0) {
++ break;
++ }
++
++ g_usleep(G_USEC_PER_SEC / 10);
++ count++;
++ } while (count < 20);
++}
++
++
++static void
+ mn_popup_init (MNPopup * o G_GNUC_UNUSED)
+ {
+ #define __GOB_FUNCTION__ "MN:Popup::init"
+@@ -299,8 +322,10 @@
+ "icon-name", "stock_mail",
+ NULL);
+
+- if (mn_conf_get_enum_value(MN_TYPE_POPUP_POSITION, MN_CONF_POPUPS_POSITION) == MN_POPUP_POSITION_ATTACHED)
++ if (mn_conf_get_enum_value(MN_TYPE_POPUP_POSITION, MN_CONF_POPUPS_POSITION) == MN_POPUP_POSITION_ATTACHED) {
++ mn_popup_wait_for_icon_to_become_ready();
+ g_object_set(self, "attach-widget", mn_shell->icon, NULL);
++ }
+
+ g_string_free(body, TRUE);
+
diff --git a/staging/mail-notification/mail-notification-5.4-sasl_encode64.patch b/staging/mail-notification/mail-notification-5.4-sasl_encode64.patch
new file mode 100644
index 000000000..80a7304d1
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-sasl_encode64.patch
@@ -0,0 +1,24 @@
+diff -up mail-notification-5.4/build/src/mn-pop3-mailbox.c mail-notification-5.4-OK/build/src/mn-pop3-mailbox.c
+--- mail-notification-5.4/build/src/mn-pop3-mailbox.c 2009-05-19 10:29:58.448201837 +0200
++++ mail-notification-5.4-OK/build/src/mn-pop3-mailbox.c 2009-05-19 10:23:29.356204287 +0200
+@@ -619,7 +619,7 @@ mn_pop3_mailbox_enter_auth_cb (MNClientS
+
+ if (initial_clientoutlen > 0)
+ {
+- char buf64[initial_clientoutlen * 2]; /* Base64 is 33% larger than the data it encodes */
++ char buf64[initial_clientoutlen * 2 + 1]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
+diff -up mail-notification-5.4/src/mn-client-session.c mail-notification-5.4-OK/src/mn-client-session.c
+--- mail-notification-5.4/src/mn-client-session.c 2008-05-22 17:45:35.000000000 +0200
++++ mail-notification-5.4-OK/src/mn-client-session.c 2009-05-19 10:29:09.112211055 +0200
+@@ -1030,7 +1030,7 @@ mn_client_session_write (MNClientSession
+ static int
+ write_base64 (MNClientSession *session, const char *buf, unsigned int len)
+ {
+- char buf64[len * 2]; /* Base64 is 33% larger than the data it encodes */
++ char buf64[len * 2 + 1]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
diff --git a/staging/mail-notification/mail-notification-5.4-weak.patch b/staging/mail-notification/mail-notification-5.4-weak.patch
new file mode 100644
index 000000000..2e2a233aa
--- /dev/null
+++ b/staging/mail-notification/mail-notification-5.4-weak.patch
@@ -0,0 +1,11 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-shell.c mail-notification-5.4-OK/build/src/mn-shell.c
+--- mail-notification-5.4/build/src/mn-shell.c 2008-05-22 19:47:49.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-shell.c 2010-05-24 19:39:48.000000000 +0400
+@@ -1008,6 +1008,7 @@
+ Self *self = user_data;
+
+ /* The Notification Area applet has been terminated. Recreate the icon. */
++ mn_remove_weak_pointer(&self->icon);
+ self_init_icon(self);
+ }}
+ #line 1014 "mn-shell.c"
diff --git a/staging/mail-notification/mail-notification.install b/staging/mail-notification/mail-notification.install
new file mode 100644
index 000000000..21cd94399
--- /dev/null
+++ b/staging/mail-notification/mail-notification.install
@@ -0,0 +1,24 @@
+pkgname=mail-notification
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ kill -s HUP `pidof bonobo-activation-server` > /dev/null 2>&1
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ kill -s HUP `pidof bonobo-activation-server` > /dev/null 2>&1
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/staging/mail-notification/remove-ubuntu-special-case.patch b/staging/mail-notification/remove-ubuntu-special-case.patch
new file mode 100644
index 000000000..4516f32c6
--- /dev/null
+++ b/staging/mail-notification/remove-ubuntu-special-case.patch
@@ -0,0 +1,33 @@
+--- jbsrc/lib/src/core/jb-feature.c.~1~ 2008-04-27 16:47:27.000000000 +0200
++++ jbsrc/lib/src/core/jb-feature.c 2008-07-22 11:40:50.856886210 +0200
+@@ -164,8 +164,6 @@
+ static void
+ gconf_configure (void)
+ {
+- JBVariable *variable;
+-
+ jb_require_program("gconftool-2");
+
+ if (! strcmp(jb_variable_get_string("gconf-config-source"), "autodetect"))
+@@ -178,21 +176,6 @@
+ jb_variable_set_string("gconf-config-source", config_source);
+ g_free(config_source);
+ }
+-
+- /* fix the default schemas dir on Ubuntu */
+- variable = jb_variable_get_variable_or_error("gconf-schemas-dir");
+- if (! variable->user_set)
+- {
+- static const char *ubuntu_dir = "$datadir/gconf/schemas";
+- char *expanded;
+-
+- expanded = jb_variable_expand(ubuntu_dir, NULL);
+-
+- if (g_file_test(expanded, G_FILE_TEST_IS_DIR))
+- jb_variable_set_string("gconf-schemas-dir", ubuntu_dir);
+-
+- g_free(expanded);
+- }
+ }
+
+ static void
diff --git a/staging/neverball/PKGBUILD b/staging/neverball/PKGBUILD
new file mode 100644
index 000000000..2413373e9
--- /dev/null
+++ b/staging/neverball/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 146885 2012-01-19 03:40:43Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=neverball
+pkgver=1.5.4
+pkgrel=4
+pkgdesc="3D game similar to Super Monkey Ball or Marble Madness"
+arch=('i686' 'x86_64')
+url="http://neverball.org/"
+license=('GPL')
+depends=('sdl_ttf' 'libgl' 'libpng' 'libjpeg' 'libvorbis' 'physfs')
+makedepends=('mesa')
+source=(http://neverball.org/${pkgname}-${pkgver}.tar.gz neverball-1.5.4-underlink.patch)
+sha1sums=('619c227e1958bd60738f12dbbde9b30c91dd79a7'
+ 'f71982b7187d569c57b30c4c40fedd6c0e72baca')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|#define CONFIG_LOCALE "./locale"|#define CONFIG_LOCALE "/usr/share/locale"|' share/base_config.h
+ patch -p0 -i ../neverball-1.5.4-underlink.patch
+
+ if [ "${CARCH}" = "i686" ] ;then
+ make ENABLE_NLS=1 DATADIR=/usr/share/neverball SSE_CFLAGS=""
+ else
+ make ENABLE_NLS=1 DATADIR=/usr/share/neverball
+ fi
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}/usr/bin"
+ install -d "${pkgdir}"/usr/share/{neverball,locale,applications,pixmaps,doc/neverball}
+ install -d "${pkgdir}"/usr/share/man/man{1,6}
+
+ install -m755 neverball neverputt mapc "${pkgdir}/usr/bin"
+ cp -r locale/* "${pkgdir}/usr/share/locale/"
+ cp -r data/* "${pkgdir}/usr/share/neverball/"
+ install -m644 doc/* "${pkgdir}/usr/share/doc/neverball/"
+ install -m644 dist/*.desktop "${pkgdir}/usr/share/applications/"
+ install -m644 dist/*.png "${pkgdir}/usr/share/pixmaps/"
+ install -m644 dist/mapc.1 "${pkgdir}/usr/share/man/man1"
+ install -m644 dist/{neverball.6,neverputt.6} "${pkgdir}/usr/share/man/man6"
+
+ ln -s neverball_48.png "${pkgdir}/usr/share/pixmaps/neverball.png"
+ ln -s neverputt_48.png "${pkgdir}/usr/share/pixmaps/neverputt.png"
+ find "${pkgdir}/usr/share/neverball" -type f -exec chmod 0644 {} \;
+}
diff --git a/staging/neverball/neverball-1.5.4-underlink.patch b/staging/neverball/neverball-1.5.4-underlink.patch
new file mode 100644
index 000000000..1a848cad3
--- /dev/null
+++ b/staging/neverball/neverball-1.5.4-underlink.patch
@@ -0,0 +1,22 @@
+--- Makefile.old 2011-06-22 06:30:52.441788160 +0200
++++ Makefile 2011-06-22 06:31:59.754087534 +0200
+@@ -138,7 +138,7 @@
+ endif
+
+ ALL_LIBS := $(SDL_LIBS) $(BASE_LIBS) $(TILT_LIBS) $(INTL_LIBS) -lSDL_ttf \
+- -lvorbisfile $(OGL_LIBS)
++ -lvorbisfile $(OGL_LIBS) -lX11
+
+ #------------------------------------------------------------------------------
+
+--- Makefile.old 2012-01-18 21:28:23.000000000 -0500
++++ Makefile 2012-01-18 21:28:55.000000000 -0500
+@@ -131,7 +131,7 @@
+ OGL_LIBS := -framework OpenGL
+ endif
+
+-BASE_LIBS := -ljpeg $(PNG_LIBS) $(FS_LIBS)
++BASE_LIBS := -ljpeg $(PNG_LIBS) $(FS_LIBS) -lm
+
+ ifdef DARWIN
+ BASE_LIBS += -L/opt/local/lib
diff --git a/staging/qrencode/PKGBUILD b/staging/qrencode/PKGBUILD
new file mode 100644
index 000000000..cfa810614
--- /dev/null
+++ b/staging/qrencode/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 146830 2012-01-18 19:53:58Z bluewind $
+# Maintainer: Florian Pritz< flo@xinu.at>
+# Contributor: Dany Martineau <dany.luc.martineau@gmail.com>
+
+pkgname=qrencode
+pkgver=3.2.0
+pkgrel=2
+pkgdesc="C library for encoding data in a QR Code symbol."
+arch=(i686 x86_64)
+depends=('libpng>=1.5.0')
+makedepends=(sdl)
+url="http://megaui.net/fukuchi/works/qrencode/index.en.html"
+license=('GPL')
+options=(!libtool)
+source=(http://megaui.net/fukuchi/works/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7e90615eb314abcd2eb2eab5c8155b97')
+
+build() {
+ cd "${srcdir}/$pkgname-$pkgver"
+# autoreconf
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+
+ make prefix="$pkgdir/usr" install
+}
diff --git a/staging/qt/PKGBUILD b/staging/qt/PKGBUILD
new file mode 100644
index 000000000..24ae69a78
--- /dev/null
+++ b/staging/qt/PKGBUILD
@@ -0,0 +1,126 @@
+# $Id: PKGBUILD 146853 2012-01-18 20:54:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=qt
+pkgname=('qt' 'qt-private-headers')
+pkgver=4.8.0
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://qt-project.org/'
+license=('GPL3' 'LGPL')
+makedepends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'mesa' 'postgresql-libs'
+ 'mysql' 'unixodbc' 'cups' 'gtk2')
+options=('!libtool')
+_pkgfqn="${pkgbase}-everywhere-opensource-src-${pkgver}"
+source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
+ 'assistant.desktop' 'designer.desktop' 'linguist.desktop'
+ 'qtconfig.desktop')
+md5sums=('e8a5fdbeba2927c948d9f477a6abe904'
+ 'fc211414130ab2764132e7370f8e5caa'
+ '85179f5e0437514f8639957e1d8baf62'
+ 'f11852b97583610f3dbb669ebc3e21bc'
+ '6b771c8a81dd90b45e8a79afa0e5bbfd')
+
+build() {
+ cd "${srcdir}"/${_pkgfqn}
+
+ export QT4DIR="${srcdir}"/${_pkgfqn}
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+
+ sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/{g++,gcc}-base.conf
+ sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf
+ sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" mkspecs/common/gcc-base.conf
+
+ ./configure -confirm-license -opensource \
+ -prefix /usr \
+ -docdir /usr/share/doc/qt \
+ -plugindir /usr/lib/qt/plugins \
+ -importdir /usr/lib/qt/imports \
+ -datadir /usr/share/qt \
+ -translationdir /usr/share/qt/translations \
+ -sysconfdir /etc \
+ -examplesdir /usr/share/doc/qt/examples \
+ -demosdir /usr/share/doc/qt/demos \
+ -plugin-sql-{psql,mysql,sqlite,odbc} \
+ -system-sqlite \
+ -no-phonon \
+ -no-phonon-backend \
+ -no-webkit \
+ -graphicssystem raster \
+ -openssl-linked \
+ -nomake demos \
+ -nomake examples \
+ -nomake docs \
+ -silent \
+ -no-rpath \
+ -optimized-qmake \
+ -reduce-relocations \
+ -dbus-linked \
+ -no-openvg
+ make
+}
+
+package_qt() {
+ pkgdesc='A cross-platform application and UI framework'
+ depends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils')
+ optdepends=('postgresql-libs: PostgreSQL driver'
+ 'libmysqlclient: MySQL driver'
+ 'unixodbc: ODBC driver'
+ 'libxinerama: Xinerama support'
+ 'libxcursor: Xcursor support'
+ 'libxfixes: Xfixes support')
+ install='qt.install'
+
+ cd "${srcdir}"/${_pkgfqn}
+ make INSTALL_ROOT="${pkgdir}" install
+
+ # install missing icons and desktop files
+ for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
+ size=$(echo $(basename ${icon}) | cut -d- -f2)
+ install -p -D -m644 ${icon} \
+ "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png"
+ done
+ install -p -D -m644 src/gui/dialogs/images/qtlogo-64.png \
+ "${pkgdir}/usr/share/icons/hicolor/64x64/apps/qtlogo.png"
+ install -p -D -m644 tools/assistant/tools/assistant/images/assistant.png \
+ "${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png"
+ install -p -D -m644 tools/designer/src/designer/images/designer.png \
+ "${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png"
+ install -d "${pkgdir}/usr/share/applications"
+ install -m644 "${srcdir}"/{linguist,designer,assistant,qtconfig}.desktop \
+ "${pkgdir}/usr/share/applications/"
+
+ # install license addition
+ install -D -m644 LGPL_EXCEPTION.txt \
+ ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt
+
+ # Fix wrong path in pkgconfig files
+ find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \
+ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+
+ # Fix wrong path in prl files
+ find "${pkgdir}/usr/lib" -type f -name '*.prl' \
+ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+}
+
+package_qt-private-headers(){
+ pkgdesc="Qt private headers for development"
+ depends=("qt=${pkgver}")
+
+ install -d "${pkgdir}"/usr/include/{QtCore,QtDeclarative,QtGui,QtScript}
+ install -d "${pkgdir}"/usr/src/{corelib,declarative,gui,script}
+
+ for i in QtCore QtDeclarative QtGui QtScript; do
+ cp -r "${srcdir}"/${_pkgfqn}/include/${i}/private/ \
+ "${pkgdir}"/usr/include/${i}/
+ done
+
+ for i in corelib declarative gui script; do
+ cp -r "${srcdir}"/${_pkgfqn}/src/${i} "${pkgdir}"/usr/src/
+ done
+}
diff --git a/staging/qt/assistant.desktop b/staging/qt/assistant.desktop
new file mode 100644
index 000000000..a9e98c44b
--- /dev/null
+++ b/staging/qt/assistant.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Qt Assistant
+Comment=Shows Qt documentation and examples
+Exec=/usr/bin/assistant
+Icon=assistant
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;Documentation;
diff --git a/staging/qt/designer.desktop b/staging/qt/designer.desktop
new file mode 100644
index 000000000..9b7b6e9aa
--- /dev/null
+++ b/staging/qt/designer.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Qt Designer
+GenericName=Interface Designer
+Comment=Design GUIs for Qt applications
+Exec=/usr/bin/designer
+Icon=designer
+MimeType=application/x-designer;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/staging/qt/linguist.desktop b/staging/qt/linguist.desktop
new file mode 100644
index 000000000..8cbe86599
--- /dev/null
+++ b/staging/qt/linguist.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Linguist
+Comment=Add translations to Qt applications
+Exec=/usr/bin/linguist
+Icon=linguist
+MimeType=text/vnd.trolltech.linguist;application/x-linguist;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/staging/qt/qt.install b/staging/qt/qt.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/staging/qt/qt.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/qt/qtconfig.desktop b/staging/qt/qtconfig.desktop
new file mode 100644
index 000000000..46dcf9e3d
--- /dev/null
+++ b/staging/qt/qtconfig.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Config
+Comment=Configure Qt behavior, styles, fonts
+Exec=/usr/bin/qtconfig
+Icon=qtlogo
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Settings;
+NoDisplay=true
diff --git a/staging/qt3/PKGBUILD b/staging/qt3/PKGBUILD
new file mode 100644
index 000000000..57b052598
--- /dev/null
+++ b/staging/qt3/PKGBUILD
@@ -0,0 +1,133 @@
+# $Id: PKGBUILD 146911 2012-01-19 05:18:20Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=qt3
+pkgver=3.3.8
+pkgrel=22
+pkgdesc="The QT3 gui toolkit"
+arch=('i686' 'x86_64')
+url="http://www.trolltech.com/products/qt/index.html"
+license=('GPL')
+depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft'
+ 'libxrandr' 'libmng')
+makedepends=('mysql' 'postgresql' 'unixodbc' 'sqlite3')
+optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc')
+options=('!libtool')
+install=qt.install
+source=(ftp://ftp.trolltech.com/qt/source/qt-x11-free-${pkgver}.tar.bz2
+ qt.profile qt3-png15.patch qt-copy-kde-patches.tar.bz2
+ qt-patches.tar.bz2 utf8-bug-qt3.diff qt-font-default-subst.diff
+ mysql.patch eastern_asian_languagues.diff qt-odbc.patch gcc-4.6.patch)
+sha1sums=('91b192cb8e80679607d24ae35d6e20ed68d149d7'
+ 'd2e257a9011208b2cb81b9cf47915b9a2f9dab83'
+ '3d19510c46016a1a211d97bf8f82b01498b1b33c'
+ '9cb2e5bec782069692ee337cfa171539d9d73753'
+ '116afa0e737bdf27ea27f9b3653aeb56db9ec151'
+ 'ca5ecb29c7f1c826d48703339a3371038e306bb7'
+ 'd928ff55adb52c4bab2fb268df022651551cd70c'
+ 'bb6aad81cce143c23ff7840b1d79f6b2007a0c04'
+ '40c7b8f06a21f809ddeb8b5560e9da63ccac6a17'
+ '1346320614f6f86fbeb10b9fbad721dea29f5b61'
+ 'd9b83b8f6f9c8bd98d290dc1d0e9913a00b62c3f')
+
+# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/
+# other qt-patches come from fedora and gentoo
+
+build() {
+ unset QMAKESPEC
+ export QTDIR="${srcdir}"/qt-x11-free-${pkgver}
+ export PATH=${QTDIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ # apply qt patches from kde.org
+ for i in ../qt-copy-kde-patches/*; do
+ patch -Np0 -i $i
+ done
+ # apply other qt patches and one security fix from debian/gentoo
+ for i in ../qt-patches/*; do
+ patch -Np1 -i $i
+ done
+ # fix utf8 bug
+ patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff
+ # fix asia fonts
+ patch -p0 -i "${srcdir}"/qt-font-default-subst.diff
+ # fix segfaults on exit when using mysql DB driver
+ patch -p0 -i "${srcdir}"/mysql.patch
+ # fix CJK font/chars select error (FS#11245)
+ patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff
+ # fix build problem against new unixODBC
+ patch -p1 -i "${srcdir}"/qt-odbc.patch
+ # fix build with gcc 4.6.0
+ patch -p1 -i "${srcdir}"/gcc-4.6.patch
+
+ patch -p0 -i "${srcdir}"/qt3-png15.patch
+ # start compiling qt
+ sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix
+ rm -rf doc/html examples tutorial
+ sed -i "s|sub-tutorial sub-examples||" Makefile
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-32/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-64/qmake.conf
+ sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix
+ sed -i "s|read acceptance|acceptance=yes|" configure
+
+ # remove unwanted mkspecs
+ rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*}
+
+ if [ "$CARCH" = "x86_64" ]; then
+ export ARCH="-64"
+ else unset ARCH
+ fi
+
+ ./configure -prefix /opt/qt \
+ -platform linux-g++$ARCH \
+ -system-zlib \
+ -qt-gif \
+ -release \
+ -shared \
+ -sm \
+ -nis \
+ -thread \
+ -stl \
+ -system-lib{png,jpeg,mng} \
+ -no-g++-exceptions \
+ -plugin-sql-{mysql,psql,sqlite,odbc}
+
+ # fix /opt/qt/lib path
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/src/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/designer/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/editor/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/assistant/lib/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt-x11-free-${pkgver}/tools/designer/uilib/Makefile
+
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ make -C qmake
+ cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/mysql
+ "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
+ cd "${srcdir}"/qt-x11-free-${pkgver}/plugins/src/sqldrivers/psql
+ "${srcdir}"/qt-x11-free-${pkgver}/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro
+
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ # fix the broken makefiles
+ #sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}"/qt-x11-free-${pkgver}
+ make INSTALL_ROOT="${pkgdir}" install
+ rm -rf "${pkgdir}"/opt/qt/{phrasebooks,templates,translations}
+ sed -i "s|-L${srcdir}/qt-x11-free-${pkgver}/lib ||g" "${pkgdir}"/opt/qt/lib/*.prl
+ install -D -m755 qmake/qmake "${pkgdir}"/opt/qt/bin/qmake
+ install -D -m755 "${srcdir}"/qt.profile "${pkgdir}"/etc/profile.d/qt3.sh
+ ln -sf /opt/qt/bin/qtconfig "${pkgdir}"/opt/qt/bin/qt3config
+ rm -f "${pkgdir}"/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH
+
+ # install man pages
+ install -d -m755 "${pkgdir}"/opt/qt/man
+ cp -r "${srcdir}"/qt-x11-free-${pkgver}/doc/man/{man1,man3} "${pkgdir}"/opt/qt/man/
+
+ install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/
+ echo '/opt/qt/lib' > "${pkgdir}"/etc/ld.so.conf.d/qt3.conf
+}
diff --git a/staging/qt3/eastern_asian_languagues.diff b/staging/qt3/eastern_asian_languagues.diff
new file mode 100644
index 000000000..7c25eef7d
--- /dev/null
+++ b/staging/qt3/eastern_asian_languagues.diff
@@ -0,0 +1,39 @@
+--- qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-01-15 21:09:13.000000000 +0200
++++ qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-03-10 11:34:22.000000000 +0200
+@@ -966,20 +966,22 @@
+
+ #ifdef Q_WS_X11
+ if (script == QFont::Han) {
+- // modify script according to locale
+- static QFont::Script defaultHan = QFont::UnknownScript;
+- if (defaultHan == QFont::UnknownScript) {
+- QCString locale = setlocale(LC_ALL, NULL);
+- if (locale.contains("ko"))
+- defaultHan = QFont::Han_Korean;
+- else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
+- defaultHan = QFont::Han_TraditionalChinese;
+- else if (locale.contains("zh"))
+- defaultHan = QFont::Han_SimplifiedChinese;
+- else
+- defaultHan = QFont::Han_Japanese;
+- }
+- script = defaultHan;
++ // modify script according to locale
++ static QFont::Script defaultHan;
++ QCString locale = setlocale(LC_ALL, NULL);
++
++ if (locale.contains("ko"))
++ defaultHan = QFont::Han_Korean;
++ else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
++ defaultHan = QFont::Han_TraditionalChinese;
++ else if (locale.contains("zh"))
++ defaultHan = QFont::Han_SimplifiedChinese;
++ else if (locale.contains("ja"))
++ defaultHan = QFont::Han_Japanese;
++ else
++ defaultHan = QFont::Han; // don't change
++
++ script = defaultHan;
+ }
+ #endif
+
diff --git a/staging/qt3/gcc-4.6.patch b/staging/qt3/gcc-4.6.patch
new file mode 100644
index 000000000..bcbffcea6
--- /dev/null
+++ b/staging/qt3/gcc-4.6.patch
@@ -0,0 +1,33 @@
+diff -up qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef qt-x11-free-3.3.8b/src/tools/qmap.h
+--- qt-x11-free-3.3.8b/src/tools/qmap.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qmap.h 2011-01-30 21:14:29.275088725 -0600
+@@ -49,6 +49,7 @@
+ #include "qvaluelist.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <map>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluelist.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluelist.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluelist.h 2011-01-30 21:14:01.765846592 -0600
+@@ -47,6 +47,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <iterator>
+ #include <list>
+diff -up qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef qt-x11-free-3.3.8b/src/tools/qvaluevector.h
+--- qt-x11-free-3.3.8b/src/tools/qvaluevector.h.cstddef 2008-01-15 13:09:13.000000000 -0600
++++ qt-x11-free-3.3.8b/src/tools/qvaluevector.h 2011-01-30 21:14:01.765846592 -0600
+@@ -45,6 +45,7 @@
+ #include "qdatastream.h"
+ #endif // QT_H
+
++#include <cstddef>
+ #ifndef QT_NO_STL
+ #include <vector>
+ #endif
diff --git a/staging/qt3/mysql.patch b/staging/qt3/mysql.patch
new file mode 100644
index 000000000..5f61edc67
--- /dev/null
+++ b/staging/qt3/mysql.patch
@@ -0,0 +1,47 @@
+--- src/sql/drivers/mysql/qsql_mysql.cpp
++++ src/sql/drivers/mysql/qsql_mysql.cpp
+@@ -37,7 +37,6 @@
+ #include "qsql_mysql.h"
+ #include <private/qsqlextension_p.h>
+
+-#include <qapplication.h>
+ #include <qdatetime.h>
+ #include <qvaluevector.h>
+ #include <qsqlrecord.h>
+@@ -341,14 +340,6 @@ int QMYSQLResult::numRowsAffected()
+ }
+
+ /////////////////////////////////////////////////////////
+-static void qServerEnd()
+-{
+-#ifndef Q_NO_MYSQL_EMBEDDED
+-# if MYSQL_VERSION_ID >= 40000
+- mysql_server_end();
+-# endif // MYSQL_VERSION_ID
+-#endif // Q_NO_MYSQL_EMBEDDED
+-}
+
+ static void qServerInit()
+ {
+@@ -366,9 +357,7 @@ static void qServerInit()
+ qWarning( "QMYSQLDriver::qServerInit: unable to start server." );
+ # endif
+ }
+- qAddPostRoutine(qServerEnd);
+ init = TRUE;
+-
+ # endif // MYSQL_VERSION_ID
+ #endif // Q_NO_MYSQL_EMBEDDED
+ }
+@@ -411,6 +400,11 @@ QMYSQLDriver::~QMYSQLDriver()
+ QSqlOpenExtension *ext = qSqlOpenExtDict()->take( this );
+ delete ext;
+ }
++#ifndef Q_NO_MYSQL_EMBEDDED
++# if MYSQL_VERSION_ID > 40000
++ mysql_server_end();
++# endif
++#endif
+ }
+
+ bool QMYSQLDriver::hasFeature( DriverFeature f ) const
diff --git a/staging/qt3/qt-copy-kde-patches.tar.bz2 b/staging/qt3/qt-copy-kde-patches.tar.bz2
new file mode 100644
index 000000000..19d899963
--- /dev/null
+++ b/staging/qt3/qt-copy-kde-patches.tar.bz2
Binary files differ
diff --git a/staging/qt3/qt-font-default-subst.diff b/staging/qt3/qt-font-default-subst.diff
new file mode 100644
index 000000000..3e286f74e
--- /dev/null
+++ b/staging/qt3/qt-font-default-subst.diff
@@ -0,0 +1,77 @@
+--- src/kernel/qfontdatabase_x11.cpp
++++ src/kernel/qfontdatabase_x11.cpp
+@@ -1589,15 +1589,6 @@ QFontEngine *loadEngine( QFont::Script s
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese){
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+@@ -1813,7 +1804,11 @@ static QFontEngine *loadFontConfigFont(c
+ FcPatternPrint(pattern);
+ #endif
+
++ // XftFontMatch calls the right ConfigSubstitute variants, but as we use
++ // FcFontMatch/Sort here we have to do it manually.
+ FcConfigSubstitute(0, pattern, FcMatchPattern);
++ XftDefaultSubstitute(QPaintDevice::x11AppDisplay(), QPaintDevice::x11AppScreen(), pattern);
++
+ // qDebug("1: pattern contains:");
+ // FcPatternPrint(pattern);
+
+@@ -1847,10 +1842,6 @@ static QFontEngine *loadFontConfigFont(c
+ value.u.s = (const FcChar8 *)cs.data();
+ FcPatternAddWeak(pattern, FC_FAMILY, value, FcTrue);
+ }
+-#ifdef FONT_MATCH_DEBUG
+- printf("final pattern contains:\n");
+- FcPatternPrint(pattern);
+-#endif
+ }
+
+ if (script != QFont::Unicode) {
+@@ -1860,19 +1851,15 @@ static QFontEngine *loadFontConfigFont(c
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese) {
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+
++#ifdef FONT_MATCH_DEBUG
++ printf("final pattern contains:\n");
++ FcPatternPrint(pattern);
++#endif
++
+ QFontEngine *fe = 0;
+
+ for( int jj = (FcGetVersion() >= 20392 ? 0 : 1); jj < 2; ++jj ) {
+--- src/kernel/qfontdatabase.cpp
++++ src/kernel/qfontdatabase.cpp
+@@ -554,7 +554,7 @@ static const unsigned short sample_chars
+ // GeometricSymbols,
+ { 0x2500, 0x0 },
+ // MiscellaneousSymbols,
+- { 0x2640, 0x0 },
++ { 0x2640, 0x2714, 0x0 },
+ // EnclosedAndSquare,
+ { 0x2460, 0x0 },
+ // Braille,
diff --git a/staging/qt3/qt-odbc.patch b/staging/qt3/qt-odbc.patch
new file mode 100644
index 000000000..6f21e3cf1
--- /dev/null
+++ b/staging/qt3/qt-odbc.patch
@@ -0,0 +1,19 @@
+diff -up qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp
+--- qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig 2009-02-24 11:32:27.000000000 +0100
++++ qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp 2009-02-24 11:33:43.000000000 +0100
+@@ -57,13 +57,13 @@
+ #endif
+
+ // newer platform SDKs use SQLLEN instead of SQLINTEGER
+-#ifdef SQLLEN
++#if defined(SQLLEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLLEN SQLLEN
+ #else
+ # define QSQLLEN SQLINTEGER
+ #endif
+
+-#ifdef SQLULEN
++#if defined(SQLULEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLULEN SQLULEN
+ #else
+ # define QSQLULEN SQLUINTEGER
diff --git a/staging/qt3/qt-patches.tar.bz2 b/staging/qt3/qt-patches.tar.bz2
new file mode 100644
index 000000000..3f4aee171
--- /dev/null
+++ b/staging/qt3/qt-patches.tar.bz2
Binary files differ
diff --git a/staging/qt3/qt.install b/staging/qt3/qt.install
new file mode 100644
index 000000000..6d042daae
--- /dev/null
+++ b/staging/qt3/qt.install
@@ -0,0 +1,12 @@
+post_install() {
+ post_remove
+}
+
+post_upgrade() {
+ post_remove
+}
+
+post_remove() {
+ # this can be removed in future versions
+ sed -e '/\/opt\/qt\/lib/d' -i etc/ld.so.conf
+}
diff --git a/staging/qt3/qt.profile b/staging/qt3/qt.profile
new file mode 100644
index 000000000..ed4d232ae
--- /dev/null
+++ b/staging/qt3/qt.profile
@@ -0,0 +1,4 @@
+export QTDIR=/opt/qt
+export QT_XFT=true
+export PATH=$PATH:$QTDIR/bin
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig
diff --git a/staging/qt3/qt3-png15.patch b/staging/qt3/qt3-png15.patch
new file mode 100644
index 000000000..e64fea36a
--- /dev/null
+++ b/staging/qt3/qt3-png15.patch
@@ -0,0 +1,212 @@
+$NetBSD: patch-as,v 1.5 2011/03/25 15:28:26 wiz Exp $
+
+--- src/kernel/qpngio.cpp.orig 2007-02-02 10:01:15.000000000 -0400
++++ src/kernel/qpngio.cpp
+@@ -43,6 +43,7 @@
+ #include "qiodevice.h"
+
+ #include <png.h>
++#include <zlib.h>
+
+
+ #ifdef Q_OS_TEMP
+@@ -123,9 +124,24 @@ void setup_qt( QImage& image, png_struct
+ png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
+ 0, 0, 0);
+
++ png_colorp info_ptr_palette = NULL;
++ int info_ptr_num_palette = 0;
++ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) {
++ png_get_PLTE(png_ptr, info_ptr, &info_ptr_palette, &info_ptr_num_palette);
++ }
++
++ png_bytep info_ptr_trans_alpha = NULL;
++ int info_ptr_num_trans = 0;
++ png_color_16p info_ptr_trans_color = NULL;
++
++ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
++ png_get_tRNS(png_ptr, info_ptr, &info_ptr_trans_alpha, &info_ptr_num_trans, &info_ptr_trans_color);
++ }
++
++
+ if ( color_type == PNG_COLOR_TYPE_GRAY ) {
+ // Black & White or 8-bit grayscale
+- if ( bit_depth == 1 && info_ptr->channels == 1 ) {
++ if ( bit_depth == 1 && png_get_channels(png_ptr, info_ptr) == 1 ) {
+ png_set_invert_mono( png_ptr );
+ png_read_update_info( png_ptr, info_ptr );
+ if (!image.create( width, height, 1, 2, QImage::BigEndian ))
+@@ -159,7 +175,7 @@ void setup_qt( QImage& image, png_struct
+ image.setColor( i, qRgba(c,c,c,0xff) );
+ }
+ if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) {
+- const int g = info_ptr->trans_values.gray;
++ const int g = info_ptr_trans_color->gray;
+ if (g < ncols) {
+ image.setAlphaBuffer(TRUE);
+ image.setColor(g, image.color(g) & RGB_MASK);
+@@ -168,7 +184,7 @@ void setup_qt( QImage& image, png_struct
+ }
+ } else if ( color_type == PNG_COLOR_TYPE_PALETTE
+ && png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)
+- && info_ptr->num_palette <= 256 )
++ && info_ptr_num_palette <= 256 )
+ {
+ // 1-bit and 8-bit color
+ if ( bit_depth != 1 )
+@@ -176,28 +192,28 @@ void setup_qt( QImage& image, png_struct
+ png_read_update_info( png_ptr, info_ptr );
+ png_get_IHDR(png_ptr, info_ptr,
+ &width, &height, &bit_depth, &color_type, 0, 0, 0);
+- if (!image.create(width, height, bit_depth, info_ptr->num_palette,
++ if (!image.create(width, height, bit_depth, info_ptr_num_palette,
+ QImage::BigEndian))
+ return;
+ int i = 0;
+ if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) {
+ image.setAlphaBuffer( TRUE );
+- while ( i < info_ptr->num_trans ) {
++ while ( i < info_ptr_num_trans ) {
+ image.setColor(i, qRgba(
+- info_ptr->palette[i].red,
+- info_ptr->palette[i].green,
+- info_ptr->palette[i].blue,
+- info_ptr->trans[i]
++ info_ptr_palette[i].red,
++ info_ptr_palette[i].green,
++ info_ptr_palette[i].blue,
++ info_ptr_trans_alpha[i]
+ )
+ );
+ i++;
+ }
+ }
+- while ( i < info_ptr->num_palette ) {
++ while ( i < info_ptr_num_palette ) {
+ image.setColor(i, qRgba(
+- info_ptr->palette[i].red,
+- info_ptr->palette[i].green,
+- info_ptr->palette[i].blue,
++ info_ptr_palette[i].red,
++ info_ptr_palette[i].green,
++ info_ptr_palette[i].blue,
+ 0xff
+ )
+ );
+@@ -284,7 +300,7 @@ void read_png_image(QImageIO* iio)
+ return;
+ }
+
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+ iio->setStatus(-4);
+ return;
+@@ -469,7 +485,7 @@ bool QPNGImageWriter::writeImage(const Q
+ return FALSE;
+ }
+
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ return FALSE;
+ }
+@@ -491,10 +507,16 @@ bool QPNGImageWriter::writeImage(const Q
+
+ png_set_write_fn(png_ptr, (void*)this, qpiw_write_fn, qpiw_flush_fn);
+
++#warning XXXtnn not too sure about this
++/*
++according to png.h, channels is only used on read, not writes, so we
++should be able to comment this out.
++
+ info_ptr->channels =
+ (image.depth() == 32)
+ ? (image.hasAlphaBuffer() ? 4 : 3)
+ : 1;
++*/
+
+ png_set_IHDR(png_ptr, info_ptr, image.width(), image.height(),
+ image.depth() == 1 ? 1 : 8 /* per channel */,
+@@ -504,11 +526,12 @@ bool QPNGImageWriter::writeImage(const Q
+ : PNG_COLOR_TYPE_RGB
+ : PNG_COLOR_TYPE_PALETTE, 0, 0, 0);
+
++ png_color_8 sig_bit;
++ sig_bit.red = 8;
++ sig_bit.green = 8;
++ sig_bit.blue = 8;
++ png_set_sBIT(png_ptr, info_ptr, &sig_bit);
+
+- //png_set_sBIT(png_ptr, info_ptr, 8);
+- info_ptr->sig_bit.red = 8;
+- info_ptr->sig_bit.green = 8;
+- info_ptr->sig_bit.blue = 8;
+
+ if (image.depth() == 1 && image.bitOrder() == QImage::LittleEndian)
+ png_set_packswap(png_ptr);
+@@ -522,11 +545,14 @@ bool QPNGImageWriter::writeImage(const Q
+ png_set_PLTE(png_ptr, info_ptr, palette, num_palette);
+ int* trans = new int[num_palette];
+ int num_trans = 0;
++ png_colorp info_ptr_palette = NULL;
++ int tmp;
++ png_get_PLTE(png_ptr, info_ptr, &info_ptr_palette, &tmp);
+ for (int i=0; i<num_palette; i++) {
+ QRgb rgb=image.color(i);
+- info_ptr->palette[i].red = qRed(rgb);
+- info_ptr->palette[i].green = qGreen(rgb);
+- info_ptr->palette[i].blue = qBlue(rgb);
++ info_ptr_palette[i].red = qRed(rgb);
++ info_ptr_palette[i].green = qGreen(rgb);
++ info_ptr_palette[i].blue = qBlue(rgb);
+ if (image.hasAlphaBuffer()) {
+ trans[i] = rgb >> 24;
+ if (trans[i] < 255) {
+@@ -534,6 +560,7 @@ bool QPNGImageWriter::writeImage(const Q
+ }
+ }
+ }
++ png_set_PLTE(png_ptr, info_ptr, info_ptr_palette, num_palette);
+ if (num_trans) {
+ copy_trans = new png_byte[num_trans];
+ for (int i=0; i<num_trans; i++)
+@@ -544,7 +571,10 @@ bool QPNGImageWriter::writeImage(const Q
+ }
+
+ if ( image.hasAlphaBuffer() ) {
+- info_ptr->sig_bit.alpha = 8;
++ png_color_8p sig_bit;
++ png_get_sBIT(png_ptr, info_ptr, &sig_bit);
++ sig_bit->alpha = 8;
++ png_set_sBIT(png_ptr, info_ptr, sig_bit);
+ }
+
+ // Swap ARGB to RGBA (normal PNG format) before saving on
+@@ -1030,7 +1060,7 @@ int QPNGFormat::decode(QImage& img, QIma
+ return -1;
+ }
+
+- if (setjmp((png_ptr)->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ png_destroy_read_struct(&png_ptr, &info_ptr, 0);
+ image = 0;
+ return -1;
+@@ -1057,7 +1087,7 @@ int QPNGFormat::decode(QImage& img, QIma
+
+ if ( !png_ptr ) return 0;
+
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ png_destroy_read_struct(&png_ptr, &info_ptr, 0);
+ image = 0;
+ state = MovieStart;
+@@ -1117,7 +1147,7 @@ void QPNGFormat::end(png_structp png, pn
+ consumer->frameDone(QPoint(offx,offy),r);
+ consumer->end();
+ state = FrameStart;
+- unused_data = (int)png->buffer_size; // Since libpng doesn't tell us
++ unused_data = png_process_data_pause(png, 0);
+ }
+
+ #ifdef PNG_USER_CHUNKS_SUPPORTED
diff --git a/staging/qt3/utf8-bug-qt3.diff b/staging/qt3/utf8-bug-qt3.diff
new file mode 100644
index 000000000..43e84a99f
--- /dev/null
+++ b/staging/qt3/utf8-bug-qt3.diff
@@ -0,0 +1,101 @@
+--- src/codecs/qutfcodec.cpp
++++ src/codecs/qutfcodec.cpp
+@@ -154,6 +154,7 @@
+
+ class QUtf8Decoder : public QTextDecoder {
+ uint uc;
++ uint min_uc;
+ int need;
+ bool headerDone;
+ public:
+@@ -167,8 +168,9 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uchar ch;
++ int error = -1;
+ for (int i=0; i<len; i++) {
+- ch = *chars++;
++ ch = chars[i];
+ if (need) {
+ if ( (ch&0xc0) == 0x80 ) {
+ uc = (uc << 6) | (ch & 0x3f);
+@@ -182,6 +184,8 @@
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
+ headerDone = TRUE;
++ } else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ *qch++ = QChar::replacement;
+ } else {
+ if (headerDone || QChar(uc) != QChar::byteOrderMark)
+ *qch++ = uc;
+@@ -190,6 +194,7 @@
+ }
+ } else {
+ // error
++ i = error;
+ *qch++ = QChar::replacement;
+ need = 0;
+ }
+@@ -200,12 +205,21 @@
+ } else if ((ch & 0xe0) == 0xc0) {
+ uc = ch & 0x1f;
+ need = 1;
++ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
++ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
++ error = i;
++ min_uc = 0x10000;
++ } else {
++ // error
++ *qch++ = QChar::replacement;
+ }
+ }
+ }
+--- src/tools/qstring.cpp
++++ src/tools/qstring.cpp
+@@ -5805,6 +5805,7 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uint uc = 0;
++ uint min_uc = 0;
+ int need = 0;
+ int error = -1;
+ uchar ch;
+@@ -5822,6 +5823,12 @@
+ unsigned short low = uc%0x400 + 0xdc00;
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
++ } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ // overlong seqence, UTF16 surrogate or BOM
++ i = error;
++ qch = addOne(qch, result);
++ *qch++ = QChar(0xdbff);
++ *qch++ = QChar(0xde00+((uchar)utf8[i]));
+ } else {
+ *qch++ = uc;
+ }
+@@ -5844,14 +5851,17 @@
+ uc = ch & 0x1f;
+ need = 1;
+ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
+ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
+ error = i;
++ min_uc = 0x10000;
+ } else {
+ // Error
+ qch = addOne(qch, result);
diff --git a/staging/rrdtool/PKGBUILD b/staging/rrdtool/PKGBUILD
new file mode 100644
index 000000000..ec9476a0b
--- /dev/null
+++ b/staging/rrdtool/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 146899 2012-01-19 04:20:31Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=rrdtool
+pkgver=1.4.5
+pkgrel=5
+pkgdesc="Data logging and graphing application"
+arch=('i686' 'x86_64')
+url="http://www.rrdtool.org"
+license=('GPL' 'custom')
+depends=('libxml2' 'pango' 'ttf-dejavu')
+makedepends=('intltool' 'ruby' 'python2' 'tcl' 'lua')
+optdepends=('tcl: to use corresponding binding' \
+ 'python2: to use corresponding binding' \
+ 'ruby: to use corresponding binding' \
+ 'lua: to use corresponding binding')
+options=('!libtool' '!emptydirs' '!makeflags')
+source=(http://oss.oetiker.ch/rrdtool/pub/rrdtool-${pkgver}.tar.gz)
+sha1sums=('56638e8aedd5d5522152e86746e382b75dc48c35')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|-lrrd|-lrrd -L/usr/lib/perl5/core_perl/CORE/ -lperl |' bindings/perl-shared/Makefile.PL
+ PYTHON=python2 ./configure --prefix=/usr --localstatedir=/var --disable-rpath \
+ --enable-perl --enable-perl-site-install --with-perl-options='INSTALLDIRS=vendor' \
+ --enable-ruby --enable-ruby-site-install --enable-python \
+ --enable-lua --enable-lua-site-install --enable-tcl --disable-libwrap
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/scim-anthy/PKGBUILD b/staging/scim-anthy/PKGBUILD
new file mode 100644
index 000000000..f34466307
--- /dev/null
+++ b/staging/scim-anthy/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 146909 2012-01-19 05:06:58Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-anthy
+pkgver=1.2.7
+pkgrel=3
+_filecode=37309
+pkgdesc='Japanese input method module for SCIM'
+arch=('i686' 'x86_64')
+url='http://sourceforge.jp/projects/scim-imengine/'
+license=('GPL')
+depends=('scim' 'anthy')
+options=('!libtool')
+source=("http://osdn.dl.sourceforge.jp/scim-imengine/${_filecode}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('1429cf202f5cdcfc4733220acbe27dd9edb75db8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/staging/scim-chewing/PKGBUILD b/staging/scim-chewing/PKGBUILD
new file mode 100644
index 000000000..0d2c298af
--- /dev/null
+++ b/staging/scim-chewing/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 146907 2012-01-19 05:02:07Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: whisky <archlinux.cle(at)gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-chewing
+pkgver=0.3.4
+pkgrel=2
+pkgdesc='Traditional Chinese input method module for SCIM'
+arch=('i686' 'x86_64')
+url='http://chewing.csie.net/'
+license=('GPL')
+depends=('scim' 'libchewing')
+makedepends=('intltool')
+options=('!libtool')
+source=("http://chewing.csie.net/download/scim/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('f6c8d16f19f17449ee169f1ca787350353e93b05')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/scim-tables/PKGBUILD b/staging/scim-tables/PKGBUILD
new file mode 100644
index 000000000..06f296f43
--- /dev/null
+++ b/staging/scim-tables/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 146905 2012-01-19 04:58:35Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Gan Lu <rhythm.gan@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-tables
+pkgver=0.5.10
+pkgrel=2
+pkgdesc='Generic table input method module for SCIM'
+url='http://www.scim-im.org/'
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('scim')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/scim/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('c6e6fbd9999ceba5cb982349fee8391e16a9c2fe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/sox/PKGBUILD b/staging/sox/PKGBUILD
new file mode 100644
index 000000000..4ac83085c
--- /dev/null
+++ b/staging/sox/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 146873 2012-01-19 01:56:50Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=sox
+pkgver=14.3.2
+pkgrel=5
+pkgdesc="The Swiss Army knife of sound processing tools"
+arch=('i686' 'x86_64')
+url="http://sox.sourceforge.net/"
+license=('GPL' 'LGPL')
+depends=('libltdl' 'file' 'libsndfile' 'libpng' 'lame' 'opencore-amr')
+makedepends=('ffmpeg' 'libao' 'libmad' 'libid3tag' 'wavpack' 'libpulse')
+optdepends=('libao: for ao plugin'
+ 'ffmpeg: for ffmpeg plugin'
+ 'libmad: for mp3 plugin'
+ 'libid3tag: for mp3 plugin'
+ 'wavpack: for wavpack plugin'
+ 'libpulse: for pulse plugin')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ sox-14.3.2-ffmpeg.patch)
+sha1sums=('026636c90d7accba76225a2821aaa2ffa6fe41a3'
+ '86caa6aa86a0bf7a048522114d4efd11acbbda70')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/sox-14.3.2-ffmpeg.patch"
+ sed -i 's|man1/sox.1 soxeffect.7|man1/sox.1.gz soxeffect.7.gz|' Makefile.in
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-dyn-default --with-distro="Arch Linux"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/sox/sox-14.3.2-ffmpeg.patch b/staging/sox/sox-14.3.2-ffmpeg.patch
new file mode 100644
index 000000000..5289b9b47
--- /dev/null
+++ b/staging/sox/sox-14.3.2-ffmpeg.patch
@@ -0,0 +1,40 @@
+Index: sox-14.3.2/src/ffmpeg.c
+===================================================================
+--- sox-14.3.2.orig/src/ffmpeg.c
++++ sox-14.3.2/src/ffmpeg.c
+@@ -91,7 +91,7 @@ static int stream_component_open(priv_t
+
+ if (!codec || avcodec_open(enc, codec) < 0)
+ return -1;
+- if (enc->codec_type != CODEC_TYPE_AUDIO) {
++ if (enc->codec_type != AVMEDIA_TYPE_AUDIO) {
+ lsx_fail("ffmpeg CODEC %x is not an audio CODEC", enc->codec_type);
+ return -1;
+ }
+@@ -182,7 +182,7 @@ static int startread(sox_format_t * ft)
+ /* Find audio stream (FIXME: allow different stream to be selected) */
+ for (i = 0; (unsigned)i < ffmpeg->ctxt->nb_streams; i++) {
+ AVCodecContext *enc = ffmpeg->ctxt->streams[i]->codec;
+- if (enc->codec_type == CODEC_TYPE_AUDIO && ffmpeg->audio_index < 0) {
++ if (enc->codec_type == AVMEDIA_TYPE_AUDIO && ffmpeg->audio_index < 0) {
+ ffmpeg->audio_index = i;
+ break;
+ }
+@@ -273,7 +273,7 @@ static AVStream *add_audio_stream(sox_fo
+
+ c = st->codec;
+ c->codec_id = codec_id;
+- c->codec_type = CODEC_TYPE_AUDIO;
++ c->codec_type = AVMEDIA_TYPE_AUDIO;
+
+ /* put sample parameters */
+ c->bit_rate = 256000; /* FIXME: allow specification */
+@@ -423,7 +423,7 @@ static size_t write_samples(sox_format_t
+ av_init_packet(&pkt);
+ pkt.size = avcodec_encode_audio(c, ffmpeg->audio_buf_aligned, AVCODEC_MAX_AUDIO_FRAME_SIZE, ffmpeg->samples);
+ pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, ffmpeg->audio_st->time_base);
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ pkt.stream_index = ffmpeg->audio_st->index;
+ pkt.data = ffmpeg->audio_buf_aligned;
+
diff --git a/staging/totem-plparser/PKGBUILD b/staging/totem-plparser/PKGBUILD
new file mode 100644
index 000000000..8cb03d620
--- /dev/null
+++ b/staging/totem-plparser/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 146580 2012-01-13 20:34:31Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=totem-plparser
+pkgver=2.32.6
+pkgrel=3
+url="http://www.hadess.net/totem.php3"
+pkgdesc="Totem playlist parser library"
+license=('LGPL')
+arch=(i686 x86_64)
+depends=('gmime' 'libsoup-gnome' 'libarchive')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-$pkgver.tar.xz)
+sha256sums=('8e6ccef547f1ad311474a975032d2482e621550ee3d4d22c725cdc6b496e4874')
+
+build() {
+ cd "$srcdir/totem-pl-parser-$pkgver"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package(){
+ cd "$srcdir/totem-pl-parser-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/staging/transfig/LICENSE b/staging/transfig/LICENSE
new file mode 100644
index 000000000..b944bb992
--- /dev/null
+++ b/staging/transfig/LICENSE
@@ -0,0 +1,23 @@
+/*
+ * TransFig: Facility for Translating Fig code
+ * Copyright (c) 1991 by Micah Beck
+ * Parts Copyright (c) 1985-1988 by Supoj Sutanthavibul
+ *
+ * Any party obtaining a copy of these files is granted, free of charge, a
+ * full and unrestricted irrevocable, world-wide, paid up, royalty-free,
+ * nonexclusive right and license to deal in this software and
+ * documentation files (the "Software"), including without limitation the
+ * rights to use, copy, modify, merge, publish and/or distribute copies of
+ * the Software, and to permit persons who receive copies from any such
+ * party to do so, with the only requirement being that this copyright
+ * notice remain intact.
+ *
+ */
+
+THE LAWRENCE BERKELEY NATIONAL LABORATORY DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/staging/transfig/PKGBUILD b/staging/transfig/PKGBUILD
new file mode 100644
index 000000000..5c03217ca
--- /dev/null
+++ b/staging/transfig/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 146871 2012-01-19 01:34:27Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=transfig
+pkgver=3.2.5d
+pkgrel=1
+pkgdesc="Format conversion utility that can be used with xfig"
+arch=('i686' 'x86_64')
+url="http://www.xfig.org"
+license=('custom')
+depends=('libpng' 'libxpm')
+makedepends=('imake')
+source=(http://downloads.sourceforge.net/mcj/${pkgname}.${pkgver}.tar.gz LICENSE \
+ transfig-3.2.5d-libpng-1.5.patch)
+sha1sums=('90ff277cc9b3fa0d0313052fcf5e3ffad8652abc'
+ 'b8b712871615308b8b6add92f86d218437d652f2'
+ '9f9f332b0b31e58e59542bc1568df9617b71710a')
+
+build() {
+ cd "${srcdir}/${pkgname}.${pkgver}"
+ sed -i 's/XCOMM USELATEX2E = -DLATEX2E/USELATEX2E = -DLATEX2E/' transfig/Imakefile
+ sed -i 's/XCOMM USEINLINE = -DUSE_INLINE/USEINLINE = -DUSE_INLINE/' fig2dev/Imakefile
+ patch -p1 -i ../transfig-3.2.5d-libpng-1.5.patch
+
+ xmkmf
+ make FIG2DEV_LIBDIR=/usr/share/fig2dev Makefiles
+ make FIG2DEV_LIBDIR=/usr/share/fig2dev XFIGLIBDIR=/usr/share/xfig
+}
+
+package() {
+ cd "${srcdir}/${pkgname}.${pkgver}"
+
+ make DESTDIR="${pkgdir}" XFIGLIBDIR=/usr/share/xfig \
+ FIG2DEV_LIBDIR=/usr/share/fig2dev MANPATH=/usr/share/man \
+ install install.man
+ install -Dm644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/transfig/transfig-3.2.5d-libpng-1.5.patch b/staging/transfig/transfig-3.2.5d-libpng-1.5.patch
new file mode 100644
index 000000000..e6f15e43e
--- /dev/null
+++ b/staging/transfig/transfig-3.2.5d-libpng-1.5.patch
@@ -0,0 +1,39 @@
+http://bugs.gentoo.org/show_bug.cgi?id=356751
+
+Index: transfig.3.2.5d/fig2dev/dev/readpng.c
+===================================================================
+--- transfig.3.2.5d.orig/fig2dev/dev/readpng.c
++++ transfig.3.2.5d/fig2dev/dev/readpng.c
+@@ -62,7 +62,7 @@ read_png(file,filetype,pic,llx,lly)
+ }
+
+ /* set long jump here */
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ /* if we get here there was a problem reading the file */
+ png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+ return 0;
+@@ -78,15 +78,17 @@ read_png(file,filetype,pic,llx,lly)
+ png_get_IHDR(png_ptr, info_ptr, &w, &h, &bit_depth, &color_type,
+ &interlace_type, &compression_type, &filter_type);
+
+- if (info_ptr->valid & PNG_INFO_gAMA)
+- png_set_gamma(png_ptr, 2.2, info_ptr->gamma);
+- else
+- png_set_gamma(png_ptr, 2.2, 0.45);
++ png_fixed_point gamma = 0.45;
++ png_get_gAMA_fixed(png_ptr,info_ptr,&gamma);
++ png_set_gamma(png_ptr, 2.2, gamma);
+
+- if (info_ptr->valid & PNG_INFO_bKGD)
++ if (png_get_valid(png_ptr,info_ptr,PNG_INFO_bKGD)) {
+ /* set the background to the one supplied */
+- png_set_background(png_ptr, &info_ptr->background,
++ png_color_16p background;
++ png_get_bKGD(png_ptr,info_ptr,&background);
++ png_set_background(png_ptr, background,
+ PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
++ }
+ else {
+ /* blend the canvas background using the alpha channel */
+ if (bgspec) {
diff --git a/staging/tumbler/PKGBUILD b/staging/tumbler/PKGBUILD
new file mode 100644
index 000000000..01b53bbc8
--- /dev/null
+++ b/staging/tumbler/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 146989 2012-01-19 22:34:27Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jan Jezek <honzin.jezek@gmail.com>
+
+pkgname=tumbler
+pkgver=0.1.23
+pkgrel=4
+pkgdesc="D-Bus service for applications to request thumbnails"
+arch=('i686' 'x86_64')
+url="http://git.xfce.org/xfce/tumbler/"
+license=('GPL2' 'LGPL')
+groups=('xfce4')
+depends=('dbus-glib' 'gdk-pixbuf2')
+makedepends=('intltool' 'ffmpegthumbnailer' 'gstreamer0.10' 'poppler-glib'
+ 'libgsf' 'libopenraw' 'freetype2')
+optdepends=('ffmpegthumbnailer: for video thumbnails'
+ 'gstreamer0.10: for video thumbnails'
+ 'poppler-glib: for PDF thumbnails'
+ 'libgsf: for ODF thumbnails'
+ 'libopenraw: for RAW thumbnails'
+ 'freetype2: for font thumbnails')
+options=('!libtool')
+source=(http://archive.xfce.org/src/apps/$pkgname/0.1/$pkgname-$pkgver.tar.bz2)
+sha256sums=('b3066d17b7e1fee5135eb876a7c2c50a1221bd0d447c3dd7c36efe6d7f3874cb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/vice/PKGBUILD b/staging/vice/PKGBUILD
new file mode 100644
index 000000000..92a531c26
--- /dev/null
+++ b/staging/vice/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 146938 2012-01-19 12:54:40Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=vice
+pkgver=2.3
+pkgrel=5
+pkgdesc="A Versatile Commodore Emulator"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.viceteam.org/"
+depends=('alsa-lib' 'gcc-libs' 'giflib' 'lame' 'libxrandr'
+ 'libxv' 'libjpeg' 'libpng' 'libxaw' 'libxxf86vm')
+makedepends=('xorg-font-utils')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/project/vice-emu/releases/${pkgname}-${pkgver}.tar.gz"
+ 'vice-2.3-x11video.patch')
+md5sums=('b48d137874daad50c087a0686cbdde34'
+ '088292ce9efe785edfb2b0c7c670785e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/vice-2.3-x11video.patch
+ ./configure --prefix=/usr \
+ --with-alsa \
+ --enable-fullscreen
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/vice/vice-2.3-x11video.patch b/staging/vice/vice-2.3-x11video.patch
new file mode 100644
index 000000000..d698638c6
--- /dev/null
+++ b/staging/vice/vice-2.3-x11video.patch
@@ -0,0 +1,11 @@
+--- a/src/arch/unix/x11/xaw/x11video.c 2011-01-18 23:59:00.000000000 +0100
++++ b/src/arch/unix/x11/xaw/x11video.c 2011-02-27 18:40:52.000000000 +0100
+@@ -60,6 +60,8 @@
+ #include <X11/Xutil.h>
+ #include <X11/Intrinsic.h>
+ #include <X11/cursorfont.h>
++#include <X11/Xmd.h>
++#include <X11/extensions/shmproto.h>
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/staging/windowmaker-crm-git/PKGBUILD b/staging/windowmaker-crm-git/PKGBUILD
new file mode 100644
index 000000000..c8ab1a721
--- /dev/null
+++ b/staging/windowmaker-crm-git/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 146857 2012-01-18 21:05:19Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=windowmaker-crm-git
+pkgver=20120109
+pkgrel=2
+pkgdesc="An X11 window manager with a NEXTSTEP look and feel - git version from Carlos R. Mafra"
+arch=(i686 x86_64)
+url="http://www.windowmaker.org"
+license=('GPL' 'custom')
+depends=('libxinerama' 'libxrandr' 'libpng' 'libxpm' 'libxft' 'libtiff>=3.9.1' 'giflib' 'libxmu')
+options=('!libtool')
+provides=('windowmaker')
+conflicts=('windowmaker')
+source=(ftp://ftp.archlinux.org/other/windowmaker/windowmaker-$pkgver.tar.gz wmaker.desktop)
+md5sums=('abe70f9cc7606c73a9bbe498cacf925a'
+ '2fba97bebfd691836b92b8f0db79ff13')
+
+build() {
+ cd $srcdir/windowmaker-$pkgver
+ [ -z "$LINGUAS" ] && export LINGUAS="`ls po/*.po | sed 's:po/\(.*\)\.po$:\1:'`"
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-xinerama \
+ --with-nlsdir=/usr/share/locale --with-gnustepdir=/usr/lib/GNUstep \
+ --enable-usermenu --enable-modelock --enable-xrandr
+ make
+}
+
+package() {
+ cd $srcdir/windowmaker-$pkgver
+
+ make DESTDIR=$pkgdir install
+ install -D -m644 COPYING.WTFPL $pkgdir/usr/share/licenses/$pkgname/COPYING.WTFPL
+ install -D -m644 $srcdir/wmaker.desktop $pkgdir/usr/share/xsessions/wmaker.desktop
+
+}
diff --git a/staging/windowmaker-crm-git/libpng-1.4.patch b/staging/windowmaker-crm-git/libpng-1.4.patch
new file mode 100644
index 000000000..5dbe5fd25
--- /dev/null
+++ b/staging/windowmaker-crm-git/libpng-1.4.patch
@@ -0,0 +1,12 @@
+diff -Naur windowmaker-20091221-orig/wrlib/load.c windowmaker-20091221/wrlib/load.c
+--- windowmaker-20091221-orig/wrlib/load.c 2010-01-21 17:01:10.000000000 -0500
++++ windowmaker-20091221/wrlib/load.c 2010-01-21 17:02:38.000000000 -0500
+@@ -327,7 +327,7 @@
+
+ #ifdef USE_PNG
+ /* check for PNG */
+- if (png_check_sig(buffer, 8))
++ if (!png_sig_cmp(buffer, 0, 8))
+ return IM_PNG;
+ #endif
+
diff --git a/staging/windowmaker-crm-git/wmaker.desktop b/staging/windowmaker-crm-git/wmaker.desktop
new file mode 100644
index 000000000..f819c7577
--- /dev/null
+++ b/staging/windowmaker-crm-git/wmaker.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=windowmaker
+Exec=/usr/bin/wmaker
+Type=Application
diff --git a/staging/windowmaker/PKGBUILD b/staging/windowmaker/PKGBUILD
new file mode 100644
index 000000000..7d885b745
--- /dev/null
+++ b/staging/windowmaker/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 146855 2012-01-18 21:00:09Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+pkgname=windowmaker
+pkgver=0.95.0
+pkgrel=2
+pkgdesc="An X11 window manager with a NEXTSTEP look and feel"
+arch=(i686 x86_64)
+url="http://www.windowmaker.org/"
+license=('GPL' 'custom')
+depends=('libxinerama' 'libxrandr' 'libxmu' 'libpng' 'libxpm' 'libxft' 'libtiff' 'giflib')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/windowmaker/windowmaker-$pkgver.tar.gz wmaker.desktop)
+md5sums=('2d89834b4019e0a08641709ea7235db2'
+ '2fba97bebfd691836b92b8f0db79ff13')
+
+build() {
+ cd $srcdir/windowmaker-$pkgver
+ [ -z "$LINGUAS" ] && export LINGUAS="`ls po/*.po | sed 's:po/\(.*\)\.po$:\1:'`"
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-xinerama \
+ --with-nlsdir=/usr/share/locale --with-gnustepdir=/usr/lib/GNUstep \
+ --enable-usermenu --enable-modelock --enable-xrandr
+ make
+}
+
+package() {
+ cd $srcdir/windowmaker-$pkgver
+
+ make DESTDIR=$pkgdir install
+ install -D -m644 COPYING.WTFPL $pkgdir/usr/share/licenses/$pkgname/COPYING.WTFPL
+ install -D -m644 $srcdir/wmaker.desktop $pkgdir/usr/share/xsessions/wmaker.desktop
+}
+
diff --git a/staging/windowmaker/libpng-1.4.patch b/staging/windowmaker/libpng-1.4.patch
new file mode 100644
index 000000000..419e8faca
--- /dev/null
+++ b/staging/windowmaker/libpng-1.4.patch
@@ -0,0 +1,12 @@
+diff -Naur WindowMaker-0.92.0-orig/wrlib/load.c WindowMaker-0.92.0/wrlib/load.c
+--- WindowMaker-0.92.0-orig/wrlib/load.c 2010-01-21 16:10:39.000000000 -0500
++++ WindowMaker-0.92.0/wrlib/load.c 2010-01-21 16:13:15.000000000 -0500
+@@ -348,7 +348,7 @@
+
+ #ifdef USE_PNG
+ /* check for PNG */
+- if (png_check_sig(buffer, 8))
++ if (!png_sig_cmp(buffer, 0, 8))
+ return IM_PNG;
+ #endif
+
diff --git a/staging/windowmaker/windowmaker-gcc4.patch.tar.bz2 b/staging/windowmaker/windowmaker-gcc4.patch.tar.bz2
new file mode 100644
index 000000000..fae12a98d
--- /dev/null
+++ b/staging/windowmaker/windowmaker-gcc4.patch.tar.bz2
Binary files differ
diff --git a/staging/windowmaker/wmaker.desktop b/staging/windowmaker/wmaker.desktop
new file mode 100644
index 000000000..f819c7577
--- /dev/null
+++ b/staging/windowmaker/wmaker.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=windowmaker
+Exec=/usr/bin/wmaker
+Type=Application
diff --git a/staging/wv/PKGBUILD b/staging/wv/PKGBUILD
new file mode 100644
index 000000000..03e85ef24
--- /dev/null
+++ b/staging/wv/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 146944 2012-01-19 13:58:47Z giovanni $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=wv
+pkgver=1.2.9
+pkgrel=1
+pkgdesc="MSWord library can load and parse Word 2000, 97, 95 and 6 file formats"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/wvware"
+license=('GPL')
+depends=('libgsf' 'libpng' 'sh')
+makedepends=('pkg-config')
+options=('!libtool')
+source=("http://www.abisource.com/downloads/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('dbccf2e9f747e50c913b7e3d126b73f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/wv/fix-soname.patch b/staging/wv/fix-soname.patch
new file mode 100644
index 000000000..81dff86e6
--- /dev/null
+++ b/staging/wv/fix-soname.patch
@@ -0,0 +1,14 @@
+diff -ru wv-1.2.7.orig//configure wv-1.2.7//configure
+--- wv-1.2.7.orig//configure 2009-09-21 12:22:46.000000000 +0200
++++ wv-1.2.7//configure 2010-06-08 12:00:27.948857203 +0200
+@@ -2082,8 +2082,8 @@
+ WV_MAJOR_VERSION=1
+ WV_MINOR_VERSION=2
+ WV_MICRO_VERSION=7
+-WV_INTERFACE_AGE=3
+-WV_BINARY_AGE=3
++WV_INTERFACE_AGE=4
++WV_BINARY_AGE=4
+ WV_VERSION=$WV_MAJOR_VERSION.$WV_MINOR_VERSION.$WV_MICRO_VERSION
+
+
diff --git a/staging/wxgtk/PKGBUILD b/staging/wxgtk/PKGBUILD
new file mode 100644
index 000000000..cc950e017
--- /dev/null
+++ b/staging/wxgtk/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 146863 2012-01-18 23:43:49Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=wxgtk
+pkgver=2.8.12.1
+pkgrel=3
+pkgdesc="GTK+ implementation of wxWidgets API for GUI"
+arch=('i686' 'x86_64')
+url="http://wxwidgets.org"
+license=('custom:wxWindows')
+depends=('gtk2' 'gstreamer0.10-base' 'libgl' 'libxxf86vm' 'libsm')
+makedepends=('gstreamer0.10-base-plugins' 'gconf' 'mesa')
+#source=(http://downloads.sourceforge.net/wxwindows/wxGTK-${pkgver}.tar.bz2)
+source=(http://downloads.sourceforge.net/wxpython/wxPython-src-${pkgver}.tar.bz2)
+sha1sums=('05688dc03d61631750f5904273122bb40a2115f5')
+
+build() {
+ cd "${srcdir}/wxPython-src-${pkgver}"
+# cd "${srcdir}/wxGTK-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib --with-gtk=2 --with-opengl --enable-unicode \
+ --enable-graphics_ctx --disable-optimize --enable-mediactrl --with-regex=builtin \
+ --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys \
+ --disable-precomp-headers
+ make
+ make -C locale allmo
+ cd contrib/src
+ make
+}
+
+package() {
+ cd "${srcdir}/wxPython-src-${pkgver}"
+# cd "${srcdir}/wxGTK-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ cd contrib/src
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../../docs/licence.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/xaos/PKGBUILD b/staging/xaos/PKGBUILD
new file mode 100644
index 000000000..1240d0b00
--- /dev/null
+++ b/staging/xaos/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 146867 2012-01-19 00:03:29Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xaos
+pkgver=3.5
+pkgrel=5
+pkgdesc="A fast portable real-time interactive fractal zoomer"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/xaos/"
+license=('GPL')
+depends=('gsl' 'libpng' 'aalib')
+options=('!makeflags')
+install=xaos.install
+source=(http://downloads.sourceforge.net/sourceforge/xaos/${pkgname}-${pkgver}.tar.gz xaos-3.5-libpng15.patch)
+sha1sums=('6d16a58187fba7276e6bd0547cc2fd6bb073b801'
+ '6c51cb2ee1c5f28973680ffc3a040c2cea65fd33')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i ../xaos-3.5-libpng15.patch
+ ./configure --prefix=/usr --with-gsl --with-aa-driver
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/xaos/xaos-3.5-libpng15.patch b/staging/xaos/xaos-3.5-libpng15.patch
new file mode 100644
index 000000000..beece8339
--- /dev/null
+++ b/staging/xaos/xaos-3.5-libpng15.patch
@@ -0,0 +1,131 @@
+http://code.google.com/p/gnuxaos/issues/detail?id=55
+
+--- src/util/png.c
++++ src/util/png.c
+@@ -3,6 +3,7 @@
+ #include <aconfig.h>
+ #ifdef USE_PNG
+ #include <png.h>
++#include <zlib.h>
+ #endif
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -31,6 +32,9 @@
+ png_structp png_ptr;
+ png_infop info_ptr;
+ png_color palette[256];
++ png_color_8 sig_bit;
++ int color_type;
++ int bit_depth;
+ volatile unsigned short a = 255;
+ volatile unsigned char *b = (volatile unsigned char *) &a;
+ #ifdef _undefined_
+@@ -59,7 +63,7 @@
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+ return "No memory to create png info structure";
+ }
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ fclose(file);
+ return strerror(errno);
+@@ -78,57 +82,70 @@
+ png_set_compression_window_bits(png_ptr, 15);
+ png_set_compression_method(png_ptr, 8);
+
+- info_ptr->width = image->width;
+- info_ptr->height = image->height;
+- /*info_ptr->gamma=1.0; */
+- info_ptr->gamma = 0.5;
+- info_ptr->valid |= PNG_INFO_gAMA | PNG_INFO_pHYs;
+- info_ptr->x_pixels_per_unit = (png_uint_32) (100 / image->pixelwidth);
+- info_ptr->y_pixels_per_unit = (png_uint_32) (100 / image->pixelheight);
++ switch (image->palette->type)
++ {
++ case C256:
++ color_type = PNG_COLOR_TYPE_PALETTE;
++ bit_depth = image->bytesperpixel * 8;
++ break;
++ case SMALLITER:
++ case LARGEITER:
++ case GRAYSCALE:
++ color_type = PNG_COLOR_TYPE_GRAY;
++ bit_depth = image->bytesperpixel * 8;
++ break;
++ case TRUECOLOR:
++ case TRUECOLOR24:
++ case TRUECOLOR16:
++ color_type = PNG_COLOR_TYPE_RGB;
++ bit_depth = 8;
++ break;
++ }
+
++ png_set_IHDR (png_ptr, info_ptr, image->width, image->height, bit_depth,
++ color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE,
++ PNG_FILTER_TYPE_BASE);
+
+ switch (image->palette->type) {
+ case C256:
+ {
+ int i;
+- info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
+- info_ptr->bit_depth = image->bytesperpixel * 8;
+- info_ptr->palette = palette;
+- info_ptr->valid |= PNG_INFO_PLTE;
++ png_color png_palette[257];
++ int png_num_palette;
+ for (i = 0; i < image->palette->end; i++)
+- info_ptr->palette[i].red = image->palette->rgb[i][0],
+- info_ptr->palette[i].green = image->palette->rgb[i][1],
+- info_ptr->palette[i].blue = image->palette->rgb[i][2],
+- info_ptr->num_palette = image->palette->end;
++ png_palette[i].red = image->palette->rgb[i][0],
++ png_palette[i].green = image->palette->rgb[i][1],
++ png_palette[i].blue = image->palette->rgb[i][2],
++ png_num_palette = image->palette->end;
++ png_set_PLTE(png_ptr, info_ptr, png_palette, png_num_palette);
+ }
+ break;
+- case SMALLITER:
+- case LARGEITER:
+- case GRAYSCALE:
+- info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
+- info_ptr->bit_depth = image->bytesperpixel * 8;
+- break;
+ case TRUECOLOR:
+ case TRUECOLOR24:
+ case TRUECOLOR16:
+- info_ptr->color_type = PNG_COLOR_TYPE_RGB;
+- info_ptr->bit_depth = 8;
+- info_ptr->sig_bit.red = 8 - image->palette->info.truec.rprec;
+- info_ptr->sig_bit.green = 8 - image->palette->info.truec.gprec;
+- info_ptr->sig_bit.blue = 8 - image->palette->info.truec.bprec;
++ sig_bit.red = 8 - image->palette->info.truec.rprec;
++ sig_bit.green = 8 - image->palette->info.truec.gprec;
++ sig_bit.blue = 8 - image->palette->info.truec.bprec;
++ png_set_sBIT(png_ptr, info_ptr, &sig_bit);
+ break;
+ }
+- info_ptr->interlace_type = 0;
++
++ png_write_info (png_ptr, info_ptr);
++
+ #ifdef _undefined_
+ png_set_text(png_ptr, info_ptr, comments,
+ sizeof(comments) / sizeof(png_text));
+ #endif
+
+- png_write_info(png_ptr, info_ptr);
++ png_set_gAMA(png_ptr, info_ptr, 0.5 /* 1.0 */);
++ png_set_pHYs(png_ptr, info_ptr, (png_uint_32) (100 / image->pixelwidth),
++ (png_uint_32) (100 / image->pixelheight),
++ PNG_RESOLUTION_UNKNOWN);
++
+ /*png_set_filler(png_ptr,0,PNG_FILLER_AFTER); */
+ png_set_packing(png_ptr);
+ if (image->palette->type & (TRUECOLOR | TRUECOLOR24 | TRUECOLOR16))
+- png_set_shift(png_ptr, &(info_ptr->sig_bit));
++ png_set_shift (png_ptr, &sig_bit);
+ if (*b == 255)
+ png_set_swap(png_ptr);
+ png_set_bgr(png_ptr);
diff --git a/staging/xaos/xaos.install b/staging/xaos/xaos.install
new file mode 100644
index 000000000..afee50a72
--- /dev/null
+++ b/staging/xaos/xaos.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(xaos.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/staging/xfce4-datetime-plugin/PKGBUILD b/staging/xfce4-datetime-plugin/PKGBUILD
new file mode 100644
index 000000000..c4227bd32
--- /dev/null
+++ b/staging/xfce4-datetime-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 146891 2012-01-19 03:56:41Z foutrelis $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-datetime-plugin
+pkgver=0.6.1
+pkgrel=2
+pkgdesc="A date and time display plugin for the Xfce panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'libxfcegui4')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e82f51ff0e75a63e5cbd139e43e094f9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/staging/xfce4-notes-plugin/PKGBUILD b/staging/xfce4-notes-plugin/PKGBUILD
new file mode 100644
index 000000000..ff9642b45
--- /dev/null
+++ b/staging/xfce4-notes-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 146893 2012-01-19 03:57:20Z foutrelis $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: Ben Mazer <contrasutra@myrealbox.com>
+
+pkgname=xfce4-notes-plugin
+pkgver=1.7.7
+pkgrel=3
+pkgdesc="A notes plugin for the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.0' 'libxfcegui4' 'libunique' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.7/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('42b924b23f2fec6a1099e9b7a87db4a3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/staging/xfce4-notes-plugin/xfce4-notes-plugin.install b/staging/xfce4-notes-plugin/xfce4-notes-plugin.install
new file mode 100644
index 000000000..fee9e5d11
--- /dev/null
+++ b/staging/xfce4-notes-plugin/xfce4-notes-plugin.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/staging/xfce4-quicklauncher-plugin/PKGBUILD b/staging/xfce4-quicklauncher-plugin/PKGBUILD
new file mode 100644
index 000000000..73de5a343
--- /dev/null
+++ b/staging/xfce4-quicklauncher-plugin/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 146895 2012-01-19 03:58:10Z foutrelis $
+# Maintainer:
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-quicklauncher-plugin
+pkgver=1.9.4
+pkgrel=6
+pkgdesc="plugin that creates 4 little application launcher in the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'libxfcegui4')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.9/${pkgname}-${pkgver}.tar.bz2
+ xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
+ xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
+ xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
+ xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
+ xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch)
+md5sums=('299e17f196ecfa5fb018cf65abb19b56'
+ 'a7826c9f8199a2f1e914fd39b7f9e2bf'
+ '4ea4d06ab7284e78ddc4d60304f02cdf'
+ '5e8126c05def1211fb4a2a65f2812a1b'
+ '474237b205035214df1c723407251ade'
+ '9e7f789129b08c787978c7a72a55fae7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # Fedora patches
+ patch -Np0 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
+ patch -Np0 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
+ patch -Np1 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
+ patch -Np1 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
+ patch -Np0 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
new file mode 100644
index 000000000..907c1f23e
--- /dev/null
+++ b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
@@ -0,0 +1,10 @@
+--- panel-plugin/quicklauncher.desktop.in.in.orig 2009-07-04 00:46:34.000000000 +0200
++++ panel-plugin/quicklauncher.desktop.in.in 2009-07-04 00:46:51.000000000 +0200
+@@ -4,4 +4,6 @@
+ _Name=Quicklauncher
+ _Comment=Program with several launchers
+ Icon=gnome-fs-executable
+-X-XFCE-Module=@INTERNAL_PLUGIN_PATH@/libquicklauncher.so
++X-XFCE-Module=quicklauncher
++X-XFCE-Module-Path=@INTERNAL_PLUGIN_PATH@
++X-XFCE-Unique=false
diff --git a/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
new file mode 100644
index 000000000..96f256770
--- /dev/null
+++ b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
@@ -0,0 +1,103 @@
+diff -Nur -x '*.orig' -x '*~' xfce4-quicklauncher-plugin-1.9.4/configure xfce4-quicklauncher-plugin-1.9.4.new/configure
+--- xfce4-quicklauncher-plugin-1.9.4/configure 2007-06-27 21:07:14.000000000 +0200
++++ xfce4-quicklauncher-plugin-1.9.4.new/configure 2008-03-04 22:11:23.000000000 +0100
+@@ -21181,7 +21181,7 @@
+
+
+
+- ALL_LINGUAS="cs el eu fr gl hu ja pl ru vi"
++ ALL_LINGUAS="cs el en eu fr gl hu ja pl ru vi"
+
+
+ for ac_header in locale.h
+diff -Nur -x '*.orig' -x '*~' xfce4-quicklauncher-plugin-1.9.4/po/en.po xfce4-quicklauncher-plugin-1.9.4.new/po/en.po
+--- xfce4-quicklauncher-plugin-1.9.4/po/en.po 1970-01-01 01:00:00.000000000 +0100
++++ xfce4-quicklauncher-plugin-1.9.4.new/po/en.po 2008-03-04 22:10:58.000000000 +0100
+@@ -0,0 +1,87 @@
++# English translation of xfce4-quicklauncher-plugin.
++# Copyright (C) 2007 THE xfce4-quicklauncher-plugin'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the xfce4-quicklauncher-plugin package.
++# Jeff Bailes <thepizzaking@gmail.com>, 2007.
++# , fuzzy
++#
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: xfce4-quicklauncher-plugin\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-05-17 21:37+0200\n"
++"PO-Revision-Date: 2007-03-31 10:17+1000\n"
++"Last-Translator: Jeff Bailes <thepizzaking@gmail.com>\n"
++"Language-Team: English\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit"
++
++#: ../panel-plugin/callbacks.c:79
++msgid "Configure Quicklauncher"
++msgstr "Configure Quicklauncher"
++
++#: ../panel-plugin/callbacks.c:93
++msgid "Lines: "
++msgstr "Lines: "
++
++#: ../panel-plugin/callbacks.c:123
++msgid "Espace entre les lanceurs :"
++msgstr "Space between launchers"
++
++#: ../panel-plugin/callbacks.c:131
++msgid "afficher les tooltips"
++msgstr "Show tooltips"
++
++#: ../panel-plugin/callbacks.c:135
++msgid "afficher les labels"
++msgstr "Show labels"
++
++#: ../panel-plugin/callbacks.c:216
++msgid "icone"
++msgstr "icon"
++
++#: ../panel-plugin/callbacks.c:222
++msgid "commande"
++msgstr "command"
++
++#: ../panel-plugin/callbacks.c:228
++msgid "nom"
++msgstr "name"
++
++#: ../panel-plugin/callbacks.c:327
++msgid "Open icon"
++msgstr "Open icon"
++
++#: ../panel-plugin/main.c:163 ../panel-plugin/quicklauncher.desktop.in.in.h:2
++msgid "Quicklauncher"
++msgstr "Quicklauncher"
++
++#: ../panel-plugin/main.c:166
++msgid "Allows you to add launchers easily and display them on many lines."
++msgstr "Allows you to add launchers easily and display them on many lines."
++
++#: ../panel-plugin/main.c:168
++msgid "Other plugins available here"
++msgstr "Other plugins available here"
++
++#: ../panel-plugin/main.c:320
++msgid "Lock"
++msgstr "Lock"
++
++#: ../panel-plugin/main.c:323
++msgid "Parameters"
++msgstr "Parameters"
++
++#: ../panel-plugin/main.c:326
++msgid "Applications"
++msgstr "Applications"
++
++#: ../panel-plugin/main.c:329
++msgid "Help"
++msgstr "Help"
++
++#: ../panel-plugin/quicklauncher.desktop.in.in.h:1
++msgid "Program with several launchers"
++msgstr "Program with several launchers"
++
diff --git a/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
new file mode 100644
index 000000000..9845ce122
--- /dev/null
+++ b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
@@ -0,0 +1,27 @@
+--- panel-plugin/main.c.org 2008-05-13 09:29:29.000000000 -0600
++++ panel-plugin/main.c 2008-05-13 09:29:33.000000000 -0600
+@@ -148,6 +148,7 @@
+ t_qck_launcher_opt_dlg* dlg;
+ xfce_panel_plugin_block_menu(plugin);
+ dlg = create_qck_launcher_dlg();
++ gtk_window_set_screen (GTK_WINDOW (dlg->dialog), gtk_widget_get_screen (plugin));
+ qck_launcher_opt_dlg_set_quicklauncher(quicklauncher);
+ gtk_dialog_run(GTK_DIALOG(dlg->dialog));
+ xfce_panel_plugin_unblock_menu(plugin);
+@@ -160,6 +161,7 @@
+ GtkWidget *about;
+ const gchar* authors[2] = {"Bountykiller <masse_nicolas@yahoo.fr>", NULL};
+ about = gtk_about_dialog_new();
++ gtk_window_set_screen (GTK_WINDOW (about), gtk_widget_get_screen (plugin));
+ gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), _("Quicklauncher"));
+ gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), NULL);
+ gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(about), (const gchar**) authors);
+@@ -461,7 +463,7 @@
+ if(launcher->quicklauncher->_last_zoomed_launcher == launcher)
+ {
+ g_return_val_if_fail(launcher->clicked_img, FALSE);
+- xfce_exec(launcher->command, FALSE, FALSE, NULL);
++ xfce_exec_on_screen(gtk_widget_get_screen (box), launcher->command, FALSE, FALSE, NULL);
+ gtk_image_set_from_pixbuf (GTK_IMAGE(launcher->image), launcher->def_img);
+ }
+ else
diff --git a/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
new file mode 100644
index 000000000..85dd21729
--- /dev/null
+++ b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
@@ -0,0 +1,12 @@
+Index: xfce4-quicklauncher-plugin-1.9.4/panel-plugin/main.c
+===================================================================
+--- xfce4-quicklauncher-plugin-1.9.4/panel-plugin/main.c (révision 3779)
++++ xfce4-quicklauncher-plugin-1.9.4/panel-plugin/main.c (révision 3780)
+@@ -151,6 +151,7 @@
+ gtk_window_set_screen (GTK_WINDOW (dlg->dialog), gtk_widget_get_screen (plugin));
+ qck_launcher_opt_dlg_set_quicklauncher(quicklauncher);
+ gtk_dialog_run(GTK_DIALOG(dlg->dialog));
++ quicklauncher_save(plugin, quicklauncher);
+ xfce_panel_plugin_unblock_menu(plugin);
+ }
+
diff --git a/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch
new file mode 100644
index 000000000..8314d7a3c
--- /dev/null
+++ b/staging/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch
@@ -0,0 +1,11 @@
+--- panel-plugin/main.c.orig 2009-09-09 21:15:01.000000000 +0200
++++ panel-plugin/main.c 2009-09-09 21:23:12.000000000 +0200
+@@ -320,7 +320,7 @@
+ launcher = launcher_new(_("Lock"), "xflock4", XFCE_ICON_CATEGORY_SYSTEM,
+ NULL, quicklauncher);
+ quicklauncher_add_element(quicklauncher, launcher);
+- launcher = launcher_new(_("Parameters"),"xfce-setting-show", XFCE_ICON_CATEGORY_SETTINGS,
++ launcher = launcher_new(_("Parameters"),"xfce4-settings-manager", XFCE_ICON_CATEGORY_SETTINGS,
+ NULL, quicklauncher);
+ quicklauncher_add_element(quicklauncher, launcher);
+ launcher = launcher_new(_("Applications"), "xfce4-appfinder", XFCE_ICON_CATEGORY_UTILITY,
diff --git a/staging/xfce4-sensors-plugin/PKGBUILD b/staging/xfce4-sensors-plugin/PKGBUILD
new file mode 100644
index 000000000..de4048cec
--- /dev/null
+++ b/staging/xfce4-sensors-plugin/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 146897 2012-01-19 03:58:55Z foutrelis $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Merk Matthias <macem@chello.at>
+
+pkgname=xfce4-sensors-plugin
+pkgver=1.2.3
+pkgrel=3
+pkgdesc="A lm_sensors plugin for the Xfce panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'lm_sensors' 'libnotify>=0.7.1' 'hicolor-icon-theme') #'libxfcegui4'
+makedepends=('pkgconfig' 'intltool' 'hddtemp>=0.3.beta15.45-2' 'gnu-netcat' 'xfce4-dev-tools')
+optdepends=('gnu-netcat: for hddtemp access')
+options=(!libtool !makeflags)
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.2/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2edf376d140449ca42c4e4f591e626f8')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --datadir=/usr/share \
+ --datarootdir=/usr/share \
+ --disable-static \
+ --with-pathhddtemp=/usr/sbin/hddtemp \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/staging/xfce4-sensors-plugin/xfce4-sensors-plugin.install b/staging/xfce4-sensors-plugin/xfce4-sensors-plugin.install
new file mode 100644
index 000000000..17ca8f78a
--- /dev/null
+++ b/staging/xfce4-sensors-plugin/xfce4-sensors-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/staging/xfig/LICENSE b/staging/xfig/LICENSE
new file mode 100644
index 000000000..5b38ccff8
--- /dev/null
+++ b/staging/xfig/LICENSE
@@ -0,0 +1,33 @@
+Excerpt of the README from xfig/transfig - legal notice:
+---------------------------------------------------------------------------
+
+THE LAWRENCE BERKELEY NATIONAL LABORATORY DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+***************************************************************************
+NEW COPYRIGHT/PERMISSION NOTICE:
+
+The xfig copyright and permission notice has changed (again) slightly in
+version 3.2.5. It now states that:
+
+ FIG : Facility for Interactive Generation of figures
+ Copyright (c) 1985-1988 by Supoj Sutanthavibul
+ Parts Copyright (c) 1989-2002 by Brian V. Smith
+ Parts Copyright (c) 1991 by Paul King
+
+ Any party obtaining a copy of these files is granted, free of charge, a
+ full and unrestricted irrevocable, world-wide, paid up, royalty-free,
+ nonexclusive right and license to deal in this software and documentation
+ files (the "Software"), including without limitation the rights to use,
+ copy, modify, merge, publish distribute, sublicense and/or sell copies of
+ the Software, and to permit persons who receive copies from any such
+ party to do so, with the only requirement being that the above copyright
+ and this permission notice remain intact.
+
+The license for 3.2.4 didn't allow selling xfig unless it was simply included in a
+collection of programs (e.g. a CD) that one was selling.
diff --git a/staging/xfig/PKGBUILD b/staging/xfig/PKGBUILD
new file mode 100644
index 000000000..4314a549a
--- /dev/null
+++ b/staging/xfig/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 146901 2012-01-19 04:44:44Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xfig
+pkgver=3.2.5b
+pkgrel=6
+pkgdesc="An interactive drawing tool"
+arch=('i686' 'x86_64')
+url="http://www.xfig.org/userman/"
+license=('custom')
+depends=('libpng' 'libjpeg' 'xaw3d' 'libxi' 'desktop-file-utils' 'gsfonts')
+makedepends=('imake')
+optdepends=('transfig: to use the frontend to convert fig files')
+options=('!makeflags' '!emptydirs')
+install=xfig.install
+source=(http://downloads.sourceforge.net/mcj/${pkgname}.${pkgver}.full.tar.gz \
+ xfig-3.2.4-redhat.patch xfig-3.2.5-color-resources.patch \
+ xfig-3.2.5-enable-Xaw3d.patch xfig-3.2.5-urwfonts.patch \
+ xfig-3.2.5-fhs.patch xfig-3.2.5-missing-protos.patch \
+ xfig.3.2.5-modularX.patch xfig-3.2.5b-fix-eps-reading.patch \
+ xfig-3.2.5b-libpng-1.5.patch LICENSE xfig.desktop)
+sha1sums=('0730d7e6bc217c0de02682efb0078821512bb542'
+ '926ad99c7221baa4aa9e9737722958860b2700fc'
+ 'b7c03fb70066ff476a4039a8c0f8930c15edef68'
+ '33bff26b42ce164e79de11808b5b34b363f0d59f'
+ 'e595ccdbe293ea0fdecbf59a2192ae57ced2c8eb'
+ '39bec6bac9746b643b05fd1286826113ede07ff6'
+ 'bd76cd50be6a5789cfd6f182309cfd7056be04f3'
+ 'a1285f4e61ad2eec040460ab03e8022098e7f78e'
+ '12a64ddaf65a73e23ef74f31483515a0e262768c'
+ '83032eb61c8dc96d5fc509a1ce632528457d4598'
+ '31edf4cfab708820ea3f114d095dfef5aa88e5aa'
+ '9011b8fa6143e37525b28cc9800a3bf2d6b008d2')
+
+build() {
+ cd "${srcdir}/${pkgname}.${pkgver}"
+ patch -p1 < ../xfig-3.2.4-redhat.patch
+ patch -p1 < ../xfig-3.2.5-fhs.patch
+ patch -p1 < ../xfig.3.2.5-modularX.patch
+ patch -p1 < ../xfig-3.2.5-enable-Xaw3d.patch
+ patch -p1 < ../xfig-3.2.5-color-resources.patch
+ patch -p1 < ../xfig-3.2.5-urwfonts.patch
+ patch -p1 < ../xfig-3.2.5-missing-protos.patch
+ patch -p1 < ../xfig-3.2.5b-fix-eps-reading.patch
+ patch -p1 < ../xfig-3.2.5b-libpng-1.5.patch
+ chmod 755 Libraries
+
+ xmkmf
+ make DOCDIR=/usr/share/doc
+}
+
+package() {
+ cd "${srcdir}/${pkgname}.${pkgver}"
+ make DESTDIR="${pkgdir}" DOCDIR=/usr/share/doc install.all
+ rm "${pkgdir}/usr/lib/X11/app-defaults"
+
+ find "${pkgdir}/usr/share/xfig/Libraries" -type f -exec chmod 0644 {} \;
+ find "${pkgdir}/usr/share/xfig/Libraries" -type d -exec chmod 0755 {} \;
+ find "${pkgdir}/usr/share/doc/xfig" -type f -exec chmod 0644 {} \;
+ find "${pkgdir}/usr/share/doc/xfig" -type d -exec chmod 0755 {} \;
+
+ install -D -m644 ../xfig.desktop "${pkgdir}/usr/share/applications/xfig.desktop"
+ install -D -m644 xfig.png "${pkgdir}/usr/share/pixmaps/xfig.png"
+ install -D -m644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/xfig/xfig-3.2.4-redhat.patch b/staging/xfig/xfig-3.2.4-redhat.patch
new file mode 100644
index 000000000..da6f150b3
--- /dev/null
+++ b/staging/xfig/xfig-3.2.4-redhat.patch
@@ -0,0 +1,31 @@
+--- xfig.3.2.4/Fig.ad.redhat 2002-12-19 01:05:41.000000000 +0100
++++ xfig.3.2.4/Fig.ad 2003-05-06 11:45:15.000000000 +0200
+@@ -11,7 +11,7 @@
+ Fig*AllowShellResize: false
+
+ ! Image editor - can edit imported image
+-Fig.image_editor: xv
++Fig.image_editor: xdg-open
+
+ ! name of ghostscript (not ghostview)
+ Fig.ghostscript: gs
+@@ -20,16 +20,16 @@
+ ! This is for viewing the xfig html reference.
+ ! For netscape, this command will open the help pages in a running netscape,
+ ! or start a new netscape if one isn't already running
+-Fig.browser: firefox -remote 'openFile(%f)' || firefox %f
++Fig.browser: xdg-open %f
+
+ ! pdfviewer - put your favorite pdf viewer here.
+ ! This is for viewing the xfig how-to guide and man pages
+-Fig.pdfviewer: xpdf %f
++Fig.pdfviewer: xdg-open %f
+
+ ! Spell check program - put your favorite spelling check program here.
+ ! It must write the misspelled words to standard output.
+
+-Fig.spellcheckcommand: spell %f
++Fig.spellcheckcommand: aspell %f
+
+ ! delay before spinner automatically counts when pressed (milliseconds)
+ Fig.spinner_delay: 1000
diff --git a/staging/xfig/xfig-3.2.5-color-resources.patch b/staging/xfig/xfig-3.2.5-color-resources.patch
new file mode 100644
index 000000000..6cf1af906
--- /dev/null
+++ b/staging/xfig/xfig-3.2.5-color-resources.patch
@@ -0,0 +1,39 @@
+diff -up xfig.3.2.5/Fig-color.bisque.ad~ xfig.3.2.5/Fig-color.bisque.ad
+--- xfig.3.2.5/Fig-color.bisque.ad~ 2007-11-16 13:47:45.000000000 +0100
++++ xfig.3.2.5/Fig-color.bisque.ad 2007-11-16 13:47:52.000000000 +0100
+@@ -93,7 +93,7 @@ Fig*sideruler.background: gray95
+ Fig*topruler.background: gray95
+ Fig*sideruler.background: gray95
+ Fig*List*background: gray95
+-Fig*Scrollbar.background: gray95
++! Fig*Scrollbar.background: gray95
+
+ Fig*cancel.background: navajowhite1
+ Fig*dismiss.background: navajowhite1
+@@ -104,8 +104,8 @@ Fig*menu_divider.foreground: red
+ Fig*menu_divider.foreground: red
+
+ !##### Shadows
+-Fig*shadowWidth: 2
+-Fig*Label.shadowWidth: 1
++! Fig*shadowWidth: 2
++! Fig*Label.shadowWidth: 1
+ Fig*horizontal.shadowWidth: 2
+ Fig*Scrollbar.shadowWidth: 2
+ ! no shadows for update indicators
+@@ -136,3 +136,15 @@ Fig*color_box*topShadowPixel: gray80
+
+ Fig*toggle*bottomShadowPixel: gray80
+ Fig*toggle*topShadowPixel: gray50
++
++! repare damage done to scrollbar shadows non color resources file
++
++Fig*horizontal.topShadowPixel: gray95
++Fig*horizontal.bottomShadowPixel: gray50
++Fig*horizontal.topShadow: gray95
++Fig*horizontal.bottomShadow: gray50
++
++Fig*Scrollbar.topShadow: gray95
++Fig*Scrollbar.bottomShadow: gray50
++Fig*Scrollbar.topShadowPixel: gray95
++Fig*Scrollbar.bottomShadowPixel: gray50
diff --git a/staging/xfig/xfig-3.2.5-enable-Xaw3d.patch b/staging/xfig/xfig-3.2.5-enable-Xaw3d.patch
new file mode 100644
index 000000000..f4d113808
--- /dev/null
+++ b/staging/xfig/xfig-3.2.5-enable-Xaw3d.patch
@@ -0,0 +1,18 @@
+diff -up xfig.3.2.5/Imakefile.no-Xaw3d xfig.3.2.5/Imakefile
+--- xfig.3.2.5/Imakefile.no-Xaw3d 2007-11-16 10:38:18.000000000 +0100
++++ xfig.3.2.5/Imakefile 2007-11-16 10:38:49.000000000 +0100
+@@ -50,8 +50,8 @@ XAPPLOADDIR = /usr/share/X11/app-default
+ XCOMM Uncomment the following if you have David Hawkey's Xaw3D version 1.5E which has
+ XCOMM some new features, including "Tips", which replace xfig's "help balloons"
+ XCOMM NOTE: This is the default for many X systems now.
+
+-XCOMM #define XAW3D1_5E
++#define XAW3D1_5E
+
+ #ifdef XAW3D1_5E
+ DUSEXAW3D = -DXAW3D -DXAW3D1_5E
+- XAWLIB = -lXaw3d15e
++ XAWLIB = -lXaw3d
+ #else
+ XAW_SRC = w_menuentry.c SmeCascade.c SmeBSB.c SimpleMenu.c
+ XAW_OBJ = w_menuentry.o SmeCascade.o SmeBSB.o SimpleMenu.o
diff --git a/staging/xfig/xfig-3.2.5-fhs.patch b/staging/xfig/xfig-3.2.5-fhs.patch
new file mode 100644
index 000000000..a17d908a7
--- /dev/null
+++ b/staging/xfig/xfig-3.2.5-fhs.patch
@@ -0,0 +1,12 @@
+--- xfig.3.2.5/Imakefile.fhs 2006-10-11 01:19:22.000000000 +0200
++++ xfig.3.2.5/Imakefile 2007-04-16 14:04:45.000000000 +0200
+@@ -169,8 +169,7 @@
+ XFIGLIBDIR = $(LIBDIR)/xfig
+
+ XCOMM XFIGDOCDIR tells where the html and pdf documentation should go
+-XCOMM XFIGDOCDIR = $(DOCDIR)/xfig
+-XFIGDOCDIR = /usr/local/xfig/doc
++XFIGDOCDIR = $(DOCDIR)/xfig
+
+ XCOMM MANDIR tells where the standard man pages should go (no need to change it
+ XCOMM if you want the man pages installed in the standard place on your system
diff --git a/staging/xfig/xfig-3.2.5-missing-protos.patch b/staging/xfig/xfig-3.2.5-missing-protos.patch
new file mode 100644
index 000000000..181c52a69
--- /dev/null
+++ b/staging/xfig/xfig-3.2.5-missing-protos.patch
@@ -0,0 +1,11 @@
+diff -up xfig.3.2.5/u_draw.c~ xfig.3.2.5/u_draw.c
+--- xfig.3.2.5/u_draw.c~ 2008-04-03 15:58:23.000000000 +0200
++++ xfig.3.2.5/u_draw.c 2008-04-03 15:58:23.000000000 +0200
+@@ -43,6 +43,7 @@
+ #include "w_zoom.h"
+ #include "u_redraw.h"
+ #include "w_cursor.h"
++#include <X11/ImUtil.h>
+
+ static Boolean add_point(int x, int y);
+ static void init_point_array(void);
diff --git a/staging/xfig/xfig-3.2.5-urwfonts.patch b/staging/xfig/xfig-3.2.5-urwfonts.patch
new file mode 100644
index 000000000..7bc766bd9
--- /dev/null
+++ b/staging/xfig/xfig-3.2.5-urwfonts.patch
@@ -0,0 +1,79 @@
+--- xfig.3.2.4/u_fonts.c 2002-09-09 13:36:58.000000000 -0400
++++ new-xfig-3.2.4/u_fonts.c 2006-10-11 00:29:07.000000000 -0400
+@@ -22,41 +22,41 @@
+ /* X11 font names */
+
+ struct _xfstruct x_fontinfo[NUM_FONTS] = {
+- {"-*-times-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-times-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-times-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-times-bold-i-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-book-r-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-book-o-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-demi-r-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-demi-o-normal--", (struct xfont*) NULL},
+- {"-*-bookman-light-r-normal--", (struct xfont*) NULL},
+- {"-*-bookman-light-i-normal--", (struct xfont*) NULL},
+- {"-*-bookman-demi-r-normal--", (struct xfont*) NULL},
+- {"-*-bookman-demi-i-normal--", (struct xfont*) NULL},
+- {"-*-courier-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-courier-medium-o-normal--", (struct xfont*) NULL},
+- {"-*-courier-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-courier-bold-o-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-o-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-o-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-r-narrow--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-o-narrow--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-r-narrow--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-o-narrow--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-bold-i-normal--", (struct xfont*) NULL},
+- {"-*-palatino-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-palatino-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-palatino-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-palatino-bold-i-normal--", (struct xfont*) NULL},
+- {"-*-symbol-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-itc zapf chancery-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-itc zapf dingbats-*-*-*--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-medium-o-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-semibold-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-semibold-o-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-medium-o-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-bold-o-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-medium-r-condensed--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-medium-i-condensed--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-bold-r-condensed--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-bold-i-condensed--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-standard symbols l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw chancery l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-dingbats-medium-r-normal--", (struct xfont*) NULL},
+ };
+
+ /* Use the following font names for any font that doesn't exist in the table above.
diff --git a/staging/xfig/xfig-3.2.5b-fix-eps-reading.patch b/staging/xfig/xfig-3.2.5b-fix-eps-reading.patch
new file mode 100644
index 000000000..7601d20ea
--- /dev/null
+++ b/staging/xfig/xfig-3.2.5b-fix-eps-reading.patch
@@ -0,0 +1,46 @@
+diff -ur xfig.3.2.5b/f_readeps.c xfig.3.2.5b.new/f_readeps.c
+--- xfig.3.2.5b/f_readeps.c 2009-03-30 17:52:18.000000000 +0200
++++ xfig.3.2.5b.new/f_readeps.c 2010-11-25 16:53:54.328247928 +0100
+@@ -252,12 +252,13 @@
+ {
+ char buf[300];
+ FILE *tmpfp, *pixfile, *gsfile;
+- char *psnam, *driver;
++ char *driver;
+ int status, wid, ht, nbitmap, fd;
+ char tmpfile[PATH_MAX],
+ pixnam[PATH_MAX],
+ errnam[PATH_MAX],
+- gscom[2 * PATH_MAX];
++ gscom[2 * PATH_MAX],
++ psnam[PATH_MAX];
+
+ wid = urx - llx;
+ ht = ury - lly;
+@@ -307,19 +308,14 @@
+ /* for color, use pcx */
+ driver = "pcx256";
+ }
+- /* avoid absolute paths (for Cygwin with gswin32) by changing directory */
+- if (tmpfile[0] == '/') {
+- psnam = strrchr(tmpfile, '/');
+- *psnam = 0;
+- sprintf(gscom, "cd \"%s/\";", tmpfile);
+- *psnam++ = '/'; /* Restore name for unlink() below */
+- } else {
+- psnam = tmpfile;
+- gscom[0] = '\0';
++ /* Canonicalize the eps file filename, needed to "defeat" -dSAFER */
++ if (!realpath(tmpfile, psnam)) {
++ file_msg("Cannot canonicalize %s: %s\n", tmpfile, strerror(errno));
++ return False;
+ }
+- sprintf(&gscom[strlen(gscom)],
+- "%s -r72x72 -dSAFER -sDEVICE=%s -g%dx%d -sOutputFile=%s -q - > %s 2>&1",
+- appres.ghostscript, driver, wid, ht, pixnam, errnam);
++ sprintf(gscom,
++ "%s -r72x72 -sDEVICE=%s -g%dx%d -sOutputFile=%s -dDELAYSAFER -c '<< /PermitFileReading [ (%s)] >> setuserparams .locksafe' -dSAFER -q - > %s 2>&1",
++ appres.ghostscript, driver, wid, ht, pixnam, psnam, errnam);
+ if (appres.DEBUG)
+ fprintf(stderr,"calling: %s\n",gscom);
+ if ((gsfile = popen(gscom, "w")) == 0) {
diff --git a/staging/xfig/xfig-3.2.5b-libpng-1.5.patch b/staging/xfig/xfig-3.2.5b-libpng-1.5.patch
new file mode 100644
index 000000000..7d9c3f15e
--- /dev/null
+++ b/staging/xfig/xfig-3.2.5b-libpng-1.5.patch
@@ -0,0 +1,70 @@
+Index: xfig.3.2.5b/f_readpng.c
+===================================================================
+--- xfig.3.2.5b.orig/f_readpng.c
++++ xfig.3.2.5b/f_readpng.c
+@@ -73,7 +73,7 @@ read_png(FILE *file, int filetype, F_pic
+ }
+
+ /* set long jump recovery here */
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ /* if we get here there was a problem reading the file */
+ png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+ close_picfile(file,filetype);
+@@ -90,15 +90,17 @@ read_png(FILE *file, int filetype, F_pic
+ png_get_IHDR(png_ptr, info_ptr, &w, &h, &bit_depth, &color_type,
+ &interlace_type, &compression_type, &filter_type);
+
+- if (info_ptr->valid & PNG_INFO_gAMA)
+- png_set_gamma(png_ptr, 2.2, info_ptr->gamma);
+- else
+- png_set_gamma(png_ptr, 2.2, 0.45);
++ png_fixed_point gamma = 0.45;
++ png_get_gAMA_fixed(png_ptr,info_ptr,&gamma);
++ png_set_gamma(png_ptr, 2.2, gamma);
+
+- if (info_ptr->valid & PNG_INFO_bKGD)
++ if (png_get_valid(png_ptr,info_ptr,PNG_INFO_bKGD)) {
+ /* set the background to the one supplied */
+- png_set_background(png_ptr, &info_ptr->background,
++ png_color_16p background;
++ png_get_bKGD(png_ptr,info_ptr,&background);
++ png_set_background(png_ptr, background,
+ PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
++ }
+ else {
+ /* blend the canvas background using the alpha channel */
+ background.red = x_bg_color.red >> 8;
+@@ -136,7 +138,11 @@ read_png(FILE *file, int filetype, F_pic
+
+ if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette)) {
+ png_get_hIST(png_ptr, info_ptr, &histogram);
++#if PNG_LIBPNG_VER_MAJOR <= 1 && PNG_LIBPNG_VER_MINOR < 5
+ png_set_dither(png_ptr, palette, num_palette, 256, histogram, 0);
++#else
++ png_set_quantize(png_ptr, palette, num_palette, 256, histogram, 0);
++#endif
+ }
+ }
+ if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
+Index: xfig.3.2.5b/f_wrpng.c
+===================================================================
+--- xfig.3.2.5b.orig/f_wrpng.c
++++ xfig.3.2.5b/f_wrpng.c
+@@ -20,6 +20,7 @@
+ #include "w_msgpanel.h"
+ #include "w_setup.h"
+ #include <png.h>
++#include <zlib.h>
+
+ /*
+ * Write PNG file from rgb data
+@@ -59,7 +60,7 @@ write_png(FILE *file, unsigned char *dat
+ }
+
+ /* set long jump recovery here */
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ /* if we get here there was a problem reading the file */
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ return False;
diff --git a/staging/xfig/xfig.3.2.5-modularX.patch b/staging/xfig/xfig.3.2.5-modularX.patch
new file mode 100644
index 000000000..3b5ac5937
--- /dev/null
+++ b/staging/xfig/xfig.3.2.5-modularX.patch
@@ -0,0 +1,28 @@
+--- xfig.3.2.5/Imakefile.modularX 2007-04-16 14:27:49.000000000 +0200
++++ xfig.3.2.5/Imakefile 2007-04-16 14:29:18.000000000 +0200
+@@ -45,7 +45,7 @@
+ XCOMM different tree than the "correct" tree that your X system expects. The usual
+ XCOMM purpose of DESTDIR is to test an install process by installing in a benign area.
+
+-XCOMM XAPPLOADDIR = /home/user/xfig
++XAPPLOADDIR = /usr/share/X11/app-defaults
+
+ XCOMM Uncomment the following definition for XAW3D if you want to use
+ XCOMM the 3d Athena Widget Set (highly recommended!)
+@@ -166,12 +166,12 @@
+ XCOMM XFIGLIBDIR = $(LIBDIR)
+
+ XCOMM use this if you want the multi-key data base file in the standard X11 tree
+-XFIGLIBDIR = $(LIBDIR)/xfig
++XFIGLIBDIR = /usr/share/xfig
+
+ XCOMM XFIGDOCDIR tells where the html and pdf documentation should go
+ XFIGDOCDIR = $(DOCDIR)/xfig
+
+ XCOMM MANDIR tells where the standard man pages should go (no need to change it
+ XCOMM if you want the man pages installed in the standard place on your system
+-MANDIR = $(MANSOURCEPATH)$(MANSUFFIX)
++MANDIR = /usr/share/man/man1
+ XCOMM MANDIR = /usr/local/xfig/man
+
+ XCOMM If your system doesn't have strstr undefine the following definition
diff --git a/staging/xfig/xfig.desktop b/staging/xfig/xfig.desktop
new file mode 100644
index 000000000..c634a28e9
--- /dev/null
+++ b/staging/xfig/xfig.desktop
@@ -0,0 +1,47 @@
+[Desktop Entry]
+Encoding=UTF-8
+Categories=Application;Graphics;
+MimeType=image/fig;image/x-xfig;
+Exec=xfig
+Icon=xfig
+Type=Application
+Name=Xfig
+Name[eo]=XDesegno
+Name[et]=Ffig
+Name[ja]=xfig
+Name[no]=X-figur
+Comment=Xfig drawing application
+Comment[bg]=Xfig ïðîãðàìà çà ðèñóâàíå
+Comment[ca]=Aplicació de dibuix Xfig
+Comment[cs]=Aplikace pro kreslení vektorových obrázků
+Comment[da]=Xfig tegneprogram
+Comment[de]=Xfig-Zeichenprogramm
+Comment[el]=Xfig
+Comment[eo]=Desegnilo "Xfig"
+Comment[es]=Aplicación de diseño vectorial (objetos)
+Comment[et]=XFig joonistusprogramm
+Comment[fi]=Xfig vektoripiirto-ohjelma
+Comment[fr]=Programme de dessin objet Xfig
+Comment[gl]=Aplicación de debuxo (obxectos)
+Comment[he]=Xfig רויצה םושיי
+Comment[hr]=Program za crtanje
+Comment[hu]=Rajzolóprogram
+Comment[is]=Hlutbundið teikniforrit
+Comment[it]=Applicazione di disegno Xfig
+Comment[lt]=Xfig braižymo programa
+Comment[mk]=Едноставна апликација за векторско цртање
+Comment[nl]=Xfig-tekenprogramma
+Comment[no]=Xfig-tegneprogram
+Comment[no_NY]=Teikneprogrammet Xfig
+Comment[pl]=Aplikacja do kreślenia
+Comment[pt]=Aplicação de desenho
+Comment[ro]=Program de desenare vectorială
+Comment[ru]=Приложения для рисования векторной графики
+Comment[sk]=Xfig aplikácia pre kreslenie vektorových obrázkov
+Comment[sl]=Program za risanje Xfig
+Comment[sr]=Xfig prgram za vektorsko crtanje
+Comment[sv]=Xfig ritprogram
+Comment[ta]=Xfig Ũþø ÀÂýÀ¡Î
+Comment[tr]=Xfig çizim uygulaması
+Comment[uk]=Xfig
+Comment[zh_CN.GB2312]=Xfig 绘图应用程序
diff --git a/staging/xfig/xfig.install b/staging/xfig/xfig.install
new file mode 100644
index 000000000..f01585f79
--- /dev/null
+++ b/staging/xfig/xfig.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+ }
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/staging/xine-ui/PKGBUILD b/staging/xine-ui/PKGBUILD
new file mode 100644
index 000000000..ac3016952
--- /dev/null
+++ b/staging/xine-ui/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 146917 2012-01-19 05:44:29Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xine-ui
+pkgver=0.99.6
+pkgrel=5
+pkgdesc="A free video player for Unix"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.xine-project.org"
+depends=('xine-lib' 'curl' 'libpng' 'libxft' 'libxxf86vm'
+ 'xdg-utils' 'shared-mime-info' 'hicolor-icon-theme'
+ 'desktop-file-utils' 'lirc-utils')
+makedepends=('libxt')
+options=('!strip')
+install=xine-ui.install
+source=(http://downloads.sourceforge.net/xine/${pkgname}-${pkgver}.tar.xz
+ lirc-check-a89347673097.patch lirc-makefile-a68dd15ff7ae.patch
+ fix_lirc.diff xine-ui-xdg.diff xine-ui-0.99.6-libpng15.patch)
+sha1sums=('abbdb331898c14025ee6b132f63ab7d3c1b5b31e'
+ 'b2df43ede3a9d1a34b80139704a4cbbc7295c584'
+ '8bbd39f61de7b6991385457a4944b8ea104da88b'
+ '2361df9ddad59c426b0f863414c6d527b463a38a'
+ '9c70c6543dae6815710b239b4638ffe3843bac86'
+ 'bc7ec3153e61553dee8c0b6e04d1ca7cfe4a6f14')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < "${srcdir}/lirc-check-a89347673097.patch"
+ patch -p1 < "${srcdir}/lirc-makefile-a68dd15ff7ae.patch"
+ patch -p1 < "${srcdir}/fix_lirc.diff"
+ patch -p1 < "${srcdir}/xine-ui-xdg.diff"
+ patch -p1 < "${srcdir}/xine-ui-0.99.6-libpng15.patch"
+ sed -i '/\#include <curl\/types.h>/d' src/xitk/download.c
+ autoconf
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-x --enable-lirc --without-aalib --enable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" desktopdir=/usr/share/applications install
+}
diff --git a/staging/xine-ui/fix_lirc.diff b/staging/xine-ui/fix_lirc.diff
new file mode 100644
index 000000000..93890cb5c
--- /dev/null
+++ b/staging/xine-ui/fix_lirc.diff
@@ -0,0 +1,13 @@
+diff --git a/m4/_xine.m4 b/m4/_xine.m4
+--- a/m4/_xine.m4
++++ b/m4/_xine.m4
+@@ -46,7 +46,8 @@ AC_DEFUN([AC_CHECK_LIRC],
+ fi
+ for llirc in $lirc_libprefix /lib /usr/lib /usr/local/lib; do
+ AC_CHECK_FILE(["$llirc/liblirc_client.so"],
+- [LIRC_LIBS="$llirc/liblirc_client.so"]
++ [LIRC_LIBS="$llirc/liblirc_client.so"
++ found_lirc=yes]
+ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed]),
+ AC_CHECK_FILE(["$llirc/liblirc_client.a"],
+ [LIRC_LIBS="$llirc/liblirc_client.a"
diff --git a/staging/xine-ui/lirc-check-a89347673097.patch b/staging/xine-ui/lirc-check-a89347673097.patch
new file mode 100644
index 000000000..c1c8d2614
--- /dev/null
+++ b/staging/xine-ui/lirc-check-a89347673097.patch
@@ -0,0 +1,64 @@
+
+# HG changeset patch
+# User Darren Salt <linux@youmustbejoking.demon.co.uk>
+# Date 1268754560 0
+# Node ID a89347673097053d89675e991ab403cda04d94cd
+# Parent ed3079d668ed5291d1daf7096d6b42c90ee06e11
+Resync LIRC check with gxine; no longer fails if liblircclient0.pc is missing.
+
+--- a/m4/_xine.m4 Sun Mar 14 18:04:46 2010 +0000
++++ b/m4/_xine.m4 Tue Mar 16 15:49:20 2010 +0000
+@@ -25,14 +25,14 @@
+ dnl
+ AC_DEFUN([AC_CHECK_LIRC],
+ [AC_ARG_ENABLE(lirc,
+- [ --disable-lirc Turn off LIRC support.],
+- [], enable_lirc=yes)
++ [AS_HELP_STRING([--disable-lirc], [turn off LIRC support])],
++ [given=Y], [given=N; enable_lirc=yes])
+
+ found_lirc=no
+ if test x"$enable_lirc" = xyes; then
+ have_lirc=yes
+- PKG_CHECK_MODULES(LIRC, liblircclient0, [found_lirc=yes], [])
+- if test "$LIRC_CFLAGS" != ''; then
++ PKG_CHECK_MODULES(LIRC, liblircclient0, [found_lirc=yes], [:])
++ if test "$found_lirc" = yes; then
+ LIRC_INCLUDE="$LIRC_CFLAGS"
+ else
+ AC_REQUIRE_CPP
+@@ -42,15 +42,20 @@
+
+ if test x"$LIRC_PREFIX" != "x"; then
+ lirc_libprefix="$LIRC_PREFIX/lib"
+- LIRC_INCLUDE="-I$LIRC_PREFIX/include"
++ LIRC_INCLUDE="-I$LIRC_PREFIX/include"
+ fi
+ for llirc in $lirc_libprefix /lib /usr/lib /usr/local/lib; do
+- AC_CHECK_FILE(["$llirc/liblirc_client.a"],
+- [LIRC_LIBS="$llirc/liblirc_client.a"
+- found_lirc=yes],,)
++ AC_CHECK_FILE(["$llirc/liblirc_client.so"],
++ [LIRC_LIBS="$llirc/liblirc_client.so"]
++ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed]),
++ AC_CHECK_FILE(["$llirc/liblirc_client.a"],
++ [LIRC_LIBS="$llirc/liblirc_client.a"
++ found_lirc=yes],,)
++ )
+ done
+ else
+- AC_MSG_RESULT([*** LIRC client support not available, LIRC support will be disabled ***]);
++ test $given = Y && AC_MSG_ERROR([LIRC client support requested but not available])
++ AC_MSG_RESULT([*** LIRC client support not available, LIRC support will be disabled ***])
+ fi
+ fi
+ fi
+@@ -59,7 +64,6 @@
+ fi
+ AC_SUBST(LIRC_LIBS)
+ AC_SUBST(LIRC_INCLUDE)
+- AM_CONDITIONAL([HAVE_LIRC], [test "x$have_lirc" = "xyes"])
+ ])
+
+ dnl AC_C_ATTRIBUTE_ALIGNED
+
diff --git a/staging/xine-ui/lirc-makefile-a68dd15ff7ae.patch b/staging/xine-ui/lirc-makefile-a68dd15ff7ae.patch
new file mode 100644
index 000000000..daad4f03a
--- /dev/null
+++ b/staging/xine-ui/lirc-makefile-a68dd15ff7ae.patch
@@ -0,0 +1,19 @@
+
+# HG changeset patch
+# User Darren Salt <linux@youmustbejoking.demon.co.uk>
+# Date 1268758696 0
+# Node ID a68dd15ff7ae4be65c2ace25ef66966d7c272514
+# Parent 882c464d4a650d09da37ade366face74452c1897
+Restore definition of HAVE_LIRC for use in makefiles.
+
+--- a/m4/_xine.m4 Mon Mar 15 12:03:01 2010 -0700
++++ b/m4/_xine.m4 Tue Mar 16 16:58:16 2010 +0000
+@@ -62,6 +62,7 @@
+ if test "$found_lirc" = yes; then
+ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed])
+ fi
++ AM_CONDITIONAL([HAVE_LIRC], [test "$found_lirc" = yes])
+ AC_SUBST(LIRC_LIBS)
+ AC_SUBST(LIRC_INCLUDE)
+ ])
+
diff --git a/staging/xine-ui/xine-ui-0.99.6-libpng15.patch b/staging/xine-ui/xine-ui-0.99.6-libpng15.patch
new file mode 100644
index 000000000..6a5fb5522
--- /dev/null
+++ b/staging/xine-ui/xine-ui-0.99.6-libpng15.patch
@@ -0,0 +1,13 @@
+Index: xine-ui-0.99.6/src/xitk/Imlib-light/load.c
+===================================================================
+--- xine-ui-0.99.6.orig/src/xitk/Imlib-light/load.c
++++ xine-ui-0.99.6/src/xitk/Imlib-light/load.c
+@@ -61,7 +61,7 @@ unsigned char *_LoadPNG(ImlibData * id,
+ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return NULL;
+ }
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
diff --git a/staging/xine-ui/xine-ui-xdg.diff b/staging/xine-ui/xine-ui-xdg.diff
new file mode 100644
index 000000000..959d674b2
--- /dev/null
+++ b/staging/xine-ui/xine-ui-xdg.diff
@@ -0,0 +1,206 @@
+--- xine-ui-0.99.6.orig/src/xitk/common.h
++++ xine-ui-0.99.6/src/xitk/common.h
+@@ -331,6 +331,5 @@ typedef struct {
+ int use_root_window;
+
+ int ssaver_enabled;
+- int ssaver_timeout;
+
+ int skip_by_chapter;
+--- xine-ui-0.99.6.orig/src/xitk/main.c
++++ xine-ui-0.99.6/src/xitk/main.c
+@@ -1383,6 +1383,8 @@ int main(int argc, char *argv[]) {
+ if (sigprocmask (SIG_BLOCK, &vo_mask, NULL))
+ fprintf (stderr, "sigprocmask() failed.\n");
+
++ signal(SIGCHLD, SIG_IGN);
++
+ gGui = (gGui_t *) calloc(1, sizeof(gGui_t));
+
+ gGui->stream = NULL;
+--- xine-ui-0.99.6.orig/src/xitk/panel.c
++++ xine-ui-0.99.6/src/xitk/panel.c
+@@ -356,7 +356,6 @@ void panel_update_runtime_display(void)
+ * Update slider thread.
+ */
+ static void *slider_loop(void *dummy) {
+- int screensaver_timer = 0;
+ int status, speed;
+ int pos, secs;
+ int i = 0;
+@@ -441,20 +440,7 @@ static void *slider_loop(void *dummy) {
+ else
+ video_window_set_mrl((char *)gGui->mmk.mrl);
+
+- if(!xitk_is_window_iconified(gGui->video_display, gGui->video_window)) {
+-
+- if(gGui->ssaver_timeout) {
+-
+- if(!(i % 2))
+- screensaver_timer++;
+-
+- if(screensaver_timer >= gGui->ssaver_timeout) {
+- screensaver_timer = 0;
+- video_window_reset_ssaver();
+-
+- }
+- }
+- }
++ video_window_suspend_ssaver(!xitk_is_window_iconified(gGui->video_display, gGui->video_window));
+
+ if(gGui->logo_mode == 0) {
+
+@@ -494,6 +480,8 @@ static void *slider_loop(void *dummy) {
+ stream_infos_update_infos();
+
+ }
++ } else {
++ video_window_suspend_ssaver(0);
+ }
+ }
+
+--- xine-ui-0.99.6.orig/src/xitk/videowin.c
++++ xine-ui-0.99.6/src/xitk/videowin.c
+@@ -1087,6 +1087,9 @@ static void video_window_adapt_size (voi
+
+ /* The old window should be destroyed now */
+ if(old_video_window != None) {
++ /* Screensaver control is tied to our window id */
++ video_window_suspend_ssaver(0);
++
+ XDestroyWindow(gGui->video_display, old_video_window);
+
+ if(gGui->cursor_grabbed)
+@@ -2261,69 +2264,34 @@ static void video_window_handle_event (X
+
+ }
+
+-void video_window_reset_ssaver(void) {
++void video_window_suspend_ssaver(int do_suspend) {
++ static int was_suspended;
+
+- if(gGui->ssaver_enabled && (xitk_get_last_keypressed_time() >= (long int) gGui->ssaver_timeout)) {
++ do_suspend = do_suspend && gGui->ssaver_enabled;
+
+-#ifdef HAVE_XTESTEXTENSION
+- if(gVw.have_xtest == True) {
+-
+- gVw.fake_key_cur++;
+-
+- if(gVw.fake_key_cur >= 2)
+- gVw.fake_key_cur = 0;
+-
+- XLockDisplay(gGui->video_display);
+- XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], True, CurrentTime);
+- XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], False, CurrentTime);
+- XSync(gGui->video_display, False);
+- XUnlockDisplay(gGui->video_display);
++ if(was_suspended != do_suspend) {
++ if(fork() == 0) {
++ char window_id[30];
++ char *args[] = { "xdg-screensaver", NULL, window_id, NULL };
++ int fd;
++
++ for(fd = 3; fd < 256; fd++)
++ close(fd);
++
++ args[1] = do_suspend ? "suspend" : "resume";
++ sprintf(window_id, "%lu", (unsigned long)gGui->video_window);
++ execvp(args[0], args);
++ _exit(0);
+ }
+- else
+-#endif
+- {
+- /* Reset the gnome screensaver. Look up the command in PATH only once to save time, */
+- /* assuming its location and permission will not change during run time of xine-ui. */
+- {
+- static char *const gssaver_args[] = { "gnome-screensaver-command", "--poke", NULL };
+- static char *gssaver_path = NULL;
+-
+- if(!gssaver_path) {
+- char *path = getenv("PATH");
+-
+- if(!path)
+- path = "/usr/local/bin:/usr/bin";
+- do {
+- char *p, *pbuf;
+- int plen;
+-
+- for(p = path; *path && *path != ':'; path++)
+- ;
+- if(p == path)
+- plen = 1, p = ".";
+- else
+- plen = path - p;
+- asprintf(&pbuf, "%.*s/%s", plen, p, gssaver_args[0]);
+- if ( access(pbuf, X_OK) ) {
+- free(pbuf);
+- gssaver_path = "";
+- } else
+- gssaver_path = pbuf;
+- } while(!gssaver_path[0] && *path++);
+- }
+- if(gssaver_path[0] && (fork() == 0)) {
+- execv(gssaver_path, gssaver_args);
+- exit(0);
+- }
+- }
+
+- XLockDisplay(gGui->video_display);
+- XResetScreenSaver(gGui->video_display);
+- XUnlockDisplay(gGui->video_display);
+- }
++ was_suspended = do_suspend;
+ }
+ }
+
++void video_window_reset_ssaver(void) {
++ video_window_suspend_ssaver(1);
++}
++
+ void video_window_get_frame_size(int *w, int *h) {
+ if(w)
+ *w = gVw.frame_width;
+--- xine-ui-0.99.6.orig/src/xitk/videowin.h
++++ xine-ui-0.99.6/src/xitk/videowin.h
+@@ -81,6 +81,7 @@ void video_window_get_mag (float *xmag,
+ void video_window_update_logo(void);
+ void video_window_change_skins(int);
+
++void video_window_suspend_ssaver(int do_suspend);
+ void video_window_reset_ssaver(void);
+
+ void video_window_get_frame_size(int *w, int *h);
+--- xine-ui-0.99.6.orig/src/xitk/event.c
++++ xine-ui-0.99.6/src/xitk/event.c
+@@ -135,9 +135,6 @@ static void skip_by_chapter_cb(void *dat
+ gGui->skip_by_chapter = cfg->num_value;
+ panel_update_nextprev_tips();
+ }
+-static void ssaver_timeout_cb(void *data, xine_cfg_entry_t *cfg) {
+- gGui->ssaver_timeout = cfg->num_value;
+-}
+
+ static void visual_anim_cb(void *data, xine_cfg_entry_t *cfg) {
+
+@@ -1614,14 +1611,6 @@ void gui_init (int nfiles, char *filenam
+ snapshot_loc_cb,
+ CONFIG_NO_DATA);
+
+- gGui->ssaver_timeout =
+- xine_config_register_num (__xineui_global_xine_instance, "gui.screensaver_timeout", 10,
+- _("Screensaver reset interval (s)"),
+- _("Time, in seconds, between two faked events to keep a screensaver quiet, 0 to disable."),
+- CONFIG_LEVEL_ADV,
+- ssaver_timeout_cb,
+- CONFIG_NO_DATA);
+-
+ gGui->skip_by_chapter =
+ xine_config_register_bool (__xineui_global_xine_instance, "gui.skip_by_chapter", 1,
+ _("Chapter hopping"),
+
+
+
+
+
diff --git a/staging/xine-ui/xine-ui.install b/staging/xine-ui/xine-ui.install
new file mode 100644
index 000000000..3b3aff7d9
--- /dev/null
+++ b/staging/xine-ui/xine-ui.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/zvbi/PKGBUILD b/staging/zvbi/PKGBUILD
new file mode 100644
index 000000000..442df8b76
--- /dev/null
+++ b/staging/zvbi/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 146940 2012-01-19 13:11:45Z giovanni $
+# Maintainer:
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=zvbi
+pkgver=0.2.33
+pkgrel=4
+pkgdesc="VBI capture and decoding library"
+url="http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome"
+arch=('i686' 'x86_64')
+depends=('libpng' 'libx11')
+license=('GPL')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/zapping/${pkgname}-${pkgver}.tar.bz2"
+ 'fix-includes.patch'
+ 'zvbi-0.2.33-libpng15.patch')
+md5sums=('1741a6045c3eedfb611d645f2da69ac8'
+ '38766bc59e1571133d0399f0102da653'
+ '4434de7addc438be8c5a33274146bd11')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/fix-includes.patch"
+ patch -Np0 -i "${srcdir}/zvbi-0.2.33-libpng15.patch"
+
+ ./configure --prefix=/usr \
+ --disable-static \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/zvbi/fix-includes.patch b/staging/zvbi/fix-includes.patch
new file mode 100644
index 000000000..28252649e
--- /dev/null
+++ b/staging/zvbi/fix-includes.patch
@@ -0,0 +1,36 @@
+Add proper #includes so that we do not get undef errors to S_ISCHR
+during linking.
+
+Signed-off-by: Alex Chiang <achiang@canonical.com>
+---
+--- zvbi-0.2.33.orig/src/io-dvb.c
++++ zvbi-0.2.33/src/io-dvb.c
+@@ -29,6 +29,8 @@
+ #include <errno.h>
+ #include <sys/select.h>
+ #include <sys/ioctl.h>
++#include <sys/types.h>
++#include <sys/stat.h>
+
+ #ifndef HAVE_S64_U64
+ /* Linux 2.6.x asm/types.h defines __s64 and __u64 only
+--- zvbi-0.2.33.orig/src/io-v4l.c
++++ zvbi-0.2.33/src/io-v4l.c
+@@ -42,6 +42,7 @@ static const char rcsid [] =
+ #include <assert.h>
+ #include <sys/time.h> /* timeval */
+ #include <sys/types.h> /* fd_set, uid_t */
++#include <sys/stat.h> /* S_ISCHR */
+ #include <sys/ioctl.h> /* for (_)videodev.h */
+ #include <pthread.h>
+
+--- zvbi-0.2.33.orig/contrib/ntsc-cc.c
++++ zvbi-0.2.33/contrib/ntsc-cc.c
+@@ -34,6 +34,7 @@
+ #include <locale.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #include <sys/time.h>
+ #ifdef HAVE_GETOPT_LONG
+ # include <getopt.h>
diff --git a/staging/zvbi/zvbi-0.2.33-libpng15.patch b/staging/zvbi/zvbi-0.2.33-libpng15.patch
new file mode 100644
index 000000000..262677376
--- /dev/null
+++ b/staging/zvbi/zvbi-0.2.33-libpng15.patch
@@ -0,0 +1,21 @@
+Index: src/exp-gfx.c
+===================================================================
+RCS file: /cvsroot/zapping/vbi/src/exp-gfx.c,v
+retrieving revision 1.16
+diff -u -B -r1.16 exp-gfx.c
+--- src/exp-gfx.c 24 Feb 2008 14:17:47 -0000 1.16
++++ src/exp-gfx.c 15 Feb 2011 20:03:58 -0000
+@@ -1672,11 +1672,11 @@
+ char title[80];
+ unsigned int i;
+
+- if (setjmp (png_ptr->jmpbuf))
++ if (setjmp (png_jmpbuf(png_ptr)))
+ return FALSE;
+
+ png_set_write_fn (png_ptr,
+- (voidp) gfx,
++ (png_voidp) gfx,
+ write_data,
+ flush_data);
+
diff --git a/testing/btrfs-progs/PKGBUILD b/testing/btrfs-progs/PKGBUILD
index 17bf249d7..6c96cea06 100644
--- a/testing/btrfs-progs/PKGBUILD
+++ b/testing/btrfs-progs/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 146398 2012-01-10 16:04:17Z tomegun $
+# $Id: PKGBUILD 146653 2012-01-15 12:27:09Z tpowa $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgname=btrfs-progs
pkgver=0.19.20120110
-pkgrel=1
+pkgrel=2
pkgdesc="btrfs filesystem utilities"
arch=(i686 x86_64)
depends=('glibc' 'e2fsprogs')
@@ -25,5 +25,7 @@ package() {
# fix manpage
mkdir -p $pkgdir/usr/share/
mv $pkgdir/usr/man $pkgdir/usr/share/man
+ mkdir -p ${pkgdir}/sbin
+ ln -sf /usr/bin/btrfs ${pkgdir}/sbin/btrfs
}
md5sums=('a3f6fbeb166f8e6b5c06833888d4ecf2')
diff --git a/testing/e2fsprogs/MIT-LICENSE b/testing/e2fsprogs/MIT-LICENSE
new file mode 100644
index 000000000..d849b28f2
--- /dev/null
+++ b/testing/e2fsprogs/MIT-LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2003-2007 Theodore Ts'o <tytso@mit.edu>
+Copyright (c) 1997-2003 Yann Dirson <dirson@debian.org>
+Copyright (c) 2001 Alcove <http://www.alcove.com/>
+Copyright (c) 1997 Klee Dienes
+Copyright (c) 1995-1996 Michael Nonweiler <mrn20@cam.ac.uk>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject
+to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/testing/e2fsprogs/PKGBUILD b/testing/e2fsprogs/PKGBUILD
new file mode 100644
index 000000000..1f1973390
--- /dev/null
+++ b/testing/e2fsprogs/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 146651 2012-01-15 11:45:33Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=e2fsprogs
+pkgver=1.42
+pkgrel=1
+pkgdesc="Ext2/3/4 filesystem utilities"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'MIT')
+url="http://e2fsprogs.sourceforge.net"
+groups=('base')
+depends=('sh' 'util-linux-ng')
+makedepends=('bc')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'MIT-LICENSE')
+backup=('etc/mke2fs.conf')
+install=${pkgname}.install
+sha1sums=('e69bc63bc319e4d1e4242cc278bfd442a60646e6'
+ 'f4a0d5b0cdb980e3fedd6f5e7dde0b0ffb7bbdfb')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Remove unnecessary init.d directory
+ sed -i '/init\.d/s|^|#|' misc/Makefile.in
+
+ ./configure --prefix=/usr --with-root-prefix="" --enable-elf-shlibs \
+ --disable-fsck --disable-uuidd \
+ --disable-libuuid --disable-libblkid
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install install-libs
+
+ sed -i -e 's/^AWK=.*/AWK=awk/' "${pkgdir}/usr/bin/compile_et"
+
+ # remove references to build directory
+ sed -i -e 's#^SS_DIR=.*#SS_DIR="/usr/share/ss"#' "${pkgdir}/usr/bin/mk_cmds"
+ sed -i -e 's#^ET_DIR=.*#ET_DIR="/usr/share/et"#' "${pkgdir}/usr/bin/compile_et"
+
+ # install MIT license
+ install -Dm644 "${srcdir}/MIT-LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/MIT-LICENSE"
+}
diff --git a/testing/e2fsprogs/e2fsprogs.install b/testing/e2fsprogs/e2fsprogs.install
new file mode 100644
index 000000000..1a7fe20d7
--- /dev/null
+++ b/testing/e2fsprogs/e2fsprogs.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libext2fs.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/e2fsprogs/mke2fs.conf b/testing/e2fsprogs/mke2fs.conf
new file mode 100644
index 000000000..92464e3b4
--- /dev/null
+++ b/testing/e2fsprogs/mke2fs.conf
@@ -0,0 +1,26 @@
+[defaults]
+ base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
+ blocksize = 4096
+ inode_size = 128
+ inode_ratio = 16384
+
+[fs_types]
+ small = {
+ blocksize = 1024
+ inode_size = 128
+ inode_ratio = 4096
+ }
+ floppy = {
+ blocksize = 1024
+ inode_size = 128
+ inode_ratio = 8192
+ }
+ news = {
+ inode_ratio = 4096
+ }
+ largefile = {
+ inode_ratio = 1048576
+ }
+ largefile4 = {
+ inode_ratio = 4194304
+ }
diff --git a/testing/fontforge/PKGBUILD b/testing/fontforge/PKGBUILD
new file mode 100644
index 000000000..aa91464c1
--- /dev/null
+++ b/testing/fontforge/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 146646 2012-01-15 10:19:07Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=fontforge
+pkgver=20111214
+pkgrel=3
+pkgdesc='Outline and bitmap font editor'
+arch=('i686' 'x86_64')
+url='http://fontforge.sourceforge.net/'
+license=('BSD')
+depends=('libxkbui' 'libxi' 'libxml2' 'pango' 'giflib' 'libtiff' 'python2' 'libspiro')
+options=('!libtool' '!makeflags')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('55c3f00c0b486492ba071fc479e1feb426562e2b')
+
+# git clone git://fontforge.git.sourceforge.net/gitroot/fontforge/fontforge; cd fontforge; git archive --prefix=${pkgname}-${pkgver}/ master | xz > ../${pkgname}-${pkgver}.tar.xz
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/python /python2 /g' Makefile.dynamic.in
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-type3 \
+ --enable-devicetables \
+ --enable-double \
+ --with-regular-link \
+ --with-python=python2 \
+ --enable-pyextension \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/gmime/PKGBUILD b/testing/gmime/PKGBUILD
new file mode 100644
index 000000000..0cd358ce6
--- /dev/null
+++ b/testing/gmime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 146618 2012-01-14 12:24:08Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gmime
+pkgver=2.6.4
+pkgrel=1
+pkgdesc="Core mime parsing library"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://spruce.sourceforge.net/gmime/"
+depends=('glib2' 'gpgme' 'zlib')
+makedepends=('gtk-sharp-2')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
+sha256sums=('2e85076c223fe8bf1392a7c1affa4454cb3bb6dec83016ad6e3230c65533f163')
+
+build() {
+ # get rid of that .wapi errors in fakeroot
+ export MONO_SHARED_DIR="$srcdir/weird"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/grilo-plugins/PKGBUILD b/testing/grilo-plugins/PKGBUILD
new file mode 100644
index 000000000..ddf708f84
--- /dev/null
+++ b/testing/grilo-plugins/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 146620 2012-01-14 12:24:10Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=grilo-plugins
+pkgver=0.1.18
+pkgrel=2
+pkgdesc="Plugins for Grilo"
+url="http://www.gnome.org"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('grilo')
+makedepends=('gupnp-av' 'libgdata' 'libquvi' 'sqlite3' 'gmime' 'libgcrypt'
+ 'rest' 'libtracker-sparql')
+optdepends=('gupnp-av: uPnP plugin'
+ 'libgdata: Youtube plugin'
+ 'libquvi: Youtube plugin'
+ 'sqlite3: Podcasts plugin'
+ 'gmime: Podcasts plugin'
+ 'sqlite3: Bookmarks plugin'
+ 'sqlite3: Metadata store plugin'
+ 'libgcrypt: Vimeo plugin'
+ 'rest: Blip.tv plugin'
+ 'libtracker-sparql: Tracker plugin')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('7e382f402119f4f270380627a2f49b30a6c43a47ecd645bf5ffe4e0cd99a1c79')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --enable-shoutcast
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/hdparm/PKGBUILD b/testing/hdparm/PKGBUILD
new file mode 100644
index 000000000..5d350ccbb
--- /dev/null
+++ b/testing/hdparm/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 146531 2012-01-12 16:33:43Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=hdparm
+pkgver=9.38
+pkgrel=1
+pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters"
+arch=(i686 x86_64)
+depends=('glibc')
+optdepends=('sh: required by idectl and ultrabayd')
+source=(http://downloads.sourceforge.net/sourceforge/hdparm/${pkgname}-${pkgver}.tar.gz
+ wiper.sh.2_6.max-ranges.patch)
+license=('BSD')
+url="http://sourceforge.net/projects/hdparm/"
+optdepends=('bash: for wiper.sh script')
+options=('emptydirs')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # Fix Range input/output error when wiping Intel G2 and OCZ drives
+ patch -Np1 -i $srcdir/wiper.sh.2_6.max-ranges.patch
+
+ # build
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # install
+ mkdir -p ${pkgdir}/{usr,sbin}
+ make DESTDIR=${pkgdir} install
+ install -m755 contrib/idectl ${pkgdir}/sbin
+ install -m755 contrib/ultrabayd ${pkgdir}/sbin
+
+ install -D -m 0644 $srcdir/$pkgname-$pkgver/wiper/README.txt $pkgdir/usr/share/doc/wiper/README.txt
+ install -D -m 0755 $srcdir/$pkgname-$pkgver/wiper/wiper.sh $pkgdir/usr/sbin/wiper.sh
+
+ #install license file
+ install -D -m 644 LICENSE.TXT $pkgdir/usr/share/licenses/hdparm/LICENSE.TXT
+}
+md5sums=('915e74685e2f25eaebe6a26c5d7ca700'
+ '74e368f384166a7710b447573cda120a')
diff --git a/testing/hdparm/wiper.sh.2_6.max-ranges.patch b/testing/hdparm/wiper.sh.2_6.max-ranges.patch
new file mode 100644
index 000000000..c55f7b149
--- /dev/null
+++ b/testing/hdparm/wiper.sh.2_6.max-ranges.patch
@@ -0,0 +1,84 @@
+--- hdparm-9.28/wiper/wiper.sh.orig 2010-03-09 06:17:37.000000000 -0800
+--- hdparm-9.28/wiper/wiper.sh 2010-05-15 03:08:02.182856971 -0700
+@@ -29,7 +29,7 @@
+ function usage_error(){
+ echo >&2
+ echo "Linux tune-up (TRIM) utility for SATA SSDs"
+- echo "Usage: $0 [--verbose] [--commit] <mount_point|block_device>" >&2
++ echo "Usage: $0 [--max-ranges <num>] [--verbose] [--commit] <mount_point|block_device>" >&2
+ echo " Eg: $0 /dev/sda1" >&2
+ echo >&2
+ exit 1
+@@ -44,6 +44,7 @@
+
+ export verbose=0
+ commit=""
++max_ranges=-1
+ destroy_me=""
+ argc=$#
+ arg=""
+@@ -51,6 +52,10 @@
+ commit=yes
+ elif [ "$1" = "--verbose" ]; then
+ verbose=$((verbose + 1))
++ elif [ "$1" = "--max-ranges" -a $argc -gt 1 ]; then
++ max_ranges=$2
++ argc=$((argc - 1))
++ shift
+ elif [ "$1" = "" ]; then
+ usage_error
+ else
+@@ -499,6 +550,18 @@
+ fi
+ fi
+
++## Different SSD's have a different maximum number of ranges they'll accept
++## in a single TRIM command.
++if [ $max_ranges -le 0 ] ; then
++ model=`$HDPARM -I $rawdev | $GAWK '/Model Number/ { print $NF }'`
++ case "$model" in
++ SSDSA[12]*) max_ranges=512 ;; # Intel X18-M/X25-M
++ OCZ-VERTEX2) max_ranges=64 ;; # OCZ Vertex2
++ *) max_ranges=65535
++ esac
++fi
++[ $verbose -gt 0 ] && echo "max-ranges = $max_ranges"
++
+ ## All ready. Now let the user know exactly what we intend to do:
+ ##
+ mountstatus="$fstype non-mounted"
+@@ -608,7 +671,7 @@
+ nsectors += count;
+ while (count > 0) {
+ this_count = (count > 65535) ? 65535 : count
+- printf "%u:%u ", lba, this_count
++ printf "%u:%u \n", lba, this_count
+ if (verbose > 1)
+ printf "%u:%u ", lba, this_count > "/dev/stderr"
+ lba += this_count
+@@ -695,6 +758,22 @@
+ -v verbose="$verbose" \
+ -v xfs_blksects="$xfs_blksects" \
+ -v xfs_agoffsets="$xfs_agoffsets" \
+- "$GAWKPROG" | $TRIM
++ "$GAWKPROG" | (
++ i=0
++ while read range ; do
++ ranges=$ranges" "$range
++ ((i++))
++ if [ $i -ge $max_ranges ] ; then
++ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++ echo $ranges | $TRIM
++ ranges=""
++ i=0
++ fi
++ done
++ if [ $i -gt 0 ] ; then
++ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++ echo $ranges | $TRIM
++ fi
++ )
+
+ do_cleanup $?
+
+
diff --git a/testing/inetutils/PKGBUILD b/testing/inetutils/PKGBUILD
new file mode 100644
index 000000000..38735f95e
--- /dev/null
+++ b/testing/inetutils/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 146554 2012-01-13 07:07:09Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=inetutils
+pkgver=1.9.1
+pkgrel=1
+pkgdesc="A collection of common network programs"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/inetutils/"
+license=('GPL3')
+groups=('base')
+depends=('readline' 'ncurses' 'pam')
+provides=('netkit-ftp' 'netkit-rsh' 'netkit-telnet' 'netkit-ntalk')
+conflicts=('netkit-ftp' 'netkit-rsh' 'netkit-telnet' 'netkit-ntalk')
+replaces=('netkit-ftp' 'netkit-rsh' 'netkit-telnet' 'netkit-ntalk')
+backup=('etc/conf.d/ftpd' 'etc/xinetd.d/telnet' 'etc/xinetd.d/talk' \
+ 'etc/xinetd.d/rexec' 'etc/xinetd.d/rlogin' 'etc/xinetd.d/rsh')
+options=('!emptydirs')
+install=inetutils.install
+source=(http://ftp.gnu.org/gnu/inetutils/${pkgname}-${pkgver}.tar.gz{,.sig} \
+ ftpd.rc ftpd.conf telnet.xinetd talk.xinetd rexec.xinetd rlogin.xinetd rsh.xinetd \
+ dnsdomainname domainname)
+sha1sums=('86b7eb11cfdaefb1d4e9bfc10620beaf8f09bc90'
+ 'ff0aad9946a38915580b094dadf67e790e8a2f87'
+ '84dc802b5e57b5e04c847572225a3b9612017155'
+ '68a590083b45997dfdb80e666b2de762f494ba74'
+ 'bfad98a4a62f1fff8779f076c6019ed07f9111af'
+ '27d99b910eec0fc26bd79ccc2c1de26608330298'
+ '87aa4f38ebee9dac5dcaa04cbc3f2f0906bec605'
+ '81f10b3b688e3952f793b35bcef63b5bf257a92b'
+ '81f4a8da823cf0bb14284fc71ee6108849691eda'
+ 'ac69756d6cc50157d430d863db04a5aac4688380'
+ 'eb952b0b9c3e3d429d8e21b110249e495f0e0e63')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexec=/usr/sbin --localstatedir=/var \
+ --sysconfdir=/etc --mandir=/usr/share/man --infodir=/usr/share/info \
+ --without-wrap --with-pam \
+ --enable-ftp --enable-ftpd \
+ --enable-telnet --enable-telnetd \
+ --enable-talk --enable-talkd \
+ --enable-rlogin --enable-rlogind \
+ --enable-rsh --enable-rshd \
+ --enable-rexec --enable-rexecd \
+ --enable-rcp --enable-hostname \
+ --disable-tftp --disable-tftpd \
+ --disable-ping --disable-ping6 \
+ --disable-logger --disable-syslogd \
+ --disable-inetd --disable-whois \
+ --disable-uucpd --disable-ifconfig --disable-traceroute
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/bin"
+ ln -s /usr/bin/hostname "${pkgdir}/bin/hostname"
+ install -D -m755 "${srcdir}/domainname" "${pkgdir}/bin/domainname"
+ install -D -m755 "${srcdir}/dnsdomainname" "${pkgdir}/bin/dnsdomainname"
+ echo ".so man1/hostname.1" > "${pkgdir}/usr/share/man/man1/domainname.1"
+ echo ".so man1/hostname.1" > "${pkgdir}/usr/share/man/man1/dnsdomainname.1"
+ install -D -m755 "${srcdir}/ftpd.rc" "${pkgdir}/etc/rc.d/ftpd"
+ install -D -m644 "${srcdir}/ftpd.conf" "${pkgdir}/etc/conf.d/ftpd"
+ install -D -m644 "${srcdir}/telnet.xinetd" "${pkgdir}/etc/xinetd.d/telnet"
+ install -D -m644 "${srcdir}/talk.xinetd" "${pkgdir}/etc/xinetd.d/talk"
+ install -D -m644 "${srcdir}/rexec.xinetd" "${pkgdir}/etc/xinetd.d/rexec"
+ install -D -m644 "${srcdir}/rlogin.xinetd" "${pkgdir}/etc/xinetd.d/rlogin"
+ install -D -m644 "${srcdir}/rsh.xinetd" "${pkgdir}/etc/xinetd.d/rsh"
+}
diff --git a/testing/inetutils/dnsdomainname b/testing/inetutils/dnsdomainname
new file mode 100644
index 000000000..4bba209fe
--- /dev/null
+++ b/testing/inetutils/dnsdomainname
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/bin/hostname -y "$@"
diff --git a/testing/inetutils/domainname b/testing/inetutils/domainname
new file mode 100644
index 000000000..a1b8a8c31
--- /dev/null
+++ b/testing/inetutils/domainname
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/bin/hostname -d "$@"
diff --git a/testing/inetutils/ftpd.conf b/testing/inetutils/ftpd.conf
new file mode 100644
index 000000000..f660f0035
--- /dev/null
+++ b/testing/inetutils/ftpd.conf
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to ftpd
+#
+FTPD_ARGS=""
diff --git a/testing/inetutils/ftpd.rc b/testing/inetutils/ftpd.rc
new file mode 100644
index 000000000..3d0d34421
--- /dev/null
+++ b/testing/inetutils/ftpd.rc
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ftpd
+
+PID=$(pidof -o %PPID /usr/sbin/ftpd)
+case "$1" in
+ start)
+ stat_busy "Starting ftpd"
+ [ -z "$PID" ] && /usr/sbin/ftpd -D $FTPD_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ftpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ftpd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ftpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/inetutils/inetutils.install b/testing/inetutils/inetutils.install
new file mode 100644
index 000000000..b338fa498
--- /dev/null
+++ b/testing/inetutils/inetutils.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(inetutils.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/inetutils/rexec.xinetd b/testing/inetutils/rexec.xinetd
new file mode 100644
index 000000000..4659e4745
--- /dev/null
+++ b/testing/inetutils/rexec.xinetd
@@ -0,0 +1,10 @@
+service exec
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/rexecd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/testing/inetutils/rlogin.xinetd b/testing/inetutils/rlogin.xinetd
new file mode 100644
index 000000000..5c72f86df
--- /dev/null
+++ b/testing/inetutils/rlogin.xinetd
@@ -0,0 +1,10 @@
+service login
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/rlogind
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/testing/inetutils/rsh.xinetd b/testing/inetutils/rsh.xinetd
new file mode 100644
index 000000000..a13738c31
--- /dev/null
+++ b/testing/inetutils/rsh.xinetd
@@ -0,0 +1,10 @@
+service shell
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/rshd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/testing/inetutils/talk.xinetd b/testing/inetutils/talk.xinetd
new file mode 100644
index 000000000..6abef359c
--- /dev/null
+++ b/testing/inetutils/talk.xinetd
@@ -0,0 +1,10 @@
+service ntalk
+{
+ flags = REUSE
+ socket_type = dgram
+ wait = yes
+ user = root
+ server = /usr/sbin/talkd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/testing/inetutils/telnet.xinetd b/testing/inetutils/telnet.xinetd
new file mode 100644
index 000000000..bd3a5e4b1
--- /dev/null
+++ b/testing/inetutils/telnet.xinetd
@@ -0,0 +1,10 @@
+service telnet
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/telnetd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/testing/kmod/PKGBUILD b/testing/kmod/PKGBUILD
index e0269b3df..34983beaf 100644
--- a/testing/kmod/PKGBUILD
+++ b/testing/kmod/PKGBUILD
@@ -1,40 +1,30 @@
-# $Id: PKGBUILD 146297 2012-01-08 22:05:13Z dreisner $
+# $Id: PKGBUILD 146697 2012-01-16 19:19:27Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=kmod
-pkgver=3
-pkgrel=5
+pkgver=4
+pkgrel=1
pkgdesc="Linux kernel module handling"
arch=('i686' 'x86_64')
url="http://git.profusion.mobi/cgit.cgi/kmod.git"
license=('GPL2')
depends=('glibc' 'zlib')
+makedepends=('docbook2x')
options=('!libtool')
provides=('module-init-tools=3.16')
conflicts=('module-init-tools')
replaces=('module-init-tools')
source=("http://packages.profusion.mobi/$pkgname/$pkgname-$pkgver.tar.xz"
- "depmod-search.conf"
- "return-non-zero-on-fail.patch"
- "use-path-max-for-alias-names.patch"
- "fix-error-path-when-loading-deps.patch")
-md5sums=('bc0e69f75c2ac22c091f05e166e86c5d'
- '4b8cbcbc54b9029c99fd730e257d4436'
- '4be6f783a7fc2d1747ccaa2536d2e88f'
- '4d801693a6788236b4ed578c24514d62'
- 'd0f01e506e825156760e6129f04eea28')
+ "depmod-search.conf")
+md5sums=('e14450a066a48accd0af1995b3c0232d'
+ '4b8cbcbc54b9029c99fd730e257d4436')
build() {
cd "$pkgname-$pkgver"
- patch -Np1 <"$srcdir/return-non-zero-on-fail.patch"
- patch -Np1 <"$srcdir/use-path-max-for-alias-names.patch"
- patch -Np1 <"$srcdir/fix-error-path-when-loading-deps.patch"
-
./configure \
--sysconfdir=/etc \
--with-rootprefix= \
- --with-rootlibdir=/lib \
--with-zlib
make
diff --git a/testing/libarchive/PKGBUILD b/testing/libarchive/PKGBUILD
index d6616659e..a40ad46f7 100644
--- a/testing/libarchive/PKGBUILD
+++ b/testing/libarchive/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 145944 2012-01-04 13:11:41Z dreisner $
+# $Id: PKGBUILD 146572 2012-01-13 16:55:27Z dreisner $
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=libarchive
-pkgver=3.0.2
-pkgrel=1
+pkgver=3.0.3
+pkgrel=2
pkgdesc="library that can create and read several streaming archive formats"
arch=('i686' 'x86_64')
url="http://libarchive.googlecode.com/"
license=('BSD')
depends=('zlib' 'bzip2' 'xz>=5.0.0' 'acl' 'openssl>=1.0.0' 'expat')
source=("http://libarchive.googlecode.com/files/libarchive-${pkgver}.tar.gz")
-md5sums=('4df33cb107c9702c80473e0794ddf833')
-sha256sums=('b27a10182f4fc3f69d01419a59ddb16fccf5df8c4b166008c04f41905e29fd74')
+md5sums=('ca4090f0099432a9ac5a8b6618dc3892')
+sha256sums=('c5fc7620f74a54b1717e4aed38aee85dc27a988ad1db7640f28eb63a82ea62d7')
# keep an upgrade path for older installations
PKGEXT='.pkg.tar.gz'
build() {
cd "$srcdir/$pkgname-$pkgver"
+
./configure --prefix=/usr --without-xml2
make
}
@@ -24,7 +25,7 @@ build() {
check() {
cd "$srcdir/$pkgname-$pkgver"
- # currently fails in a minor test involving atime updates (#60)
+ # currently fails on i686 in a minor test involving atime updates (#60)
make check || :
}
diff --git a/testing/libarchive/sparse-file.patch b/testing/libarchive/sparse-file.patch
new file mode 100644
index 000000000..e7d3e473b
--- /dev/null
+++ b/testing/libarchive/sparse-file.patch
@@ -0,0 +1,13 @@
+Index: libarchive/archive_write_set_format_pax.c
+===================================================================
+--- libarchive/archive_write_set_format_pax.c (revision 4094)
++++ libarchive/archive_write_set_format_pax.c (working copy)
+@@ -1647,7 +1647,7 @@
+ return (total);
+
+ p = ((const unsigned char *)buff) + total;
+- ws = s;
++ ws = s - total;
+ if (ws > pax->sparse_list->remaining)
+ ws = pax->sparse_list->remaining;
+
diff --git a/testing/libxcb/PKGBUILD b/testing/libxcb/PKGBUILD
new file mode 100644
index 000000000..f973a828a
--- /dev/null
+++ b/testing/libxcb/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 146773 2012-01-17 13:02:00Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=libxcb
+pkgver=1.8
+pkgrel=1
+pkgdesc="X11 client-side library"
+arch=(i686 x86_64)
+url="http://xcb.freedesktop.org/"
+depends=('xcb-proto>=1.7' 'libxdmcp' 'libxau')
+makedepends=('pkgconfig' 'libxslt' 'python2')
+options=('!libtool')
+license=('custom')
+source=($url/dist/$pkgname-$pkgver.tar.bz2
+ libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('18b76759d5bbb863777f37bf3aec23ebaa31d5be'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/libxcb-1.1-no-pthread-stubs.patch"
+ PYTHON=/usr/bin/python2 ./autogen.sh --prefix=/usr --enable-xinput
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -m755 -d "$pkgdir/usr/share/licenses/$pkgname"
+ install -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/testing/libxcb/libxcb-1.1-no-pthread-stubs.patch b/testing/libxcb/libxcb-1.1-no-pthread-stubs.patch
new file mode 100644
index 000000000..f17de1b1d
--- /dev/null
+++ b/testing/libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -0,0 +1,12 @@
+diff -up libxcb-1.1/configure.ac.pthread-stubs libxcb-1.1/configure.ac
+--- libxcb-1.1/configure.ac.pthread-stubs 2007-11-04 18:17:11.000000000 -0500
++++ libxcb-1.1/configure.ac 2007-11-12 10:27:06.000000000 -0500
+@@ -31,7 +31,7 @@ AC_SUBST(HTML_CHECK_RESULT)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
+-NEEDED="pthread-stubs xau >= 0.99.2"
++NEEDED="xau >= 0.99.2"
+ PKG_CHECK_MODULES(NEEDED, $NEEDED)
+
+ have_xdmcp="no"
diff --git a/testing/linux-lts/PKGBUILD b/testing/linux-lts/PKGBUILD
new file mode 100644
index 000000000..b260ef290
--- /dev/null
+++ b/testing/linux-lts/PKGBUILD
@@ -0,0 +1,273 @@
+# $Id: PKGBUILD 130991 2011-07-09 12:23:51Z thomas $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgbase=linux-lts
+pkgname=('linux-lts' 'linux-lts-headers') # Build stock -ARCH kernel
+# pkgname=linux-custom # Build kernel with a different name
+_kernelname=${pkgname#linux}
+_basekernel=3.0
+pkgver=${_basekernel}.17
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/"
+license=('GPL2')
+makedepends=('xmlto' 'docbook-xsl')
+options=('!strip')
+source=("http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.0.tar.xz"
+ "http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
+ # the main kernel config files
+ 'config' 'config.x86_64'
+ # standard config files for mkinitcpio ramdisk
+ "${pkgname}.preset"
+ 'change-default-console-loglevel.patch'
+ 'i915-fix-ghost-tv-output.patch')
+md5sums=('ecf932280e2441bdd992423ef3d55f8f'
+ 'e86da20888dfcd19b94f5d518329ca25'
+ '516780158b2dcf6791edc062674a1e7a'
+ '5fee953e4746c31eb7ce8890ce2d24de'
+ '21a33df5fba2da2f56e447fb171f02c0'
+ '9d3c56a4b999c8bfbd4018089a62f662'
+ '263725f20c0b9eb9c353040792d644e5')
+
+build() {
+ cd "${srcdir}/linux-${_basekernel}"
+
+ # add upstream patch
+ patch -p1 -i "${srcdir}/patch-${pkgver}"
+
+ # add latest fixes from stable queue, if needed
+ # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
+
+ # Some chips detect a ghost TV output
+ # mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
+ # Arch Linux bug report: FS#19234
+ #
+ # It is unclear why this patch wasn't merged upstream, it was accepted,
+ # then dropped because the reasoning was unclear. However, it is clearly
+ # needed.
+ patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
+
+ # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
+ # remove this when a Kconfig knob is made available by upstream
+ # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
+ patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ cat "${srcdir}/config.x86_64" > ./.config
+ else
+ cat "${srcdir}/config" > ./.config
+ fi
+
+ if [ "${_kernelname}" != "" ]; then
+ sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
+ fi
+
+ # set extraversion to pkgrel
+ sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
+
+ # get kernel version
+ make prepare
+
+ # load configuration
+ # Configure the kernel. Replace the line below with one of your choice.
+ #make menuconfig # CLI menu for configuration
+ #make nconfig # new CLI menu for configuration
+ #make xconfig # X-based configuration
+ #make oldconfig # using old config from previous kernel version
+ # ... or manually edit .config
+
+ ####################
+ # stop here
+ # this is useful to configure the kernel
+ #msg "Stopping build"
+ #return 1
+ ####################
+
+ yes "" | make config
+
+ # build!
+ make ${MAKEFLAGS} bzImage modules
+}
+
+package_linux-lts() {
+ pkgdesc="The Linux Kernel and modules - stable longtime supported kernel package suitable for servers"
+ depends=('coreutils' 'linux-firmware' 'module-init-tools>=3.16' 'mkinitcpio>=0.7')
+ optdepends=('crda: to set the correct wireless channels of your country')
+ provides=('kernel26-lts')
+ conflicts=('kernel26-lts')
+ replaces=('kernel26-lts' 'nouveau-drm-lts')
+ backup=("etc/mkinitcpio.d/${pkgname}.preset")
+ install=${pkgname}.install
+
+ cd "${srcdir}/linux-${_basekernel}"
+
+ KARCH=x86
+
+ # get kernel version
+ _kernver="$(make kernelrelease)"
+
+ mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
+ make INSTALL_MOD_PATH="${pkgdir}" modules_install
+ cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgname}"
+
+ # add vmlinux
+ install -D -m644 vmlinux "${pkgdir}/usr/src/linux-${_kernver}/vmlinux"
+
+ # install fallback mkinitcpio.conf file and preset file for kernel
+ install -D -m644 "${srcdir}/${pkgname}.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
+
+ # set correct depmod command for install
+ sed \
+ -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
+ -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+ -i "${startdir}/${pkgname}.install"
+ sed \
+ -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgname}\"|g" \
+ -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgname}.img\"|g" \
+ -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgname}-fallback.img\"|g" \
+ -i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
+
+ # remove build and source links
+ rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
+ # remove the firmware
+ rm -rf "${pkgdir}/lib/firmware"
+ # gzip -9 all modules to save 100MB of space
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+ # make room for external modules
+ ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
+ # add real version for building modules and running depmod from post_install/upgrade
+ mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
+ echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
+}
+
+package_linux-lts-headers() {
+ pkgdesc="Header files and scripts for building modules for linux longtime supported kernel"
+ provides=('kernel26-lts-headers')
+ conflicts=('kernel26-lts-headers')
+ replaces=('kernel26-lts-headers')
+
+ mkdir -p "${pkgdir}/lib/modules/${_kernver}"
+
+ cd "${pkgdir}/lib/modules/${_kernver}"
+ ln -sf ../../../usr/src/linux-${_kernver} build
+
+ cd "${srcdir}/linux-${_basekernel}"
+ install -D -m644 Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/Makefile"
+ install -D -m644 kernel/Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile"
+ install -D -m644 .config \
+ "${pkgdir}/usr/src/linux-${_kernver}/.config"
+
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
+
+ for i in acpi asm-generic config crypto drm generated linux math-emu \
+ media net pcmcia scsi sound trace video xen; do
+ cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
+ done
+
+ # copy arch includes for external modules
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/x86"
+ cp -a arch/x86/include "${pkgdir}/usr/src/linux-${_kernver}/arch/x86/"
+
+ # copy files necessary for later builds, like nvidia and vmware
+ cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}"
+ cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}"
+
+ # fix permissions on scripts dir
+ chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions"
+
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel"
+
+ cp arch/${KARCH}/Makefile "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+
+ if [ "${CARCH}" = "i686" ]; then
+ cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ fi
+
+ cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel/"
+
+ # add headers for lirc package
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video"
+
+ cp drivers/media/video/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/"
+
+ for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
+ cp -a drivers/media/video/${i}/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
+ done
+
+ # add docbook makefile
+ install -D -m644 Documentation/DocBook/Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
+
+ # add dm headers
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
+ cp drivers/md/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
+
+ # add inotify.h
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/linux"
+ cp include/linux/inotify.h "${pkgdir}/usr/src/linux-${_kernver}/include/linux/"
+
+ # add wireless headers
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
+ cp net/mac80211/*.h "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
+
+ # add dvb headers for external modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/9912
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core"
+ cp drivers/media/dvb/dvb-core/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/"
+ # and...
+ # http://bugs.archlinux.org/task/11194
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
+ cp include/config/dvb/*.h "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
+
+ # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
+ # in reference to:
+ # http://bugs.archlinux.org/task/13146
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ cp drivers/media/dvb/frontends/lgdt330x.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ cp drivers/media/video/msp3400-driver.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+
+ # add dvb headers
+ # in reference to:
+ # http://bugs.archlinux.org/task/20402
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb"
+ cp drivers/media/dvb/dvb-usb/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends"
+ cp drivers/media/dvb/frontends/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners"
+ cp drivers/media/common/tuners/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/"
+
+ # add xfs and shmem for aufs building
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/mm"
+ cp fs/xfs/xfs_sb.h "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h"
+
+ # copy in Kconfig files
+ for i in `find . -name "Kconfig*"`; do
+ mkdir -p "${pkgdir}"/usr/src/linux-${_kernver}/`echo ${i} | sed 's|/Kconfig.*||'`
+ cp ${i} "${pkgdir}/usr/src/linux-${_kernver}/${i}"
+ done
+
+ chown -R root.root "${pkgdir}/usr/src/linux-${_kernver}"
+ find "${pkgdir}/usr/src/linux-${_kernver}" -type d -exec chmod 755 {} \;
+
+ # strip scripts directory
+ find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
+ case "$(file -bi "${binary}")" in
+ *application/x-sharedlib*) # Libraries (.so)
+ /usr/bin/strip ${STRIP_SHARED} "${binary}";;
+ *application/x-archive*) # Libraries (.a)
+ /usr/bin/strip ${STRIP_STATIC} "${binary}";;
+ *application/x-executable*) # Binaries
+ /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
+ esac
+ done
+
+ # remove unneeded architectures
+ rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+}
diff --git a/testing/linux-lts/change-default-console-loglevel.patch b/testing/linux-lts/change-default-console-loglevel.patch
new file mode 100644
index 000000000..63435d84f
--- /dev/null
+++ b/testing/linux-lts/change-default-console-loglevel.patch
@@ -0,0 +1,12 @@
+diff -upr linux-3.0.orig/kernel/printk.c linux-3.0/kernel/printk.c
+--- linux-3.0.orig/kernel/printk.c 2011-07-22 05:17:23.000000000 +0300
++++ linux-3.0/kernel/printk.c 2011-07-27 14:43:07.000000000 +0300
+@@ -58,7 +58,7 @@ void asmlinkage __attribute__((weak)) ea
+
+ /* We show everything that is MORE important than this.. */
+ #define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
+-#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */
++#define DEFAULT_CONSOLE_LOGLEVEL 4 /* anything MORE serious than KERN_DEBUG */
+
+ DECLARE_WAIT_QUEUE_HEAD(log_wait);
+
diff --git a/testing/linux-lts/config b/testing/linux-lts/config
new file mode 100644
index 000000000..5ce7bab60
--- /dev/null
+++ b/testing/linux-lts/config
@@ -0,0 +1,5832 @@
+#
+# Automatically generated make config: don't edit
+# Linux/i386 3.0.17 Kernel Configuration
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_KTIME_SCALAR=y
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="-ARCH"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_THROTTLING=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_X86_32_IRIS=m
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_LGUEST_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_IOMMU_API=y
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_CLEANCACHE=y
+# CONFIG_HIGHPTE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# x86 CPU frequency scaling drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_GX_SUSPMOD=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+CONFIG_OLPC=y
+CONFIG_OLPC_XO1=m
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_TSI57X=y
+CONFIG_RAPIDIO_CPS_XX=y
+CONFIG_RAPIDIO_TSI568=y
+CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI500=y
+CONFIG_RAPIDIO_DEBUG=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+CONFIG_NL80211_TESTMODE=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_PROMTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=m
+CONFIG_OF_NET=y
+CONFIG_OF_SPI=y
+CONFIG_OF_MDIO=m
+CONFIG_OF_PCI=y
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_INTEL_MID_PTI=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+# CONFIG_PCH_PHUB is not set
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+CONFIG_IDE_LEGACY=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_CS5535=m
+CONFIG_BLK_DEV_CS5536=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+
+#
+# Other IDE chipsets support
+#
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=m
+CONFIG_BLK_DEV_ALI14XX=m
+CONFIG_BLK_DEV_DTC2278=m
+CONFIG_BLK_DEV_HT6560B=m
+CONFIG_BLK_DEV_QD65XX=m
+CONFIG_BLK_DEV_UMC8672=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_WINBOND_VLB=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_LOOPBACK_TARGET=m
+# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
+CONFIG_TCM_FC=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_MII=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_SMC9194=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_DUAL_MAC=y
+CONFIG_PCH_GBE=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_BNA=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLAGN=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLWIFI_DEVICE_SVTOOL=y
+CONFIG_IWL_P2P=y
+CONFIG_IWLWIFI_LEGACY=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
+# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_HT=y
+CONFIG_WL12XX_SPI=m
+CONFIG_WL12XX_SDIO=m
+CONFIG_WL12XX_SDIO_TEST=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AB8500_PONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_NOZOMI=m
+# CONFIG_ISI is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+# CONFIG_DEVKMEM is not set
+# CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX3107=m
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_OF_PLATFORM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_IFX6X60=m
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_RAMOOPS=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_PCI=y
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=y
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XILINX=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_BASIC_MMIO_CORE=m
+CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_74X164=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_TEST_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_OLPC=m
+CONFIG_BATTERY_BQ20Z75=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_MAX8903=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_PCF50633=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_ABX500_CORE=y
+CONFIG_EZX_PCAP=y
+CONFIG_AB8500_CORE=y
+# CONFIG_AB8500_DEBUG is not set
+CONFIG_AB8500_GPADC=y
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_DUMMY=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_BQ24022=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_AB8500=y
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Camera sensor devices
+#
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_TCM825X=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_VIA_CAMERA=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_OV9740=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_WL1273=m
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+CONFIG_RADIO_WL128X=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_CXD2820R=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+CONFIG_FB_UDL=m
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_LD9040=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWII_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_FUSB300 is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_EG20T is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_AB8500_USB=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_OF=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_NET5501=m
+CONFIG_LEDS_ALIX2=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_GPIO_OF=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_NFC_DEVICES=y
+CONFIG_PN544_NFC=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_MCE=y
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB8500=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_STAGING=y
+# CONFIG_DIGIEPCA is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_COMPUTONE is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_CXD2099=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+# CONFIG_BRCMFMAC is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_ISA_DRIVERS=m
+CONFIG_COMEDI_ACL7225B=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL725=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCM3730=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS800=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_POC=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+# CONFIG_COMEDI_CB_PCIMDAS is not set
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
+CONFIG_FB_OLPC_DCON=m
+CONFIG_FB_OLPC_DCON_1=y
+CONFIG_FB_OLPC_DCON_1_5=y
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8712_AP=y
+CONFIG_RTS_PSTOR=m
+# CONFIG_RTS_PSTOR_DEBUG is not set
+# CONFIG_TRANZPORT is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_MOUSE=m
+# CONFIG_VME_BUS is not set
+CONFIG_DX_SEP=m
+# CONFIG_IIO is not set
+CONFIG_CS5535_GPIO=m
+CONFIG_XVMALLOC=y
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_ZCACHE=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_FB_SM7XX=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_CRYSTALHD=m
+CONFIG_FB_XGI=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+CONFIG_EASYCAP=m
+CONFIG_EASYCAP_SND=y
+# CONFIG_EASYCAP_OSS is not set
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_SOLO6X10=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_MACH_NO_WESTBRIDGE=y
+CONFIG_ATH6K_LEGACY=m
+CONFIG_AR600x_SD31_XXX=y
+# CONFIG_AR600x_WB31_XXX is not set
+# CONFIG_AR600x_SD32_XXX is not set
+# CONFIG_AR600x_CUSTOM_XXX is not set
+CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
+CONFIG_AR600x_DUAL_ANTENNA=y
+# CONFIG_AR600x_SINGLE_ANTENNA is not set
+# CONFIG_AR600x_BT_QCOM is not set
+# CONFIG_AR600x_BT_CSR is not set
+CONFIG_AR600x_BT_AR3001=y
+CONFIG_ATH6KL_HCI_BRIDGE=y
+CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
+CONFIG_AR600x_BT_RESET_PIN=22
+CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
+CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
+CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_DRM_PSB=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_INTEL_MEI=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO1_RFKILL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_CLKSRC_I8253=y
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+# CONFIG_ISCSI_IBFT_FIND is not set
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_PSTORE=y
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_DEPRECATED is not set
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_LKDTM=m
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FTRACE_NMI_ENTER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_RING_BUFFER=y
+CONFIG_FTRACE_NMI_ENTER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_SCHED_TRACER=y
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_TEST_KSTRTOX=m
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
+# CONFIG_DEBUG_NX_TEST is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_LGUEST=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
diff --git a/testing/linux-lts/config.x86_64 b/testing/linux-lts/config.x86_64
new file mode 100644
index 000000000..55761471c
--- /dev/null
+++ b/testing/linux-lts/config.x86_64
@@ -0,0 +1,5571 @@
+#
+# Automatically generated make config: don't edit
+# Linux/x86_64 3.0.17 Kernel Configuration
+#
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+# CONFIG_KTIME_SCALAR is not set
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="-ARCH"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=64
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_XEN=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=128
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+# CONFIG_XEN_DEBUG is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=7
+CONFIG_X86_CMPXCHG=y
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_API=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_CLEANCACHE=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# x86 CPU frequency scaling drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_XEN=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_INTR_REMAP is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_TSI57X=y
+CONFIG_RAPIDIO_CPS_XX=y
+CONFIG_RAPIDIO_TSI568=y
+CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI500=y
+CONFIG_RAPIDIO_DEBUG=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_IA32_EMULATION=y
+CONFIG_IA32_AOUT=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_HAVE_BPF_JIT=y
+CONFIG_BPF_JIT=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+CONFIG_NL80211_TESTMODE=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_INTEL_MID_PTI=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_LOOPBACK_TARGET=m
+# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
+CONFIG_TCM_FC=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_MII=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_HP100=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_DUAL_MAC=y
+CONFIG_PCH_GBE=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_BNA=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLAGN=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLWIFI_DEVICE_SVTOOL=y
+CONFIG_IWL_P2P=y
+CONFIG_IWLWIFI_LEGACY=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
+# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_HT=y
+CONFIG_WL12XX_SPI=m
+CONFIG_WL12XX_SDIO=m
+CONFIG_WL12XX_SDIO_TEST=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AB8500_PONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_NOZOMI=m
+# CONFIG_ISI is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+# CONFIG_DEVKMEM is not set
+# CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX3107=m
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_IFX6X60=m
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_RAMOOPS=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_OC_TINY=m
+# CONFIG_SPI_PXA2XX_PCI is not set
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XILINX=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_BASIC_MMIO_CORE=m
+CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_74X164=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_TEST_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_BQ20Z75=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_MAX8903=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_XEN_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_PCF50633=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_ABX500_CORE=y
+CONFIG_EZX_PCAP=y
+CONFIG_AB8500_CORE=y
+# CONFIG_AB8500_DEBUG is not set
+CONFIG_AB8500_GPADC=y
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_DUMMY=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_BQ24022=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_AB8500=y
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Camera sensor devices
+#
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_TCM825X=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_VIA_CAMERA=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_OV9740=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_WL1273=m
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+CONFIG_RADIO_WL128X=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_CXD2820R=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+CONFIG_FB_UDL=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_XEN_FBDEV_FRONTEND=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_LD9040=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWII_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_FUSB300 is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_EG20T is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_AB8500_USB=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_NET5501=m
+CONFIG_LEDS_ALIX2=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_NFC_DEVICES=y
+CONFIG_PN544_NFC=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_MCE=y
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB8500=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=m
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_PLATFORM_PCI=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_STAGING=y
+# CONFIG_DIGIEPCA is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_COMPUTONE is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_CXD2099=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+# CONFIG_BRCMFMAC is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8712_AP=y
+CONFIG_RTS_PSTOR=m
+# CONFIG_RTS_PSTOR_DEBUG is not set
+# CONFIG_TRANZPORT is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_MOUSE=m
+# CONFIG_VME_BUS is not set
+CONFIG_DX_SEP=m
+# CONFIG_IIO is not set
+CONFIG_XVMALLOC=y
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_ZCACHE=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_FB_SM7XX=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_CRYSTALHD=m
+CONFIG_FB_XGI=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+CONFIG_EASYCAP=m
+CONFIG_EASYCAP_SND=y
+# CONFIG_EASYCAP_OSS is not set
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_SOLO6X10=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_MACH_NO_WESTBRIDGE=y
+CONFIG_ATH6K_LEGACY=m
+CONFIG_AR600x_SD31_XXX=y
+# CONFIG_AR600x_WB31_XXX is not set
+# CONFIG_AR600x_SD32_XXX is not set
+# CONFIG_AR600x_CUSTOM_XXX is not set
+CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
+CONFIG_AR600x_DUAL_ANTENNA=y
+# CONFIG_AR600x_SINGLE_ANTENNA is not set
+# CONFIG_AR600x_BT_QCOM is not set
+# CONFIG_AR600x_BT_CSR is not set
+CONFIG_AR600x_BT_AR3001=y
+CONFIG_ATH6KL_HCI_BRIDGE=y
+CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
+CONFIG_AR600x_BT_RESET_PIN=22
+CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
+CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
+CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_DRM_PSB=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_INTEL_MEI=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+# CONFIG_ISCSI_IBFT_FIND is not set
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_PSTORE=y
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_DEPRECATED is not set
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_LKDTM=m
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FTRACE_NMI_ENTER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_RING_BUFFER=y
+CONFIG_FTRACE_NMI_ENTER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_SCHED_TRACER=y
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_TEST_KSTRTOX=m
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
diff --git a/testing/linux-lts/i915-fix-ghost-tv-output.patch b/testing/linux-lts/i915-fix-ghost-tv-output.patch
new file mode 100644
index 000000000..3b631361a
--- /dev/null
+++ b/testing/linux-lts/i915-fix-ghost-tv-output.patch
@@ -0,0 +1,26 @@
+Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
+Tested-by: Santi <santi@agolina.net>
+---
+ drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
+index dc83b7a..c8f67bf 100644
+--- a/drivers/gpu/drm/i915/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
+@@ -1267,6 +1267,15 @@
+ DAC_B_0_7_V |
+ DAC_C_0_7_V);
+
++ /*
++ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
++ * the TV is misdetected. This is hardware requirement.
++ */
++ if (IS_GM45(dev))
++ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
++ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
++
++
+ I915_WRITE(TV_CTL, tv_ctl);
+ I915_WRITE(TV_DAC, tv_dac);
+ POSTING_READ(TV_DAC);
diff --git a/testing/linux-lts/linux-lts.install b/testing/linux-lts/linux-lts.install
new file mode 100644
index 000000000..00c9ff692
--- /dev/null
+++ b/testing/linux-lts/linux-lts.install
@@ -0,0 +1,62 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+KERNEL_NAME=-lts
+KERNEL_VERSION=3.0.17-1-lts
+
+post_install () {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod ${KERNEL_VERSION}
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux${KERNEL_NAME}
+
+ # compat symlinks for the official kernels only
+ if [ -z "${KERNEL_NAME}" -o "${KERNEL_NAME}" = "-lts" ]; then
+ loaders="$(find /boot -name syslinux.cfg -or -name extlinux.conf -or -name grub.cfg -or -name menu.lst)"
+ [ -f /etc/lilo.conf ] && loaders="$loaders /etc/lilo.conf"
+ if [ -n "${loaders}" ] && grep -q -e vmlinuz26 -e kernel26.img -e kernel26-fallback.img $loaders; then
+ # add compat symlinks for the initramfs images
+ ln -sf initramfs-linux${KERNEL_NAME}.img boot/kernel26${KERNEL_NAME}.img
+ ln -sf initramfs-linux${KERNEL_NAME}-fallback.img \
+ boot/kernel26${KERNEL_NAME}-fallback.img
+ ln -sf vmlinuz-linux${KERNEL_NAME} /boot/vmlinuz26${KERNEL_NAME}
+ fi
+ fi
+}
+
+post_upgrade() {
+ pacman -Q grub &>/dev/null
+ hasgrub=$?
+ pacman -Q grub2 &>/dev/null
+ hasgrub2=$?
+ pacman -Q lilo &>/dev/null
+ haslilo=$?
+ # reminder notices
+ if [ $haslilo -eq 0 ]; then
+ echo ">>>"
+ if [ $hasgrub -eq 0 -o $hasgrub2 -eq 0 ]; then
+ echo ">>> If you use the LILO bootloader, you should run 'lilo' before rebooting."
+ else
+ echo ">>> You appear to be using the LILO bootloader. You should run"
+ echo ">>> 'lilo' before rebooting."
+ fi
+ echo ">>>"
+ fi
+
+ if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
+ echo "WARNING: /boot appears to be a separate partition but is not mounted."
+ fi
+
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod ${KERNEL_VERSION}
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux${KERNEL_NAME}
+}
+
+post_remove() {
+ # also remove the compat symlinks
+ rm -f boot/{initramfs-linux,kernel26}${KERNEL_NAME}.img
+ rm -f boot/{initramfs-linux,kernel26}${KERNEL_NAME}-fallback.img
+}
diff --git a/testing/linux-lts/linux-lts.preset b/testing/linux-lts/linux-lts.preset
new file mode 100644
index 000000000..fae522f39
--- /dev/null
+++ b/testing/linux-lts/linux-lts.preset
@@ -0,0 +1,14 @@
+# mkinitcpio preset file for the 'linux' package
+
+ALL_config="/etc/mkinitcpio.conf"
+ALL_kver="/boot/vmlinuz-linux-lts"
+
+PRESETS=('default' 'fallback')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/initramfs-linux-lts.img"
+#default_options=""
+
+#fallback_config="/etc/mkinitcpio.conf"
+fallback_image="/boot/initramfs-linux-fallback-lts.img"
+fallback_options="-S autodetect"
diff --git a/testing/mail-notification/PKGBUILD b/testing/mail-notification/PKGBUILD
new file mode 100644
index 000000000..1ed5fa7f0
--- /dev/null
+++ b/testing/mail-notification/PKGBUILD
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 146622 2012-01-14 12:24:17Z ibiru $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=mail-notification
+pkgver=5.4
+pkgrel=10
+pkgdesc="Tray icon application that informs you if you have new mail"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/mailnotify/"
+license=('GPL3' 'FDL')
+depends=('gmime' 'libnotify' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnome')
+makedepends=('gob2' 'intltool' 'evolution' 'gnome-doc-utils' 'gtk2')
+options=('!libtool' '!emptydirs')
+install=mail-notification.install
+source=(http://savannah.nongnu.org/download/mailnotify-orig/${pkgname}-${pkgver}.tar.bz2
+ dont-update-cache.patch
+ remove-ubuntu-special-case.patch
+ mail-notification-5.4-evolution.patch
+ mail-notification-5.4-sasl_encode64.patch
+ mail-notification-5.4-evolution-gtkhtml.patch
+ mail-notification-5.4-camel_headers.patch
+ mail-notification-5.4-icons.patch
+ mail-notification-5.4-weak.patch
+ mail-notification-5.4-popup-attach.patch
+ mail-notification-5.4-kde-trayicon.patch
+ mail-notification-5.4-evolution-3-0-support.patch
+ mail-notification-5.4-gtk3-support.patch
+ mail-notification-5.4-add-fallback-icon.patch
+ mail-notification-5.4-gmime.patch
+ mail-notification-5.4-libx11.patch)
+md5sums=('c8dc33a61251acb5474e56eab6b18f43'
+ '6007bc30e789dab0a8282038e0335eb9'
+ '9cadd61bbd9c324b2916ec980231e0f2'
+ 'aa6f80820899f904c25988772f70ade9'
+ '125513ed059f62469377eb0ab794dbed'
+ 'c595a3962ab13a65be24a941e28faa9c'
+ 'f79939f593b2e8659e302df72c2b54b1'
+ '244b7ef2aec7656e8df390be87c10e2b'
+ '31bde95dfd39449959d8b3316f91429c'
+ 'cdead6a88d1779f69a5f40dc75d5cb84'
+ 'c7991b831834724eddc1c6802c3e06a6'
+ 'b370b1085ebb2814bd5d345a6d2b45ea'
+ '1ba948759110787dd57097cff157b75a'
+ '09df61b4dc29c676ac81ff9054e840ac'
+ '0944695e9b9b30f39028f85c83c6a7e2'
+ 'c3f643ef16aab3b4fe9ff5b333bff41a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i "${srcdir}/dont-update-cache.patch"
+ patch -Np0 -i "${srcdir}/remove-ubuntu-special-case.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-sasl_encode64.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-evolution-gtkhtml.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-camel_headers.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-icons.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-weak.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-popup-attach.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-kde-trayicon.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-evolution-3-0-support.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-gtk3-support.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-add-fallback-icon.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-gmime.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-libx11.patch"
+
+ gtk-builder-convert ui/mailbox-properties-dialog.glade ui/mailbox-properties-dialog.ui
+ gtk-builder-convert ui/properties-dialog.glade ui/properties-dialog.ui
+
+ ./jb configure prefix=/usr sysconfdir=/etc \
+ localstatedir=/var destdir="${pkgdir}" \
+ gconf-schemas-dir=/etc/gconf/schemas install-gconf-schemas=no \
+ cflags="${CFLAGS}" cppflags="${CXXFLAGS}" ldflags="${LDFLAGS}" \
+ library-mode=0755
+ ./jb build
+ GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 ./jb install
+
+ rm -f "${pkgdir}/usr/share/mail-notification/"*.glade
+ install -m644 ui/mailbox-properties-dialog.ui "${pkgdir}/usr/share/mail-notification/"
+ install -m644 ui/properties-dialog.ui "${pkgdir}/usr/share/mail-notification/"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas --domain mail-notification ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/testing/mail-notification/dont-update-cache.patch b/testing/mail-notification/dont-update-cache.patch
new file mode 100644
index 000000000..81216835e
--- /dev/null
+++ b/testing/mail-notification/dont-update-cache.patch
@@ -0,0 +1,22 @@
+--- jbsrc/jb.c.~1~ 2008-03-20 16:53:02.000000000 +0100
++++ jbsrc/jb.c 2008-03-26 20:51:45.641363619 +0100
+@@ -327,7 +327,6 @@
+ jb_package_add_resources (void)
+ {
+ JBGroup *group;
+- JBRule *rule;
+ JBObject *object;
+
+ if (jb_variable_get_bool("compile-warnings"))
+@@ -362,11 +361,6 @@
+ if (jb_variable_get_bool("hotmail"))
+ jb_group_add_data_file(group, "hotmail.png", "$pkgdatadir");
+
+- rule = jb_rule_new();
+- jb_rule_set_install_message(rule, "updating the GTK+ icon cache");
+- jb_rule_add_install_command(rule, "-gtk-update-icon-cache -f -t $datadir/icons/hicolor");
+- jb_group_add_resource(group, JB_GROUP_RESOURCE(rule));
+-
+ jb_group_add(group);
+
+ /*** data ******************************************************************/
diff --git a/testing/mail-notification/mail-notification-5.4-add-fallback-icon.patch b/testing/mail-notification/mail-notification-5.4-add-fallback-icon.patch
new file mode 100644
index 000000000..41c28e870
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-add-fallback-icon.patch
@@ -0,0 +1,16 @@
+--- src/mn-stock.c.orig 2011-02-17 17:42:39.886767087 +0100
++++ src/mn-stock.c 2011-02-17 17:49:37.415541177 +0100
+@@ -86,6 +86,13 @@
+ gtk_icon_source_set_icon_name(icon_source, icons[i].icon_name);
+ gtk_icon_set_add_source(icon_set, icon_source);
+ gtk_icon_source_free(icon_source);
++
++ /* Add a fallback icon */
++ icon_source = gtk_icon_source_new();
++ gtk_icon_source_set_icon_name(icon_source, "mail-notification");
++ gtk_icon_source_set_state_wildcarded(icon_source, TRUE);
++ gtk_icon_set_add_source(icon_set, icon_source);
++ gtk_icon_source_free(icon_source);
+ }
+ else if (icons[i].source_stock_id)
+ {
diff --git a/testing/mail-notification/mail-notification-5.4-camel_headers.patch b/testing/mail-notification/mail-notification-5.4-camel_headers.patch
new file mode 100644
index 000000000..861e3d215
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-camel_headers.patch
@@ -0,0 +1,36 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-message.c mail-notification-5.4-OK/build/src/mn-evolution-message.c
+--- mail-notification-5.4/build/src/mn-evolution-message.c 2008-05-22 19:47:51.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-message.c 2010-05-04 18:13:31.000000000 +0400
+@@ -25,7 +25,7 @@
+ #line 24 "src/mn-evolution-message.gob"
+
+ #include <glib/gi18n.h>
+-#include <camel/camel-folder-summary.h>
++#include <camel/camel.h>
+ #include "mn-evolution-mailbox.h"
+ #include "mn-message-private.h"
+ #include "mn-evolution-client.h"
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-server.c mail-notification-5.4-OK/build/src/mn-evolution-server.c
+--- mail-notification-5.4/build/src/mn-evolution-server.c 2010-05-04 18:12:56.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-server.c 2010-05-04 18:13:39.000000000 +0400
+@@ -28,7 +28,7 @@
+ #include <libintl.h>
+ #include <gobject/gvaluecollector.h>
+ #include <libedataserver/eds-version.h>
+-#include <camel/camel-folder.h>
++#include <camel/camel.h>
+ #if EDS_CHECK_VERSION(2,29,0)
+ #include <shell/e-shell.h>
+ #include <mail/e-mail-browser.h>
+diff -Nrbu mail-notification-5.4/src/mn-evolution-plugin.c mail-notification-5.4-OK/src/mn-evolution-plugin.c
+--- mail-notification-5.4/src/mn-evolution-plugin.c 2010-05-04 18:12:56.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-evolution-plugin.c 2010-05-04 18:13:20.000000000 +0400
+@@ -24,7 +24,7 @@
+ #include <dbus/dbus.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <dbus/dbus-glib-bindings.h>
+-#include <camel/camel-folder.h>
++#include <camel/camel.h>
+ #include <mail/em-event.h>
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
diff --git a/testing/mail-notification/mail-notification-5.4-evolution-3-0-support.patch b/testing/mail-notification/mail-notification-5.4-evolution-3-0-support.patch
new file mode 100644
index 000000000..51938b5fa
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-evolution-3-0-support.patch
@@ -0,0 +1,122 @@
+--- jbsrc/lib/src/extras/jb-evolution-plugin.c.evolution30 2011-02-02 00:09:33.945696868 +0100
++++ jbsrc/lib/src/extras/jb-evolution-plugin.c 2011-02-02 00:28:09.096275028 +0100
+@@ -41,7 +41,7 @@
+ if (! minversion)
+ minversion = "2.12";
+
+- packages = g_strdup_printf("evolution-plugin >= %s libgtkhtml-3.15 gtkhtml-editor-3.14", minversion);
++ packages = g_strdup_printf("evolution-plugin-3.0 >= %s libgtkhtml-4.0 gtkhtml-editor-4.0", minversion);
+ result = jb_check_packages("Evolution", "evolution-plugin", packages);
+ g_free(packages);
+
+@@ -53,7 +53,7 @@
+ char *plugindir;
+
+ jb_message_checking("for the Evolution plugin directory");
+- plugindir = jb_get_package_variable("evolution-plugin", "plugindir");
++ plugindir = jb_get_package_variable("evolution-plugin-3.0", "plugindir");
+ jb_message_result_string(plugindir ? plugindir : "not found");
+
+ if (! plugindir)
+--- src/mn-evolution-plugin.c.orig 2011-02-09 00:07:37.422002566 +0100
++++ src/mn-evolution-plugin.c 2011-02-09 00:12:43.652678682 +0100
+@@ -25,6 +25,7 @@
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <dbus/dbus-glib-bindings.h>
+ #include <camel/camel.h>
++#include <libedataserver/eds-version.h>
+ #include <mail/em-event.h>
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
+@@ -240,7 +241,11 @@
+ EMEventTargetFolder *folder)
+ {
+ if (evo_server)
++#if EDS_CHECK_VERSION(3,1,0)
++ mn_evolution_server_folder_changed(evo_server, e_mail_folder_uri_build(folder->store, folder->folder_name));
++#else
+ mn_evolution_server_folder_changed(evo_server, folder->uri);
++#endif
+ }
+
+ void
+@@ -249,10 +250,16 @@
+ {
+ if (evo_server)
+ {
+- char *url;
++#if EDS_CHECK_VERSION(2,91,0)
++ const char *url = camel_folder_get_uri(message->folder);
++#else
++ char *url = mail_tools_folder_to_url(message->folder);
++#endif
+
+- url = mail_tools_folder_to_url(message->folder);
+ mn_evolution_server_message_reading(evo_server, url);
++
++#if !EDS_CHECK_VERSION(2,91,0)
+ g_free(url);
++#endif
+ }
+ }
+--- build/src/mn-evolution-server.c.orig 2011-02-09 00:17:38.850944227 +0100
++++ build/src/mn-evolution-server.c 2011-02-09 22:21:54.155346478 +0100
+@@ -496,11 +496,15 @@
+
+ if (! folder)
+ {
+- folder = mail_tool_uri_to_folder(uri, 0,
+ #if EDS_CHECK_VERSION(2,91,0)
+- NULL,
++ static EMailSession * session = NULL;
++ if (!session)
++ session = e_mail_session_new();
++
++ folder = e_mail_session_uri_to_folder_sync(session, uri, 0, NULL, NULL);
++#else
++ folder = mail_tool_uri_to_folder(uri, 0, NULL);
+ #endif
+- NULL);
+ if (folder)
+ self_cache_folder(uri, folder);
+ else
+@@ -677,7 +681,12 @@
+ folder = self_lookup_folder(folder_uri, err);
+ if (folder)
+ {
++#if EDS_CHECK_VERSION(3,1,0)
++ *ret = g_strdup(camel_folder_get_display_name(folder));
++#else
+ *ret = g_strdup(camel_folder_get_name(folder));
++#endif
++
+ #if EDS_CHECK_VERSION(2,31,0)
+ g_object_unref(folder);
+ #else
+@@ -725,8 +734,12 @@
+ shell = e_shell_get_default ();
+ shell_backend = e_shell_get_backend_by_name (shell, "mail");
+
+- browser = e_mail_browser_new (shell_backend);
++ browser = e_mail_browser_new (E_MAIL_BACKEND(shell_backend));
++#if EDS_CHECK_VERSION(3,1,0)
++ e_mail_reader_set_folder (E_MAIL_READER (browser), folder);
++#else
+ e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri);
++#endif
+ e_mail_reader_set_message (E_MAIL_READER (browser), message_uid);
+ gtk_widget_show (browser);
+ #else
+--- build/src/mn-evolution-folder-tree-server.c.orig 2011-06-17 22:01:49.226886994 +0200
++++ build/src/mn-evolution-folder-tree-server.c 2011-06-18 00:34:23.046889847 +0200
+@@ -444,7 +444,9 @@
+ {
+ #line 61 "src/mn-evolution-folder-tree-server.gob"
+
+-#if EDS_CHECK_VERSION(2,91,0)
++#if EDS_CHECK_VERSION(3,1,0)
++ selfp->tree = em_folder_tree_new(NULL, NULL);
++#elif EDS_CHECK_VERSION(2,91,0)
+ selfp->session = e_mail_session_new();
+ selfp->tree = em_folder_tree_new(selfp->session);
+ #elif EDS_CHECK_VERSION(2,29,0)
diff --git a/testing/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch b/testing/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch
new file mode 100644
index 000000000..283ef36d6
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-evolution-gtkhtml.patch
@@ -0,0 +1,12 @@
+diff -Nrbu mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c mail-notification-5.4-OK/jbsrc/lib/src/extras/jb-evolution-plugin.c
+--- mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c 2008-04-27 18:47:43.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/lib/src/extras/jb-evolution-plugin.c 2009-08-21 19:48:22.000000000 +0400
+@@ -41,7 +41,7 @@
+ if (! minversion)
+ minversion = "2.12";
+
+- packages = g_strdup_printf("evolution-plugin >= %s", minversion);
++ packages = g_strdup_printf("evolution-plugin >= %s libgtkhtml-3.15 gtkhtml-editor-3.14", minversion);
+ result = jb_check_packages("Evolution", "evolution-plugin", packages);
+ g_free(packages);
+
diff --git a/testing/mail-notification/mail-notification-5.4-evolution.patch b/testing/mail-notification/mail-notification-5.4-evolution.patch
new file mode 100644
index 000000000..87514c22d
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-evolution.patch
@@ -0,0 +1,244 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c
+--- mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c 2008-05-22 19:47:48.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c 2010-10-12 16:50:15.000000000 +0400
+@@ -25,7 +25,10 @@
+ #line 24 "src/mn-evolution-folder-tree-server.gob"
+
+ #include <dbus/dbus.h>
++#include <libedataserver/eds-version.h>
++#if !EDS_CHECK_VERSION(2,29,0)
+ #include <mail/mail-component.h>
++#endif
+ #include <mail/em-folder-tree.h>
+ #include "mn-evolution-plugin.h"
+ #include "mn-evolution.h"
+@@ -441,10 +444,17 @@
+ {
+ #line 61 "src/mn-evolution-folder-tree-server.gob"
+
++#if EDS_CHECK_VERSION(2,91,0)
++ selfp->session = e_mail_session_new();
++ selfp->tree = em_folder_tree_new(selfp->session);
++#elif EDS_CHECK_VERSION(2,29,0)
++ selfp->tree = em_folder_tree_new();
++#else
+ EMFolderTreeModel *model;
+
+ model = mail_component_peek_tree_model(mail_component_peek());
+ selfp->tree = em_folder_tree_new_with_model(model);
++#endif
+
+ selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id);
+ gtk_container_add(GTK_CONTAINER(selfp->plug), selfp->tree);
+@@ -469,6 +479,10 @@
+ {
+ #line 80 "src/mn-evolution-folder-tree-server.gob"
+
++#if EDS_CHECK_VERSION(2,91,0)
++ g_object_unref(selfp->session);
++ selfp->session = NULL;
++#endif
+ g_signal_handlers_disconnect_by_func(selfp->plug, self_plug_destroy_h, self);
+ }}
+ #line 475 "mn-evolution-folder-tree-server.c"
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-server.c mail-notification-5.4-OK/build/src/mn-evolution-server.c
+--- mail-notification-5.4/build/src/mn-evolution-server.c 2008-05-22 19:47:48.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-server.c 2010-10-12 16:50:40.000000000 +0400
+@@ -27,12 +27,22 @@
+ #include <stdio.h>
+ #include <libintl.h>
+ #include <gobject/gvaluecollector.h>
++#include <libedataserver/eds-version.h>
+ #include <camel/camel-folder.h>
++#if EDS_CHECK_VERSION(2,29,0)
++#include <shell/e-shell.h>
++#include <mail/e-mail-browser.h>
++#else
+ #include <mail/em-folder-view.h>
+ #include <mail/em-format.h>
+ #include <mail/em-message-browser.h>
++#endif
+ #include <mail/em-utils.h>
++#if EDS_CHECK_VERSION(2,91,0)
++#include <mail/e-mail-session.h>
++#else
+ #include <mail/mail-session.h>
++#endif
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
+ #include "mn-evolution-folder-tree-server.h"
+@@ -391,10 +397,18 @@
+ info = g_new0(FolderInfo, 1);
+ info->uri = g_strdup(uri);
+ info->folder = folder;
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_ref(folder);
++#else
+ camel_object_ref(folder);
++#endif
+
+ /* uncache the folder when it is deleted */
++#if EDS_CHECK_VERSION(2,31,0)
++ g_signal_connect(folder, "deleted", G_CALLBACK(self_folder_deleted_cb), info);
++#else
+ camel_object_hook_event(folder, "deleted", self_folder_deleted_cb, info);
++#endif
+
+ g_hash_table_replace(folders, info->uri, info);
+ }}
+@@ -413,8 +427,13 @@
+ {
+ #line 105 "src/mn-evolution-server.gob"
+
++#if EDS_CHECK_VERSION(2,31,0)
++ g_signal_handlers_disconnect_by_func(info->folder, self_folder_deleted_cb, info);
++ g_object_unref(info->folder);
++#else
+ camel_object_unhook_event(info->folder, "deleted", self_folder_deleted_cb, info);
+ camel_object_unref(info->folder);
++#endif
+ g_free(info->uri);
+ g_free(info);
+ }}
+@@ -461,7 +480,11 @@
+ if (info)
+ {
+ folder = info->folder;
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_ref(folder);
++#else
+ camel_object_ref(folder);
++#endif
+ }
+ }
+ else
+@@ -469,7 +492,11 @@
+
+ if (! folder)
+ {
+- folder = mail_tool_uri_to_folder(uri, 0, NULL);
++ folder = mail_tool_uri_to_folder(uri, 0,
++#if EDS_CHECK_VERSION(2,91,0)
++ NULL,
++#endif
++ NULL);
+ if (folder)
+ self_cache_folder(uri, folder);
+ else
+@@ -595,14 +622,23 @@
+
+ for (i = 0; i < summary->len; i++)
+ {
++#if EDS_CHECK_VERSION(2,23,5)
++ char *uid = summary->pdata[i];
++ CamelMessageInfo *info = camel_folder_get_message_info(folder, uid);
++#else
+ CamelMessageInfo *info = summary->pdata[i];
++#endif
+
+ if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
+ g_ptr_array_add(*ret, self_camel_message_info_to_dbus_struct(info));
+ }
+
+ camel_folder_free_summary(folder, summary);
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -638,7 +674,11 @@
+ if (folder)
+ {
+ *ret = g_strdup(camel_folder_get_name(folder));
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -673,6 +713,19 @@
+ folder = self_lookup_folder(folder_uri, err);
+ if (folder)
+ {
++#if EDS_CHECK_VERSION(2,29,0)
++ EShell *shell;
++ EShellBackend *shell_backend;
++ GtkWidget *browser;
++
++ shell = e_shell_get_default ();
++ shell_backend = e_shell_get_backend_by_name (shell, "mail");
++
++ browser = e_mail_browser_new (shell_backend);
++ e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri);
++ e_mail_reader_set_message (E_MAIL_READER (browser), message_uid);
++ gtk_widget_show (browser);
++#else
+ GtkWidget *browser;
+
+ /* modelled after Evolution's handleuri_got_folder() */
+@@ -683,8 +736,13 @@
+ em_folder_view_set_folder((EMFolderView *) browser, folder, folder_uri);
+ em_folder_view_set_message((EMFolderView *) browser, message_uid, FALSE);
+ gtk_widget_show(((EMMessageBrowser *) browser)->window);
++#endif
+
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+ }
+
+ GDK_THREADS_LEAVE();
+@@ -721,7 +779,11 @@
+ if (folder)
+ {
+ status = camel_folder_set_message_flags(folder, message_uid, flags, flags);
++#if EDS_CHECK_VERSION(2,31,0)
++ g_object_unref(folder);
++#else
+ camel_object_unref(folder);
++#endif
+
+ if (! status)
+ g_set_error(err,
+diff -Nrbu mail-notification-5.4/src/mn-evolution-plugin.c mail-notification-5.4-OK/src/mn-evolution-plugin.c
+--- mail-notification-5.4/src/mn-evolution-plugin.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-evolution-plugin.c 2010-10-12 16:50:15.000000000 +0400
+@@ -204,7 +204,7 @@
+ }
+
+ int
+-e_plugin_lib_enable (EPluginLib *ep, int enable)
++e_plugin_lib_enable (EPlugin *ep, int enable)
+ {
+ static gboolean enabled = FALSE;
+ GError *err = NULL;
+--- mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h.orig 2010-11-13 13:55:01.571934066 +0100
++++ mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h 2010-11-13 13:56:07.019487418 +0100
+@@ -4,6 +4,10 @@
+ #define __MN_EVOLUTION_FOLDER_TREE_SERVER_PRIVATE_H__
+
+ #include "mn-evolution-folder-tree-server.h"
++#include <libedataserver/eds-version.h>
++#if EDS_CHECK_VERSION(2,91,0)
++#include <mail/e-mail-session.h>
++#endif
+
+ #ifdef __cplusplus
+ extern "C" {
+@@ -23,6 +23,9 @@
+ #line 41 "src/mn-evolution-folder-tree-server.gob"
+ GtkWidget * tree;
+ #line 26 "mn-evolution-folder-tree-server-private.h"
++#if EDS_CHECK_VERSION(2,91,0)
++ EMailSession * session;
++#endif
+ };
+
+ #ifdef __cplusplus
diff --git a/testing/mail-notification/mail-notification-5.4-gmime.patch b/testing/mail-notification/mail-notification-5.4-gmime.patch
new file mode 100644
index 000000000..5f516a46b
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-gmime.patch
@@ -0,0 +1,63 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:28.000000000 +0300
+@@ -265,7 +265,7 @@
+ mime_message = g_mime_parser_construct_message(parser);
+ if (mime_message)
+ {
+- if (g_mime_message_get_header(mime_message, "X-Mozilla-Status"))
++ if (g_mime_object_get_header(mime_message, "X-Mozilla-Status"))
+ {
+ #if WITH_MOZILLA
+ type = MN_TYPE_MOZILLA_MAILBOX_BACKEND;
+diff -Nrbu mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:46:47.000000000 +0300
+@@ -167,7 +167,7 @@
+
+ const char *header;
+
+- header = g_mime_message_get_header(mime_message, header_name);
++ header = g_mime_object_get_header(mime_message, header_name);
+ if (header && mn_str_ishex(header))
+ return strtol(header, NULL, 16);
+ else
+diff -Nrbu mail-notification-5.4/jbsrc/jb.c mail-notification-5.4-OK/jbsrc/jb.c
+--- mail-notification-5.4/jbsrc/jb.c 2008-05-22 19:47:04.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/jb.c 2008-12-23 14:43:09.000000000 +0300
+@@ -166,7 +166,7 @@
+ jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
+ jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
+
+- jb_check_packages_for_options("GMime", "gmime", "gmime-2.0 >= 2.2.7",
++ jb_check_packages_for_options("GMime", "gmime", "gmime-2.6",
+ "hotmail",
+ "imap",
+ "maildir",
+diff -Nrbu mail-notification-5.4/src/mn-message-mime.c mail-notification-5.4-OK/src/mn-message-mime.c
+--- mail-notification-5.4/src/mn-message-mime.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-message-mime.c 2008-12-23 14:46:35.000000000 +0300
+@@ -33,12 +33,12 @@
+ g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), FALSE);
+
+ /* SpamAssassin */
+- spam = g_mime_message_get_header(mime_message, "X-Spam-Status");
++ spam = g_mime_object_get_header(mime_message, "X-Spam-Status");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+ /* bogofilter */
+- spam = g_mime_message_get_header(mime_message, "X-Bogosity");
++ spam = g_mime_object_get_header(mime_message, "X-Bogosity");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+@@ -89,7 +89,7 @@
+ {
+ const char *status;
+
+- status = g_mime_message_get_header(mime_message, "Status");
++ status = g_mime_object_get_header(mime_message, "Status");
+ if (status && strchr(status, 'R'))
+ return NULL; /* the message was read */
+ else if (status && strchr(status, 'O'))
diff --git a/testing/mail-notification/mail-notification-5.4-gtk3-support.patch b/testing/mail-notification/mail-notification-5.4-gtk3-support.patch
new file mode 100644
index 000000000..6a29f8622
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-gtk3-support.patch
@@ -0,0 +1,1416 @@
+--- build/src/mn-dialog.c.orig 2011-02-02 23:08:09.816659245 +0100
++++ build/src/mn-dialog.c 2011-02-02 23:09:16.988113774 +0100
+@@ -106,8 +106,7 @@
+ #line 27 "src/mn-dialog.gob"
+
+ gtk_container_set_border_width(GTK_CONTAINER(self), 5);
+- gtk_dialog_set_has_separator(GTK_DIALOG(self), FALSE);
+- gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(self)->vbox), 2);
++ gtk_box_set_spacing(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(self))), 2);
+
+ #line 113 "mn-dialog.c"
+ }
+--- jbsrc/jb.c.orig 2011-02-02 23:40:33.567924712 +0100
++++ jbsrc/jb.c 2011-02-02 23:39:39.680803618 +0100
+@@ -163,7 +163,7 @@
+ {
+ jb_check_glibc();
+
+- jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
++ jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-3.0 libgnome-2.0 >= 2.14.0 gnome-vfs-2.0 libxml-2.0 libnotify >= 0.4.1");
+ jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
+
+ jb_check_packages_for_options("GMime", "gmime", "gmime-2.6",
+--- build/src/mn-file-chooser-button.c.orig 2011-02-02 23:38:01.503049512 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-02 23:38:16.988222034 +0100
+@@ -358,7 +358,7 @@
+ g_signal_connect(selfp->dialog, "response", G_CALLBACK(self_response_h), self);
+ }
+
+- if (! GTK_WIDGET_VISIBLE(selfp->dialog))
++ if (! gtk_widget_get_visible(selfp->dialog))
+ {
+ GtkWindow *parent;
+
+--- build/src/mn-sound-player.c.orig 2011-02-02 23:55:02.436500397 +0100
++++ build/src/mn-sound-player.c 2011-02-02 23:55:09.125141055 +0100
+@@ -27,7 +27,7 @@
+ #include <sys/types.h>
+ #include <signal.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-conf.h"
+ #include "mn-locked-callback.h"
+ #include "mn-util.h"
+--- build/src/mn-file-chooser-button.c.orig 2011-02-02 23:55:21.857457045 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-02 23:55:30.422996901 +0100
+@@ -25,7 +25,7 @@
+ #line 39 "src/mn-file-chooser-button.gob"
+
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+
+ #line 32 "mn-file-chooser-button.c"
+--- build/src/mn-message.c.orig 2011-02-02 23:55:41.160420099 +0100
++++ build/src/mn-message.c 2011-02-02 23:55:47.755065850 +0100
+@@ -26,7 +26,7 @@
+
+ #include <errno.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include <libgnomevfs/gnome-vfs.h>
+ #include "mn-conf.h"
+ #include "mn-util.h"
+--- build/src/mn-file-chooser-button.c.orig 2011-02-03 00:15:16.178407712 +0100
++++ build/src/mn-file-chooser-button.c 2011-02-03 00:18:17.865681563 +0100
+@@ -463,6 +463,7 @@
+
+ GDK_THREADS_ENTER();
+
++#if 0
+ if (results)
+ {
+ GnomeVFSGetFileInfoResult *result = results->data;
+@@ -494,6 +495,7 @@
+ }
+ }
+ }
++#endif
+
+ selfp->async_handle = NULL;
+ g_object_unref(self);
+--- build/src/mn-evolution-folder-tree-server.c.orig 2011-02-07 20:17:09.574274620 +0100
++++ build/src/mn-evolution-folder-tree-server.c 2011-02-07 20:23:25.196053994 +0100
+@@ -25,6 +25,7 @@
+ #line 24 "src/mn-evolution-folder-tree-server.gob"
+
+ #include <dbus/dbus.h>
++#include <gtk/gtkx.h>
+ #include <libedataserver/eds-version.h>
+ #if !EDS_CHECK_VERSION(2,29,0)
+ #include <mail/mail-component.h>
+@@ -71,7 +72,7 @@
+ static void mn_evolution_folder_tree_server_finalize (MNEvolutionFolderTreeServer * self);
+ #line 70 "mn-evolution-folder-tree-server.c"
+ #line 84 "src/mn-evolution-folder-tree-server.gob"
+-static void mn_evolution_folder_tree_server_plug_destroy_h (GtkObject * object, gpointer user_data);
++static void mn_evolution_folder_tree_server_plug_destroy_h (GtkWidget * object, gpointer user_data);
+ #line 73 "mn-evolution-folder-tree-server.c"
+ #line 104 "src/mn-evolution-folder-tree-server.gob"
+ static void mn_evolution_folder_tree_server_selected_h (EMFolderTree * tree, const char * full_name, const char * uri, guint32 flags, gpointer user_data);
+@@ -456,7 +457,7 @@
+ selfp->tree = em_folder_tree_new_with_model(model);
+ #endif
+
+- selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id);
++ selfp->plug = gtk_plug_new((Window) selfp->id);
+ gtk_container_add(GTK_CONTAINER(selfp->plug), selfp->tree);
+ gtk_widget_show_all(selfp->plug);
+
+@@ -490,7 +491,7 @@
+
+ #line 84 "src/mn-evolution-folder-tree-server.gob"
+ static void
+-mn_evolution_folder_tree_server_plug_destroy_h (GtkObject * object, gpointer user_data)
++mn_evolution_folder_tree_server_plug_destroy_h (GtkWidget * object, gpointer user_data)
+ {
+ #line 482 "mn-evolution-folder-tree-server.c"
+ #define __GOB_FUNCTION__ "MN:Evolution:Folder:Tree:Server::plug_destroy_h"
+--- src/eggtrayicon.h.orig 2011-02-07 20:25:26.352057350 +0100
++++ src/eggtrayicon.h 2011-02-07 20:27:54.495032920 +0100
+@@ -23,10 +23,9 @@
+ #ifndef __EGG_TRAY_ICON_H__
+ #define __EGG_TRAY_ICON_H__
+
+-#include <gtk/gtkplug.h>
+-#ifdef GDK_WINDOWING_X11
++#include <gtk/gtk.h>
++#include <gtk/gtkx.h>
+ #include <gdk/gdkx.h>
+-#endif
+
+ G_BEGIN_DECLS
+
+--- build/src/mn-mail-icon.c.orig 2011-02-07 20:24:58.971663075 +0100
++++ build/src/mn-mail-icon.c 2011-02-07 20:30:33.714401306 +0100
+@@ -833,11 +833,13 @@
+ #line 239 "src/mn-mail-icon.gob"
+
+ GtkWidget *widget = user_data;
++ GtkAllocation allocation;
+
+- gdk_window_get_origin(widget->window, x, y);
++ gdk_window_get_origin(gtk_widget_get_window(widget), x, y);
++ gtk_widget_get_allocation(widget, &allocation);
+
+- *x += widget->allocation.x;
+- *y += widget->allocation.y;
++ *x += allocation.x;
++ *y += allocation.y;
+
+ if (*y > gdk_screen_get_height(gtk_widget_get_screen(widget)) / 2)
+ {
+@@ -847,7 +849,7 @@
+ *y -= req.height;
+ }
+ else
+- *y += widget->allocation.height;
++ *y += allocation.height;
+
+ *push_in = TRUE;
+ }}
+--- build/src/mn-mail-icon-widget.c.orig 2011-02-07 20:31:19.475816763 +0100
++++ build/src/mn-mail-icon-widget.c 2011-02-07 21:53:48.858814715 +0100
+@@ -64,9 +64,13 @@
+ #line 65 "mn-mail-icon-widget.c"
+ #line 110 "src/mn-mail-icon-widget.gob"
+ static void ___7_mn_mail_icon_widget_size_request (GtkWidget * widget, GtkRequisition * requisition);
++static void
++mn_mail_icon_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width);
++static void
++mn_mail_icon_widget_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height);
+ #line 68 "mn-mail-icon-widget.c"
+ #line 132 "src/mn-mail-icon-widget.gob"
+-static gboolean ___8_mn_mail_icon_widget_expose_event (GtkWidget * widget, GdkEventExpose * event);
++static gboolean ___8_mn_mail_icon_widget_draw (GtkWidget * widget, cairo_t *cr);
+ #line 71 "mn-mail-icon-widget.c"
+ #line 244 "src/mn-mail-icon-widget.gob"
+ static GdkPixbuf * mn_mail_icon_widget_render_icon (MNMailIconWidget * self);
+@@ -187,9 +191,10 @@
+ parent_class = g_type_class_ref (GTK_TYPE_WIDGET);
+
+ #line 110 "src/mn-mail-icon-widget.gob"
+- gtk_widget_class->size_request = ___7_mn_mail_icon_widget_size_request;
++ gtk_widget_class->get_preferred_width = mn_mail_icon_widget_get_preferred_width;
++ gtk_widget_class->get_preferred_height = mn_mail_icon_widget_get_preferred_height;
+ #line 132 "src/mn-mail-icon-widget.gob"
+- gtk_widget_class->expose_event = ___8_mn_mail_icon_widget_expose_event;
++ gtk_widget_class->draw = ___8_mn_mail_icon_widget_draw;
+ #line 194 "mn-mail-icon-widget.c"
+ g_object_class->dispose = ___dispose;
+ g_object_class->finalize = ___finalize;
+@@ -234,7 +239,7 @@
+ {
+ #line 93 "src/mn-mail-icon-widget.gob"
+
+- GTK_WIDGET_SET_FLAGS(self, GTK_NO_WINDOW);
++ gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
+
+ gtk_widget_set_name(GTK_WIDGET(self), "mn-mail-icon");
+
+@@ -457,9 +462,28 @@
+ #undef __GOB_FUNCTION__
+ #undef PARENT_HANDLER
+
++static void
++mn_mail_icon_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
++{
++ GtkRequisition requisition;
++
++ ___7_mn_mail_icon_widget_size_request (widget, &requisition);
++ *minimal_width = *natural_width = requisition.width;
++}
++
++static void
++mn_mail_icon_widget_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
++{
++ GtkRequisition requisition;
++
++ ___7_mn_mail_icon_widget_size_request (widget, &requisition);
++
++ *minimal_height = *natural_height = requisition.height;
++}
++
+ #line 132 "src/mn-mail-icon-widget.gob"
+ static gboolean
+-___8_mn_mail_icon_widget_expose_event (GtkWidget * widget G_GNUC_UNUSED, GdkEventExpose * event)
++___8_mn_mail_icon_widget_draw (GtkWidget * widget G_GNUC_UNUSED, cairo_t *cr)
+ #line 464 "mn-mail-icon-widget.c"
+ #define PARENT_HANDLER(___widget,___event) \
+ ((GTK_WIDGET_CLASS(parent_class)->expose_event)? \
+@@ -472,7 +496,7 @@
+
+ Self *self = SELF(widget);
+
+- if (! GTK_WIDGET_DRAWABLE(widget) || ! selfp->stock_id)
++ if (! gtk_widget_is_drawable(widget) || ! selfp->stock_id)
+ return FALSE;
+
+ if (selfp->is_on)
+@@ -480,23 +504,34 @@
+ int x;
+ int y;
+ GdkRectangle image_area;
++ GtkAllocation allocation;
++ GtkRequisition requisition;
+
+ /* note: widget->requisition is the pixbuf size, see size_request() */
+
+- x = floor(widget->allocation.x + ((widget->allocation.width - widget->requisition.width) * ICON_XALIGN));
+- y = floor(widget->allocation.y + ((widget->allocation.height - widget->requisition.height) * ICON_YALIGN));
++ gtk_widget_get_allocation(widget, &allocation);
++ gtk_widget_get_requisition(widget, &requisition);
++
++ x = floor(allocation.x + ((allocation.width - requisition.width) * ICON_XALIGN));
++ y = floor(allocation.y + ((allocation.height - requisition.height) * ICON_YALIGN));
+
+ image_area.x = x;
+ image_area.y = y;
+- image_area.width = widget->requisition.width;
+- image_area.height = widget->requisition.height;
++ image_area.width = requisition.width;
++ image_area.height = requisition.height;
+
++#if 0
+ if (gdk_rectangle_intersect(&event->area, &image_area, &image_area))
++#endif
+ {
+ GdkPixbuf *pixbuf;
+
+ pixbuf = self_render_icon(self);
++ gdk_cairo_set_source_pixbuf(cr, pixbuf, image_area.x, image_area.y);
++ cairo_move_to(cr, image_area.x - x, image_area.y - y);
++ cairo_paint(cr);
+
++#if 0
+ gdk_draw_pixbuf(widget->window,
+ NULL,
+ pixbuf,
+@@ -509,6 +544,7 @@
+ GDK_RGB_DITHER_NORMAL,
+ 0,
+ 0);
++#endif
+
+ g_object_unref(pixbuf);
+ }
+@@ -523,13 +559,16 @@
+ int box_y;
+ int box_width;
+ int box_height;
++ GtkAllocation allocation;
++
++ gtk_widget_get_allocation(widget, &allocation);
+
+ if (! selfp->count_layout)
+ {
+ const char *size;
+ char *markup;
+
+- if (widget->allocation.height < 32)
++ if (allocation.height < 32)
+ size = "small";
+ else
+ size = "medium";
+@@ -546,17 +585,16 @@
+ box_width = count_rect.width + COUNT_BOX_XPAD * 2;
+ box_height = count_rect.height + COUNT_BOX_YPAD * 2;
+
+- box_x = widget->allocation.x + widget->allocation.width - box_width - COUNT_BOX_XMARGIN;
+- box_y = widget->allocation.y + widget->allocation.height - box_height - COUNT_BOX_YMARGIN;
++ box_x = allocation.x + allocation.width - box_width - COUNT_BOX_XMARGIN;
++ box_y = allocation.y + allocation.height - box_height - COUNT_BOX_YMARGIN;
+
+ count_x = box_x - count_rect.x + COUNT_BOX_XPAD;
+ count_y = box_y - count_rect.y + COUNT_BOX_YPAD;
+
+- gtk_paint_box(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_box(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ GTK_SHADOW_OUT,
+- &event->area,
+ widget,
+ NULL,
+ box_x,
+@@ -564,11 +602,10 @@
+ box_width,
+ box_height);
+
+- gtk_paint_layout(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_layout(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ FALSE,
+- &event->area,
+ widget,
+ NULL,
+ count_x,
+--- build/src/mn-mailbox-properties-dialog.c.orig 2011-02-07 21:57:31.257251776 +0100
++++ build/src/mn-mailbox-properties-dialog.c 2011-02-07 21:56:56.989854854 +0100
+@@ -456,7 +456,7 @@
+ MNMailboxProperties *properties;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+- PKGDATADIR G_DIR_SEPARATOR_S "mailbox-properties-dialog.glade",
++ PKGDATADIR G_DIR_SEPARATOR_S "mailbox-properties-dialog.ui",
+ "notebook",
+ "mn_mailbox_properties_dialog_",
+ "notebook", &self->notebook,
+@@ -1290,7 +1290,7 @@
+ {
+ #line 686 "src/mn-mailbox-properties-dialog.gob"
+
+- if (GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(self)->default_widget))
++ if (gtk_widget_is_sensitive(gtk_window_get_default_widget(GTK_WINDOW(self))))
+ gtk_window_activate_default(GTK_WINDOW(self));
+ else
+ {
+@@ -1313,9 +1313,9 @@
+ if (elem->data == entry)
+ break;
+
+- if (GTK_WIDGET_MAPPED(elem->data)
+- && GTK_WIDGET_VISIBLE(elem->data)
+- && GTK_WIDGET_SENSITIVE(elem->data))
++ if (gtk_widget_get_mapped(elem->data)
++ && gtk_widget_get_visible(elem->data)
++ && gtk_widget_get_sensitive(elem->data))
+ next = elem->data;
+ }
+ while (! next);
+--- build/src/mn-mailbox-view.c.orig 2011-02-07 22:18:49.962462920 +0100
++++ build/src/mn-mailbox-view.c 2011-02-07 23:01:39.990363248 +0100
+@@ -412,23 +412,23 @@
+ binding_set = gtk_binding_set_by_class(class);
+
+ /* Delete removes a row */
+- gtk_binding_entry_add_signal(binding_set, GDK_Delete, 0, "activate-remove", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_KP_Delete, 0, "activate-remove", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Delete, 0, "activate-remove", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_KP_Delete, 0, "activate-remove", 0);
+
+ /* HIG 2.0 cut/copy/paste shortcuts */
+- gtk_binding_entry_add_signal(binding_set, GDK_x, GDK_CONTROL_MASK, "activate-cut", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_c, GDK_CONTROL_MASK, "activate-copy", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_v, GDK_CONTROL_MASK, "activate-paste", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_x, GDK_CONTROL_MASK, "activate-cut", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_c, GDK_CONTROL_MASK, "activate-copy", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_v, GDK_CONTROL_MASK, "activate-paste", 0);
+
+ /* cut/copy/paste shortcuts taken from gtkentry.c */
+- gtk_binding_entry_add_signal(binding_set, GDK_Delete, GDK_SHIFT_MASK, "activate-cut", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_CONTROL_MASK, "activate-copy", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_SHIFT_MASK, "activate-paste", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Delete, GDK_SHIFT_MASK, "activate-cut", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Insert, GDK_CONTROL_MASK, "activate-copy", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK, "activate-paste", 0);
+
+ /* HIG 2.0 properties */
+- gtk_binding_entry_add_signal(binding_set, GDK_Return, GDK_MOD1_MASK, "activate-properties", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
+- gtk_binding_entry_add_signal(binding_set, GDK_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_Return, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
++ gtk_binding_entry_add_signal(binding_set, GDK_KEY_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
+
+ #line 434 "mn-mailbox-view.c"
+ }
+@@ -934,14 +934,13 @@
+ #line 183 "src/mn-mailbox-view.gob"
+
+ GtkSelectionData *data;
+-
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_MAILBOXES].atom);
+ if (data)
+ {
+ GSList *configurations;
+ GSList *l;
+
+- memcpy(&configurations, data->data, data->length);
++ memcpy(&configurations, gtk_selection_data_get_data(data), gtk_selection_data_get_length(data));
+
+ MN_LIST_FOREACH(l, configurations)
+ {
+@@ -962,14 +961,14 @@
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_GNOME_COPIED_FILES].atom);
+ if (data)
+ {
+- if (data->format == 8 && data->length > 0)
++ if (gtk_selection_data_get_format(data) == 8 && gtk_selection_data_get_length(data) > 0)
+ {
+ char *gnome_copied_files;
+ gboolean status;
+ MNGnomeCopiedFilesType type;
+ GSList *uri_list;
+
+- gnome_copied_files = g_strndup(data->data, data->length);
++ gnome_copied_files = g_strndup(gtk_selection_data_get_data(data), gtk_selection_data_get_length(data));
+ status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
+ g_free(gnome_copied_files);
+
+--- build/src/mn-shell.c.orig 2011-02-07 23:02:17.852293679 +0100
++++ build/src/mn-shell.c 2011-02-07 23:04:39.223548403 +0100
+@@ -158,7 +158,7 @@
+ static void mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data);
+ #line 160 "mn-shell.c"
+ #line 499 "src/mn-shell.gob"
+-static void mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data);
++static void mn_shell_icon_destroy_h (GtkWidget * object, gpointer user_data);
+ #line 163 "mn-shell.c"
+ #line 508 "src/mn-shell.gob"
+ static void mn_shell_update_sensitivity (MNShell * self);
+@@ -1006,7 +1006,7 @@
+
+ #line 499 "src/mn-shell.gob"
+ static void
+-mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
++mn_shell_icon_destroy_h (GtkWidget * object, gpointer user_data)
+ {
+ #line 1004 "mn-shell.c"
+ #define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
+--- build/src/mn-text-table.c.orig 2011-02-07 23:05:08.799927792 +0100
++++ build/src/mn-text-table.c 2011-02-07 23:18:06.480056895 +0100
+@@ -69,9 +69,11 @@
+ #line 70 "mn-text-table.c"
+ #line 104 "src/mn-text-table.gob"
+ static void ___4_mn_text_table_size_request (GtkWidget * widget, GtkRequisition * requisition);
++static void mn_text_table_get_preferred_width (GtkWidget * widget, gint * minimal_width, gint * natural_width);
++static void mn_text_table_get_preferred_height (GtkWidget * widget, gint * minimal_height, gint * natural_height);
+ #line 73 "mn-text-table.c"
+ #line 115 "src/mn-text-table.gob"
+-static gboolean ___5_mn_text_table_expose_event (GtkWidget * widget, GdkEventExpose * event);
++static gboolean ___5_mn_text_table_draw (GtkWidget * widget, cairo_t *cr);
+ #line 76 "mn-text-table.c"
+ #line 165 "src/mn-text-table.gob"
+ static void mn_text_table_set_dirty (MNTextTable * self);
+@@ -188,9 +190,10 @@
+ parent_class = g_type_class_ref (GTK_TYPE_WIDGET);
+
+ #line 104 "src/mn-text-table.gob"
+- gtk_widget_class->size_request = ___4_mn_text_table_size_request;
++ gtk_widget_class->get_preferred_width = mn_text_table_get_preferred_width;
++ gtk_widget_class->get_preferred_height = mn_text_table_get_preferred_height;
+ #line 115 "src/mn-text-table.gob"
+- gtk_widget_class->expose_event = ___5_mn_text_table_expose_event;
++ gtk_widget_class->draw = ___5_mn_text_table_draw;
+ #line 257 "src/mn-text-table.gob"
+ c->clear = ___real_mn_text_table_clear;
+ #line 197 "mn-text-table.c"
+@@ -216,7 +219,7 @@
+ {
+ #line 80 "src/mn-text-table.gob"
+
+- GTK_WIDGET_SET_FLAGS(self, GTK_NO_WINDOW);
++ gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
+
+ g_object_connect(self,
+ "swapped-signal::style-set", self_context_changed, self,
+@@ -290,9 +293,29 @@
+ #undef __GOB_FUNCTION__
+ #undef PARENT_HANDLER
+
++static void
++mn_text_table_get_preferred_width (GtkWidget * widget, gint * minimal_width, gint * natural_width)
++{
++ GtkRequisition requisition;
++
++ ___4_mn_text_table_size_request (widget, &requisition);
++
++ *minimal_width = *natural_width = requisition.width;
++}
++
++static void
++mn_text_table_get_preferred_height (GtkWidget * widget, gint * minimal_height, gint * natural_height)
++{
++ GtkRequisition requisition;
++
++ ___4_mn_text_table_size_request (widget, &requisition);
++
++ *minimal_height = *natural_height = requisition.height;
++}
++
+ #line 115 "src/mn-text-table.gob"
+ static gboolean
+-___5_mn_text_table_expose_event (GtkWidget * widget G_GNUC_UNUSED, GdkEventExpose * event)
++___5_mn_text_table_draw (GtkWidget * widget G_GNUC_UNUSED, cairo_t *cr)
+ #line 297 "mn-text-table.c"
+ #define PARENT_HANDLER(___widget,___event) \
+ ((GTK_WIDGET_CLASS(parent_class)->expose_event)? \
+@@ -304,10 +327,14 @@
+ #line 117 "src/mn-text-table.gob"
+
+ Self *self = SELF(widget);
++ GtkAllocation allocation;
+ int i;
+- int y = widget->allocation.y;
++ int y;
++
++ gtk_widget_get_allocation(widget, &allocation);
++ y = 0;
+
+- if (! GTK_WIDGET_DRAWABLE(widget))
++ if (! gtk_widget_is_drawable(widget))
+ return FALSE;
+
+ self_relayout(self);
+@@ -316,7 +343,7 @@
+ {
+ Row *row = g_ptr_array_index(selfp->rows, i);
+ int j;
+- int x = widget->allocation.x;
++ int x = 0;
+ int column = 0;
+
+ MN_ARRAY_FOREACH(j, row->cells)
+@@ -324,11 +351,10 @@
+ MNTextTableCell *cell = g_ptr_array_index(row->cells, j);
+
+ if (cell->layout)
+- gtk_paint_layout(widget->style,
+- widget->window,
+- GTK_WIDGET_STATE(widget),
++ gtk_paint_layout(gtk_widget_get_style(widget),
++ cr,
++ gtk_widget_get_state_flags(widget),
+ FALSE,
+- &event->area,
+ widget,
+ NULL,
+ x,
+--- build/src/mn-tooltips.c.orig 2011-02-07 23:19:05.903761972 +0100
++++ build/src/mn-tooltips.c 2011-02-07 23:41:19.368621912 +0100
+@@ -104,7 +104,7 @@
+ static void mn_tooltips_set_tip_widget_real (MNTooltips * self, GtkWidget * widget, GtkWidget * tip_widget, int border_width);
+ #line 106 "mn-tooltips.c"
+ #line 287 "src/mn-tooltips.gob"
+-static gboolean mn_tooltips_paint_window (MNTooltips * self);
++static gboolean mn_tooltips_paint_window (MNTooltips * self, cairo_t *cr);
+ #line 109 "mn-tooltips.c"
+ #line 308 "src/mn-tooltips.gob"
+ static void mn_tooltips_draw_tips (MNTooltips * self);
+@@ -422,7 +422,13 @@
+
+ if (! selfp->window)
+ {
++ GtkStyleContext *ctx;
++
+ selfp->window = gtk_window_new(GTK_WINDOW_POPUP);
++
++ ctx = gtk_widget_get_style_context(GTK_WIDGET(selfp->window));
++ gtk_style_context_add_class(ctx, "tooltip");
++
+ self_update_screen(self, TRUE);
+ gtk_widget_set_app_paintable(selfp->window, TRUE);
+ gtk_window_set_resizable(GTK_WINDOW(selfp->window), FALSE);
+@@ -430,7 +430,7 @@
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->window), selfp->border_width);
+
+ g_signal_connect_swapped(selfp->window,
+- "expose-event",
++ "draw",
+ G_CALLBACK(self_paint_window),
+ self);
+
+@@ -490,7 +490,7 @@
+
+ if (selfp->active_data
+ && selfp->active_data->widget == widget
+- && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
++ && gtk_widget_is_drawable(selfp->active_data->widget))
+ {
+ if (data->tip_widget)
+ g_object_unref(data->tip_widget);
+@@ -594,7 +594,7 @@
+
+ #line 287 "src/mn-tooltips.gob"
+ static gboolean
+-mn_tooltips_paint_window (MNTooltips * self)
++mn_tooltips_paint_window (MNTooltips * self, cairo_t *cr)
+ {
+ #line 600 "mn-tooltips.c"
+ #define __GOB_FUNCTION__ "MN:Tooltips::paint_window"
+@@ -608,18 +608,13 @@
+
+ GtkRequisition req;
+
+- gtk_widget_size_request(selfp->window, &req);
+- gtk_paint_flat_box(selfp->window->style,
+- selfp->window->window,
+- GTK_STATE_NORMAL,
+- GTK_SHADOW_OUT,
+- NULL,
+- selfp->window,
+- "tooltip",
+- 0,
+- 0,
+- req.width,
+- req.height);
++ gtk_widget_size_request(GTK_WIDGET(selfp->window), &req);
++ gtk_render_background(gtk_widget_get_style_context(GTK_WIDGET(selfp->window)),
++ cr,
++ 0,
++ 0,
++ req.width,
++ req.height);
+
+ return FALSE;
+ }}
+@@ -651,10 +650,11 @@
+ gint monitor_num, px, py;
+ GdkRectangle monitor;
+ int screen_width;
++ GtkAllocation allocation;
+
+ if (! selfp->window)
+ self_force_window(self);
+- else if (GTK_WIDGET_VISIBLE(selfp->window))
++ else if (gtk_widget_get_visible(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+
+ gtk_widget_ensure_style(selfp->window);
+@@ -670,7 +670,7 @@
+
+ data = selfp->active_data;
+
+- child = GTK_BIN(selfp->window)->child;
++ child = gtk_bin_get_child(GTK_BIN(selfp->window));
+ if (child)
+ gtk_container_remove(GTK_CONTAINER(selfp->window), child);
+
+@@ -684,14 +684,16 @@
+ w = requisition.width;
+ h = requisition.height;
+
+- gdk_window_get_origin(widget->window, &x, &y);
+- if (GTK_WIDGET_NO_WINDOW(widget))
++ gtk_widget_get_allocation(selfp->window, &allocation);
++
++ gdk_window_get_origin(gtk_widget_get_window(widget), &x, &y);
++ if (! gtk_widget_get_has_window(widget))
+ {
+- x += widget->allocation.x;
+- y += widget->allocation.y;
++ x += allocation.x;
++ y += allocation.y;
+ }
+
+- x += widget->allocation.width / 2;
++ x += allocation.width / 2;
+
+ if (! keyboard_mode)
+ gdk_window_get_pointer(gdk_screen_get_root_window(screen), &x, NULL, NULL);
+@@ -712,11 +714,11 @@
+ else if (x < monitor.x)
+ x = monitor.x;
+
+- if ((y + h + widget->allocation.height + 4) > monitor.y + monitor.height
++ if ((y + h + allocation.height + 4) > monitor.y + monitor.height
+ && (y - 4) > monitor.y)
+ y = y - h - 4;
+ else
+- y = y + widget->allocation.height + 4;
++ y = y + allocation.height + 4;
+
+ /*
+ * The following block is not part of GTK+ and has been added to
+@@ -760,7 +762,7 @@
+
+ Self *self = SELF(data);
+
+- if (selfp->active_data && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
++ if (selfp->active_data && gtk_widget_is_drawable(selfp->active_data->widget))
+ self_draw_tips(self);
+
+ selfp->timeout_id = 0;
+@@ -785,7 +787,7 @@
+
+ if (selfp->window)
+ {
+- if (GTK_WIDGET_VISIBLE(selfp->window))
++ if (gtk_widget_get_visible(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+ gtk_widget_hide(selfp->window);
+ }
+@@ -802,7 +804,7 @@
+ {
+ TooltipsData *data = l->data;
+
+- if (data->widget == widget && GTK_WIDGET_DRAWABLE(widget))
++ if (data->widget == widget && gtk_widget_is_drawable(widget))
+ {
+ selfp->active_data = data;
+ break;
+@@ -937,7 +939,7 @@
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+- GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
++ GtkWidget *focus = gtk_window_get_focus(GTK_WINDOW(toplevel));
+
+ g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(TRUE));
+
+@@ -966,7 +968,7 @@
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+- GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
++ GtkWidget *focus = gtk_window_get_focus(GTK_WINDOW(toplevel));
+
+ if (focus)
+ self_hide_tip(focus);
+@@ -1057,24 +1059,24 @@
+ break;
+
+ case GDK_ENTER_NOTIFY:
+- if (! (GTK_IS_MENU_ITEM(widget) && GTK_MENU_ITEM(widget)->submenu))
++ if (! (GTK_IS_MENU_ITEM(widget) && gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget))))
+ self_start_delay(self, widget);
+ break;
+
+ case GDK_LEAVE_NOTIFY:
+ self_set_active_widget(self, NULL);
+- selfp->use_sticky_delay = selfp->window && GTK_WIDGET_VISIBLE(selfp->window);
++ selfp->use_sticky_delay = selfp->window && gtk_widget_get_visible(selfp->window);
+ break;
+
+ case GDK_MOTION_NOTIFY:
+ /* Handle menu items specially ... pend popup for each motion
+ * on other widgets, we ignore motion.
+ */
+- if (GTK_IS_MENU_ITEM(widget) && ! GTK_MENU_ITEM(widget)->submenu)
++ if (GTK_IS_MENU_ITEM(widget) && ! gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)))
+ {
+ /* Completely evil hack to make sure we get the LEAVE_NOTIFY
+ */
+- GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
++ //GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
+ self_set_active_widget(self, NULL);
+ self_start_delay(self, widget);
+ break;
+--- src/nautilus-cell-renderer-pixbuf-emblem.c.orig 2011-02-08 00:16:43.847831409 +0100
++++ src/nautilus-cell-renderer-pixbuf-emblem.c 2011-02-08 00:32:59.128682767 +0100
+@@ -39,17 +39,16 @@
+ GtkWidget *widget);
+ static void nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+- GdkRectangle *rectangle,
++ const GdkRectangle *rectangle,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height);
+ static void nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+- GdkWindow *window,
++ cairo_t *cr,
+ GtkWidget *widget,
+- GdkRectangle *background_area,
+- GdkRectangle *cell_area,
+- GdkRectangle *expose_area,
++ const GdkRectangle *background_area,
++ const GdkRectangle *cell_area,
+ GtkCellRendererState flags);
+
+ enum {
+@@ -356,7 +355,7 @@
+ static void
+ nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+- GdkRectangle *cell_area,
++ const GdkRectangle *cell_area,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+@@ -368,6 +367,10 @@
+ gint pixbuf_height = 0;
+ gint calc_width;
+ gint calc_height;
++ int xpad;
++ int ypad;
++ gfloat xalign;
++ gfloat yalign;
+
+ if (!cellpixbuf->pixbuf && cellinfo->stock_id)
+ nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (cellpixbuf, widget);
+@@ -385,8 +388,11 @@
+ pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellpixbuf->pixbuf_expander_closed));
+ }
+
+- calc_width = (gint) cell->xpad * 2 + pixbuf_width;
+- calc_height = (gint) cell->ypad * 2 + pixbuf_height;
++ gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
++ gtk_cell_renderer_get_alignment(cell, &xalign, &yalign);
++
++ calc_width = (gint) xpad * 2 + pixbuf_width;
++ calc_height = (gint) ypad * 2 + pixbuf_height;
+
+ if (x_offset) *x_offset = 0;
+ if (y_offset) *y_offset = 0;
+@@ -394,14 +400,14 @@
+ if (cell_area && pixbuf_width > 0 && pixbuf_height > 0) {
+ if (x_offset) {
+ *x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
+- 1.0 - cell->xalign : cell->xalign) *
+- (cell_area->width - calc_width - 2 * cell->xpad));
+- *x_offset = MAX (*x_offset, 0) + cell->xpad;
++ 1.0 - xalign : xalign) *
++ (cell_area->width - calc_width - 2 * xpad));
++ *x_offset = MAX (*x_offset, 0) + xpad;
+ }
+ if (y_offset) {
+- *y_offset = (cell->yalign *
+- (cell_area->height - calc_height - 2 * cell->ypad));
+- *y_offset = MAX (*y_offset, 0) + cell->ypad;
++ *y_offset = (yalign *
++ (cell_area->height - calc_height - 2 * ypad));
++ *y_offset = MAX (*y_offset, 0) + ypad;
+ }
+ }
+
+@@ -414,11 +420,10 @@
+
+ static void
+ nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+- GdkWindow *window,
++ cairo_t *cr,
+ GtkWidget *widget,
+- GdkRectangle *background_area,
+- GdkRectangle *cell_area,
+- GdkRectangle *expose_area,
++ const GdkRectangle *background_area,
++ const GdkRectangle *cell_area,
+ GtkCellRendererState flags)
+
+ {
+@@ -429,13 +434,19 @@
+ GdkRectangle pix_emblem_rect;
+ GdkRectangle draw_rect;
+ gboolean stock_pixbuf = FALSE;
++ gboolean is_expander = FALSE;
++ gboolean is_expanded = FALSE;
++ int xpad;
++ int ypad;
++
++ g_object_get(cell, "is-expander", &is_expander, "is-expanded", &is_expanded, NULL);
+
+ pixbuf = cellpixbuf->pixbuf;
+- if (cell->is_expander) {
+- if (cell->is_expanded &&
++ if (is_expander) {
++ if (is_expanded &&
+ cellpixbuf->pixbuf_expander_open != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_open;
+- } else if (!cell->is_expanded &&
++ } else if (!is_expanded &&
+ cellpixbuf->pixbuf_expander_closed != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_closed;
+ }
+@@ -456,15 +467,20 @@
+ if (stock_pixbuf)
+ pixbuf = cellpixbuf->pixbuf;
+
++ gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
++
+ pix_rect.x += cell_area->x;
+ pix_rect.y += cell_area->y;
+- pix_rect.width -= cell->xpad * 2;
+- pix_rect.height -= cell->ypad * 2;
++ pix_rect.width -= xpad * 2;
++ pix_rect.height -= ypad * 2;
+
++ if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect)) {
++#if 0
+ if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
++
+ gdk_draw_pixbuf (window,
+- widget->style->black_gc,
++ gtk_widget_get_style(widget)->black_gc,
+ pixbuf,
+ /* pixbuf 0, 0 is at pix_rect.x, pix_rect.y */
+ draw_rect.x - pix_rect.x,
+@@ -475,6 +491,11 @@
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
++#endif
++
++ cairo_move_to (cr, draw_rect.x - pix_rect.x, draw_rect.y - pix_rect.y);
++ gdk_cairo_set_source_pixbuf (cr, pixbuf, draw_rect.x, draw_rect.y);
++ cairo_paint (cr);
+ }
+
+ if (cellpixbuf->pixbuf_emblem) {
+@@ -482,8 +503,11 @@
+ pix_emblem_rect.height = gdk_pixbuf_get_height (cellpixbuf->pixbuf_emblem);
+ pix_emblem_rect.x = pix_rect.x;
+ pix_emblem_rect.y = pix_rect.y + pix_rect.height - pix_emblem_rect.height;
++ if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect)) {
++#if 0
+ if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
++
+ gdk_draw_pixbuf (window,
+ widget->style->black_gc,
+ cellpixbuf->pixbuf_emblem,
+@@ -496,6 +520,11 @@
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
++#endif
++
++ cairo_move_to (cr, draw_rect.x - pix_emblem_rect.x, draw_rect.y - pix_emblem_rect.y);
++ gdk_cairo_set_source_pixbuf (cr, cellpixbuf->pixbuf_emblem, draw_rect.x, draw_rect.y);
++ cairo_paint (cr);
+ }
+ }
+ }
+--- src/nautilus-cell-renderer-pixbuf-emblem.h.orig 2011-02-07 22:18:12.336471764 +0100
++++ src/nautilus-cell-renderer-pixbuf-emblem.h 2011-02-08 00:20:30.461758697 +0100
+@@ -25,18 +25,18 @@
+ #ifndef NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+
+-#include <gtk/gtkcellrenderer.h>
++#include <gtk/gtk.h>
+
+ #define NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM \
+ (nautilus_cell_renderer_pixbuf_emblem_get_type ())
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+- (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
++ (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
+ #define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+- (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
++ (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
+ #define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+- (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
++ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+ #define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+- (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
++ (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+
+ typedef struct _NautilusCellRendererPixbufEmblem NautilusCellRendererPixbufEmblem;
+ typedef struct _NautilusCellRendererPixbufEmblemClass NautilusCellRendererPixbufEmblemClass;
+--- build/src/mn-authenticated-mailbox.c.orig 2011-02-08 00:34:16.332610802 +0100
++++ build/src/mn-authenticated-mailbox.c 2011-02-08 00:36:23.706936717 +0100
+@@ -25,7 +25,7 @@
+ #line 29 "src/mn-authenticated-mailbox.gob"
+
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-mailbox-private.h"
+ #include "mn-shell.h"
+ #include "mn-util.h"
+@@ -859,6 +859,7 @@
+
+ /* keep the title in sync with gnome-authentication-manager */
+
++#if 0
+ /* translators: header capitalization */
+ selfp->auth_dialog = gnome_password_dialog_new(_("Authentication Required"),
+ message,
+@@ -891,6 +892,9 @@
+ gtk_widget_destroy(selfp->auth_dialog);
+
+ return ok;
++#else
++ return FALSE;
++#endif
+ }}
+ #line 896 "mn-authenticated-mailbox.c"
+ #undef __GOB_FUNCTION__
+--- build/src/mn-about-dialog.c.orig 2011-02-08 22:20:54.469841262 +0100
++++ build/src/mn-about-dialog.c 2011-02-08 22:21:13.309839037 +0100
+@@ -111,9 +111,11 @@
+ {
+ #line 32 "src/mn-about-dialog.gob"
+
++#if 0
+ gtk_about_dialog_set_email_hook(self_activate_link_cb, "mailto:", NULL);
+ gtk_about_dialog_set_url_hook(self_activate_link_cb, NULL, NULL);
+-
++#endif
++
+ #line 118 "mn-about-dialog.c"
+ }
+ }
+--- build/src/mn-autodetect-mailbox-properties.c.orig 2011-02-08 22:21:58.639427345 +0100
++++ build/src/mn-autodetect-mailbox-properties.c 2011-02-08 22:22:43.564035901 +0100
+@@ -355,10 +355,9 @@
+
+ toplevel = gtk_widget_get_toplevel(GTK_WIDGET(button));
+ /* translators: header capitalization */
+- selfp->chooser = gtk_file_chooser_dialog_new_with_backend(_("Select a File or Folder"),
++ selfp->chooser = gtk_file_chooser_dialog_new(_("Select a File or Folder"),
+ GTK_WINDOW(toplevel),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+- "gnome-vfs",
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, 1,
+ NULL);
+--- build/src/mn-pi-mailbox-properties.c.orig 2011-02-08 22:30:08.051375715 +0100
++++ build/src/mn-pi-mailbox-properties.c 2011-02-08 22:30:21.398665261 +0100
+@@ -415,7 +415,7 @@
+ int i;
+
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+- gtk_widget_set_sensitive(self->port_spin[i], GTK_WIDGET_SENSITIVE(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
++ gtk_widget_set_sensitive(self->port_spin[i], gtk_widget_get_sensitive(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
+
+ g_object_notify(G_OBJECT(self), "complete");
+ }}
+--- src/eggtrayicon.c.orig 2011-02-07 23:42:30.405791829 +0100
++++ src/eggtrayicon.c 2011-02-08 23:06:16.092968325 +0100
+@@ -25,7 +25,7 @@
+
+ #include "eggtrayicon.h"
+
+-#include <gdkconfig.h>
++#include <gdk/gdk.h>
+ #if defined (GDK_WINDOWING_X11)
+ #include <gdk/gdkx.h>
+ #include <X11/Xatom.h>
+@@ -258,7 +258,7 @@
+ {
+ GdkWindow *gdkwin;
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (widget),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+@@ -290,7 +290,7 @@
+ ev.window = window;
+ ev.message_type = icon->system_tray_opcode_atom;
+ ev.format = 32;
+- ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window);
++ ev.data.l[0] = gdk_x11_get_server_time (gtk_widget_get_window(GTK_WIDGET (icon)));
+ ev.data.l[1] = message;
+ ev.data.l[2] = data1;
+ ev.data.l[3] = data2;
+@@ -342,12 +342,12 @@
+ {
+ GdkWindow *gdkwin;
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+
+- if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
++ if (dock_if_realized && gtk_widget_get_realized (GTK_WIDGET(icon)))
+ egg_tray_icon_send_dock_request (icon);
+
+ egg_tray_icon_get_orientation_property (icon);
+@@ -355,10 +355,16 @@
+ }
+
+ static gboolean
+-transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
++transparent_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
+ {
+- gdk_window_clear_area (widget->window, event->area.x, event->area.y,
++#if 0
++ gdk_window_clear_area (gtk_widget_get_window(widget), event->area.x, event->area.y,
+ event->area.width, event->area.height);
++#endif
++ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
++ //gdk_cairo_region (cr, event->region);
++ cairo_fill (cr);
++
+ return FALSE;
+ }
+
+@@ -366,20 +372,20 @@
+ make_transparent_again (GtkWidget *widget, GtkStyle *previous_style,
+ gpointer user_data)
+ {
+- gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
++ //gdk_window_set_back_pixmap (gtk_widget_get_window(widget), NULL, TRUE);
+ }
+
+ static void
+ make_transparent (GtkWidget *widget, gpointer user_data)
+ {
+- if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget))
++ if (! gtk_widget_get_has_window (widget) || gtk_widget_get_app_paintable (widget))
+ return;
+
+ gtk_widget_set_app_paintable (widget, TRUE);
+ gtk_widget_set_double_buffered (widget, FALSE);
+- gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
+- g_signal_connect (widget, "expose_event",
+- G_CALLBACK (transparent_expose_event), NULL);
++ //gdk_window_set_back_pixmap (gtk_widget_get_window(widget), NULL, TRUE);
++ g_signal_connect (widget, "draw",
++ G_CALLBACK (transparent_draw), NULL);
+ g_signal_connect_after (widget, "style_set",
+ G_CALLBACK (make_transparent_again), NULL);
+ }
+@@ -391,7 +397,7 @@
+
+ g_return_if_fail (icon->manager_window != None);
+
+- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
++ gdkwin = gdk_x11_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+--- build/src/mn-properties-dialog.c.orig 2011-02-08 23:37:12.605200174 +0100
++++ build/src/mn-properties-dialog.c 2011-02-08 23:37:18.601881191 +0100
+@@ -183,7 +183,7 @@
+ GtkTreeSelection *selection;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+- PKGDATADIR G_DIR_SEPARATOR_S "properties-dialog.glade",
++ PKGDATADIR G_DIR_SEPARATOR_S "properties-dialog.ui",
+ "main_vbox",
+ "mn_properties_dialog_",
+ "notebook", &selfp->notebook,
+--- src/mn-util.c.orig 2011-02-08 00:01:25.167207512 +0100
++++ src/mn-util.c 2011-02-09 00:01:35.718285446 +0100
+@@ -26,8 +26,7 @@
+ #include <gmodule.h>
+ #include <glib/gi18n.h>
+ #include <gobject/gvaluecollector.h>
+-#include <gnome.h>
+-#include <glade/glade.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+ #include "mn-mailboxes.h"
+ #include "mn-shell.h"
+@@ -303,49 +302,55 @@
+ return pixbuf;
+ }
+
+-static GladeXML *
++static GtkBuilder *
+ mn_glade_xml_new (const char *filename, const char *root, const char *domain)
+ {
+- GladeXML *xml;
++ GtkBuilder *builder;
++ GError *err = NULL;
+
+ g_return_val_if_fail(filename != NULL, NULL);
+
+- xml = glade_xml_new(filename, root, domain);
+- if (! xml)
+- mn_show_fatal_error_dialog(NULL, "Unable to load interface \"%s\".", filename);
++ builder = gtk_builder_new();
++ gtk_builder_set_translation_domain(builder, domain);
++ if (! gtk_builder_add_from_file(builder, filename, &err)) {
++ mn_show_fatal_error_dialog(NULL, "Unable to load interface \"%s\": %s.", filename, err->message);
++ g_error_free(err);
++ g_object_unref(builder);
++ return NULL;
++ }
+
+- return xml;
++ return builder;
+ }
+
+ static GtkWidget *
+-mn_glade_xml_get_widget (GladeXML *xml, const char *widget_name)
++mn_glade_xml_get_widget (GtkBuilder *builder, const char *widget_name)
+ {
+ GtkWidget *widget;
+
+- g_return_val_if_fail(GLADE_IS_XML(xml), NULL);
++ g_return_val_if_fail(GTK_IS_BUILDER(builder), NULL);
+ g_return_val_if_fail(widget_name != NULL, NULL);
+
+- widget = glade_xml_get_widget(xml, widget_name);
++ widget = GTK_WIDGET(gtk_builder_get_object(builder, widget_name));
+ if (! widget)
+- mn_show_fatal_error_dialog(NULL, "Widget \"%s\" not found in interface \"%s\".", widget_name, xml->filename);
++ mn_show_fatal_error_dialog(NULL, "Widget \"%s\" not found in interface.", widget_name);
+
+ return widget;
+ }
+
+ static void
+-create_interface_connect_cb (const char *handler_name,
++create_interface_connect_cb (GtkBuilder *builder,
+ GObject *object,
+ const char *signal_name,
+- const char *signal_data,
++ const char *handler_name,
+ GObject *connect_object,
+- gboolean after,
++ GConnectFlags flags,
+ gpointer user_data)
+ {
+ static GModule *module = NULL;
+ ContainerCreateInterfaceConnectInfo *info = user_data;
+ char *cb_name;
+ GCallback cb;
+- GConnectFlags flags;
++ GConnectFlags cflags;
+
+ if (! module)
+ {
+@@ -359,11 +364,9 @@
+ mn_show_fatal_error_dialog(NULL, "Signal handler \"%s\" not found.", cb_name);
+ g_free(cb_name);
+
+- flags = G_CONNECT_SWAPPED;
+- if (after)
+- flags |= G_CONNECT_AFTER;
++ cflags = G_CONNECT_SWAPPED;
+
+- g_signal_connect_data(object, signal_name, cb, info->container, NULL, flags);
++ g_signal_connect_data(object, signal_name, cb, info->container, NULL, cflags);
+ }
+
+ void
+@@ -373,7 +376,7 @@
+ const char *callback_prefix,
+ ...)
+ {
+- GladeXML *xml;
++ GtkBuilder *xml;
+ GtkWidget *child;
+ ContainerCreateInterfaceConnectInfo info;
+ va_list args;
+@@ -387,14 +390,16 @@
+ xml = mn_glade_xml_new(filename, child_name, NULL);
+ child = mn_glade_xml_get_widget(xml, child_name);
+
+- if (GTK_IS_DIALOG(container))
+- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(container)->vbox), child, TRUE, TRUE, 0);
+- else
++ if (GTK_IS_DIALOG(container)) {
++ gtk_widget_unparent(child);
++ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(container))), child, TRUE, TRUE, 0);
++ } else {
+ gtk_container_add(container, child);
++ }
+
+ info.container = container;
+ info.callback_prefix = callback_prefix;
+- glade_xml_signal_autoconnect_full(xml, create_interface_connect_cb, &info);
++ gtk_builder_connect_signals_full(xml, create_interface_connect_cb, &info);
+
+ va_start(args, callback_prefix);
+
+@@ -422,7 +427,7 @@
+
+ toplevel = gtk_widget_get_toplevel(widget);
+
+- return GTK_WIDGET_TOPLEVEL(toplevel) ? GTK_WINDOW(toplevel) : NULL;
++ return gtk_widget_get_toplevel(toplevel) ? GTK_WINDOW(toplevel) : NULL;
+ }
+
+ static void
+@@ -493,9 +498,11 @@
+ gpointer user_data)
+ {
+ GtkAdjustment *adjustment;
++ GtkAllocation allocation;
+
++ gtk_widget_get_allocation(widget, &allocation);
+ adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(widget));
+- gtk_adjustment_set_value(adjustment, (double) y / (widget->allocation.height - 2) * (adjustment->upper - adjustment->page_size));
++ gtk_adjustment_set_value(adjustment, (double) y / (allocation.height - 2) * (gtk_adjustment_get_upper(adjustment) - gtk_adjustment_get_page_size(adjustment)));
+
+ return TRUE; /* we're forcibly in a drop zone */
+ }
+@@ -562,7 +569,7 @@
+ MNMailbox *mailbox;
+
+ /* text/x-moz-url is encoded in UCS-2 but in format 8: broken */
+- if (selection_data->format != 8 || selection_data->length <= 0 || (selection_data->length % 2) != 0)
++ if (gtk_selection_data_get_format(selection_data) != 8 || gtk_selection_data_get_length(selection_data) <= 0 || (gtk_selection_data_get_length(selection_data) % 2) != 0)
+ {
+ mn_show_error_dialog(mn_widget_get_parent_window(widget),
+ _("A drag and drop error has occurred"),
+@@ -570,8 +577,8 @@
+ return;
+ }
+
+- char_data = (const guint16 *) selection_data->data;
+- char_len = selection_data->length / 2;
++ char_data = (const guint16 *) gtk_selection_data_get_data(selection_data);
++ char_len = gtk_selection_data_get_length(selection_data) / 2;
+
+ url = g_string_new(NULL);
+ for (i = 0; i < char_len && char_data[i] != '\n'; i++)
+@@ -1322,7 +1329,7 @@
+ }
+
+ static void
+-dialog_run_nonmodal_destroy_h (GtkObject *object, gpointer user_data)
++dialog_run_nonmodal_destroy_h (GtkWidget *object, gpointer user_data)
+ {
+ RunNonmodalInfo *info = user_data;
+
+@@ -1375,7 +1382,7 @@
+
+ g_object_ref(dialog);
+
+- if (! GTK_WIDGET_VISIBLE(dialog))
++ if (! gtk_widget_get_visible(dialog))
+ gtk_widget_show(GTK_WIDGET(dialog));
+
+ g_object_connect(dialog,
+--- src/mn-main.c.gtk3 2008-05-22 17:45:35.000000000 +0200
++++ src/mn-main.c 2011-02-08 23:32:33.800030659 +0100
+@@ -21,7 +21,7 @@
+ #include <stdlib.h>
+ #include <signal.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include <libgnomevfs/gnome-vfs.h>
+ #include <libnotify/notify.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+@@ -452,7 +452,7 @@
+
+ gnome_program_init(PACKAGE,
+ VERSION,
+- LIBGNOMEUI_MODULE,
++ LIBGNOME_MODULE,
+ argc,
+ argv,
+ GNOME_PARAM_HUMAN_READABLE_NAME, _("Mail Notification"),
+@@ -460,6 +460,8 @@
+ GNOME_PARAM_GOPTION_CONTEXT, option_context,
+ NULL);
+
++ gtk_init(&argc, &argv);
++
+ if (arg_version)
+ {
+ print_version();
+@@ -497,7 +499,9 @@
+ if (! gnome_vfs_init())
+ mn_show_fatal_error_dialog(NULL, _("Unable to initialize the GnomeVFS library."));
+
++#if 0
+ gnome_authentication_manager_init();
++#endif
+
+ /* must be called before init_gmime() */
+ mn_conf_init();
+--- src/mn-conf.c.gtk3 2008-05-22 17:45:35.000000000 +0200
++++ src/mn-conf.c 2011-02-07 20:07:01.630580132 +0100
+@@ -23,7 +23,7 @@
+ #include <errno.h>
+ #include <stdarg.h>
+ #include <glib/gi18n.h>
+-#include <gnome.h>
++#include <libgnome/libgnome.h>
+ #include "mn-util.h"
+ #include "mn-conf.h"
+ #include "mn-shell.h"
+--- data/mail-notification.desktop.in.orig 2011-07-08 13:46:52.327548264 +0200
++++ data/mail-notification.desktop.in 2011-07-08 13:47:00.732704467 +0200
+@@ -5,7 +5,7 @@
+ _Comment=Get notified when new mail arrives
+ Type=Application
+ Categories=GNOME;GTK;Network;Email;
+-Exec=mail-notification --sm-disable
++Exec=mail-notification
+ Terminal=false
+ StartupNotify=true
+ X-GNOME-DocPath=mail-notification/mail-notification.xml
diff --git a/testing/mail-notification/mail-notification-5.4-icons.patch b/testing/mail-notification/mail-notification-5.4-icons.patch
new file mode 100644
index 000000000..48d54742a
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-icons.patch
@@ -0,0 +1,39 @@
+diff -Nrbu mail-notification-5.4/src/mn-stock.c mail-notification-5.4-OK/src/mn-stock.c
+--- mail-notification-5.4/src/mn-stock.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-stock.c 2010-05-24 19:36:03.000000000 +0400
+@@ -32,11 +32,11 @@
+ const char *icon_name;
+ const char *source_stock_id;
+ } icons[] = {
+- { MN_STOCK_MAIL, NULL, "stock_mail" },
+- { MN_STOCK_NO_MAIL, NULL, "stock_inbox" },
+- { MN_STOCK_LOCAL, NULL, "stock_folder" },
+- { MN_STOCK_REMOTE, NULL, "stock_internet" },
+- { MN_STOCK_UNKNOWN, NULL, "stock_unknown" },
++ { MN_STOCK_MAIL, NULL, "mail-message-new" },
++ { MN_STOCK_NO_MAIL, NULL, "mail-notification" },
++ { MN_STOCK_LOCAL, NULL, "folder" },
++ { MN_STOCK_REMOTE, NULL, "applications-internet" },
++ { MN_STOCK_UNKNOWN, NULL, "dialog-question" },
+ { MN_STOCK_ERROR, NULL, NULL, GTK_STOCK_DIALOG_ERROR },
+ #if WITH_GMAIL
+ { MN_STOCK_GMAIL, PKGDATADIR G_DIR_SEPARATOR_S "gmail.png" },
+@@ -48,14 +48,14 @@
+ { MN_STOCK_HOTMAIL, PKGDATADIR G_DIR_SEPARATOR_S "hotmail.png" },
+ #endif
+ #if WITH_MBOX || WITH_MOZILLA || WITH_MH || WITH_MAILDIR || WITH_SYLPHEED
+- { MN_STOCK_SYSTEM_MAILBOX, NULL, "system" },
++ { MN_STOCK_SYSTEM_MAILBOX, NULL, "applications-system" },
+ #endif
+ #if WITH_EVOLUTION
+ { MN_STOCK_EVOLUTION_MAILBOX, NULL, "evolution" },
+ #endif
+- { MN_STOCK_MAIL_READER, NULL, "stock_mail-handling" },
+- { MN_STOCK_OPEN_MESSAGE, NULL, "stock_mail-open" },
+- { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "stock_mark" }
++ { MN_STOCK_MAIL_READER, NULL, "mail-unread" },
++ { MN_STOCK_OPEN_MESSAGE, NULL, "mail-read" },
++ { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "mail-mark-read" }
+ };
+ GtkIconFactory *factory;
+ GtkIconTheme *icon_theme;
diff --git a/testing/mail-notification/mail-notification-5.4-kde-trayicon.patch b/testing/mail-notification/mail-notification-5.4-kde-trayicon.patch
new file mode 100644
index 000000000..a3bdc8372
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-kde-trayicon.patch
@@ -0,0 +1,72 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-shell.c mail-notification-5.4-OK/build/src/mn-shell.c
+--- mail-notification-5.4/build/src/mn-shell.c 2010-10-11 17:45:23.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-shell.c 2010-10-11 17:45:48.000000000 +0400
+@@ -313,6 +313,29 @@
+ #undef __GOB_FUNCTION__
+
+ static void
++mn_shell_init_icon_base (MNShell * self)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (MN_IS_SHELL (self));
++
++ self->icon = MN_MAIL_ICON(mn_mail_icon_new());
++ mn_add_weak_pointer(&self->icon);
++
++ g_object_connect(self->icon,
++ "signal::activate", self_icon_activate_h, self,
++ "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
++ "signal::activate-open-latest-message", self_icon_activate_open_latest_message_h, self,
++ "swapped-signal::activate-consider-new-mail-as-read", self_consider_new_mail_as_read, self,
++ "swapped-signal::activate-update", self_update, self,
++ "signal::activate-properties", self_icon_activate_properties_h, self,
++ "signal::activate-help", self_icon_activate_help_h, self,
++ "signal::activate-about", self_icon_activate_about_h, self,
++ "swapped-signal::activate-remove", self_quit, self,
++ "signal::destroy", self_icon_destroy_h, self,
++ NULL);
++}
++
++static void
+ mn_shell_init (MNShell * o G_GNUC_UNUSED)
+ {
+ #define __GOB_FUNCTION__ "MN:Shell::init"
+@@ -793,22 +816,7 @@
+ {
+ #line 360 "src/mn-shell.gob"
+
+- self->icon = MN_MAIL_ICON(mn_mail_icon_new());
+- mn_add_weak_pointer(&self->icon);
+-
+- g_object_connect(self->icon,
+- "signal::activate", self_icon_activate_h, self,
+- "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
+- "signal::activate-open-latest-message", self_icon_activate_open_latest_message_h, self,
+- "swapped-signal::activate-consider-new-mail-as-read", self_consider_new_mail_as_read, self,
+- "swapped-signal::activate-update", self_update, self,
+- "signal::activate-properties", self_icon_activate_properties_h, self,
+- "signal::activate-help", self_icon_activate_help_h, self,
+- "signal::activate-about", self_icon_activate_about_h, self,
+- "swapped-signal::activate-remove", self_quit, self,
+- "signal::destroy", self_icon_destroy_h, self,
+- NULL);
+-
++ mn_shell_init_icon_base(self);
+ self_update_sensitivity(self);
+ self_update_tooltip(self);
+ self_update_icon(self);
+@@ -1094,7 +1102,13 @@
+ }
+ else
+ {
+- gtk_widget_hide(GTK_WIDGET(self->icon));
++ /* Re-create the icon as a regular gtk_widget_hide causes the
++ * icon to remain visible on non-GNOME environments. We can't
++ * use the callback self_icon_destroy_h here as it can cause an
++ * endless recursion */
++ g_signal_handlers_disconnect_by_func(self->icon, self_icon_destroy_h, self);
++ gtk_widget_destroy(GTK_WIDGET(self->icon));
++ mn_shell_init_icon_base(self);
+ mn_mail_icon_set_blinking(self->icon, FALSE);
+ }
+ }}
diff --git a/testing/mail-notification/mail-notification-5.4-libx11.patch b/testing/mail-notification/mail-notification-5.4-libx11.patch
new file mode 100644
index 000000000..bb3574fda
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-libx11.patch
@@ -0,0 +1,13 @@
+Link with libX11 explicitly.
+
+--- mail-notification-5.4.dfsg.1.orig/jbsrc/jb.c
++++ mail-notification-5.4.dfsg.1/jbsrc/jb.c
+@@ -445,6 +445,8 @@
+
+ jb_compile_options_add_libs(object->compile_options, "-lm");
+
++ jb_compile_options_add_libs(object->compile_options, "-lX11");
++
+ jb_compile_options_add_package(object->compile_options, "gettext");
+ jb_compile_options_add_package(object->compile_options, "gnome");
+ jb_compile_options_add_package(object->compile_options, "dbus");
diff --git a/testing/mail-notification/mail-notification-5.4-popup-attach.patch b/testing/mail-notification/mail-notification-5.4-popup-attach.patch
new file mode 100644
index 000000000..b8d5f6a09
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-popup-attach.patch
@@ -0,0 +1,45 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-popup.c mail-notification-5.4-OK/build/src/mn-popup.c
+--- mail-notification-5.4/build/src/mn-popup.c 2008-05-22 19:47:49.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-popup.c 2010-10-11 17:42:32.000000000 +0400
+@@ -177,6 +177,29 @@
+ #undef __GOB_FUNCTION__
+
+ static void
++mn_popup_wait_for_icon_to_become_ready (void)
++{
++ int x, y;
++ int count = 0;
++
++ /* When the tray icon is created, it can still take some time before
++ * it has arrived at the correct position. This is especially the case
++ * on KDE environments. To work around this, add a little delay of at
++ * most 2 seconds before showing a popup which is attached to the notification */
++ do {
++ gdk_window_get_origin (gtk_widget_get_window (mn_shell->icon), &x, &y);
++
++ if (x != 0 || y != 0) {
++ break;
++ }
++
++ g_usleep(G_USEC_PER_SEC / 10);
++ count++;
++ } while (count < 20);
++}
++
++
++static void
+ mn_popup_init (MNPopup * o G_GNUC_UNUSED)
+ {
+ #define __GOB_FUNCTION__ "MN:Popup::init"
+@@ -299,8 +322,10 @@
+ "icon-name", "stock_mail",
+ NULL);
+
+- if (mn_conf_get_enum_value(MN_TYPE_POPUP_POSITION, MN_CONF_POPUPS_POSITION) == MN_POPUP_POSITION_ATTACHED)
++ if (mn_conf_get_enum_value(MN_TYPE_POPUP_POSITION, MN_CONF_POPUPS_POSITION) == MN_POPUP_POSITION_ATTACHED) {
++ mn_popup_wait_for_icon_to_become_ready();
+ g_object_set(self, "attach-widget", mn_shell->icon, NULL);
++ }
+
+ g_string_free(body, TRUE);
+
diff --git a/testing/mail-notification/mail-notification-5.4-sasl_encode64.patch b/testing/mail-notification/mail-notification-5.4-sasl_encode64.patch
new file mode 100644
index 000000000..80a7304d1
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-sasl_encode64.patch
@@ -0,0 +1,24 @@
+diff -up mail-notification-5.4/build/src/mn-pop3-mailbox.c mail-notification-5.4-OK/build/src/mn-pop3-mailbox.c
+--- mail-notification-5.4/build/src/mn-pop3-mailbox.c 2009-05-19 10:29:58.448201837 +0200
++++ mail-notification-5.4-OK/build/src/mn-pop3-mailbox.c 2009-05-19 10:23:29.356204287 +0200
+@@ -619,7 +619,7 @@ mn_pop3_mailbox_enter_auth_cb (MNClientS
+
+ if (initial_clientoutlen > 0)
+ {
+- char buf64[initial_clientoutlen * 2]; /* Base64 is 33% larger than the data it encodes */
++ char buf64[initial_clientoutlen * 2 + 1]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
+diff -up mail-notification-5.4/src/mn-client-session.c mail-notification-5.4-OK/src/mn-client-session.c
+--- mail-notification-5.4/src/mn-client-session.c 2008-05-22 17:45:35.000000000 +0200
++++ mail-notification-5.4-OK/src/mn-client-session.c 2009-05-19 10:29:09.112211055 +0200
+@@ -1030,7 +1030,7 @@ mn_client_session_write (MNClientSession
+ static int
+ write_base64 (MNClientSession *session, const char *buf, unsigned int len)
+ {
+- char buf64[len * 2]; /* Base64 is 33% larger than the data it encodes */
++ char buf64[len * 2 + 1]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
diff --git a/testing/mail-notification/mail-notification-5.4-weak.patch b/testing/mail-notification/mail-notification-5.4-weak.patch
new file mode 100644
index 000000000..2e2a233aa
--- /dev/null
+++ b/testing/mail-notification/mail-notification-5.4-weak.patch
@@ -0,0 +1,11 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-shell.c mail-notification-5.4-OK/build/src/mn-shell.c
+--- mail-notification-5.4/build/src/mn-shell.c 2008-05-22 19:47:49.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-shell.c 2010-05-24 19:39:48.000000000 +0400
+@@ -1008,6 +1008,7 @@
+ Self *self = user_data;
+
+ /* The Notification Area applet has been terminated. Recreate the icon. */
++ mn_remove_weak_pointer(&self->icon);
+ self_init_icon(self);
+ }}
+ #line 1014 "mn-shell.c"
diff --git a/testing/mail-notification/mail-notification.install b/testing/mail-notification/mail-notification.install
new file mode 100644
index 000000000..21cd94399
--- /dev/null
+++ b/testing/mail-notification/mail-notification.install
@@ -0,0 +1,24 @@
+pkgname=mail-notification
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ kill -s HUP `pidof bonobo-activation-server` > /dev/null 2>&1
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ kill -s HUP `pidof bonobo-activation-server` > /dev/null 2>&1
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/testing/mail-notification/remove-ubuntu-special-case.patch b/testing/mail-notification/remove-ubuntu-special-case.patch
new file mode 100644
index 000000000..4516f32c6
--- /dev/null
+++ b/testing/mail-notification/remove-ubuntu-special-case.patch
@@ -0,0 +1,33 @@
+--- jbsrc/lib/src/core/jb-feature.c.~1~ 2008-04-27 16:47:27.000000000 +0200
++++ jbsrc/lib/src/core/jb-feature.c 2008-07-22 11:40:50.856886210 +0200
+@@ -164,8 +164,6 @@
+ static void
+ gconf_configure (void)
+ {
+- JBVariable *variable;
+-
+ jb_require_program("gconftool-2");
+
+ if (! strcmp(jb_variable_get_string("gconf-config-source"), "autodetect"))
+@@ -178,21 +176,6 @@
+ jb_variable_set_string("gconf-config-source", config_source);
+ g_free(config_source);
+ }
+-
+- /* fix the default schemas dir on Ubuntu */
+- variable = jb_variable_get_variable_or_error("gconf-schemas-dir");
+- if (! variable->user_set)
+- {
+- static const char *ubuntu_dir = "$datadir/gconf/schemas";
+- char *expanded;
+-
+- expanded = jb_variable_expand(ubuntu_dir, NULL);
+-
+- if (g_file_test(expanded, G_FILE_TEST_IS_DIR))
+- jb_variable_set_string("gconf-schemas-dir", ubuntu_dir);
+-
+- g_free(expanded);
+- }
+ }
+
+ static void
diff --git a/testing/nilfs-utils/PKGBUILD b/testing/nilfs-utils/PKGBUILD
new file mode 100644
index 000000000..d7e723b01
--- /dev/null
+++ b/testing/nilfs-utils/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 146948 2012-01-19 15:15:14Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=nilfs-utils
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="A log-structured file system supporting continuous snapshotting (userspace utils)"
+arch=('i686' 'x86_64')
+url="http://www.nilfs.org/"
+license=('GPL2' 'LGPL2.1')
+backup=('etc/nilfs_cleanerd.conf')
+depends=('util-linux')
+options=(!libtool)
+source=(http://www.nilfs.org/download/$pkgname-$pkgver.tar.bz2)
+md5sums=('caa7d8b7121311bd978120e2f0c45d81')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --libdir=/lib --enable-libmount
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install LDCONFIG=/bin/true
+}
diff --git a/testing/openssl/PKGBUILD b/testing/openssl/PKGBUILD
new file mode 100644
index 000000000..61947c70f
--- /dev/null
+++ b/testing/openssl/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 146800 2012-01-18 16:09:23Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=openssl
+_ver=1.0.0g
+# use a pacman compatible version scheme
+pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgrel=1
+pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'
+arch=('i686' 'x86_64')
+url='https://www.openssl.org'
+license=('custom:BSD')
+depends=('perl')
+optdepends=('ca-certificates')
+options=('!makeflags')
+backup=('etc/ssl/openssl.cnf')
+source=("https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz"
+ "https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz.asc"
+ 'fix-manpages.patch'
+ 'no-rpath.patch'
+ 'ca-dir.patch')
+md5sums=('07ecbe4324f140d157478637d6beccf1'
+ '34315cf0fbbd1d18435948eb9712fcdf'
+ '5bbc0655bda2af95bc8eb568963ce8ba'
+ 'dc78d3d06baffc16217519242ce92478'
+ '3bf51be3a1bbd262be46dc619f92aa90')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+ cd $srcdir/$pkgname-$_ver
+
+ if [ "${CARCH}" == 'x86_64' ]; then
+ openssltarget='linux-x86_64'
+ elif [ "${CARCH}" == 'i686' ]; then
+ openssltarget='linux-elf'
+ fi
+
+ # avoid conflicts with other man pages
+ # see http://www.linuxfromscratch.org/patches/downloads/openssl/
+ patch -p1 -i $srcdir/fix-manpages.patch
+ # remove rpath: http://bugs.archlinux.org/task/14367
+ patch -p0 -i $srcdir/no-rpath.patch
+ # set ca dir to /etc/ssl by default
+ patch -p0 -i $srcdir/ca-dir.patch
+ # mark stack as non-executable: http://bugs.archlinux.org/task/12434
+ ./Configure --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
+ shared zlib enable-md2 \
+ "${openssltarget}" \
+ -Wa,--noexecstack "${CFLAGS}" "${LDFLAGS}"
+
+ make depend
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$_ver
+ # the test fails due to missing write permissions in /etc/ssl
+ # revert this patch for make test
+ patch -p0 -R -i $srcdir/ca-dir.patch
+ make test
+ patch -p0 -i $srcdir/ca-dir.patch
+}
+
+package() {
+ cd $srcdir/$pkgname-$_ver
+ make INSTALL_PREFIX=$pkgdir MANDIR=/usr/share/man install
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/testing/openssl/ca-dir.patch b/testing/openssl/ca-dir.patch
new file mode 100644
index 000000000..41d1386d3
--- /dev/null
+++ b/testing/openssl/ca-dir.patch
@@ -0,0 +1,33 @@
+--- apps/CA.pl.in 2006-04-28 02:30:49.000000000 +0200
++++ apps/CA.pl.in 2010-04-01 00:35:02.600553509 +0200
+@@ -53,7 +53,7 @@
+ $X509="$openssl x509";
+ $PKCS12="$openssl pkcs12";
+
+-$CATOP="./demoCA";
++$CATOP="/etc/ssl";
+ $CAKEY="cakey.pem";
+ $CAREQ="careq.pem";
+ $CACERT="cacert.pem";
+--- apps/CA.sh 2009-10-15 19:27:47.000000000 +0200
++++ apps/CA.sh 2010-04-01 00:35:02.600553509 +0200
+@@ -68,7 +68,7 @@
+ X509="$OPENSSL x509"
+ PKCS12="openssl pkcs12"
+
+-if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
++if [ -z "$CATOP" ] ; then CATOP=/etc/ssl ; fi
+ CAKEY=./cakey.pem
+ CAREQ=./careq.pem
+ CACERT=./cacert.pem
+--- apps/openssl.cnf 2009-04-04 20:09:43.000000000 +0200
++++ apps/openssl.cnf 2010-04-01 00:35:02.607220681 +0200
+@@ -39,7 +39,7 @@
+ ####################################################################
+ [ CA_default ]
+
+-dir = ./demoCA # Where everything is kept
++dir = /etc/ssl # Where everything is kept
+ certs = $dir/certs # Where the issued certs are kept
+ crl_dir = $dir/crl # Where the issued crl are kept
+ database = $dir/index.txt # database index file.
diff --git a/testing/openssl/fix-manpages.patch b/testing/openssl/fix-manpages.patch
new file mode 100644
index 000000000..0a300f3b9
--- /dev/null
+++ b/testing/openssl/fix-manpages.patch
@@ -0,0 +1,1920 @@
+Submitted By: Robert Connolly <robert at linuxfromscratch dot org>
+Date: 2005-11-13
+Initial Package Version: 0.9.8a
+Upstream Status: Submitted upstream
+Origin: Anderson Lizardo
+Description: This patch fixes conflicts between man pages
+ installed by OpenSSL and those found on other
+ packages (particulary Shadow, Perl, and
+ Man-pages). It also fixes syntax errors on some
+ POD files that generates slightly broken man
+ pages. Rediffed for 1.0.0a by Ken Moffat
+
+diff -Naur openssl-1.0.0a.orig//crypto/rand/md_rand.c openssl-1.0.0a/crypto/rand/md_rand.c
+--- openssl-1.0.0a.orig//crypto/rand/md_rand.c 2009-01-03 09:25:32.000000000 +0000
++++ openssl-1.0.0a/crypto/rand/md_rand.c 2010-09-01 19:36:31.604126440 +0100
+@@ -196,7 +196,7 @@
+ int do_not_lock;
+
+ /*
+- * (Based on the rand(3) manpage)
++ * (Based on the openssl_rand(3) manpage)
+ *
+ * The input is chopped up into units of 20 bytes (or less for
+ * the last block). Each of these blocks is run through the hash
+@@ -361,7 +361,7 @@
+ num_ceil = (1 + (num-1)/(MD_DIGEST_LENGTH/2)) * (MD_DIGEST_LENGTH/2);
+
+ /*
+- * (Based on the rand(3) manpage:)
++ * (Based on the openssl_rand(3) manpage)
+ *
+ * For each group of 10 bytes (or less), we do the following:
+ *
+diff -Naur openssl-1.0.0a.orig//doc/apps/openssl-passwd.pod openssl-1.0.0a/doc/apps/openssl-passwd.pod
+--- openssl-1.0.0a.orig//doc/apps/openssl-passwd.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/apps/openssl-passwd.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -0,0 +1,82 @@
++=pod
++
++=head1 NAME
++
++openssl-passwd - compute password hashes
++
++=head1 SYNOPSIS
++
++B<openssl passwd>
++[B<-crypt>]
++[B<-1>]
++[B<-apr1>]
++[B<-salt> I<string>]
++[B<-in> I<file>]
++[B<-stdin>]
++[B<-noverify>]
++[B<-quiet>]
++[B<-table>]
++{I<password>}
++
++=head1 DESCRIPTION
++
++The B<passwd> command computes the hash of a password typed at
++run-time or the hash of each password in a list. The password list is
++taken from the named file for option B<-in file>, from stdin for
++option B<-stdin>, or from the command line, or from the terminal otherwise.
++The Unix standard algorithm B<crypt> and the MD5-based BSD password
++algorithm B<1> and its Apache variant B<apr1> are available.
++
++=head1 OPTIONS
++
++=over 4
++
++=item B<-crypt>
++
++Use the B<crypt> algorithm (default).
++
++=item B<-1>
++
++Use the MD5 based BSD password algorithm B<1>.
++
++=item B<-apr1>
++
++Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
++
++=item B<-salt> I<string>
++
++Use the specified salt.
++When reading a password from the terminal, this implies B<-noverify>.
++
++=item B<-in> I<file>
++
++Read passwords from I<file>.
++
++=item B<-stdin>
++
++Read passwords from B<stdin>.
++
++=item B<-noverify>
++
++Don't verify when reading a password from the terminal.
++
++=item B<-quiet>
++
++Don't output warnings when passwords given at the command line are truncated.
++
++=item B<-table>
++
++In the output list, prepend the cleartext password and a TAB character
++to each password hash.
++
++=back
++
++=head1 EXAMPLES
++
++B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
++
++B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
++
++B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/apps/openssl.pod openssl-1.0.0a/doc/apps/openssl.pod
+--- openssl-1.0.0a.orig//doc/apps/openssl.pod 2010-01-21 18:46:28.000000000 +0000
++++ openssl-1.0.0a/doc/apps/openssl.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -163,7 +163,7 @@
+
+ Online Certificate Status Protocol utility.
+
+-=item L<B<passwd>|passwd(1)>
++=item L<B<passwd>|openssl-passwd(1)>
+
+ Generation of hashed passwords.
+
+@@ -401,7 +401,7 @@
+ L<dhparam(1)|dhparam(1)>, L<dsa(1)|dsa(1)>, L<dsaparam(1)|dsaparam(1)>,
+ L<enc(1)|enc(1)>, L<gendsa(1)|gendsa(1)>, L<genpkey(1)|genpkey(1)>,
+ L<genrsa(1)|genrsa(1)>, L<nseq(1)|nseq(1)>, L<openssl(1)|openssl(1)>,
+-L<passwd(1)|passwd(1)>,
++L<openssl-passwd(1)|openssl-passwd(1)>,
+ L<pkcs12(1)|pkcs12(1)>, L<pkcs7(1)|pkcs7(1)>, L<pkcs8(1)|pkcs8(1)>,
+ L<rand(1)|rand(1)>, L<req(1)|req(1)>, L<rsa(1)|rsa(1)>,
+ L<rsautl(1)|rsautl(1)>, L<s_client(1)|s_client(1)>,
+diff -Naur openssl-1.0.0a.orig//doc/apps/passwd.pod openssl-1.0.0a/doc/apps/passwd.pod
+--- openssl-1.0.0a.orig//doc/apps/passwd.pod 2002-10-04 13:59:00.000000000 +0100
++++ openssl-1.0.0a/doc/apps/passwd.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,82 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-passwd - compute password hashes
+-
+-=head1 SYNOPSIS
+-
+-B<openssl passwd>
+-[B<-crypt>]
+-[B<-1>]
+-[B<-apr1>]
+-[B<-salt> I<string>]
+-[B<-in> I<file>]
+-[B<-stdin>]
+-[B<-noverify>]
+-[B<-quiet>]
+-[B<-table>]
+-{I<password>}
+-
+-=head1 DESCRIPTION
+-
+-The B<passwd> command computes the hash of a password typed at
+-run-time or the hash of each password in a list. The password list is
+-taken from the named file for option B<-in file>, from stdin for
+-option B<-stdin>, or from the command line, or from the terminal otherwise.
+-The Unix standard algorithm B<crypt> and the MD5-based BSD password
+-algorithm B<1> and its Apache variant B<apr1> are available.
+-
+-=head1 OPTIONS
+-
+-=over 4
+-
+-=item B<-crypt>
+-
+-Use the B<crypt> algorithm (default).
+-
+-=item B<-1>
+-
+-Use the MD5 based BSD password algorithm B<1>.
+-
+-=item B<-apr1>
+-
+-Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
+-
+-=item B<-salt> I<string>
+-
+-Use the specified salt.
+-When reading a password from the terminal, this implies B<-noverify>.
+-
+-=item B<-in> I<file>
+-
+-Read passwords from I<file>.
+-
+-=item B<-stdin>
+-
+-Read passwords from B<stdin>.
+-
+-=item B<-noverify>
+-
+-Don't verify when reading a password from the terminal.
+-
+-=item B<-quiet>
+-
+-Don't output warnings when passwords given at the command line are truncated.
+-
+-=item B<-table>
+-
+-In the output list, prepend the cleartext password and a TAB character
+-to each password hash.
+-
+-=back
+-
+-=head1 EXAMPLES
+-
+-B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
+-
+-B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
+-
+-B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/BN_generate_prime.pod openssl-1.0.0a/doc/crypto/BN_generate_prime.pod
+--- openssl-1.0.0a.orig//doc/crypto/BN_generate_prime.pod 2003-01-13 13:18:22.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/BN_generate_prime.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -90,7 +90,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/bn.pod openssl-1.0.0a/doc/crypto/bn.pod
+--- openssl-1.0.0a.orig//doc/crypto/bn.pod 2008-07-03 20:59:24.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/bn.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -167,7 +167,7 @@
+ =head1 SEE ALSO
+
+ L<bn_internal(3)|bn_internal(3)>,
+-L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<BN_new(3)|BN_new(3)>, L<BN_CTX_new(3)|BN_CTX_new(3)>,
+ L<BN_copy(3)|BN_copy(3)>, L<BN_swap(3)|BN_swap(3)>, L<BN_num_bytes(3)|BN_num_bytes(3)>,
+ L<BN_add(3)|BN_add(3)>, L<BN_add_word(3)|BN_add_word(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/BN_rand.pod openssl-1.0.0a/doc/crypto/BN_rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/BN_rand.pod 2002-09-25 14:33:26.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/BN_rand.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -45,7 +45,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<RAND_add(3)|RAND_add(3)>, L<RAND_bytes(3)|RAND_bytes(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/CONF_modules_free.pod openssl-1.0.0a/doc/crypto/CONF_modules_free.pod
+--- openssl-1.0.0a.orig//doc/crypto/CONF_modules_free.pod 2006-12-21 21:13:27.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/CONF_modules_free.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -37,7 +37,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_modules_load_file(3), CONF_modules_load_file(3)>
++L<CONF_modules_load_file(3)|CONF_modules_load_file(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/CONF_modules_load_file.pod openssl-1.0.0a/doc/crypto/CONF_modules_load_file.pod
+--- openssl-1.0.0a.orig//doc/crypto/CONF_modules_load_file.pod 2004-03-02 13:31:32.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/CONF_modules_load_file.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -51,7 +51,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_free(3), CONF_free(3)>, L<err(3),err(3)>
++L<CONF_free(3)|CONF_free(3)>, L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/crypto.pod openssl-1.0.0a/doc/crypto/crypto.pod
+--- openssl-1.0.0a.orig//doc/crypto/crypto.pod 2002-10-06 13:59:25.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/crypto.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -46,7 +46,7 @@
+
+ =item AUXILIARY FUNCTIONS
+
+-L<err(3)|err(3)>, L<threads(3)|threads(3)>, L<rand(3)|rand(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<openssl_threads(3)|openssl_threads(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<OPENSSL_VERSION_NUMBER(3)|OPENSSL_VERSION_NUMBER(3)>
+
+ =item INPUT/OUTPUT, DATA ENCODING
+diff -Naur openssl-1.0.0a.orig//doc/crypto/des.pod openssl-1.0.0a/doc/crypto/des.pod
+--- openssl-1.0.0a.orig//doc/crypto/des.pod 2003-10-01 16:02:45.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/des.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -115,7 +115,7 @@
+ the key; it is used to speed the encryption process.
+
+ DES_random_key() generates a random key. The PRNG must be seeded
+-prior to using this function (see L<rand(3)|rand(3)>). If the PRNG
++prior to using this function (see L<openssl_rand(3)|openssl_rand(3)>). If the PRNG
+ could not generate a secure key, 0 is returned.
+
+ Before a DES key can be used, it must be converted into the
+@@ -317,7 +317,7 @@
+
+ =head1 SEE ALSO
+
+-crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<rand(3)|rand(3)>
++crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DH_generate_key.pod openssl-1.0.0a/doc/crypto/DH_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/DH_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DH_generate_key.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -40,7 +40,7 @@
+
+ =head1 SEE ALSO
+
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<DH_size(3)|DH_size(3)>
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<DH_size(3)|DH_size(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DH_generate_parameters.pod openssl-1.0.0a/doc/crypto/DH_generate_parameters.pod
+--- openssl-1.0.0a.orig//doc/crypto/DH_generate_parameters.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DH_generate_parameters.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DH_free(3)|DH_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/dh.pod openssl-1.0.0a/doc/crypto/dh.pod
+--- openssl-1.0.0a.orig//doc/crypto/dh.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/dh.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -67,8 +67,8 @@
+
+ =head1 SEE ALSO
+
+-L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<err(3)|err(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
++L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<openssl_err(3)|openssl_err(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
+ L<DH_set_method(3)|DH_set_method(3)>, L<DH_new(3)|DH_new(3)>,
+ L<DH_get_ex_new_index(3)|DH_get_ex_new_index(3)>,
+ L<DH_generate_parameters(3)|DH_generate_parameters(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_do_sign.pod openssl-1.0.0a/doc/crypto/DSA_do_sign.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_do_sign.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_do_sign.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -36,7 +36,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_SIG_new(3)|DSA_SIG_new(3)>,
+ L<DSA_sign(3)|DSA_sign(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_generate_key.pod openssl-1.0.0a/doc/crypto/DSA_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_generate_key.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -24,7 +24,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_generate_parameters(3)|DSA_generate_parameters(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_generate_parameters.pod openssl-1.0.0a/doc/crypto/DSA_generate_parameters.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_generate_parameters.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_generate_parameters.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -90,7 +90,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_free(3)|DSA_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/dsa.pod openssl-1.0.0a/doc/crypto/dsa.pod
+--- openssl-1.0.0a.orig//doc/crypto/dsa.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/dsa.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -100,7 +100,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<rsa(3)|rsa(3)>, L<sha(3)|sha(3)>, L<engine(3)|engine(3)>,
+ L<DSA_new(3)|DSA_new(3)>,
+ L<DSA_size(3)|DSA_size(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_sign.pod openssl-1.0.0a/doc/crypto/DSA_sign.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_sign.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_sign.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -55,7 +55,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_do_sign(3)|DSA_do_sign(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/engine.pod openssl-1.0.0a/doc/crypto/engine.pod
+--- openssl-1.0.0a.orig//doc/crypto/engine.pod 2007-11-19 09:18:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/engine.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -594,6 +594,6 @@
+
+ =head1 SEE ALSO
+
+-L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_clear_error.pod openssl-1.0.0a/doc/crypto/ERR_clear_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_clear_error.pod 2000-02-01 01:36:58.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_clear_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -20,7 +20,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_error_string.pod openssl-1.0.0a/doc/crypto/ERR_error_string.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_error_string.pod 2004-11-14 15:11:37.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_error_string.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -60,7 +60,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+ L<ERR_print_errors(3)|ERR_print_errors(3)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_get_error.pod openssl-1.0.0a/doc/crypto/ERR_get_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_get_error.pod 2002-11-29 14:21:54.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_get_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -61,7 +61,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_GET_LIB.pod openssl-1.0.0a/doc/crypto/ERR_GET_LIB.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_GET_LIB.pod 2000-02-01 01:36:58.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_GET_LIB.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -41,7 +41,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_load_crypto_strings.pod openssl-1.0.0a/doc/crypto/ERR_load_crypto_strings.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_load_crypto_strings.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_load_crypto_strings.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -35,7 +35,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_load_strings.pod openssl-1.0.0a/doc/crypto/ERR_load_strings.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_load_strings.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_load_strings.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -43,7 +43,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/err.pod openssl-1.0.0a/doc/crypto/err.pod
+--- openssl-1.0.0a.orig//doc/crypto/err.pod 2002-07-10 20:35:46.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/err.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,187 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-err - error codes
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/err.h>
+-
+- unsigned long ERR_get_error(void);
+- unsigned long ERR_peek_error(void);
+- unsigned long ERR_get_error_line(const char **file, int *line);
+- unsigned long ERR_peek_error_line(const char **file, int *line);
+- unsigned long ERR_get_error_line_data(const char **file, int *line,
+- const char **data, int *flags);
+- unsigned long ERR_peek_error_line_data(const char **file, int *line,
+- const char **data, int *flags);
+-
+- int ERR_GET_LIB(unsigned long e);
+- int ERR_GET_FUNC(unsigned long e);
+- int ERR_GET_REASON(unsigned long e);
+-
+- void ERR_clear_error(void);
+-
+- char *ERR_error_string(unsigned long e, char *buf);
+- const char *ERR_lib_error_string(unsigned long e);
+- const char *ERR_func_error_string(unsigned long e);
+- const char *ERR_reason_error_string(unsigned long e);
+-
+- void ERR_print_errors(BIO *bp);
+- void ERR_print_errors_fp(FILE *fp);
+-
+- void ERR_load_crypto_strings(void);
+- void ERR_free_strings(void);
+-
+- void ERR_remove_state(unsigned long pid);
+-
+- void ERR_put_error(int lib, int func, int reason, const char *file,
+- int line);
+- void ERR_add_error_data(int num, ...);
+-
+- void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
+- unsigned long ERR_PACK(int lib, int func, int reason);
+- int ERR_get_next_error_library(void);
+-
+-=head1 DESCRIPTION
+-
+-When a call to the OpenSSL library fails, this is usually signalled
+-by the return value, and an error code is stored in an error queue
+-associated with the current thread. The B<err> library provides
+-functions to obtain these error codes and textual error messages.
+-
+-The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
+-access error codes.
+-
+-Error codes contain information about where the error occurred, and
+-what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
+-extract this information. A method to obtain human-readable error
+-messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
+-
+-L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
+-error queue.
+-
+-Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
+-avoid memory leaks when threads are terminated.
+-
+-=head1 ADDING NEW ERROR CODES TO OPENSSL
+-
+-See L<ERR_put_error(3)> if you want to record error codes in the
+-OpenSSL error system from within your application.
+-
+-The remainder of this section is of interest only if you want to add
+-new error codes to OpenSSL or add error codes from external libraries.
+-
+-=head2 Reporting errors
+-
+-Each sub-library has a specific macro XXXerr() that is used to report
+-errors. Its first argument is a function code B<XXX_F_...>, the second
+-argument is a reason code B<XXX_R_...>. Function codes are derived
+-from the function names; reason codes consist of textual error
+-descriptions. For example, the function ssl23_read() reports a
+-"handshake failure" as follows:
+-
+- SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
+-
+-Function and reason codes should consist of upper case characters,
+-numbers and underscores only. The error file generation script translates
+-function codes into function names by looking in the header files
+-for an appropriate function name, if none is found it just uses
+-the capitalized form such as "SSL23_READ" in the above example.
+-
+-The trailing section of a reason code (after the "_R_") is translated
+-into lower case and underscores changed to spaces.
+-
+-When you are using new function or reason codes, run B<make errors>.
+-The necessary B<#define>s will then automatically be added to the
+-sub-library's header file.
+-
+-Although a library will normally report errors using its own specific
+-XXXerr macro, another library's macro can be used. This is normally
+-only done when a library wants to include ASN1 code which must use
+-the ASN1err() macro.
+-
+-=head2 Adding new libraries
+-
+-When adding a new sub-library to OpenSSL, assign it a library number
+-B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
+-name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
+-C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
+-(in B<crypto/err/err_all.c>). Finally, add an entry
+-
+- L XXX xxx.h xxx_err.c
+-
+-to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
+-Running B<make errors> will then generate a file B<xxx_err.c>, and
+-add all error codes used in the library to B<xxx.h>.
+-
+-Additionally the library include file must have a certain form.
+-Typically it will initially look like this:
+-
+- #ifndef HEADER_XXX_H
+- #define HEADER_XXX_H
+-
+- #ifdef __cplusplus
+- extern "C" {
+- #endif
+-
+- /* Include files */
+-
+- #include <openssl/bio.h>
+- #include <openssl/x509.h>
+-
+- /* Macros, structures and function prototypes */
+-
+-
+- /* BEGIN ERROR CODES */
+-
+-The B<BEGIN ERROR CODES> sequence is used by the error code
+-generation script as the point to place new error codes, any text
+-after this point will be overwritten when B<make errors> is run.
+-The closing #endif etc will be automatically added by the script.
+-
+-The generated C error code file B<xxx_err.c> will load the header
+-files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
+-header file must load any additional header files containing any
+-definitions it uses.
+-
+-=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
+-
+-It is also possible to use OpenSSL's error code scheme in external
+-libraries. The library needs to load its own codes and call the OpenSSL
+-error code insertion script B<mkerr.pl> explicitly to add codes to
+-the header file and generate the C error code file. This will normally
+-be done if the external library needs to generate new ASN1 structures
+-but it can also be used to add more general purpose error code handling.
+-
+-TBA more details
+-
+-=head1 INTERNALS
+-
+-The error queues are stored in a hash table with one B<ERR_STATE>
+-entry for each pid. ERR_get_state() returns the current thread's
+-B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
+-codes. When more error codes are added, the old ones are overwritten,
+-on the assumption that the most recent errors are most important.
+-
+-Error strings are also stored in hash table. The hash tables can
+-be obtained by calling ERR_get_err_state_table(void) and
+-ERR_get_string_table(void) respectively.
+-
+-=head1 SEE ALSO
+-
+-L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
+-L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
+-L<ERR_get_error(3)|ERR_get_error(3)>,
+-L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
+-L<ERR_clear_error(3)|ERR_clear_error(3)>,
+-L<ERR_error_string(3)|ERR_error_string(3)>,
+-L<ERR_print_errors(3)|ERR_print_errors(3)>,
+-L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+-L<ERR_remove_state(3)|ERR_remove_state(3)>,
+-L<ERR_put_error(3)|ERR_put_error(3)>,
+-L<ERR_load_strings(3)|ERR_load_strings(3)>,
+-L<SSL_get_error(3)|SSL_get_error(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_print_errors.pod openssl-1.0.0a/doc/crypto/ERR_print_errors.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_print_errors.pod 2000-02-01 01:36:59.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_print_errors.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -38,7 +38,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_put_error.pod openssl-1.0.0a/doc/crypto/ERR_put_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_put_error.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_put_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -34,7 +34,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_remove_state.pod openssl-1.0.0a/doc/crypto/ERR_remove_state.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_remove_state.pod 2000-05-19 08:54:42.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/ERR_remove_state.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -25,7 +25,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>
++L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_BytesToKey.pod openssl-1.0.0a/doc/crypto/EVP_BytesToKey.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_BytesToKey.pod 2004-11-25 17:47:30.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/EVP_BytesToKey.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_OpenInit.pod openssl-1.0.0a/doc/crypto/EVP_OpenInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_OpenInit.pod 2000-09-23 08:16:14.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_OpenInit.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -54,7 +54,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_SealInit(3)|EVP_SealInit(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_SealInit.pod openssl-1.0.0a/doc/crypto/EVP_SealInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_SealInit.pod 2005-03-29 18:50:08.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_SealInit.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -74,7 +74,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_OpenInit(3)|EVP_OpenInit(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_SignInit.pod openssl-1.0.0a/doc/crypto/EVP_SignInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_SignInit.pod 2006-07-12 13:31:29.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_SignInit.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -89,7 +89,7 @@
+ =head1 SEE ALSO
+
+ L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_VerifyInit.pod openssl-1.0.0a/doc/crypto/EVP_VerifyInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_VerifyInit.pod 2006-07-12 13:31:30.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_VerifyInit.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -80,7 +80,7 @@
+
+ L<evp(3)|evp(3)>,
+ L<EVP_SignInit(3)|EVP_SignInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/OPENSSL_config.pod openssl-1.0.0a/doc/crypto/OPENSSL_config.pod
+--- openssl-1.0.0a.orig//doc/crypto/OPENSSL_config.pod 2005-06-03 00:19:56.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/OPENSSL_config.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -73,7 +73,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<CONF_load_modules_file(3)|CONF_load_modules_file(3)>,
+-L<CONF_modules_free(3),CONF_modules_free(3)>
++L<CONF_modules_free(3)|CONF_modules_free(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_err.pod openssl-1.0.0a/doc/crypto/openssl_err.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_err.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_err.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,187 @@
++=pod
++
++=head1 NAME
++
++openssl_err - error codes
++
++=head1 SYNOPSIS
++
++ #include <openssl/err.h>
++
++ unsigned long ERR_get_error(void);
++ unsigned long ERR_peek_error(void);
++ unsigned long ERR_get_error_line(const char **file, int *line);
++ unsigned long ERR_peek_error_line(const char **file, int *line);
++ unsigned long ERR_get_error_line_data(const char **file, int *line,
++ const char **data, int *flags);
++ unsigned long ERR_peek_error_line_data(const char **file, int *line,
++ const char **data, int *flags);
++
++ int ERR_GET_LIB(unsigned long e);
++ int ERR_GET_FUNC(unsigned long e);
++ int ERR_GET_REASON(unsigned long e);
++
++ void ERR_clear_error(void);
++
++ char *ERR_error_string(unsigned long e, char *buf);
++ const char *ERR_lib_error_string(unsigned long e);
++ const char *ERR_func_error_string(unsigned long e);
++ const char *ERR_reason_error_string(unsigned long e);
++
++ void ERR_print_errors(BIO *bp);
++ void ERR_print_errors_fp(FILE *fp);
++
++ void ERR_load_crypto_strings(void);
++ void ERR_free_strings(void);
++
++ void ERR_remove_state(unsigned long pid);
++
++ void ERR_put_error(int lib, int func, int reason, const char *file,
++ int line);
++ void ERR_add_error_data(int num, ...);
++
++ void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
++ unsigned long ERR_PACK(int lib, int func, int reason);
++ int ERR_get_next_error_library(void);
++
++=head1 DESCRIPTION
++
++When a call to the OpenSSL library fails, this is usually signalled
++by the return value, and an error code is stored in an error queue
++associated with the current thread. The B<err> library provides
++functions to obtain these error codes and textual error messages.
++
++The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
++access error codes.
++
++Error codes contain information about where the error occurred, and
++what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
++extract this information. A method to obtain human-readable error
++messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
++
++L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
++error queue.
++
++Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
++avoid memory leaks when threads are terminated.
++
++=head1 ADDING NEW ERROR CODES TO OPENSSL
++
++See L<ERR_put_error(3)> if you want to record error codes in the
++OpenSSL error system from within your application.
++
++The remainder of this section is of interest only if you want to add
++new error codes to OpenSSL or add error codes from external libraries.
++
++=head2 Reporting errors
++
++Each sub-library has a specific macro XXXerr() that is used to report
++errors. Its first argument is a function code B<XXX_F_...>, the second
++argument is a reason code B<XXX_R_...>. Function codes are derived
++from the function names; reason codes consist of textual error
++descriptions. For example, the function ssl23_read() reports a
++"handshake failure" as follows:
++
++ SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
++
++Function and reason codes should consist of upper case characters,
++numbers and underscores only. The error file generation script translates
++function codes into function names by looking in the header files
++for an appropriate function name, if none is found it just uses
++the capitalized form such as "SSL23_READ" in the above example.
++
++The trailing section of a reason code (after the "_R_") is translated
++into lower case and underscores changed to spaces.
++
++When you are using new function or reason codes, run B<make errors>.
++The necessary B<#define>s will then automatically be added to the
++sub-library's header file.
++
++Although a library will normally report errors using its own specific
++XXXerr macro, another library's macro can be used. This is normally
++only done when a library wants to include ASN1 code which must use
++the ASN1err() macro.
++
++=head2 Adding new libraries
++
++When adding a new sub-library to OpenSSL, assign it a library number
++B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
++name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
++C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
++(in B<crypto/err/err_all.c>). Finally, add an entry
++
++ L XXX xxx.h xxx_err.c
++
++to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
++Running B<make errors> will then generate a file B<xxx_err.c>, and
++add all error codes used in the library to B<xxx.h>.
++
++Additionally the library include file must have a certain form.
++Typically it will initially look like this:
++
++ #ifndef HEADER_XXX_H
++ #define HEADER_XXX_H
++
++ #ifdef __cplusplus
++ extern "C" {
++ #endif
++
++ /* Include files */
++
++ #include <openssl/bio.h>
++ #include <openssl/x509.h>
++
++ /* Macros, structures and function prototypes */
++
++
++ /* BEGIN ERROR CODES */
++
++The B<BEGIN ERROR CODES> sequence is used by the error code
++generation script as the point to place new error codes, any text
++after this point will be overwritten when B<make errors> is run.
++The closing #endif etc will be automatically added by the script.
++
++The generated C error code file B<xxx_err.c> will load the header
++files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
++header file must load any additional header files containing any
++definitions it uses.
++
++=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
++
++It is also possible to use OpenSSL's error code scheme in external
++libraries. The library needs to load its own codes and call the OpenSSL
++error code insertion script B<mkerr.pl> explicitly to add codes to
++the header file and generate the C error code file. This will normally
++be done if the external library needs to generate new ASN1 structures
++but it can also be used to add more general purpose error code handling.
++
++TBA more details
++
++=head1 INTERNALS
++
++The error queues are stored in a hash table with one B<ERR_STATE>
++entry for each pid. ERR_get_state() returns the current thread's
++B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
++codes. When more error codes are added, the old ones are overwritten,
++on the assumption that the most recent errors are most important.
++
++Error strings are also stored in hash table. The hash tables can
++be obtained by calling ERR_get_err_state_table(void) and
++ERR_get_string_table(void) respectively.
++
++=head1 SEE ALSO
++
++L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
++L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>,
++L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
++L<ERR_clear_error(3)|ERR_clear_error(3)>,
++L<ERR_error_string(3)|ERR_error_string(3)>,
++L<ERR_print_errors(3)|ERR_print_errors(3)>,
++L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
++L<ERR_remove_state(3)|ERR_remove_state(3)>,
++L<ERR_put_error(3)|ERR_put_error(3)>,
++L<ERR_load_strings(3)|ERR_load_strings(3)>,
++L<SSL_get_error(3)|SSL_get_error(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_rand.pod openssl-1.0.0a/doc/crypto/openssl_rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_rand.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_rand.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,175 @@
++=pod
++
++=head1 NAME
++
++openssl_rand - pseudo-random number generator
++
++=head1 SYNOPSIS
++
++ #include <openssl/rand.h>
++
++ int RAND_set_rand_engine(ENGINE *engine);
++
++ int RAND_bytes(unsigned char *buf, int num);
++ int RAND_pseudo_bytes(unsigned char *buf, int num);
++
++ void RAND_seed(const void *buf, int num);
++ void RAND_add(const void *buf, int num, int entropy);
++ int RAND_status(void);
++
++ int RAND_load_file(const char *file, long max_bytes);
++ int RAND_write_file(const char *file);
++ const char *RAND_file_name(char *file, size_t num);
++
++ int RAND_egd(const char *path);
++
++ void RAND_set_rand_method(const RAND_METHOD *meth);
++ const RAND_METHOD *RAND_get_rand_method(void);
++ RAND_METHOD *RAND_SSLeay(void);
++
++ void RAND_cleanup(void);
++
++ /* For Win32 only */
++ void RAND_screen(void);
++ int RAND_event(UINT, WPARAM, LPARAM);
++
++=head1 DESCRIPTION
++
++Since the introduction of the ENGINE API, the recommended way of controlling
++default implementations is by using the ENGINE API functions. The default
++B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
++RAND_get_rand_method(), is only used if no ENGINE has been set as the default
++"rand" implementation. Hence, these two functions are no longer the recommened
++way to control defaults.
++
++If an alternative B<RAND_METHOD> implementation is being used (either set
++directly or as provided by an ENGINE module), then it is entirely responsible
++for the generation and management of a cryptographically secure PRNG stream. The
++mechanisms described below relate solely to the software PRNG implementation
++built in to OpenSSL and used by default.
++
++These functions implement a cryptographically secure pseudo-random
++number generator (PRNG). It is used by other library functions for
++example to generate random keys, and applications can use it when they
++need randomness.
++
++A cryptographic PRNG must be seeded with unpredictable data such as
++mouse movements or keys pressed at random by the user. This is
++described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
++(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
++seeding process whenever the application is started.
++
++L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
++PRNG.
++
++=head1 INTERNALS
++
++The RAND_SSLeay() method implements a PRNG based on a cryptographic
++hash function.
++
++The following description of its design is based on the SSLeay
++documentation:
++
++First up I will state the things I believe I need for a good RNG.
++
++=over 4
++
++=item 1
++
++A good hashing algorithm to mix things up and to convert the RNG 'state'
++to random numbers.
++
++=item 2
++
++An initial source of random 'state'.
++
++=item 3
++
++The state should be very large. If the RNG is being used to generate
++4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
++If your RNG state only has 128 bits, you are obviously limiting the
++search space to 128 bits, not 2048. I'm probably getting a little
++carried away on this last point but it does indicate that it may not be
++a bad idea to keep quite a lot of RNG state. It should be easier to
++break a cipher than guess the RNG seed data.
++
++=item 4
++
++Any RNG seed data should influence all subsequent random numbers
++generated. This implies that any random seed data entered will have
++an influence on all subsequent random numbers generated.
++
++=item 5
++
++When using data to seed the RNG state, the data used should not be
++extractable from the RNG state. I believe this should be a
++requirement because one possible source of 'secret' semi random
++data would be a private key or a password. This data must
++not be disclosed by either subsequent random numbers or a
++'core' dump left by a program crash.
++
++=item 6
++
++Given the same initial 'state', 2 systems should deviate in their RNG state
++(and hence the random numbers generated) over time if at all possible.
++
++=item 7
++
++Given the random number output stream, it should not be possible to determine
++the RNG state or the next random number.
++
++=back
++
++The algorithm is as follows.
++
++There is global state made up of a 1023 byte buffer (the 'state'), a
++working hash value ('md'), and a counter ('count').
++
++Whenever seed data is added, it is inserted into the 'state' as
++follows.
++
++The input is chopped up into units of 20 bytes (or less for
++the last block). Each of these blocks is run through the hash
++function as follows: The data passed to the hash function
++is the current 'md', the same number of bytes from the 'state'
++(the location determined by in incremented looping index) as
++the current 'block', the new key data 'block', and 'count'
++(which is incremented after each use).
++The result of this is kept in 'md' and also xored into the
++'state' at the same locations that were used as input into the
++hash function. I
++believe this system addresses points 1 (hash function; currently
++SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
++function and xor).
++
++When bytes are extracted from the RNG, the following process is used.
++For each group of 10 bytes (or less), we do the following:
++
++Input into the hash function the local 'md' (which is initialized from
++the global 'md' before any bytes are generated), the bytes that are to
++be overwritten by the random bytes, and bytes from the 'state'
++(incrementing looping index). From this digest output (which is kept
++in 'md'), the top (up to) 10 bytes are returned to the caller and the
++bottom 10 bytes are xored into the 'state'.
++
++Finally, after we have finished 'num' random bytes for the caller,
++'count' (which is incremented) and the local and global 'md' are fed
++into the hash function and the results are kept in the global 'md'.
++
++I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
++into the 'state' the 'old' data from the caller that is about to be
++overwritten) and 7 (by not using the 10 bytes given to the caller to
++update the 'state', but they are used to update 'md').
++
++So of the points raised, only 2 is not addressed (but see
++L<RAND_add(3)|RAND_add(3)>).
++
++=head1 SEE ALSO
++
++L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<RAND_bytes(3)|RAND_bytes(3)>,
++L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
++L<RAND_cleanup(3)|RAND_cleanup(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_threads.pod openssl-1.0.0a/doc/crypto/openssl_threads.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_threads.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_threads.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,175 @@
++=pod
++
++=head1 NAME
++
++CRYPTO_set_locking_callback, CRYPTO_set_id_callback, CRYPTO_num_locks,
++CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
++CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
++CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
++
++=head1 SYNOPSIS
++
++ #include <openssl/crypto.h>
++
++ void CRYPTO_set_locking_callback(void (*locking_function)(int mode,
++ int n, const char *file, int line));
++
++ void CRYPTO_set_id_callback(unsigned long (*id_function)(void));
++
++ int CRYPTO_num_locks(void);
++
++
++ /* struct CRYPTO_dynlock_value needs to be defined by the user */
++ struct CRYPTO_dynlock_value;
++
++ void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
++ (*dyn_create_function)(char *file, int line));
++ void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
++ (int mode, struct CRYPTO_dynlock_value *l,
++ const char *file, int line));
++ void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
++ (struct CRYPTO_dynlock_value *l, const char *file, int line));
++
++ int CRYPTO_get_new_dynlockid(void);
++
++ void CRYPTO_destroy_dynlockid(int i);
++
++ void CRYPTO_lock(int mode, int n, const char *file, int line);
++
++ #define CRYPTO_w_lock(type) \
++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_w_unlock(type) \
++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_r_lock(type) \
++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_r_unlock(type) \
++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_add(addr,amount,type) \
++ CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
++
++=head1 DESCRIPTION
++
++OpenSSL can safely be used in multi-threaded applications provided
++that at least two callback functions are set.
++
++locking_function(int mode, int n, const char *file, int line) is
++needed to perform locking on shared data structures.
++(Note that OpenSSL uses a number of global data structures that
++will be implicitly shared whenever multiple threads use OpenSSL.)
++Multi-threaded applications will crash at random if it is not set.
++
++locking_function() must be able to handle up to CRYPTO_num_locks()
++different mutex locks. It sets the B<n>-th lock if B<mode> &
++B<CRYPTO_LOCK>, and releases it otherwise.
++
++B<file> and B<line> are the file number of the function setting the
++lock. They can be useful for debugging.
++
++id_function(void) is a function that returns a thread ID, for example
++pthread_self() if it returns an integer (see NOTES below). It isn't
++needed on Windows nor on platforms where getpid() returns a different
++ID for each thread (see NOTES below).
++
++Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
++of OpenSSL need it for better performance. To enable this, the following
++is required:
++
++=over 4
++
++=item *
++Three additional callback function, dyn_create_function, dyn_lock_function
++and dyn_destroy_function.
++
++=item *
++A structure defined with the data that each lock needs to handle.
++
++=back
++
++struct CRYPTO_dynlock_value has to be defined to contain whatever structure
++is needed to handle locks.
++
++dyn_create_function(const char *file, int line) is needed to create a
++lock. Multi-threaded applications might crash at random if it is not set.
++
++dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
++is needed to perform locking off dynamic lock numbered n. Multi-threaded
++applications might crash at random if it is not set.
++
++dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
++needed to destroy the lock l. Multi-threaded applications might crash at
++random if it is not set.
++
++CRYPTO_get_new_dynlockid() is used to create locks. It will call
++dyn_create_function for the actual creation.
++
++CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
++dyn_destroy_function for the actual destruction.
++
++CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
++describing what should be done with the lock. n is the number of the
++lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
++from the following values. These values are pairwise exclusive, with
++undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
++should not be used together):
++
++ CRYPTO_LOCK 0x01
++ CRYPTO_UNLOCK 0x02
++ CRYPTO_READ 0x04
++ CRYPTO_WRITE 0x08
++
++=head1 RETURN VALUES
++
++CRYPTO_num_locks() returns the required number of locks.
++
++CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
++
++The other functions return no values.
++
++=head1 NOTES
++
++You can find out if OpenSSL was configured with thread support:
++
++ #define OPENSSL_THREAD_DEFINES
++ #include <openssl/opensslconf.h>
++ #if defined(OPENSSL_THREADS)
++ // thread support enabled
++ #else
++ // no thread support
++ #endif
++
++Also, dynamic locks are currently not used internally by OpenSSL, but
++may do so in the future.
++
++Defining id_function(void) has it's own issues. Generally speaking,
++pthread_self() should be used, even on platforms where getpid() gives
++different answers in each thread, since that may depend on the machine
++the program is run on, not the machine where the program is being
++compiled. For instance, Red Hat 8 Linux and earlier used
++LinuxThreads, whose getpid() returns a different value for each
++thread. Red Hat 9 Linux and later use NPTL, which is
++Posix-conformant, and has a getpid() that returns the same value for
++all threads in a process. A program compiled on Red Hat 8 and run on
++Red Hat 9 will therefore see getpid() returning the same value for
++all threads.
++
++There is still the issue of platforms where pthread_self() returns
++something other than an integer. This is a bit unusual, and this
++manual has no cookbook solution for that case.
++
++=head1 EXAMPLES
++
++B<crypto/threads/mttest.c> shows examples of the callback functions on
++Solaris, Irix and Win32.
++
++=head1 HISTORY
++
++CRYPTO_set_locking_callback() and CRYPTO_set_id_callback() are
++available in all versions of SSLeay and OpenSSL.
++CRYPTO_num_locks() was added in OpenSSL 0.9.4.
++All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
++
++=head1 SEE ALSO
++
++L<crypto(3)|crypto(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_add.pod openssl-1.0.0a/doc/crypto/RAND_add.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_add.pod 2000-03-22 15:30:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_add.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -65,7 +65,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+ L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_bytes.pod openssl-1.0.0a/doc/crypto/RAND_bytes.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_bytes.pod 2007-09-24 12:01:18.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RAND_bytes.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -38,7 +38,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<RAND_add(3)|RAND_add(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_cleanup.pod openssl-1.0.0a/doc/crypto/RAND_cleanup.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_cleanup.pod 2000-01-27 01:25:06.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_cleanup.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -20,7 +20,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>
++L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_egd.pod openssl-1.0.0a/doc/crypto/RAND_egd.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_egd.pod 2008-11-10 11:26:44.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_egd.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -72,7 +72,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+ L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_load_file.pod openssl-1.0.0a/doc/crypto/RAND_load_file.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_load_file.pod 2001-03-21 15:25:56.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_load_file.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -43,7 +43,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/rand.pod openssl-1.0.0a/doc/crypto/rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/rand.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/rand.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,175 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-rand - pseudo-random number generator
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/rand.h>
+-
+- int RAND_set_rand_engine(ENGINE *engine);
+-
+- int RAND_bytes(unsigned char *buf, int num);
+- int RAND_pseudo_bytes(unsigned char *buf, int num);
+-
+- void RAND_seed(const void *buf, int num);
+- void RAND_add(const void *buf, int num, int entropy);
+- int RAND_status(void);
+-
+- int RAND_load_file(const char *file, long max_bytes);
+- int RAND_write_file(const char *file);
+- const char *RAND_file_name(char *file, size_t num);
+-
+- int RAND_egd(const char *path);
+-
+- void RAND_set_rand_method(const RAND_METHOD *meth);
+- const RAND_METHOD *RAND_get_rand_method(void);
+- RAND_METHOD *RAND_SSLeay(void);
+-
+- void RAND_cleanup(void);
+-
+- /* For Win32 only */
+- void RAND_screen(void);
+- int RAND_event(UINT, WPARAM, LPARAM);
+-
+-=head1 DESCRIPTION
+-
+-Since the introduction of the ENGINE API, the recommended way of controlling
+-default implementations is by using the ENGINE API functions. The default
+-B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
+-RAND_get_rand_method(), is only used if no ENGINE has been set as the default
+-"rand" implementation. Hence, these two functions are no longer the recommened
+-way to control defaults.
+-
+-If an alternative B<RAND_METHOD> implementation is being used (either set
+-directly or as provided by an ENGINE module), then it is entirely responsible
+-for the generation and management of a cryptographically secure PRNG stream. The
+-mechanisms described below relate solely to the software PRNG implementation
+-built in to OpenSSL and used by default.
+-
+-These functions implement a cryptographically secure pseudo-random
+-number generator (PRNG). It is used by other library functions for
+-example to generate random keys, and applications can use it when they
+-need randomness.
+-
+-A cryptographic PRNG must be seeded with unpredictable data such as
+-mouse movements or keys pressed at random by the user. This is
+-described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
+-(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
+-seeding process whenever the application is started.
+-
+-L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
+-PRNG.
+-
+-=head1 INTERNALS
+-
+-The RAND_SSLeay() method implements a PRNG based on a cryptographic
+-hash function.
+-
+-The following description of its design is based on the SSLeay
+-documentation:
+-
+-First up I will state the things I believe I need for a good RNG.
+-
+-=over 4
+-
+-=item 1
+-
+-A good hashing algorithm to mix things up and to convert the RNG 'state'
+-to random numbers.
+-
+-=item 2
+-
+-An initial source of random 'state'.
+-
+-=item 3
+-
+-The state should be very large. If the RNG is being used to generate
+-4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
+-If your RNG state only has 128 bits, you are obviously limiting the
+-search space to 128 bits, not 2048. I'm probably getting a little
+-carried away on this last point but it does indicate that it may not be
+-a bad idea to keep quite a lot of RNG state. It should be easier to
+-break a cipher than guess the RNG seed data.
+-
+-=item 4
+-
+-Any RNG seed data should influence all subsequent random numbers
+-generated. This implies that any random seed data entered will have
+-an influence on all subsequent random numbers generated.
+-
+-=item 5
+-
+-When using data to seed the RNG state, the data used should not be
+-extractable from the RNG state. I believe this should be a
+-requirement because one possible source of 'secret' semi random
+-data would be a private key or a password. This data must
+-not be disclosed by either subsequent random numbers or a
+-'core' dump left by a program crash.
+-
+-=item 6
+-
+-Given the same initial 'state', 2 systems should deviate in their RNG state
+-(and hence the random numbers generated) over time if at all possible.
+-
+-=item 7
+-
+-Given the random number output stream, it should not be possible to determine
+-the RNG state or the next random number.
+-
+-=back
+-
+-The algorithm is as follows.
+-
+-There is global state made up of a 1023 byte buffer (the 'state'), a
+-working hash value ('md'), and a counter ('count').
+-
+-Whenever seed data is added, it is inserted into the 'state' as
+-follows.
+-
+-The input is chopped up into units of 20 bytes (or less for
+-the last block). Each of these blocks is run through the hash
+-function as follows: The data passed to the hash function
+-is the current 'md', the same number of bytes from the 'state'
+-(the location determined by in incremented looping index) as
+-the current 'block', the new key data 'block', and 'count'
+-(which is incremented after each use).
+-The result of this is kept in 'md' and also xored into the
+-'state' at the same locations that were used as input into the
+-hash function. I
+-believe this system addresses points 1 (hash function; currently
+-SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
+-function and xor).
+-
+-When bytes are extracted from the RNG, the following process is used.
+-For each group of 10 bytes (or less), we do the following:
+-
+-Input into the hash function the local 'md' (which is initialized from
+-the global 'md' before any bytes are generated), the bytes that are to
+-be overwritten by the random bytes, and bytes from the 'state'
+-(incrementing looping index). From this digest output (which is kept
+-in 'md'), the top (up to) 10 bytes are returned to the caller and the
+-bottom 10 bytes are xored into the 'state'.
+-
+-Finally, after we have finished 'num' random bytes for the caller,
+-'count' (which is incremented) and the local and global 'md' are fed
+-into the hash function and the results are kept in the global 'md'.
+-
+-I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
+-into the 'state' the 'old' data from the caller that is about to be
+-overwritten) and 7 (by not using the 10 bytes given to the caller to
+-update the 'state', but they are used to update 'md').
+-
+-So of the points raised, only 2 is not addressed (but see
+-L<RAND_add(3)|RAND_add(3)>).
+-
+-=head1 SEE ALSO
+-
+-L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+-L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+-L<RAND_bytes(3)|RAND_bytes(3)>,
+-L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
+-L<RAND_cleanup(3)|RAND_cleanup(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_set_rand_method.pod openssl-1.0.0a/doc/crypto/RAND_set_rand_method.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_set_rand_method.pod 2007-11-19 09:18:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_set_rand_method.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -67,7 +67,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_blinding_on.pod openssl-1.0.0a/doc/crypto/RSA_blinding_on.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_blinding_on.pod 2000-02-24 11:55:10.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RSA_blinding_on.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -34,7 +34,7 @@
+
+ =head1 SEE ALSO
+
+-L<rsa(3)|rsa(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_generate_key.pod openssl-1.0.0a/doc/crypto/RSA_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RSA_generate_key.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_free(3)|RSA_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/rsa.pod openssl-1.0.0a/doc/crypto/rsa.pod
+--- openssl-1.0.0a.orig//doc/crypto/rsa.pod 2002-08-04 22:08:36.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/rsa.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -108,7 +108,7 @@
+ =head1 SEE ALSO
+
+ L<rsa(1)|rsa(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>,
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
+ L<RSA_public_encrypt(3)|RSA_public_encrypt(3)>,
+ L<RSA_sign(3)|RSA_sign(3)>, L<RSA_size(3)|RSA_size(3)>,
+ L<RSA_generate_key(3)|RSA_generate_key(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_public_encrypt.pod openssl-1.0.0a/doc/crypto/RSA_public_encrypt.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_public_encrypt.pod 2004-03-23 21:01:34.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RSA_public_encrypt.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -73,7 +73,7 @@
+
+ =head1 SEE ALSO
+
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_size(3)|RSA_size(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod openssl-1.0.0a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2002-09-25 14:33:28.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -48,7 +48,7 @@
+ =head1 SEE ALSO
+
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<objects(3)|objects(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
+ L<RSA_verify(3)|RSA_verify(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/threads.pod openssl-1.0.0a/doc/crypto/threads.pod
+--- openssl-1.0.0a.orig//doc/crypto/threads.pod 2009-10-01 00:40:52.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/threads.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,210 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-CRYPTO_THREADID_set_callback, CRYPTO_THREADID_get_callback,
+-CRYPTO_THREADID_current, CRYPTO_THREADID_cmp, CRYPTO_THREADID_cpy,
+-CRYPTO_THREADID_hash, CRYPTO_set_locking_callback, CRYPTO_num_locks,
+-CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
+-CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
+-CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/crypto.h>
+-
+- /* Don't use this structure directly. */
+- typedef struct crypto_threadid_st
+- {
+- void *ptr;
+- unsigned long val;
+- } CRYPTO_THREADID;
+- /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
+- void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val);
+- void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr);
+- int CRYPTO_THREADID_set_callback(void (*threadid_func)(CRYPTO_THREADID *));
+- void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *);
+- void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
+- int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a,
+- const CRYPTO_THREADID *b);
+- void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest,
+- const CRYPTO_THREADID *src);
+- unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
+-
+- int CRYPTO_num_locks(void);
+-
+- /* struct CRYPTO_dynlock_value needs to be defined by the user */
+- struct CRYPTO_dynlock_value;
+-
+- void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
+- (*dyn_create_function)(char *file, int line));
+- void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
+- (int mode, struct CRYPTO_dynlock_value *l,
+- const char *file, int line));
+- void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
+- (struct CRYPTO_dynlock_value *l, const char *file, int line));
+-
+- int CRYPTO_get_new_dynlockid(void);
+-
+- void CRYPTO_destroy_dynlockid(int i);
+-
+- void CRYPTO_lock(int mode, int n, const char *file, int line);
+-
+- #define CRYPTO_w_lock(type) \
+- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_w_unlock(type) \
+- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_r_lock(type) \
+- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_r_unlock(type) \
+- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_add(addr,amount,type) \
+- CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
+-
+-=head1 DESCRIPTION
+-
+-OpenSSL can safely be used in multi-threaded applications provided
+-that at least two callback functions are set, locking_function and
+-threadid_func.
+-
+-locking_function(int mode, int n, const char *file, int line) is
+-needed to perform locking on shared data structures.
+-(Note that OpenSSL uses a number of global data structures that
+-will be implicitly shared whenever multiple threads use OpenSSL.)
+-Multi-threaded applications will crash at random if it is not set.
+-
+-locking_function() must be able to handle up to CRYPTO_num_locks()
+-different mutex locks. It sets the B<n>-th lock if B<mode> &
+-B<CRYPTO_LOCK>, and releases it otherwise.
+-
+-B<file> and B<line> are the file number of the function setting the
+-lock. They can be useful for debugging.
+-
+-threadid_func(CRYPTO_THREADID *id) is needed to record the currently-executing
+-thread's identifier into B<id>. The implementation of this callback should not
+-fill in B<id> directly, but should use CRYPTO_THREADID_set_numeric() if thread
+-IDs are numeric, or CRYPTO_THREADID_set_pointer() if they are pointer-based.
+-If the application does not register such a callback using
+-CRYPTO_THREADID_set_callback(), then a default implementation is used - on
+-Windows and BeOS this uses the system's default thread identifying APIs, and on
+-all other platforms it uses the address of B<errno>. The latter is satisfactory
+-for thread-safety if and only if the platform has a thread-local error number
+-facility.
+-
+-Once threadid_func() is registered, or if the built-in default implementation is
+-to be used;
+-
+-=over 4
+-
+-=item *
+-CRYPTO_THREADID_current() records the currently-executing thread ID into the
+-given B<id> object.
+-
+-=item *
+-CRYPTO_THREADID_cmp() compares two thread IDs (returning zero for equality, ie.
+-the same semantics as memcmp()).
+-
+-=item *
+-CRYPTO_THREADID_cpy() duplicates a thread ID value,
+-
+-=item *
+-CRYPTO_THREADID_hash() returns a numeric value usable as a hash-table key. This
+-is usually the exact numeric or pointer-based thread ID used internally, however
+-this also handles the unusual case where pointers are larger than 'long'
+-variables and the platform's thread IDs are pointer-based - in this case, mixing
+-is done to attempt to produce a unique numeric value even though it is not as
+-wide as the platform's true thread IDs.
+-
+-=back
+-
+-Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
+-of OpenSSL need it for better performance. To enable this, the following
+-is required:
+-
+-=over 4
+-
+-=item *
+-Three additional callback function, dyn_create_function, dyn_lock_function
+-and dyn_destroy_function.
+-
+-=item *
+-A structure defined with the data that each lock needs to handle.
+-
+-=back
+-
+-struct CRYPTO_dynlock_value has to be defined to contain whatever structure
+-is needed to handle locks.
+-
+-dyn_create_function(const char *file, int line) is needed to create a
+-lock. Multi-threaded applications might crash at random if it is not set.
+-
+-dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
+-is needed to perform locking off dynamic lock numbered n. Multi-threaded
+-applications might crash at random if it is not set.
+-
+-dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
+-needed to destroy the lock l. Multi-threaded applications might crash at
+-random if it is not set.
+-
+-CRYPTO_get_new_dynlockid() is used to create locks. It will call
+-dyn_create_function for the actual creation.
+-
+-CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
+-dyn_destroy_function for the actual destruction.
+-
+-CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
+-describing what should be done with the lock. n is the number of the
+-lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
+-from the following values. These values are pairwise exclusive, with
+-undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
+-should not be used together):
+-
+- CRYPTO_LOCK 0x01
+- CRYPTO_UNLOCK 0x02
+- CRYPTO_READ 0x04
+- CRYPTO_WRITE 0x08
+-
+-=head1 RETURN VALUES
+-
+-CRYPTO_num_locks() returns the required number of locks.
+-
+-CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
+-
+-The other functions return no values.
+-
+-=head1 NOTES
+-
+-You can find out if OpenSSL was configured with thread support:
+-
+- #define OPENSSL_THREAD_DEFINES
+- #include <openssl/opensslconf.h>
+- #if defined(OPENSSL_THREADS)
+- // thread support enabled
+- #else
+- // no thread support
+- #endif
+-
+-Also, dynamic locks are currently not used internally by OpenSSL, but
+-may do so in the future.
+-
+-=head1 EXAMPLES
+-
+-B<crypto/threads/mttest.c> shows examples of the callback functions on
+-Solaris, Irix and Win32.
+-
+-=head1 HISTORY
+-
+-CRYPTO_set_locking_callback() is
+-available in all versions of SSLeay and OpenSSL.
+-CRYPTO_num_locks() was added in OpenSSL 0.9.4.
+-All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
+-B<CRYPTO_THREADID> and associated functions were introduced in OpenSSL 1.0.0
+-to replace (actually, deprecate) the previous CRYPTO_set_id_callback(),
+-CRYPTO_get_id_callback(), and CRYPTO_thread_id() functions which assumed
+-thread IDs to always be represented by 'unsigned long'.
+-
+-=head1 SEE ALSO
+-
+-L<crypto(3)|crypto(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/X509_NAME_ENTRY_get_object.pod openssl-1.0.0a/doc/crypto/X509_NAME_ENTRY_get_object.pod
+--- openssl-1.0.0a.orig//doc/crypto/X509_NAME_ENTRY_get_object.pod 2006-05-14 12:27:59.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/X509_NAME_ENTRY_get_object.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -65,7 +65,7 @@
+ =head1 SEE ALSO
+
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<d2i_X509_NAME(3)|d2i_X509_NAME(3)>,
+-L<OBJ_nid2obj(3),OBJ_nid2obj(3)>
++L<OBJ_nid2obj(3)|OBJ_nid2obj(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/ssl/SSL_get_error.pod openssl-1.0.0a/doc/ssl/SSL_get_error.pod
+--- openssl-1.0.0a.orig//doc/ssl/SSL_get_error.pod 2005-03-30 12:50:14.000000000 +0100
++++ openssl-1.0.0a/doc/ssl/SSL_get_error.pod 2010-09-01 19:36:40.259360162 +0100
+@@ -105,7 +105,7 @@
+
+ =head1 SEE ALSO
+
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/ssl/SSL_want.pod openssl-1.0.0a/doc/ssl/SSL_want.pod
+--- openssl-1.0.0a.orig//doc/ssl/SSL_want.pod 2005-03-30 12:50:14.000000000 +0100
++++ openssl-1.0.0a/doc/ssl/SSL_want.pod 2010-09-01 19:36:40.259360162 +0100
+@@ -72,6 +72,6 @@
+
+ =head1 SEE ALSO
+
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
+
+ =cut
+diff -Naur openssl-1.0.0a.orig//FAQ openssl-1.0.0a/FAQ
+--- openssl-1.0.0a.orig//FAQ 2010-06-01 14:31:36.000000000 +0100
++++ openssl-1.0.0a/FAQ 2010-09-01 19:39:19.677244857 +0100
+@@ -724,7 +724,7 @@
+ CRYPTO_set_id_callback(), for all versions of OpenSSL up to and
+ including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback()
+ and associated APIs are deprecated by CRYPTO_THREADID_set_callback()
+-and friends. This is described in the threads(3) manpage.
++and friends. This is described in the openssl_threads(3) manpage.
+
+ * I've compiled a program under Windows and it crashes: why?
+
diff --git a/testing/openssl/no-rpath.patch b/testing/openssl/no-rpath.patch
new file mode 100644
index 000000000..ebd95e23d
--- /dev/null
+++ b/testing/openssl/no-rpath.patch
@@ -0,0 +1,11 @@
+--- Makefile.shared.no-rpath 2005-06-23 22:47:54.000000000 +0200
++++ Makefile.shared 2005-11-16 22:35:37.000000000 +0100
+@@ -153,7 +153,7 @@
+ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
+
+-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
++DO_GNU_APP=LDFLAGS="$(CFLAGS)"
+
+ #This is rather special. It's a special target with which one can link
+ #applications without bothering with any features that have anything to
diff --git a/testing/perl/PKGBUILD b/testing/perl/PKGBUILD
index e3bd0f0c4..73d4715af 100644
--- a/testing/perl/PKGBUILD
+++ b/testing/perl/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 146353 2012-01-09 18:52:56Z stephane $
+# $Id: PKGBUILD 146806 2012-01-18 17:06:31Z bluewind $
# Maintainer: Angel Velasquez <angvp@archlinux.org>
# Contributor: kevin <kevin.archlinux.org>
# Contributor: judd <jvinet.zeroflux.org>
# Contributor: francois <francois.archlinux.org>
pkgname=perl
pkgver=5.14.2
-pkgrel=6
+pkgrel=7
pkgdesc="A highly capable, feature-rich programming language"
arch=(i686 x86_64)
license=('GPL' 'PerlArtistic')
@@ -17,6 +17,7 @@ source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2
perlbin.sh
perlbin.csh
provides.pl
+digest_eval_hole.diff
0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch)
install=perl.install
options=('makeflags' '!purge')
@@ -24,6 +25,7 @@ md5sums=('04a4c5d3c1f9f19d77daff8e8cd19a26'
'5ed2542fdb9a60682f215bd33701e61a'
'1f0cbbee783e8a6d32f01be5118e0d5e'
'31fc0b5bb4935414394c5cfbec2cb8e5'
+ '490852b3d77c3b3866d0d75f5fbf5c5d'
'c25d86206d649046538c3daab7874564')
build() {
@@ -37,6 +39,8 @@ build() {
arch_opts=""
fi
+ patch -Np1 -i $srcdir/digest_eval_hole.diff
+
./Configure -des -Dusethreads -Duseshrplib -Doptimize="${CFLAGS}" \
-Dprefix=/usr -Dinstallprefix=${pkgdir}/usr -Dvendorprefix=/usr \
-Dprivlib=/usr/share/perl5/core_perl \
diff --git a/testing/perl/digest_eval_hole.diff b/testing/perl/digest_eval_hole.diff
new file mode 100644
index 000000000..47904137b
--- /dev/null
+++ b/testing/perl/digest_eval_hole.diff
@@ -0,0 +1,61 @@
+From 4b6a7324284e7435a361c58f7ddb32fc0c635bd0 Mon Sep 17 00:00:00 2001
+From: "Michael G. Schwern" <schwern@pobox.com>
+Date: Mon, 3 Oct 2011 19:05:29 +0100
+Subject: Close the eval "require $module" security hole in
+ Digest->new($algorithm)
+
+Also the filter was incomplete.
+
+Bug-Debian: http://bugs.debian.org/644108
+
+Patch-Name: fixes/digest_eval_hole.diff
+---
+ cpan/Digest/Digest.pm | 6 ++++--
+ cpan/Digest/t/security.t | 14 ++++++++++++++
+ 2 files changed, 18 insertions(+), 2 deletions(-)
+ create mode 100644 cpan/Digest/t/security.t
+
+diff --git a/cpan/Digest/Digest.pm b/cpan/Digest/Digest.pm
+index 384dfc8..d714434 100644
+--- a/cpan/Digest/Digest.pm
++++ b/cpan/Digest/Digest.pm
+@@ -24,7 +24,7 @@ sub new
+ shift; # class ignored
+ my $algorithm = shift;
+ my $impl = $MMAP{$algorithm} || do {
+- $algorithm =~ s/\W+//;
++ $algorithm =~ s/\W+//g;
+ "Digest::$algorithm";
+ };
+ $impl = [$impl] unless ref($impl);
+@@ -35,7 +35,9 @@ sub new
+ ($class, @args) = @$class if ref($class);
+ no strict 'refs';
+ unless (exists ${"$class\::"}{"VERSION"}) {
+- eval "require $class";
++ my $pm_file = $class . ".pm";
++ $pm_file =~ s{::}{/}g;
++ eval { require $pm_file };
+ if ($@) {
+ $err ||= $@;
+ next;
+diff --git a/cpan/Digest/t/security.t b/cpan/Digest/t/security.t
+new file mode 100644
+index 0000000..5cba122
+--- /dev/null
++++ b/cpan/Digest/t/security.t
+@@ -0,0 +1,14 @@
++#!/usr/bin/env perl
++
++# Digest->new() had an exploitable eval
++
++use strict;
++use warnings;
++
++use Test::More tests => 1;
++
++use Digest;
++
++$LOL::PWNED = 0;
++eval { Digest->new(q[MD;5;$LOL::PWNED = 42]) };
++is $LOL::PWNED, 0;
diff --git a/testing/rpcbind/PKGBUILD b/testing/rpcbind/PKGBUILD
new file mode 100644
index 000000000..3643fd34a
--- /dev/null
+++ b/testing/rpcbind/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 146537 2012-01-12 16:56:40Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=rpcbind
+pkgver=0.2.0
+pkgrel=6
+pkgdesc="portmap replacement which supports RPC over various protocols"
+arch=(i686 x86_64)
+depends=('bash' 'glibc' 'libtirpc')
+url="http://rpcbind.sourceforge.net"
+license=('custom')
+replaces=('portmap')
+source=(http://downloads.sourceforge.net/sourceforge/rpcbind/rpcbind-0.2.0.tar.bz2
+ rpcbind-sunrpc.patch
+ rpcbind)
+md5sums=('1a77ddb1aaea8099ab19c351eeb26316'
+ 'c02ac36a98baac70b8a26190524b7b73'
+ '78a963654f57cbb209e228884767836e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # patch for iana services file
+ patch -Np1 -i ../rpcbind-sunrpc.patch
+ ./configure --prefix=/usr --enable-warmstarts --with-statedir=/run
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # install missing man page - https://bugs.archlinux.org/task/21271
+ install -m644 man/rpcinfo.8 $pkgdir/usr/share/man/man8/
+ # install daemon
+ install -D -m755 $srcdir/rpcbind $pkgdir/etc/rc.d/rpcbind
+ # install license
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/rpcbind/COPYING
+}
diff --git a/testing/rpcbind/rpcbind b/testing/rpcbind/rpcbind
new file mode 100755
index 000000000..87c5b50da
--- /dev/null
+++ b/testing/rpcbind/rpcbind
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID="$(pidof -o %PPID /usr/bin/rpcbind)"
+case "$1" in
+ start)
+ stat_busy "Starting rpcbind"
+ [ -z "$PID" ] && /usr/bin/rpcbind &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -o %PPID /usr/bin/rpcbind)
+ echo $PID > /var/run/rpcbind.pid
+ add_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping rpcbind"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/rpcbind.pid
+ rm_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/rpcbind/rpcbind-sunrpc.patch b/testing/rpcbind/rpcbind-sunrpc.patch
new file mode 100644
index 000000000..76cf54ba9
--- /dev/null
+++ b/testing/rpcbind/rpcbind-sunrpc.patch
@@ -0,0 +1,22 @@
+--- rpcbind-0.1.7/src/rpcbind.c.orig 2008-11-19 14:17:34.000000000 +0100
++++ rpcbind-0.1.7/src/rpcbind.c 2010-01-07 13:03:37.416632894 +0100
+@@ -114,7 +114,7 @@
+ char *udp_uaddr; /* Universal UDP address */
+ char *tcp_uaddr; /* Universal TCP address */
+ #endif
+-static char servname[] = "rpcbind";
++static char servname[] = "sunrpc";
+ static char superuser[] = "superuser";
+
+ int main __P((int, char *[]));
+--- rpcbind-0.1.7/src/rpcinfo.c~ 2010-01-08 16:14:24.592156602 +0000
++++ rpcbind-0.1.7/src/rpcinfo.c 2010-01-08 16:14:31.578838609 +0000
+@@ -633,7 +633,7 @@
+ {
+ memset (&hints, 0, sizeof hints);
+ hints.ai_family = AF_INET;
+- if ((error = getaddrinfo (host, "rpcbind", &hints, &res)) != 0 &&
++ if ((error = getaddrinfo (host, "sunrpc", &hints, &res)) != 0 &&
+ (error = getaddrinfo (host, "portmapper", &hints, &res)) != 0)
+ {
+ fprintf (stderr, "rpcinfo: %s: %s\n",
diff --git a/testing/sqlite3/PKGBUILD b/testing/sqlite3/PKGBUILD
new file mode 100644
index 000000000..7c8032fc7
--- /dev/null
+++ b/testing/sqlite3/PKGBUILD
@@ -0,0 +1,88 @@
+# $Id: PKGBUILD 146781 2012-01-17 16:20:13Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase="sqlite3"
+pkgname=('sqlite3' 'sqlite3-tcl' 'sqlite3-doc')
+_amalgamationver=3071000
+_amalgamationver2=${_amalgamationver/00/}
+_docver=${_amalgamationver} #3070700
+#pkgver=${_amalgamationver2//0/.}
+pkgver=3.7.10
+pkgrel=1
+pkgdesc="A C library that implements an SQL database engine"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.sqlite.org/"
+makedepends=('tcl' 'readline>=6.0.00')
+source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a configure script and makefile for building it; includes now also the Tcl Extension Architecture (TEA)
+ http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz
+ #http://www.sqlite.org/sqlite-doc-${_amalgamationver}.zip
+ http://www.sqlite.org/sqlite-doc-${_docver}.zip
+ license.txt)
+options=('!libtool' '!emptydirs')
+md5sums=('9ed2ca93577b58cfa0d01f64b9312ab9'
+ 'd4c8070ea2cec54b77002c265e680b0f'
+ 'c1cdbc5544034d9012e421e75a5e4890')
+
+build() {
+ export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
+
+ # build sqlite
+ cd "$srcdir"/sqlite-autoconf-$_amalgamationver
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+
+ # build the tcl extension
+ cd "$srcdir"/sqlite-autoconf-$_amalgamationver/tea
+ ./configure --prefix=/usr \
+ --with-system-sqlite
+ make
+
+}
+
+package_sqlite3() {
+
+ pkgdesc="A C library that implements an SQL database engine"
+ depends=('readline>=6.0.00')
+ conflicts=('sqlite')
+ replaces=('sqlite')
+
+ cd ${srcdir}/sqlite-autoconf-$_amalgamationver
+ make DESTDIR=${pkgdir} install
+
+ # license
+ install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
+
+package_sqlite3-tcl() {
+
+ pkgdesc="sqlite3 Tcl Extension Architecture (TEA)"
+ depends=('sqlite3>=3.7.5')
+
+ cd ${srcdir}/sqlite-autoconf-$_amalgamationver/tea
+ make DESTDIR=${pkgdir} install
+}
+
+package_sqlite3-doc() {
+ pkgdesc="most of the static HTML files that comprise this website, including all of the SQL Syntax and the C/C++ interface specs and other miscellaneous documentation"
+ #arch=('any') - not yet supported
+
+ #cd ${srcdir}/sqlite-doc-${_amalgamationver}
+ cd ${srcdir}/sqlite-doc-${_docver}
+ mkdir -p ${pkgdir}/usr/share/doc/${pkgbase}
+ cp -R * ${pkgdir}/usr/share/doc/${pkgbase}/
+
+ # fix permissions and remove obsolete files; https://bugs.archlinux.org/task/24605
+ find ${pkgdir} -type f -perm 755 -exec ls -lha {} \;
+ find ${pkgdir} -type f -perm 755 -exec chmod 644 {} \;
+
+ find ${pkgdir} -type f -name '*~' -exec ls -lha {} \;
+ find ${pkgdir} -type d -name '*~' -exec ls -lha {} \;
+ find ${pkgdir} -name '*~' -exec rm -f {} \;
+
+ find ${pkgdir} -type f -name '.~*' -exec ls -lha {} \; # /build/pkg/sqlite3-doc/usr/share/doc/sqlite3/images/fileformat/.~lock.indexpage.odg#
+ find ${pkgdir} -type d -name '.~*' -exec ls -lha {} \;
+ find ${pkgdir} -name '.~*' -exec rm -f {} \;
+}
diff --git a/testing/sqlite3/license.txt b/testing/sqlite3/license.txt
new file mode 100644
index 000000000..118c5d5e6
--- /dev/null
+++ b/testing/sqlite3/license.txt
@@ -0,0 +1,33 @@
+SQLite Copyright
+SQLite is in the
+Public Domain
+
+
+All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
+
+The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
+
+All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
+Obtaining An Explicit License To Use SQLite
+
+Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
+You are using SQLite in a jurisdiction that does not recognize the public domain.
+You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
+You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
+Your legal department tells you that you have to purchase a license.
+
+If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
+Contributed Code
+
+In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
+The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
+
+We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
+Hwaci
+6200 Maple Cove Lane
+Charlotte, NC 28269
+USA
+
+A template copyright release is available in PDF or HTML. You can use this release to make future changes.
+
+see http://www.sqlite.org/copyright.html \ No newline at end of file
diff --git a/testing/systemd/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch b/testing/systemd/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch
new file mode 100644
index 000000000..456d679ed
--- /dev/null
+++ b/testing/systemd/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch
@@ -0,0 +1,87 @@
+From fdcad0c25579a60061b1fda956686e878a80faef Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart@poettering.net>
+Date: Wed, 11 Jan 2012 22:07:35 +0100
+Subject: [PATCH] tmpfiles: fix parsing of /proc/net/unix on 32Bit machines
+
+Tracked down by Michael Meeks
+---
+ src/tmpfiles.c | 30 ++++++++++++++++++++----------
+ 1 files changed, 20 insertions(+), 10 deletions(-)
+
+diff --git a/src/tmpfiles.c b/src/tmpfiles.c
+index 19a7c08..44e5c9d 100644
+--- a/src/tmpfiles.c
++++ b/src/tmpfiles.c
+@@ -117,41 +117,50 @@ static void load_unix_sockets(void) {
+ /* We maintain a cache of the sockets we found in
+ * /proc/net/unix to speed things up a little. */
+
+- if (!(unix_sockets = set_new(string_hash_func, string_compare_func)))
++ unix_sockets = set_new(string_hash_func, string_compare_func);
++ if (!unix_sockets)
+ return;
+
+- if (!(f = fopen("/proc/net/unix", "re")))
++ f = fopen("/proc/net/unix", "re");
++ if (!f)
+ return;
+
+- if (!(fgets(line, sizeof(line), f)))
++ /* Skip header */
++ if (!fgets(line, sizeof(line), f))
+ goto fail;
+
+ for (;;) {
+ char *p, *s;
+ int k;
+
+- if (!(fgets(line, sizeof(line), f)))
++ if (!fgets(line, sizeof(line), f))
+ break;
+
+ truncate_nl(line);
+
+- if (strlen(line) < 53)
++ p = strchr(line, ':');
++ if (!p)
++ continue;
++
++ if (strlen(p) < 37)
+ continue;
+
+- p = line + 53;
++ p += 37;
+ p += strspn(p, WHITESPACE);
+- p += strcspn(p, WHITESPACE);
++ p += strcspn(p, WHITESPACE); /* skip one more word */
+ p += strspn(p, WHITESPACE);
+
+ if (*p != '/')
+ continue;
+
+- if (!(s = strdup(p)))
++ s = strdup(p);
++ if (!s)
+ goto fail;
+
+ path_kill_slashes(s);
+
+- if ((k = set_put(unix_sockets, s)) < 0) {
++ k = set_put(unix_sockets, s);
++ if (k < 0) {
+ free(s);
+
+ if (k != -EEXIST)
+@@ -1059,7 +1068,8 @@ int main(int argc, char *argv[]) {
+ Item *i;
+ Iterator iterator;
+
+- if ((r = parse_argv(argc, argv)) <= 0)
++ r = parse_argv(argc, argv);
++ if (r <= 0)
+ return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+
+ log_set_target(LOG_TARGET_AUTO);
+--
+1.7.8.3
+
diff --git a/testing/systemd/0001-units-make-sure-syslog-socket-goes-away-early-during.patch b/testing/systemd/0001-units-make-sure-syslog-socket-goes-away-early-during.patch
new file mode 100644
index 000000000..49248a6a4
--- /dev/null
+++ b/testing/systemd/0001-units-make-sure-syslog-socket-goes-away-early-during.patch
@@ -0,0 +1,26 @@
+From ead51eb4ed55981f290e40a871ffbca6480c4cd3 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart@poettering.net>
+Date: Thu, 12 Jan 2012 04:34:50 +0100
+Subject: [PATCH] units: make sure syslog socket goes away early during
+ shutdown
+
+---
+ units/syslog.socket | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/units/syslog.socket b/units/syslog.socket
+index 323fa86..657e791 100644
+--- a/units/syslog.socket
++++ b/units/syslog.socket
+@@ -11,6 +11,8 @@
+ Description=Syslog Socket
+ DefaultDependencies=no
+ Before=sockets.target syslog.target
++Conflicts=shutdown.target
++Before=shutdown.target
+
+ # Pull in syslog.target to tell people that /dev/log is now accessible
+ Wants=syslog.target
+--
+1.7.8.3
+
diff --git a/testing/systemd/PKGBUILD b/testing/systemd/PKGBUILD
index da1a936ae..f1cfcbd5f 100644
--- a/testing/systemd/PKGBUILD
+++ b/testing/systemd/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 146498 2012-01-12 03:32:19Z dreisner $
+# $Id: PKGBUILD 146660 2012-01-15 17:04:30Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=systemd
pkgver=38
-pkgrel=1
+pkgrel=3
pkgdesc="Session and Startup manager"
arch=('i686' 'x86_64')
url="http://www.freedesktop.org/wiki/Software/systemd"
license=('GPL2')
-depends=('dbus-core' 'kbd' 'libcap' 'util-linux>=2.19' 'udev>=172' 'xz')
-makedepends=('acl' 'gperf' 'cryptsetup' 'intltool' 'linux-api-headers')
+depends=('acl' 'dbus-core' 'kbd' 'libcap' 'util-linux>=2.19' 'udev>=172' 'xz')
+makedepends=('gperf' 'cryptsetup' 'intltool' 'linux-api-headers')
optdepends=('cryptsetup: required for encrypted block devices'
'dbus-python: systemd-analyze'
'initscripts: legacy support for hostname and vconsole setup'
@@ -28,9 +28,13 @@ backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf
etc/systemd/systemd-logind.conf)
install=systemd.install
source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
- "os-release")
+ "os-release"
+ '0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch'
+ '0001-units-make-sure-syslog-socket-goes-away-early-during.patch')
md5sums=('68c66dce5a28c0efd7c210af5d11efed'
- '752636def0db3c03f121f8b4f44a63cd')
+ '752636def0db3c03f121f8b4f44a63cd'
+ '07437e70be65ef14fd4f13c5ec5bd1fe'
+ 'c567ce597f68c07b9bc5b7e835f80f7d')
build() {
cd "$pkgname-$pkgver"
@@ -40,6 +44,8 @@ build() {
sed -i -e '/^Environ.*LANG/s/^/#/' \
-e '/^ExecStart/s/agetty/& -8/' units/getty@.service.m4
+ patch -Np1 < "$srcdir/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch"
+ patch -Np1 < "$srcdir/0001-units-make-sure-syslog-socket-goes-away-early-during.patch"
./configure --sysconfdir=/etc \
--libexecdir=/usr/lib \
diff --git a/testing/systemd/systemd.install b/testing/systemd/systemd.install
index 04b29688a..4850c879e 100644
--- a/testing/systemd/systemd.install
+++ b/testing/systemd/systemd.install
@@ -1,8 +1,8 @@
#!/bin/sh
checkgroups() {
- if ! usr/bin/getent group lock >/dev/null; then
- usr/sbin/groupadd -g 54 lock
+ if ! getent group lock >/dev/null; then
+ sbin/groupadd -g 54 lock
fi
}
@@ -14,7 +14,7 @@ post_install() {
checkgroups
if [ ! -f etc/machine-id ]; then
- bin/systemd-machine-id-setup
+ systemd-machine-id-setup
fi
echo "systemd has been installed to /bin/systemd. Please ensure you append"
@@ -25,11 +25,11 @@ post_upgrade() {
checkgroups
if [ ! -f etc/machine-id ]; then
- bin/systemd-machine-id-setup
+ systemd-machine-id-setup
fi
if sd_booted; then
- bin/systemctl daemon-reexec >/dev/null
+ systemctl daemon-reexec >/dev/null
fi
newpkgver=${1%-*}
@@ -39,14 +39,14 @@ post_upgrade() {
if [ "$newpkgver" -ge 31 ] && [ "$oldpkgver" -lt 31 ]; then
# but only if systemd is running
if sd_booted; then
- bin/systemctl try-restart systemd-logind.service
+ systemctl try-restart systemd-logind.service
fi
fi
}
post_remove() {
- if usr/bin/getent group lock >/dev/null; then
- usr/sbin/groupdel lock
+ if getent group lock >/dev/null; then
+ groupdel lock
fi
}
diff --git a/testing/totem-plparser/PKGBUILD b/testing/totem-plparser/PKGBUILD
index feac870e6..f63b5c140 100644
--- a/testing/totem-plparser/PKGBUILD
+++ b/testing/totem-plparser/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 146042 2012-01-04 16:37:02Z ibiru $
+# $Id: PKGBUILD 146624 2012-01-14 12:24:19Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=totem-plparser
pkgver=2.32.6
-pkgrel=2
+pkgrel=3
url="http://www.hadess.net/totem.php3"
pkgdesc="Totem playlist parser library"
license=('LGPL')
arch=(i686 x86_64)
depends=('gmime' 'libsoup-gnome' 'libarchive')
-makedepends=('intltool' 'pkgconfig' 'gobject-introspection')
+makedepends=('intltool' 'gobject-introspection')
options=('!libtool')
source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-$pkgver.tar.xz)
sha256sums=('8e6ccef547f1ad311474a975032d2482e621550ee3d4d22c725cdc6b496e4874')
diff --git a/testing/udev/0001-udevd-kill-hanging-event-processes-after-30-seconds.patch b/testing/udev/0001-udevd-kill-hanging-event-processes-after-30-seconds.patch
new file mode 100644
index 000000000..3ff89ae43
--- /dev/null
+++ b/testing/udev/0001-udevd-kill-hanging-event-processes-after-30-seconds.patch
@@ -0,0 +1,162 @@
+From e64fae5573e566ce4fd9b23c68ac8f3096603314 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers@vrfy.org>
+Date: Wed, 18 Jan 2012 05:06:18 +0100
+Subject: [PATCH] udevd: kill hanging event processes after 30 seconds
+
+Some broken kernel drivers load firmware synchronously in the module init
+path and block modprobe until the firmware request is fulfilled.
+
+The modprobe-generated firmware request is a direct child device of the
+device which caused modprobe to run. Child device event are blocked until
+the parent device is handled. This dead-locks until the kernel firmware
+loading timeout of 60 seconds is reached.
+
+The hanging modprobe event should now time-out and allow the firmware
+event to run before the 60 second kernel timeout.
+---
+ src/udev-event.c | 2 +-
+ src/udevd.c | 62 +++++++++++++++++++++++++++++++++++++++++++----------
+ 2 files changed, 51 insertions(+), 13 deletions(-)
+
+diff --git a/src/udev-event.c b/src/udev-event.c
+index 9bdc518..f0b9548 100644
+--- a/src/udev-event.c
++++ b/src/udev-event.c
+@@ -49,7 +49,7 @@ struct udev_event *udev_event_new(struct udev_device *dev)
+ udev_list_init(udev, &event->run_list, false);
+ event->fd_signal = -1;
+ event->birth_usec = now_usec();
+- event->timeout_usec = 60 * 1000 * 1000;
++ event->timeout_usec = 30 * 1000 * 1000;
+ dbg(event->udev, "allocated event %p\n", event);
+ return event;
+ }
+diff --git a/src/udevd.c b/src/udevd.c
+index 11ab19a..77a1e79 100644
+--- a/src/udevd.c
++++ b/src/udevd.c
+@@ -133,6 +133,7 @@ struct worker {
+ struct udev_monitor *monitor;
+ enum worker_state state;
+ struct event *event;
++ unsigned long long event_start_usec;
+ };
+
+ /* passed from worker to main process */
+@@ -372,6 +373,7 @@ out:
+ close(fd_inotify);
+ close(worker_watch[WRITE_END]);
+ udev_rules_unref(rules);
++ udev_builtin_exit(udev);
+ udev_monitor_unref(worker_monitor);
+ udev_unref(udev);
+ udev_log_close();
+@@ -389,6 +391,7 @@ out:
+ worker->monitor = worker_monitor;
+ worker->pid = pid;
+ worker->state = WORKER_RUNNING;
++ worker->event_start_usec = now_usec();
+ worker->event = event;
+ event->state = EVENT_RUNNING;
+ udev_list_node_append(&worker->node, &worker_list);
+@@ -419,6 +422,7 @@ static void event_run(struct event *event)
+ worker_ref(worker);
+ worker->event = event;
+ worker->state = WORKER_RUNNING;
++ worker->event_start_usec = now_usec();
+ event->state = EVENT_RUNNING;
+ return;
+ }
+@@ -610,9 +614,11 @@ static void worker_returned(int fd_worker)
+ continue;
+
+ /* worker returned */
+- worker->event->exitcode = msg.exitcode;
+- event_queue_delete(worker->event, true);
+- worker->event = NULL;
++ if (worker->event) {
++ worker->event->exitcode = msg.exitcode;
++ event_queue_delete(worker->event, true);
++ worker->event = NULL;
++ }
+ if (worker->state != WORKER_KILLED)
+ worker->state = WORKER_IDLE;
+ worker_unref(worker);
+@@ -796,7 +802,7 @@ static void handle_signal(struct udev *udev, int signo)
+ }
+
+ if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
+- if (worker->event != NULL) {
++ if (worker->event) {
+ err(udev, "worker [%u] failed while handling '%s'\n",
+ pid, worker->event->devpath);
+ worker->event->exitcode = -32;
+@@ -1574,25 +1580,57 @@ int main(int argc, char *argv[])
+ break;
+
+ /* timeout at exit for workers to finish */
+- timeout = 60 * 1000;
+- } else if (udev_list_node_is_empty(&event_list) && children > 2) {
+- /* set timeout to kill idle workers */
+- timeout = 3 * 1000;
+- } else {
++ timeout = 30 * 1000;
++ } else if (udev_list_node_is_empty(&event_list) && children <= 2) {
++ /* we are idle */
+ timeout = -1;
++ } else {
++ /* kill idle or hanging workers */
++ timeout = 3 * 1000;
+ }
+ fdcount = epoll_wait(fd_ep, ev, ARRAY_SIZE(ev), timeout);
+ if (fdcount < 0)
+ continue;
+
+ if (fdcount == 0) {
++ struct udev_list_node *loop;
++
++ /* timeout */
+ if (udev_exit) {
+- info(udev, "timeout, giving up waiting for workers to finish\n");
++ err(udev, "timeout, giving up waiting for workers to finish\n");
+ break;
+ }
+
+- /* timeout - kill idle workers */
+- worker_kill(udev, 2);
++ /* kill idle workers */
++ if (udev_list_node_is_empty(&event_list)) {
++ info(udev, "cleanup idle workers\n");
++ worker_kill(udev, 2);
++ }
++
++ /* check for hanging events */
++ udev_list_node_foreach(loop, &worker_list) {
++ struct worker *worker = node_to_worker(loop);
++
++ if (worker->state != WORKER_RUNNING)
++ continue;
++
++ if ((now_usec() - worker->event_start_usec) > 30 * 1000 * 1000) {
++ err(udev, "worker [%u] timeout, kill it\n", worker->pid,
++ worker->event ? worker->event->devpath : "<idle>");
++ kill(worker->pid, SIGKILL);
++ worker->state = WORKER_KILLED;
++ /* drop reference taken for state 'running' */
++ worker_unref(worker);
++ if (worker->event) {
++ err(udev, "seq %llu '%s' killed\n",
++ udev_device_get_seqnum(worker->event->dev), worker->event->devpath);
++ worker->event->exitcode = -64;
++ event_queue_delete(worker->event, true);
++ worker->event = NULL;
++ }
++ }
++ }
++
+ }
+
+ is_worker = is_signal = is_inotify = is_netlink = is_ctrl = false;
+--
+1.7.8.3
+
diff --git a/testing/udev/PKGBUILD b/testing/udev/PKGBUILD
new file mode 100644
index 000000000..171a03bc5
--- /dev/null
+++ b/testing/udev/PKGBUILD
@@ -0,0 +1,107 @@
+# $Id: PKGBUILD 146792 2012-01-18 11:05:48Z tomegun $
+# Maintainer: Tom Gundersen <teg@jklm.no>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+
+pkgbase="udev"
+pkgname=('udev' 'udev-compat')
+pkgver=177
+pkgrel=3
+arch=(i686 x86_64)
+url="http://git.kernel.org/?p=linux/hotplug/udev.git;a=summary"
+license=('GPL')
+groups=('base')
+options=(!makeflags !libtool)
+makedepends=('gobject-introspection' 'gperf' 'libxslt' 'usbutils' 'kmod')
+source=(ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.tar.xz
+ 0001-udevd-kill-hanging-event-processes-after-30-seconds.patch)
+
+build() {
+ cd $srcdir/$pkgbase-$pkgver
+
+ # deal with broken drivers waiting for firmware to be loaded
+ patch -p1 -i ../0001-udevd-kill-hanging-event-processes-after-30-seconds.patch
+
+ ./configure --prefix=/usr \
+ --with-rootprefix= \
+ --sysconfdir=/etc \
+ --bindir=/sbin \
+ --libdir=/usr/lib \
+ --with-rootlibdir=/lib \
+ --libexecdir=/lib \
+ --with-systemdsystemunitdir=/lib/systemd/system \
+ --enable-udev_acl
+
+ make
+}
+
+package_udev() {
+ pkgdesc="The userspace dev tools (udev)"
+ depends=('util-linux' 'libusb-compat' 'glib2' 'kmod' 'pciutils' 'usbutils' 'pciutils')
+ install=udev.install
+ backup=(etc/udev/udev.conf)
+
+ cd $srcdir/$pkgbase-$pkgver
+ make DESTDIR=${pkgdir} install
+
+ # create framebuffer blacklist
+ install -d -m755 ${pkgdir}/lib/modprobe.d/
+ for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko.gz' -exec basename {} .ko.gz \;); do
+ echo "blacklist $mod"
+ done | sort -u > $pkgdir/lib/modprobe.d/framebuffer_blacklist.conf
+
+ # /dev/loop0 is created for convenience, to autoload the module if necessary
+ # this is no longer needed when util-linux-2.21 is released as /dev/loop-control
+ # will be used instead. In that case move this to udev-compat
+ install -d -m755 ${pkgdir}/lib/udev/devices/
+ mknod ${pkgdir}/lib/udev/devices/loop0 b 7 0
+ chgrp disk ${pkgdir}/lib/udev/devices/loop0
+
+ # udevd moved, symlink to make life easy for restarting udevd manually
+ ln -s /lib/udev/udevd ${pkgdir}/sbin/udevd
+
+ # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
+ for i in $pkgdir/lib/udev/rules.d/*.rules; do
+ sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g;
+ s#GROUP="tape"#GROUP="storage"#g;
+ s#GROUP="cdrom"#GROUP="optical"#g' $i
+ done
+}
+
+package_udev-compat() {
+ pkgdesc="The userspace dev tools (udev) - additional rules for older kernels"
+ depends=('udev')
+ groups=('')
+ install -d -m755 ${pkgdir}/lib/udev/rules.d
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
+
+ # create static nodes to be compatible with on-demand module
+ # loading in the most recent kernel
+ #
+ # the list of nodes is generated from /lib/modules/`most recent kernel`/modprobe.devname
+ # excluding any devices not included in the LTS kernel and any entries in the
+ # modprobe.devname file of the LTS kernel (if it exists).
+
+ install -d -m755 ${pkgdir}/lib/udev/devices
+ cd ${pkgdir}/lib/udev/devices
+
+ install -d -m755 net
+ mknod net/tun c 10 200
+ mknod ppp c 108 0
+# mknod loop-control c 10 237 -- does not exist in old kernels
+ mknod uinput c 10 223
+ install -d -m755 mapper
+ mknod mapper/control c 10 236
+ install -d -m755 snd
+ mknod snd/timer c 116 33
+ mknod snd/seq c 116 1
+ mknod btrfs-control c 10 234
+ mknod autofs c 10 235
+ mknod fuse c 10 229
+ install -d -m755 cpu
+ mknod cpu/microcode c 10 184
+
+}
+md5sums=('b4e00faf8153fd7202a7ef609284b0c3'
+ '3e40dca1c4f8194b4633e3befb4da4d4')
diff --git a/testing/udev/udev.install b/testing/udev/udev.install
new file mode 100644
index 000000000..c49c5006f
--- /dev/null
+++ b/testing/udev/udev.install
@@ -0,0 +1,65 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_upgrade() {
+ if [ "$(vercmp $2 175)" -lt 0 ]; then
+ echo "ATTENTION UDEV:"
+ echo "----------"
+ if [ "$(vercmp $2 168)" -lt 0 ]; then
+ echo "Kernel 2.6.32 or newer is now required."
+ echo " --"
+ echo "OSS emulation modules are not loaded by default, add to rc.conf if needed."
+ echo " --"
+ echo "Arch specific cd symlinks are now no longer created."
+ echo " --"
+ echo "cd and net persistent rules will no longer be autogenerated,"
+ echo "see <https://wiki.archlinux.org/index.php/Udev> for details."
+ echo " --"
+ echo "Errors are now logged (possibly to the console) by default."
+ echo " --"
+ fi
+ if [ "$(vercmp $2 171)" -lt 0 ]; then
+ echo "Arch's custom blacklisting logic has been removed. MOD_AUTOLOAD and"
+ echo "blacklisting in MODULES no longer works."
+ echo "See 'man modprobe.conf' for a replacement to blacklisting."
+ echo "To disable a module mod1 on the kernel command line, use"
+ echo "mod1.disable=1"
+ echo "or"
+ echo "modprobe.blacklist=mod1"
+ echo " --"
+ echo "The following modules are no longer unconditionally loaded:"
+ echo " pcspkr irtty-sir analog lp ppdev ide-generic"
+ echo "Add them to MODULES in rc.conf if you need them."
+ echo " --"
+ fi
+ if [ "$(vercmp $2 172)" -lt 0 ]; then
+ echo "Blacklisting of framebuffer devices has moved from /etc/modprobe.d to"
+ echo "/lib/modprobe.d. Any customizations shoud be done to the file in /etc, as it"
+ echo "takes precedence."
+ echo " --"
+ echo "kbd and rtc devices are no longer world readable."
+ echo " --"
+ echo "rtc is no longer in the audio group and fb devices are no longer in"
+ echo "the video group, as permissions and ownership of fb devices are controlled"
+ echo "by X."
+ echo " --"
+ fi
+ if [ "$(vercmp $2 174)" -lt 0 ]; then
+ echo "We now use upstream rules for assigning devices to the 'disk', 'optical',"
+ echo "'scanner' and 'video' groups. Beware of any changes."
+ echo " --"
+ echo "We no longer create symlinks from /dev/<dev> to /dev/<dev>0."
+ echo " --"
+ echo "For security reasons, we no longer add devices to the 'storage' group. Use"
+ echo "udisks and friends, or add custom rules to /etc/udev.d/rules/, if you want"
+ echo "this functionality back."
+ echo " --"
+ echo "We no longer create the static nodes on install needed for an initrd-less boot"
+ echo "where devtmpfs is not mounted by the kernel, this only affects fresh installs."
+ echo " --"
+ fi
+ echo "devtmpfs support is now a hard requirement. Users of the official Arch kernels"
+ echo "have this enabled."
+ echo "---------------"
+ fi
+}