From dd7c17a54a4b6e2f08376a1afa8e75de661cc3d4 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 11 Oct 2012 00:35:42 -0700 Subject: Thu Oct 11 00:35:41 PDT 2012 --- community/rsyslog/PKGBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'community/rsyslog') diff --git a/community/rsyslog/PKGBUILD b/community/rsyslog/PKGBUILD index 6441b7d47..cf349549d 100644 --- a/community/rsyslog/PKGBUILD +++ b/community/rsyslog/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 75616 2012-08-27 14:38:49Z spupykin $ +# $Id: PKGBUILD 77466 2012-10-10 16:19:43Z spupykin $ # Maintainer: Sergej Pupykin pkgname=rsyslog -pkgver=6.4.0 +pkgver=6.4.2 pkgrel=1 pkgdesc="An enhanced multi-threaded syslogd with a focus on security and reliability" url="http://www.rsyslog.com/" @@ -22,7 +22,7 @@ source=("http://www.rsyslog.com/files/download/rsyslog/rsyslog-$pkgver.tar.gz" 'rsyslog' 'rsyslog.logrotate' 'rsyslog.conf.d') -md5sums=('d81f74b09829a38ac91cf85a08c5ab19' +md5sums=('7de0124ec7d67ce2bfda0009ab1263ee' 'a18bbcbb6ebdaa13a6ec6d9f3d9eb2da' '8065db4bef3061a4f000ba58779f6829' '1a0cd4530dd5d1439456d5ae230574d9') -- cgit v1.2.3-54-g00ecf From dfbf90f39b87d2f5ae24b41e47243ddf70d30d2b Mon Sep 17 00:00:00 2001 From: root Date: Fri, 12 Oct 2012 00:41:00 -0700 Subject: Fri Oct 12 00:40:57 PDT 2012 --- artistic/blender-spacenav-libre/PKGBUILD | 14 +- artistic/cinepaint-lts/LICENSE | 25 + artistic/cinepaint-lts/PKGBUILD | 62 + artistic/cinepaint-lts/cinepaint-libpng15.patch | 446 +++++++ artistic/cinepaint-lts/cinepaint.install | 11 + artistic/spnavcfg/PKGBUILD | 13 +- community-staging/onboard/PKGBUILD | 27 + community-staging/onboard/onboard.install | 13 + community-testing/gambas3/PKGBUILD | 8 +- community-testing/gigi/PKGBUILD | 22 +- community-testing/megaglest/PKGBUILD | 6 +- community-testing/openimageio/PKGBUILD | 6 +- community-testing/scorched3d/PKGBUILD | 62 + community-testing/scorched3d/libpng14.patch | 38 + .../scorched3d/scorched3d-42.1-fixups.patch | 58 + .../scorched3d/scorched3d-42.1-gcc43.patch | 24 + .../scorched3d/scorched3d-libpng1.5.patch | 74 ++ community-testing/scorched3d/scorched3d.install | 11 + community-testing/xmoto/PKGBUILD | 48 + community-testing/xmoto/system.cpp.patch | 10 + .../xmoto/xmoto-0.5.10-libpng15.patch | 10 + community-testing/xmoto/xmoto.install | 11 + community/bullet/PKGBUILD | 19 +- community/connman/PKGBUILD | 8 +- community/enet/PKGBUILD | 6 +- community/glabels/PKGBUILD | 17 +- community/hitori/PKGBUILD | 8 +- community/lazarus/PKGBUILD | 8 +- community/libcryptui/PKGBUILD | 6 +- community/lilypond/PKGBUILD | 6 +- community/oath-toolkit/PKGBUILD | 9 +- community/pam_mount/PKGBUILD | 15 +- community/pam_mount/pam_mount-git.patch | 1345 ++++++++++++++++++++ community/puzzles/PKGBUILD | 4 +- community/rsyslog/PKGBUILD | 6 +- community/rsyslog/rsyslog.conf.d | 2 +- community/scummvm/PKGBUILD | 28 + community/warsow/PKGBUILD | 8 +- core/dnsutils/PKGBUILD | 8 +- core/dnsutils/remove-bind.patch | 2 +- extra/bluedevil/PKGBUILD | 9 +- extra/claws-mail/PKGBUILD | 6 +- extra/ecasound/PKGBUILD | 14 +- extra/gparted/PKGBUILD | 6 +- extra/kdebindings-python/PKGBUILD | 19 +- extra/kdebindings-python/pyqt495.patch | 95 ++ extra/libetpan/PKGBUILD | 8 +- extra/mtdev/PKGBUILD | 11 +- extra/xterm/PKGBUILD | 6 +- gnome-unstable/pidgin/PKGBUILD | 100 ++ gnome-unstable/pidgin/pidgin.install | 11 + libre/blender-libre/PKGBUILD | 14 +- ...Make-the-Reset-Firefox-feature-more-gener.patch | 20 +- libre/iceweasel-libre/PKGBUILD | 12 +- libre/iceweasel-libre/iceweasel-install-dir.patch | 48 +- libre/iceweasel-libre/libre.patch | 36 +- libre/parabola-keyring/PKGBUILD | 6 +- multilib/lib32-libtasn1/PKGBUILD | 6 +- testing/curl/PKGBUILD | 10 +- testing/openldap/PKGBUILD | 6 +- 60 files changed, 2722 insertions(+), 225 deletions(-) create mode 100644 artistic/cinepaint-lts/LICENSE create mode 100644 artistic/cinepaint-lts/PKGBUILD create mode 100644 artistic/cinepaint-lts/cinepaint-libpng15.patch create mode 100644 artistic/cinepaint-lts/cinepaint.install create mode 100644 community-staging/onboard/PKGBUILD create mode 100644 community-staging/onboard/onboard.install create mode 100644 community-testing/scorched3d/PKGBUILD create mode 100644 community-testing/scorched3d/libpng14.patch create mode 100644 community-testing/scorched3d/scorched3d-42.1-fixups.patch create mode 100644 community-testing/scorched3d/scorched3d-42.1-gcc43.patch create mode 100644 community-testing/scorched3d/scorched3d-libpng1.5.patch create mode 100644 community-testing/scorched3d/scorched3d.install create mode 100644 community-testing/xmoto/PKGBUILD create mode 100644 community-testing/xmoto/system.cpp.patch create mode 100644 community-testing/xmoto/xmoto-0.5.10-libpng15.patch create mode 100644 community-testing/xmoto/xmoto.install create mode 100644 community/pam_mount/pam_mount-git.patch create mode 100644 community/scummvm/PKGBUILD create mode 100644 extra/kdebindings-python/pyqt495.patch create mode 100644 gnome-unstable/pidgin/PKGBUILD create mode 100644 gnome-unstable/pidgin/pidgin.install (limited to 'community/rsyslog') diff --git a/artistic/blender-spacenav-libre/PKGBUILD b/artistic/blender-spacenav-libre/PKGBUILD index 73968cd4b..bcd07aff4 100644 --- a/artistic/blender-spacenav-libre/PKGBUILD +++ b/artistic/blender-spacenav-libre/PKGBUILD @@ -3,8 +3,8 @@ _pkgname=blender pkgname=blender-spacenav-libre -pkgver=2.63a -pkgrel=5 +pkgver=2.64 +pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite, compiled with spacenav (without nonfree cuda-toolkit support)" arch=('i686' 'x86_64' 'mips64el') license=('GPL') @@ -21,17 +21,17 @@ install=${_pkgname}.install source=(http://download.${_pkgname}.org/source/${_pkgname}-${pkgver}.tar.gz ffmpeg-0.11.patch boost-1.50.patch) -md5sums=('31a60b3ce5466d965cb7e2648995e092' +md5sums=('caec080d2a3dcd57fe1ca20c51c00e53' '9e5649403e51654615d30b10bc460217' '0bab80da07d980c47b8ce3cb998edaef') build() { cd "${srcdir}/${_pkgname}-${pkgver}" - patch -Np1 < "${srcdir}"/ffmpeg-0.11.patch - patch -Np1 < "${srcdir}"/boost-1.50.patch - sed -i "//d" intern/ffmpeg/ffmpeg_compat.h - sed -i "//d" source/blender/blenkernel/intern/writeffmpeg.c + #patch -Np1 < "${srcdir}"/ffmpeg-0.11.patch + #patch -Np1 < "${srcdir}"/boost-1.50.patch + #sed -i "//d" intern/ffmpeg/ffmpeg_compat.h + #sed -i "//d" source/blender/blenkernel/intern/writeffmpeg.c mkdir build cd build diff --git a/artistic/cinepaint-lts/LICENSE b/artistic/cinepaint-lts/LICENSE new file mode 100644 index 000000000..746207229 --- /dev/null +++ b/artistic/cinepaint-lts/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2005, Kai-Uwe Behrmann +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution.ntributors may be used to endorse or promote + products derived from this software without specific prior written + permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/artistic/cinepaint-lts/PKGBUILD b/artistic/cinepaint-lts/PKGBUILD new file mode 100644 index 000000000..c680ac904 --- /dev/null +++ b/artistic/cinepaint-lts/PKGBUILD @@ -0,0 +1,62 @@ +# $Id$ +# Maintainer: tobias [tobias.archlinux.org] +# Contributor: tobias [tobias.justdreams.de] +# Maintainer (Parabola): Márcio Silva + +pkgname=cinepaint-lts +pkgver=1.0 +pkgrel=1 +pkgdesc='Sophisticated graphics manipulation programm supporting > 8bit pictures' +arch=(i686 x86_64 mips64el) +license=(LGPL GPL MIT) +url=http://www.${pkgname%-lts}.org +depends=(gtk2 openexr lcms libxpm fltk ftgl libxxf86vm) +makedepends=(python2 gutenprint) +optdepends=( + 'python2: for python plug-ins' + 'gutenprint: for print plug-ins' + 'ghostscript: for pdf plug-ins' +) +conflicts=(${pkgname%-lts}) +provides=(${pkgname%-lts}) +options=(!libtool) +install=${pkgname%-lts}.install +source=( + http://sourceforge.net/projects/${pkgname%-lts}/files/CinePaint/${pkgname%-lts}-$pkgver.tgz + LICENSE + ${pkgname%-lts}-libpng15.patch +) +md5sums=( + 7dfdb005d246578392ac9bd500534804 + 169085743f667c250ea2e4022efecf5f + 6d3f65b72e0f1569a9efe1bcab1b8124 +) + +build() { + cd $srcdir/${pkgname%-lts} + + rm config.{sub,guess} + ln -s /usr/share/automake-1.12/config.sub config.sub + ln -s /usr/share/automake-1.12/config.guess config.guess + + patch -p1 -i ../${pkgname%-lts}-libpng15.patch + find plug-ins/pygimp -type f -exec sed -i 's#env python#env python2#' {} + + sed -i 's|$(LDFLAGS) -o|$(LDFLAGS) $(GTK_LIBS) -o|' lib/Makefile.in + sed -i -e '1 s/^/#include \n/' plug-ins/icc_examin/icc_examin/icc_modell_beobachter.cpp + + sh autogen.sh + LIBS+="-lstdc++ -lm -lX11" ./configure --prefix=/usr --libdir=/usr/lib --mandir=/usr/share/man \ + --enable-gtk2 --enable-pygimp --with-python=/usr/bin/python2 + sed -i 's/-Wl,,/-Wl,/' lib/fl_i18n/Makefile plug-ins/bracketing_to_hdr/Makefile \ + plug-ins/collect/Makefile plug-ins/icc_examin/icc_examin/Makefile plug-ins/pdf/Makefile + make +} + +package() { + cd $srcdir/${pkgname%-lts} + make DESTDIR=$pkgdir install + sed -i -e "s|-I$srcdir/${pkgname%-lts}||" -e "s|-I$srcdir/${pkgname%-lts}/lib||" -e "/lib${pkgname%-lts}.la/d" \ + -e "s|${srcdir}/${pkgname%-lts}/lib/.libs/\$dlname||" $pkgdir/usr/bin/${pkgname%-lts}tool + sed -i "s/${pkgname%-lts}.png/${pkgname%-lts}/" $pkgdir/usr/share/applications/${pkgname%-lts}.desktop + install -D -m644 $srcdir/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE +} diff --git a/artistic/cinepaint-lts/cinepaint-libpng15.patch b/artistic/cinepaint-lts/cinepaint-libpng15.patch new file mode 100644 index 000000000..619d9af42 --- /dev/null +++ b/artistic/cinepaint-lts/cinepaint-libpng15.patch @@ -0,0 +1,446 @@ +diff -Nur a/plug-ins/png/png.c b/plug-ins/png/png.c +--- a/plug-ins/png/png.c 2006-11-24 18:52:55.000000000 -0200 ++++ b/plug-ins/png/png.c 2012-10-12 01:07:56.452245955 -0200 +@@ -390,6 +390,16 @@ + gchar *progress; /* Title for progress display... */ + guchar alpha[256], /* Index -> Alpha */ + *alpha_ptr; /* Temporary pointer */ ++ png_byte color_type; ++ png_byte bit_depth; ++ png_colorp palette; ++ int num_palette; ++ png_charpp iccp_name; ++ int compression_type; ++ png_bytepp iccp_profile; ++ png_uint_32 iccp_proflen; ++ png_uint_32 width, height; ++ png_byte channels; + + /* + * PNG 0.89 and newer have a sane, forwards compatible constructor. +@@ -405,7 +415,7 @@ + info = (png_infop)calloc(sizeof(png_info), 1); + #endif /* PNG_LIBPNG_VER > 88 */ + +- if (setjmp (pp->jmpbuf)) ++ if (setjmp (png_jmpbuf(pp))) + { + g_message ("%s\nPNG error. File corrupted?", filename); + return image; +@@ -442,21 +452,26 @@ + */ + + png_read_info(pp, info); ++ color_type = png_get_color_type(pp, info); ++ width=png_get_image_width(pp, info); ++ height=png_get_image_height(pp, info); + + /* + * Latest attempt, this should be my best yet :) + */ + ++ bit_depth = png_get_bit_depth(pp, info); ++ + #ifndef WORDS_BIGENDIAN +- if(info->bit_depth == 16) ++ if(bit_depth == 16) + png_set_swap(pp); + #endif + +- if (info->color_type == PNG_COLOR_TYPE_GRAY && info->bit_depth < 8) { ++ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { + png_set_expand(pp); + } + +- if (info->color_type == PNG_COLOR_TYPE_PALETTE && info->bit_depth < 8) { ++ if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth < 8) { + png_set_packing(pp); + } + +@@ -464,8 +479,8 @@ + * Expand G+tRNS to GA, RGB+tRNS to RGBA + */ + +- if (info->color_type != PNG_COLOR_TYPE_PALETTE && +- (info->valid & PNG_INFO_tRNS)) { ++ if (color_type != PNG_COLOR_TYPE_PALETTE && ++ (png_get_valid(pp, info, PNG_INFO_tRNS))) { + png_set_expand(pp); + } + +@@ -482,7 +497,7 @@ + + #if PNG_LIBPNG_VER > 99 + if (png_get_valid(pp, info, PNG_INFO_tRNS) && +- info->color_type == PNG_COLOR_TYPE_PALETTE) ++ color_type == PNG_COLOR_TYPE_PALETTE) + { + png_get_tRNS(pp, info, &alpha_ptr, &num, NULL); + /* Copy the existing alpha values from the tRNS chunk */ +@@ -505,9 +520,9 @@ + + png_read_update_info(pp, info); + +- if(info->bit_depth==16) ++ if(bit_depth==16) + { +- switch (info->color_type) ++ switch (color_type) + { + case PNG_COLOR_TYPE_RGB : /* RGB */ + bpp = 6; +@@ -545,7 +560,7 @@ + } + else + { +- switch (info->color_type) ++ switch (color_type) + { + case PNG_COLOR_TYPE_RGB : /* RGB */ + bpp = 3; +@@ -582,7 +597,7 @@ + }; + } + +- image = gimp_image_new(info->width, info->height, image_type); ++ image = gimp_image_new(width, height, image_type); + if (image == -1) + { + g_message("Can't allocate new image\n%s", filename); +@@ -595,7 +610,7 @@ + * Create the "background" layer to hold the image... + */ + +- layer = gimp_layer_new(image, _("Background"), info->width, info->height, ++ layer = gimp_layer_new(image, _("Background"), width, height, + layer_type, 100, NORMAL_MODE); + gimp_image_add_layer(image, layer, 0); + +@@ -627,20 +642,21 @@ + + empty= 0; /* by default assume no full transparent palette entries */ + +- if (info->color_type & PNG_COLOR_MASK_PALETTE) { ++ if (color_type & PNG_COLOR_MASK_PALETTE) { + + #if PNG_LIBPNG_VER > 99 ++ png_get_PLTE(pp, info, &palette, &num_palette); + if (png_get_valid(pp, info, PNG_INFO_tRNS)) { + for (empty= 0; empty < 256 && alpha[empty] == 0; ++empty); + /* Calculates number of fully transparent "empty" entries */ + +- gimp_image_set_cmap(image, (guchar *) (info->palette + empty), +- info->num_palette - empty); ++ gimp_image_set_cmap(image, (guchar *) (palette + empty), ++ num_palette - empty); + } else { +- gimp_image_set_cmap(image, (guchar *)info->palette, info->num_palette); ++ gimp_image_set_cmap(image, (guchar *)palette, num_palette); + } + #else +- gimp_image_set_cmap(image, (guchar *)info->palette, info->num_palette); ++ gimp_image_set_cmap(image, (guchar *)palette, num_palette); + #endif /* PNG_LIBPNG_VER > 99 */ + + } +@@ -659,18 +675,19 @@ + */ + + tile_height = gimp_tile_height (); +- pixel = g_new(guchar, tile_height * info->width * bpp); ++ pixel = g_new(guchar, tile_height * width * bpp); + pixels = g_new(guchar *, tile_height); ++ channels=png_get_channels(pp, info); + +- if(info->bit_depth==16) ++ if(bit_depth==16) + { + for (i = 0; i < tile_height; i ++) +- pixels[i] = pixel + info->width * info->channels * i * 2; ++ pixels[i] = pixel + width * channels * i * 2; + } + else + { + for (i = 0; i < tile_height; i ++) +- pixels[i] = pixel + info->width * info->channels * i; ++ pixels[i] = pixel + width * channels * i; + } + + for (pass = 0; pass < num_passes; pass ++) +@@ -680,11 +697,11 @@ + */ + + for (begin = 0, end = tile_height; +- begin < info->height; ++ begin < height; + begin += tile_height, end += tile_height) + { +- if (end > info->height) +- end = info->height; ++ if (end > height) ++ end = height; + + num = end - begin; + +@@ -697,20 +714,21 @@ + gimp_pixel_rgn_set_rect(&pixel_rgn, pixel, 0, begin, + drawable->width, num); + +- gimp_progress_update(((double)pass + (double)end / (double)info->height) / ++ gimp_progress_update(((double)pass + (double)end / (double)height) / + (double)num_passes); + }; + }; + + #if defined(PNG_iCCP_SUPPORTED) + /* set icc profile */ +- if (info->iccp_proflen > 0) { +- gimp_image_set_icc_profile_by_mem (image, info->iccp_proflen, +- info->iccp_profile, +- ICC_IMAGE_PROFILE); ++ png_get_iCCP(pp, info, (png_charpp)iccp_name, &compression_type, iccp_profile, &iccp_proflen); ++ if (iccp_proflen > 0) { ++ gimp_image_set_icc_profile_by_mem (image, iccp_proflen, ++ (gchar *)iccp_profile, ++ ICC_IMAGE_PROFILE); + printf ("%s:%d %s() set embedded profile \"%s\"\n", + __FILE__,__LINE__,__func__, +- info->iccp_name); ++ (char *)iccp_name); + } + #endif + +@@ -808,6 +826,14 @@ + blue; /* Used for palette background */ + time_t cutime; /* Time since epoch */ + struct tm *gmt; /* GMT broken down */ ++ png_byte color_type; ++ png_byte bit_depth; ++ int filter_method=0; ++ png_colorp palette; ++ int num_palette; ++ png_charpp iccp_name; ++ png_uint_32 height; ++ int compression_type; + + /* + * PNG 0.89 and newer have a sane, forwards compatible constructor. +@@ -824,7 +850,7 @@ + info = (png_infop)calloc(sizeof(png_info), 1); + #endif /* PNG_LIBPNG_VER > 88 */ + +- if (setjmp (pp->jmpbuf)) ++ if (setjmp (png_jmpbuf(pp))) + { + g_message ("%s\nPNG error. Couldn't save image", filename); + return 0; +@@ -858,87 +884,75 @@ + type = gimp_drawable_type (drawable_ID); + + /* +- * Set the image dimensions, bit depth, interlacing and compression +- */ +- +- png_set_compression_level (pp, pngvals.compression_level); +- +- info->width = drawable->width; +- info->height = drawable->height; +- info->interlace_type = pngvals.interlaced; +- +- /* + * Set color type and remember bytes per pixel count + */ + + switch (type) + { + case RGB_IMAGE : +- info->color_type = PNG_COLOR_TYPE_RGB; +- info->bit_depth = 8; ++ color_type = PNG_COLOR_TYPE_RGB; ++ bit_depth = 8; + bpp = 3; + break; + case RGBA_IMAGE : +- info->color_type = PNG_COLOR_TYPE_RGB_ALPHA; +- info->bit_depth = 8; ++ color_type = PNG_COLOR_TYPE_RGB_ALPHA; ++ bit_depth = 8; + bpp = 4; + break; + case GRAY_IMAGE : +- info->color_type = PNG_COLOR_TYPE_GRAY; +- info->bit_depth = 8; ++ color_type = PNG_COLOR_TYPE_GRAY; ++ bit_depth = 8; + bpp = 1; + break; + case GRAYA_IMAGE : +- info->color_type = PNG_COLOR_TYPE_GRAY_ALPHA; +- info->bit_depth = 8; ++ color_type = PNG_COLOR_TYPE_GRAY_ALPHA; ++ bit_depth = 8; + bpp = 2; + break; + case INDEXED_IMAGE : + bpp = 1; +- info->bit_depth = 8; +- info->color_type = PNG_COLOR_TYPE_PALETTE; +- info->valid |= PNG_INFO_PLTE; +- info->palette= (png_colorp) gimp_image_get_cmap(image_ID, &num_colors); +- info->num_palette= num_colors; ++ bit_depth = 8; ++ color_type = PNG_COLOR_TYPE_PALETTE; ++ png_get_valid(pp, info, PNG_INFO_PLTE); ++ png_set_PLTE(pp, info, (png_colorp) gimp_image_get_cmap(image_ID, &num_colors), num_colors); + break; + case INDEXEDA_IMAGE : + bpp = 2; +- info->bit_depth = 8; +- info->color_type = PNG_COLOR_TYPE_PALETTE; ++ bit_depth = 8; ++ color_type = PNG_COLOR_TYPE_PALETTE; + respin_cmap (pp, info, image_ID); /* fix up transparency */ + break; + case U16_RGB_IMAGE : +- info->color_type = PNG_COLOR_TYPE_RGB; +- info->bit_depth = 16; ++ color_type = PNG_COLOR_TYPE_RGB; ++ bit_depth = 16; + bpp = 6; + break; + case U16_RGBA_IMAGE : +- info->color_type = PNG_COLOR_TYPE_RGB_ALPHA; +- info->bit_depth = 16; ++ color_type = PNG_COLOR_TYPE_RGB_ALPHA; ++ bit_depth = 16; + bpp = 8; + break; + case U16_GRAY_IMAGE : +- info->color_type = PNG_COLOR_TYPE_GRAY; +- info->bit_depth = 16; ++ color_type = PNG_COLOR_TYPE_GRAY; ++ bit_depth = 16; + bpp = 2; + break; + case U16_GRAYA_IMAGE : +- info->color_type = PNG_COLOR_TYPE_GRAY_ALPHA; +- info->bit_depth = 16; ++ color_type = PNG_COLOR_TYPE_GRAY_ALPHA; ++ bit_depth = 16; + bpp = 4; + break; + case U16_INDEXED_IMAGE : + bpp = 2; +- info->bit_depth = 16; +- info->color_type = PNG_COLOR_TYPE_PALETTE; +- info->valid |= PNG_INFO_PLTE; +- info->palette= (png_colorp) gimp_image_get_cmap(image_ID, &num_colors); +- info->num_palette= num_colors; ++ bit_depth = 16; ++ color_type = PNG_COLOR_TYPE_PALETTE; ++ png_get_valid(pp, info, PNG_INFO_PLTE); ++ png_set_PLTE(pp, info, (png_colorp) gimp_image_get_cmap(image_ID, &num_colors), num_colors); + break; + case U16_INDEXEDA_IMAGE : + bpp = 4; +- info->bit_depth = 16; +- info->color_type = PNG_COLOR_TYPE_PALETTE; ++ bit_depth = 16; ++ color_type = PNG_COLOR_TYPE_PALETTE; + respin_cmap (pp, info, image_ID); /* fix up transparency */ + break; + default: +@@ -950,16 +964,22 @@ + * Fix bit depths for (possibly) smaller colormap images + */ + +- if (info->valid & PNG_INFO_PLTE) { +- if (info->num_palette <= 2) +- info->bit_depth= 1; +- else if (info->num_palette <= 4) +- info->bit_depth= 2; +- else if (info->num_palette <= 16) +- info->bit_depth= 4; ++ if (png_get_valid(pp, info, PNG_INFO_PLTE)) { ++ png_get_PLTE(pp, info, &palette, &num_palette); ++ if (num_palette <= 2) ++ bit_depth= 1; ++ else if (num_palette <= 4) ++ bit_depth= 2; ++ else if (num_palette <= 16) ++ bit_depth= 4; + /* otherwise the default is fine */ + } + ++ png_set_compression_level (pp, pngvals.compression_level); ++ png_set_IHDR(pp, info, drawable->width, drawable->height, ++ bit_depth, color_type, pngvals.interlaced, compression_type, filter_method); ++ ++ + // write icc profile + #if defined(PNG_iCCP_SUPPORTED) + if (gimp_image_has_icc_profile (image_ID, ICC_IMAGE_PROFILE)) { +@@ -970,10 +990,10 @@ + ICC_IMAGE_PROFILE); + png_set_iCCP (pp, info, + gimp_image_get_icc_profile_description (image_ID, ICC_IMAGE_PROFILE), +- 0, buffer, size); ++ 0, (png_const_bytep)buffer, size); + printf ("%s:%d %s() embedd icc profile \"%s\"\n", + __FILE__,__LINE__,__func__, +- info->iccp_name); ++ (char *)iccp_name); + } + #endif + +@@ -1039,13 +1059,13 @@ + * Convert unpacked pixels to packed if necessary + */ + +- if (info->color_type == PNG_COLOR_TYPE_PALETTE && info->bit_depth < 8) ++ if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth < 8) + png_set_packing(pp); + + /* Set swapping for 16 bit per sample images */ + + #ifndef WORDS_BIGENDIAN +- if (info->bit_depth == 16) ++ if (bit_depth == 16) + png_set_swap(pp); + #endif + +@@ -1063,6 +1083,7 @@ + + gimp_pixel_rgn_init(&pixel_rgn, drawable, 0, 0, drawable->width, + drawable->height, FALSE, FALSE); ++ height=png_get_image_height(pp, info); + + for (pass = 0; pass < num_passes; pass ++) + { +@@ -1077,7 +1098,7 @@ + num = end - begin; + + gimp_pixel_rgn_get_rect (&pixel_rgn, pixel, 0, begin, drawable->width, num); +- if (info->valid & PNG_INFO_tRNS) { ++ if (png_get_valid(pp, info, PNG_INFO_tRNS)) { + for (i = 0; i < num; ++i) { + fixed= pixels[i]; + for (k = 0; k < drawable->width; ++k) { +@@ -1085,7 +1106,7 @@ + } + } + /* Forgot this case before, what if there are too many colors? */ +- } else if (info->valid & PNG_INFO_PLTE && bpp == 2) { ++ } else if (png_get_valid(pp, info, PNG_INFO_PLTE) && bpp == 2) { + for (i = 0; i < num; ++i) { + fixed= pixels[i]; + for (k = 0; k < drawable->width; ++k) { +@@ -1097,7 +1118,6 @@ + png_write_rows (pp, pixels, num); +- + gimp_progress_update (((double)pass + (double)end / +- (double)info->height) / (double)num_passes); ++ (double)height) / (double)num_passes); + }; + }; + diff --git a/artistic/cinepaint-lts/cinepaint.install b/artistic/cinepaint-lts/cinepaint.install new file mode 100644 index 000000000..5e5cfef4d --- /dev/null +++ b/artistic/cinepaint-lts/cinepaint.install @@ -0,0 +1,11 @@ +post_install() { + update-desktop-database -q +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + update-desktop-database -q +} diff --git a/artistic/spnavcfg/PKGBUILD b/artistic/spnavcfg/PKGBUILD index df9027bc5..cbea06d01 100644 --- a/artistic/spnavcfg/PKGBUILD +++ b/artistic/spnavcfg/PKGBUILD @@ -4,16 +4,17 @@ pkgname=spnavcfg pkgver=0.2.1 pkgrel=1 -pkgdesc="The spacenav project provides a free, compatible alternative, to the proprietary 3Dconnexion device driver and SDK, for their 3D input devices (called 'space navigator', 'space pilot', 'space traveller', etc)." -arch=('i686' 'x86_64' 'mips64el') -url="http://spacenav.sourceforge.net/" -license=('GPL') -depends=('gtk2') +pkgdesc='A libre version of 3Dconnexion'\''s 3D input device drivers configuration' +arch=(i686 x86_64 mips64el) +url=http://spacenav.sourceforge.net/ +license=(GPL) +depends=(gtk2) source=(http://downloads.sourceforge.net/spacenav/$pkgname-$pkgver.tar.gz) -md5sums=('d20cf09515d1e39fd04877a00a2023b5') +sha512sums=(8cda7e8c9c2aa0875c6cf19e96ec47b9492acdcb110e9845f278ede44bee733876a56e2aa2d1198f54d8fecb978fcfe0a61e8f7b7fe19c2754eceec957172e34) build() { cd $srcdir/$pkgname-$pkgver + sed -i -e 's/$(LDFLAGS)/$(LDFLAGS) -lX11/' Makefile.in ./configure --prefix=$pkgdir/usr make || return 1 make DESTDIR=$pkgdir install || return 1 diff --git a/community-staging/onboard/PKGBUILD b/community-staging/onboard/PKGBUILD new file mode 100644 index 000000000..236f0046b --- /dev/null +++ b/community-staging/onboard/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 77541 2012-10-12 02:28:37Z bgyorgy $ +# Maintainer: Balló György + +pkgname=onboard +pkgver=0.98.1 +pkgrel=1 +pkgdesc="On-screen keyboard useful on tablet PCs or for mobility impaired users" +arch=('i686' 'x86_64') +url="https://launchpad.net/onboard" +license=('GPL') +depends=('python-dbus' 'python-gobject' 'gtk3' 'python-virtkey' 'librsvg' 'gsettings-desktop-schemas' 'desktop-file-utils' 'dconf' 'hicolor-icon-theme' 'xdg-utils') +makedepends=('python-distutils-extra') +optdepends=('at-spi2-atk: auto-show when editing text' + 'mousetweaks: hover click with mouse') +options=('!emptydirs') +install=$pkgname.install +source=(http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz) +md5sums=('107e031b429329b71deb67c9b90195d6') + +package() { + cd "$srcdir/$pkgname-$pkgver" + + # Do not set getpreferredencoding, because it breaks getstatusoutput() in the setup script + sed -i '/getpreferredencoding =/ d' setup.py + + python3 setup.py install --root=$pkgdir/ --optimize=1 +} diff --git a/community-staging/onboard/onboard.install b/community-staging/onboard/onboard.install new file mode 100644 index 000000000..aa4c3e059 --- /dev/null +++ b/community-staging/onboard/onboard.install @@ -0,0 +1,13 @@ +post_install() { + glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q + xdg-icon-resource forceupdate +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/community-testing/gambas3/PKGBUILD b/community-testing/gambas3/PKGBUILD index 920256d85..ab1b4cde6 100644 --- a/community-testing/gambas3/PKGBUILD +++ b/community-testing/gambas3/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 77275 2012-10-08 14:02:58Z lcarlier $ +# $Id: PKGBUILD 77485 2012-10-11 08:10:27Z lcarlier $ # Maintainer: Laurent Carlier # Contributor : sebikul @@ -14,8 +14,8 @@ pkgname=('gambas3-runtime' 'gambas3-devel' 'gambas3-ide' 'gambas3-script' 'gamba 'gambas3-gb-qt4-opengl' 'gambas3-gb-qt4-webkit' 'gambas3-gb-report' 'gambas3-gb-sdl' 'gambas3-gb-sdl-sound' 'gambas3-gb-settings' 'gambas3-gb-signal' 'gambas3-gb-v4l' 'gambas3-gb-vb' 'gambas3-gb-xml' 'gambas3-gb-xml-html' 'gambas3-gb-xml-rpc' 'gambas3-gb-xml-xslt' 'gambas3-gb-web') -pkgver=3.3.2 -pkgrel=3.1 +pkgver=3.3.3 +pkgrel=1 pkgdesc="A free development environment based on a Basic interpreter." arch=('i686' 'x86_64') url="http://gambas.sourceforge.net/" @@ -31,7 +31,7 @@ makedepends=('intltool' 'mysql' 'postgresql' 'libffi' 'bzip2' 'glib2' 'v4l-utils options=('!emptydirs') source=("http://downloads.sourceforge.net/gambas/${pkgbase}-${pkgver}.tar.bz2" 'gambas3-script.install' 'gambas3-runtime.install') -md5sums=('2d148d3fbdff7a063157073d555f343c' +md5sums=('18902ae2bbd0d66d165503aba7e89474' 'b284be39d147ec799f1116a6abc068b4' '6d9e080b66443e7246387b1716d24e31') diff --git a/community-testing/gigi/PKGBUILD b/community-testing/gigi/PKGBUILD index 6dffc34e1..4a5bb74b8 100644 --- a/community-testing/gigi/PKGBUILD +++ b/community-testing/gigi/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 73754 2012-07-15 13:18:27Z ibiru $ +# $Id: PKGBUILD 77537 2012-10-11 22:30:20Z lcarlier $ # Maintainer: Alexander Rødseth # Contributor: Sven-Hendrik Haase # Contributor: fana-m @@ -7,15 +7,14 @@ pkgname=gigi pkgver=0.8.0 -pkgrel=11 -_fixedrevision=1074 -pkgdesc="Small, efficient and feature rich GUI for C++ and OpenGL" +pkgrel=13 +_fixedrevision=5208 +pkgdesc="Small, efficient and feature rich GUI for C++ and OpenGL (freeorion fork)" url="http://gigi.sourceforge.net/" arch=('x86_64' 'i686') license=('LGPL') -depends=('boost' 'mesa' 'libpng' 'libjpeg' 'libtiff' 'freetype2' 'ogre' 'sdl' 'ois' 'python') -makedepends=('subversion' 'cmake' 'setconf' 'doxygen') -conflicts=('gigi-svn' 'mesa-full') +depends=('boost' 'libpng' 'libtiff' 'ogre' 'sdl' 'python') +makedepends=('subversion' 'cmake' 'setconf' 'doxygen' 'mesa') build() { cd "$srcdir" @@ -24,7 +23,8 @@ build() { if [ -d gigi/.svn ]; then (cd gigi && svn up -r "$_fixedrevision") else - svn co https://gigi.svn.sourceforge.net/svnroot/gigi/trunk/GG/ \ + #svn co https://gigi.svn.sourceforge.net/svnroot/gigi/trunk/GG/ \ + svn co https://freeorion.svn.sourceforge.net/svnroot/freeorion/trunk/FreeOrion/GG/ \ --config-dir ./ -r "$_fixedrevision" gigi fi @@ -32,12 +32,6 @@ build() { svn export gigi gigi-build cd gigi-build - msg2 "Patching..." - sed -i 's/move_backward(/adobe::move_backward(/g' GG/adobe/vector.hpp - sed -i 's/__GNUC_MINOR__ <= 6/__GNUC_MINOR__ <= 999/g' GG/adobe/cmath.hpp - sed -i 's/insert(adobe/this->insert(adobe/g' GG/adobe/closed_hash.hpp - sed -i 's:TIME_UTC:TIME_UTC_:' src/GUI.cpp - msg2 "Configuring..." setconf cmake/GiGiOgre.pc.in prefix /usr setconf cmake/GiGi.pc.in prefix /usr diff --git a/community-testing/megaglest/PKGBUILD b/community-testing/megaglest/PKGBUILD index 2740642d2..d05435549 100644 --- a/community-testing/megaglest/PKGBUILD +++ b/community-testing/megaglest/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 74516 2012-07-29 21:15:52Z ebelanger $ +# $Id: PKGBUILD 77508 2012-10-11 12:20:33Z svenstaro $ # Maintainer: Sven-Hendrik Haase # Contributor: Larry Hajali pkgname=megaglest pkgver=3.6.0.3 -pkgrel=3 +pkgrel=4 pkgdesc="Fork of Glest, a 3D real-time strategy game in a fantastic world." arch=('i686' 'x86_64') url="http://sourceforge.net/projects/megaglest/" license=('GPL3') depends=('curl' 'megaglest-data' 'xerces-c' 'sdl' 'libvorbis' 'openal' 'libgl' 'lua' 'icu' 'ftgl' 'glew' -'libircclient' 'miniupnpc' 'wxgtk') +'libircclient' 'miniupnpc' 'wxgtk' 'glu') makedepends=('ftjam' 'cmake' 'mesa') source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-source-${pkgver}.tar.xz" lol.patch) diff --git a/community-testing/openimageio/PKGBUILD b/community-testing/openimageio/PKGBUILD index a2bda3f75..b62f5f71f 100644 --- a/community-testing/openimageio/PKGBUILD +++ b/community-testing/openimageio/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 74517 2012-07-29 21:15:55Z ebelanger $ +# $Id: PKGBUILD 77494 2012-10-11 11:31:19Z svenstaro $ # Contributor: SpepS # Maintainer: Sven-Hendrik Haase pkgname=openimageio -pkgver=1.0.8 +pkgver=1.0.9 pkgrel=1 pkgdesc="A library for reading and writing images, including classes, utilities, and applications." arch=(i686 x86_64) @@ -14,7 +14,7 @@ makedepends=('cmake' 'qt' 'python2' 'boost') optdepends=('qt: iv image viewer' 'python2: bindings support') source=(https://github.com/OpenImageIO/oiio/tarball/Release-$pkgver) -md5sums=('7d8ee962f29cea749d02ab992e2874df') +md5sums=('4b98a057515cc95fc954743c987f19ba') build() { cd "$srcdir"/$_pkgname*/src diff --git a/community-testing/scorched3d/PKGBUILD b/community-testing/scorched3d/PKGBUILD new file mode 100644 index 000000000..0ae9d7dcb --- /dev/null +++ b/community-testing/scorched3d/PKGBUILD @@ -0,0 +1,62 @@ +# Maintainer: Sven-Hendrik Haase +# Contributor: Seppo Porspakka +# Contributor: Daniel J Griffiths + +pkgname=scorched3d +pkgver=43.3.d +_pkgver=43.3d +pkgrel=4 +pkgdesc="3D artillery combat game" +arch=('i686' 'x86_64') +url="http://www.scorched3d.co.uk/" +license=('GPL') +depends=('sdl_net' 'wxgtk' 'freealut>=1.0.0-3' 'libvorbis' 'glu' 'fftw' 'libjpeg>=8' 'xdg-utils') +makedepends=('gendesk' 'mesa') +install=scorched3d.install +source=("http://downloads.sourceforge.net/${pkgname}/Scorched3D-${_pkgver}-src.tar.gz" + 'scorched3d.png::http://cdn.portableapps.com/Scorched3DPortable_128.png' + 'scorched3d-42.1-gcc43.patch' + 'scorched3d-42.1-fixups.patch' + 'scorched3d-libpng1.5.patch' + 'libpng14.patch') +md5sums=('9c3043282a9e7451468ff325bef3b04c' + '0f7e570f586c227873e909ebbc17c84d' + '053769f77a38c252eef1d967b18e93e6' + 'dfde556559d95bca07c4a390c60790b4' + 'ec6958191751b5a2c44aa15abfc75269' + 'c8c03855fd3693122fd39427fa3638c1') + +build() { + cd "$srcdir/scorched" + +# patch -Np1 -i ${srcdir}/scorched3d-42.1-gcc43.patch +# patch -Np1 -i ${srcdir}/scorched3d-42.1-fixups.patch + patch -Np1 -i ${srcdir}/scorched3d-libpng1.5.patch +# patch -Np0 -i ${srcdir}/libpng14.patch + + WANT_WXGTK=gtk2 + sh autogen.sh \ + --prefix=/usr \ + --datadir=/usr/share/scorched3d \ + --disable-openaltest \ + --with-wx-config=wx-config + + sed -i '1 i #include ' src/client/client/SecureID.cpp + #sed -i 's/-lz/-lz -lalut/g' src/scorched/Makefile || return 1 + #sed -i 's|/usr/local/lib/libwx_gtk-2.4.a||' src/scorched/Makefile || return 1 + + make +} + +package() { + cd "$srcdir" + gendesk + + cd scorched + make DESTDIR=${pkgdir} install + cd .. + + install -D -m644 scorched3d.png "$pkgdir/usr/share/icons/hicolor/48x48/apps/$pkgname.png" + install -D -m644 scorched3d.png "$pkgdir/usr/share/pixmaps/$pkgname.png" + install -D -m644 scorched3d.desktop "$pkgdir/usr/share/applications/$pkgname.desktop" +} diff --git a/community-testing/scorched3d/libpng14.patch b/community-testing/scorched3d/libpng14.patch new file mode 100644 index 000000000..7a5a9434c --- /dev/null +++ b/community-testing/scorched3d/libpng14.patch @@ -0,0 +1,38 @@ +--- src/common/image/ImagePng.cpp 2009-02-23 04:14:20.000000000 +0100 ++++ src/common/image/ImagePng.cpp_patched 2010-01-24 22:01:04.000000000 +0100 +@@ -189,7 +189,7 @@ + info_ptr = png_create_info_struct(png_ptr); + if (info_ptr == NULL) + { +- png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL); ++ png_destroy_read_struct(&png_ptr, NULL, NULL); + return false; + } + +@@ -200,7 +200,7 @@ + if (setjmp(png_jmpbuf(png_ptr))) + { + /* Free all of the memory associated with the png_ptr and info_ptr */ +- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL); ++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + /* If we get here, we had a problem reading the file */ + return false; + } +@@ -258,7 +258,7 @@ + } + else + { +- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL); ++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + Logger::log(S3D::formatStringBuffer( + "Invalid PNG format.\n" +@@ -272,7 +272,7 @@ + // END NEW CODE + + /* clean up after the read, and free any memory allocated - REQUIRED */ +- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL); ++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + /* that's it */ + return true; diff --git a/community-testing/scorched3d/scorched3d-42.1-fixups.patch b/community-testing/scorched3d/scorched3d-42.1-fixups.patch new file mode 100644 index 000000000..36a027cb6 --- /dev/null +++ b/community-testing/scorched3d/scorched3d-42.1-fixups.patch @@ -0,0 +1,58 @@ +diff -ru scorched.orig/configure-al.m4 scorched/configure-al.m4 +--- scorched.orig/configure-al.m4 2008-03-03 16:17:18.000000000 -0500 ++++ scorched/configure-al.m4 2009-02-15 20:43:35.000000000 -0500 +@@ -7,25 +7,9 @@ + [ --disable-openaltest Do not try to compile and run a test OpenAL program], + , enable_openaltest=yes) + AC_MSG_CHECKING(for OpenAL support) +-AC_PATH_PROG(OPENAL_CONFIG, openal-config, no) +-if test x$OPENAL_CONFIG = xno; then +- echo "*** The openal-config script installed by OpenAL could not be found" +- echo "*** Make sure openal-config is in your path, or set the OPENAL_CONFIG" +- echo "*** environment variable to the full path to openal-config." +- +- AC_MSG_ERROR([*** Can't find the openal library. Try: http://www.openal.org/]) +-else +- +- if test x"$use_static_openal" = x"yes"; then +- AL_LIBS="/usr/local/lib/libopenal.a" +- else +- AL_LIBS="`$OPENAL_CONFIG --libs`" +- fi +- +- AL_CFLAGS="`$OPENAL_CONFIG --cflags`" +- +- AC_MSG_RESULT(yes) +-fi ++AL_LIBS="-lopenal" ++AL_CFLAGS="-I/usr/include/AL" ++AC_MSG_RESULT(yes) + + AC_MSG_CHECKING(for Freealut support) + AC_PATH_PROG(FREEALUT_CONFIG, freealut-config, no) +diff -ru scorched.orig/configure.ac scorched/configure.ac +--- scorched.orig/configure.ac 2008-03-03 16:17:18.000000000 -0500 ++++ scorched/configure.ac 2009-02-15 20:40:30.000000000 -0500 +@@ -13,22 +13,6 @@ + AC_PROG_INSTALL + AC_PROG_RANLIB + +-LDFLAGS="-L/usr/X11R6/lib -L/usr/X11R6" +-CPPFLAGS="-I/usr/X11R6/include -I/usr/X11R6" +- +-if test `uname` == Darwin; then +-LDFLAGS="$LDFLAGS -lmx" +-CPPFLAGS="$CPPFLAGS -DFFTW_USE_DOUBLE -D__DARWIN__ -D__MACOSX__" +-else +-LDFLAGS="$LDFLAGS -L/usr/local/lib" +-CPPFLAGS="$CPPFLAGS -I/usr/local/include" +-fi +- +-AC_CHECK_LIB(fridge, beer, echo "Hmm?!",[ +- echo "Warning: No beer found in fridge!"; +- echo "We highly suggest that you rectify this situation immediately." +-]) +- + AC_ARG_ENABLE(serveronly, + [ --enable-serveronly Enable server only compilation], + , enable_serveronly=no, diff --git a/community-testing/scorched3d/scorched3d-42.1-gcc43.patch b/community-testing/scorched3d/scorched3d-42.1-gcc43.patch new file mode 100644 index 000000000..b235f07c5 --- /dev/null +++ b/community-testing/scorched3d/scorched3d-42.1-gcc43.patch @@ -0,0 +1,24 @@ +diff -ur scorched.old/src/common/common/main.h scorched/src/common/common/main.h +--- scorched.old/src/common/common/main.h 2009-02-18 20:06:22.000000000 +0200 ++++ scorched/src/common/common/main.h 2009-02-18 20:07:18.000000000 +0200 +@@ -40,7 +40,7 @@ + void _no_storage() + { + printf("Failed to allocate memory!!"); +- std::exit(1); ++ exit(1); + } + + void run_main(int argc, char *argv[], OptionsParameters ¶ms) +diff -ur scorched.old/src/common/porting/windows.h scorched/src/common/porting/windows.h +--- scorched.old/src/common/porting/windows.h 2009-02-18 20:06:22.000000000 +0200 ++++ scorched/src/common/porting/windows.h 2009-02-18 20:06:46.000000000 +0200 +@@ -20,7 +20,7 @@ + typedef unsigned short WORD; + typedef unsigned char BYTE; + +-typedef int HWND; ++// typedef int HWND; + typedef void * HINSTANCE; + typedef int WPARAM; + typedef int LPARAM; diff --git a/community-testing/scorched3d/scorched3d-libpng1.5.patch b/community-testing/scorched3d/scorched3d-libpng1.5.patch new file mode 100644 index 000000000..4e8f003b8 --- /dev/null +++ b/community-testing/scorched3d/scorched3d-libpng1.5.patch @@ -0,0 +1,74 @@ +--- ./src/common/image/ImagePngFactory.cpp.old 2011-09-12 12:34:30.114461019 +0200 ++++ ./src/common/image/ImagePngFactory.cpp 2011-09-12 12:39:28.566425593 +0200 +@@ -104,7 +104,7 @@ + + static void user_png_error(png_structp png_ptr, png_const_charp msg) + { +- longjmp(png_ptr->jmpbuf,1); ++ longjmp(png_jmpbuf(png_ptr),1); + } + + static void user_png_warning(png_structp png_ptr, png_const_charp msg) +--- ./src/client/client/LoadPNG.cpp.old 2011-09-12 12:45:49.167380419 +0200 ++++ ./src/client/client/LoadPNG.cpp 2011-09-12 14:11:14.961772024 +0200 +@@ -28,6 +28,8 @@ + int row, i; + volatile int ckey = -1; + png_color_16 *transv; ++ png_colorp png_palette; ++ int num_palette; + + if ( !src ) { + /* The error message has been set in SDL_RWFromFile */ +@@ -58,7 +60,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)) ) { + error = "Error reading the PNG file."; + goto done; + } +@@ -127,9 +129,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; +@@ -137,7 +139,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 ) { + error = "Out of memory"; + goto done; +@@ -185,12 +187,15 @@ + 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; inum_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 { ++ png_get_PLTE(png_ptr, info_ptr, &png_palette, &num_palette); ++ if (num_palette > 0 ) { ++ palette->ncolors = num_palette; ++ for( i=0; icolors[i].b = png_palette[i].blue; ++ palette->colors[i].g = png_palette[i].green; ++ palette->colors[i].r = png_palette[i].red; ++ } + } + } + } diff --git a/community-testing/scorched3d/scorched3d.install b/community-testing/scorched3d/scorched3d.install new file mode 100644 index 000000000..c5571196e --- /dev/null +++ b/community-testing/scorched3d/scorched3d.install @@ -0,0 +1,11 @@ +post_install() { + which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true +} + +post_upgrade() { + which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true +} + +post_remove() { + which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true +} diff --git a/community-testing/xmoto/PKGBUILD b/community-testing/xmoto/PKGBUILD new file mode 100644 index 000000000..6cfbb2db3 --- /dev/null +++ b/community-testing/xmoto/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 77535 2012-10-11 21:34:16Z lcarlier $ +# Maintainer: Ronald van Haren +# Contributor: Travis Willard +# Contributor: Denis (dtonator@gmail.com) + +pkgname=xmoto +pkgver=0.5.10 +pkgrel=2 +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=('libjpeg' 'libpng' 'lua' 'sdl_mixer' 'ode' 'curl' + 'sqlite3' 'sdl_ttf' 'desktop-file-utils' 'sdl_net' 'glu' + 'libxdg-basedir' 'libxml++') +makedepends=('mesa') +install=xmoto.install +source=("http://download.tuxfamily.org/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}-src.tar.gz" + 'xmoto-0.5.10-libpng15.patch' + 'system.cpp.patch') +sha1sums=('692d50a9c91791cd06ee84846632651b44544fcc' + '9d13fa09f1c558a0fc504f7e7b1ceac6b4b7b20d' + 'e741f769d1fc5779a6688970ee97e2a61a50c7ae') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + + patch -Np1 -i "${srcdir}/xmoto-0.5.10-libpng15.patch" + patch -Np1 -i "${srcdir}/system.cpp.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-testing/xmoto/system.cpp.patch b/community-testing/xmoto/system.cpp.patch new file mode 100644 index 000000000..df42e3a7c --- /dev/null +++ b/community-testing/xmoto/system.cpp.patch @@ -0,0 +1,10 @@ +--- a/src/helpers/System.cpp 2011-10-11 22:18:14.000000000 +0200 ++++ b/src/helpers/System.cpp 2012-07-21 21:28:40.000000000 +0200 +@@ -24,6 +24,7 @@ + #include "Log.h" + #include "VExcept.h" + #include ++#include + + std::vector* System::getDisplayModes(int windowed) { + std::vector* modes = new std::vector; diff --git a/community-testing/xmoto/xmoto-0.5.10-libpng15.patch b/community-testing/xmoto/xmoto-0.5.10-libpng15.patch new file mode 100644 index 000000000..aed175c7c --- /dev/null +++ b/community-testing/xmoto/xmoto-0.5.10-libpng15.patch @@ -0,0 +1,10 @@ +--- a/src/image/tim_png.cpp 2011-12-29 22:13:37.000000000 +0100 ++++ b/src/image/tim_png.cpp 2012-07-21 21:36:34.000000000 +0200 +@@ -24,6 +24,7 @@ + */ + #include + #include ++#include + #include "tim.h" + #include + #include diff --git a/community-testing/xmoto/xmoto.install b/community-testing/xmoto/xmoto.install new file mode 100644 index 000000000..e111ef946 --- /dev/null +++ b/community-testing/xmoto/xmoto.install @@ -0,0 +1,11 @@ +post_install() { + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/community/bullet/PKGBUILD b/community/bullet/PKGBUILD index d864ec291..3bf0dafea 100644 --- a/community/bullet/PKGBUILD +++ b/community/bullet/PKGBUILD @@ -1,10 +1,11 @@ -# $Id: PKGBUILD 68719 2012-04-01 00:16:22Z svenstaro $ +# $Id: PKGBUILD 77520 2012-10-11 13:39:07Z svenstaro $ # Maintainer: Sven-Hendrik Haase # Contributor: Christoph Zeiler pkgbase=bullet pkgname=('bullet' 'bullet-docs') -pkgver=2.80 +_rev=2613 +pkgver=2.81 pkgrel=1 pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation" arch=('i686' 'x86_64') @@ -12,13 +13,13 @@ url="http://www.bulletphysics.com/Bullet/" license=('custom:zlib') depends=('freeglut') makedepends=('cmake' 'doxygen' 'graphviz' 'ttf-dejavu') -source=(http://bullet.googlecode.com/files/${pkgbase}-${pkgver}-rev2531.tgz +source=(http://bullet.googlecode.com/files/${pkgbase}-${pkgver}-rev${_rev}.tgz ${pkgbase}.pc) -md5sums=('d1eec0332110264a21d0fc0f2fb127c3' +md5sums=('cec9c9a79c2804dbf6385dd7d061346c' 'd1da06deba3b08b884d2212f6838905c') build() { - cd ${pkgbase}-${pkgver}-rev2531 + cd ${pkgbase}-${pkgver}-rev${_rev} # get a clean build dir [[ -d build ]] && rm -rf build @@ -46,15 +47,11 @@ build() { package_bullet() { optdepends=('bullet-docs: documentation') - cd ${pkgbase}-${pkgver}-rev2531/build + cd ${pkgbase}-${pkgver}-rev${_rev}/build # install it make DESTDIR=${pkgdir} install - # fix #29012 - install -Dm644 ../Extras/HACD/hacdVector.inl ${pkgdir}/usr/include/bullet/HACD/hacdVector.inl - install -Dm644 ../Extras/HACD/hacdCircularList.inl ${pkgdir}/usr/include/bullet/HACD/hacdCircularList.inl - # manually handle pkgconfig file mkdir -p "${pkgdir}"/usr/lib/pkgconfig sed "s|VERSION|${pkgver}|g" ${srcdir}/bullet.pc > ${pkgdir}/usr/lib/pkgconfig/bullet.pc @@ -67,7 +64,7 @@ package_bullet-docs() { pkgdesc="Documentation for bullet" depends=() - cd ${pkgbase}-${pkgver}-rev2531 + cd ${pkgbase}-${pkgver}-rev${_rev} # install docs install -Dm644 Bullet_User_Manual.pdf ${pkgdir}/usr/share/doc/bullet/Bullet_User_Manual.pdf diff --git a/community/connman/PKGBUILD b/community/connman/PKGBUILD index 3d02d9512..b6ca46685 100644 --- a/community/connman/PKGBUILD +++ b/community/connman/PKGBUILD @@ -1,9 +1,9 @@ -$Id: PKGBUILD 76664 2012-09-25 22:41:38Z dwallace $ +#$Id: PKGBUILD 77533 2012-10-11 21:23:35Z dwallace $ # Maintainer: Daniel Wallace # Contributor: Lucas De Marchi pkgname=connman -pkgver=1.7 +pkgver=1.8 pkgrel=1 pkgdesc="Wireless LAN network manager" url="http://connman.net/" @@ -18,10 +18,10 @@ options=('!libtool') source=('connmand-daemon' "http://www.kernel.org/pub/linux/network/${pkgname}/${pkgname}-${pkgver}.tar.bz2" 'allow_group_network.diff') + md5sums=('88ece7cbf1d0d289545ce4f8553fdab8' - '9c6cf5a95989ae72d90b270ac7c6e38c' + '689468f92a1dcb2c0e30d7d00410ad87' 'a8d22ee089fb0ed725130d16ad393047') - build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/community/enet/PKGBUILD b/community/enet/PKGBUILD index 41b97c012..a3557237a 100644 --- a/community/enet/PKGBUILD +++ b/community/enet/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 71720 2012-06-01 18:47:54Z ebelanger $ +# $Id: PKGBUILD 77516 2012-10-11 13:14:20Z svenstaro $ # Maintainer: Mateusz Herych # Contributor: Bj?indeijer pkgname=enet -pkgver=1.3.4 +pkgver=1.3.5 pkgrel=1 pkgdesc='A relatively thin, simple and robust network communication layer on top of UDP.' arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ license=('custom') depends=('glibc') options=('!libtool') source=("http://enet.bespin.org/download/${pkgname}-${pkgver}.tar.gz") -md5sums=('e5fb0ca3fd3a9fe7eadbcde4d6af1517') +md5sums=('c75d0be31b6f23330839a68ee66e00f9') build() { cd "${pkgname}-${pkgver}" diff --git a/community/glabels/PKGBUILD b/community/glabels/PKGBUILD index 37d4a74fb..baad6680c 100644 --- a/community/glabels/PKGBUILD +++ b/community/glabels/PKGBUILD @@ -1,30 +1,27 @@ -# $Id: PKGBUILD 69806 2012-04-23 09:47:01Z ibiru $ +# $Id: PKGBUILD 77545 2012-10-12 03:02:27Z bgyorgy $ # Maintainer: Balló György # Contributor: yugrotavele # Contributor: Damir Perisa pkgname=glabels -pkgver=3.0.0 -pkgrel=3 +pkgver=3.0.1 +pkgrel=1 pkgdesc="Creating labels and business cards the very easy way" arch=('i686' 'x86_64') -url="http://glabels.sourceforge.net/" +url="http://glabels.org/" license=('GPL' 'LGPL') depends=('librsvg' 'evolution-data-server>=3.4.0' 'qrencode' 'iec16022' 'dconf' 'desktop-file-utils' 'xdg-utils') makedepends=('barcode' 'intltool' 'gnome-doc-utils') options=('!libtool') install=$pkgname.install -source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2 - fix-gschema.patch) -sha256sums=('a3a3db4dd25bfb1a03f4008f01c5d9045174e78e13ae77438b81bfe4bf14e64a' - 'ef4f368b49fe66fb7e9c1c4edabb96e1f10fd3e8502d695aef6b89388c38cd94') +source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) +sha256sums=('99810705b9fcb234f085ed4ac6dbea50cc5b232c6d8ca05ab2c0634673fb9bd2') build() { cd "$srcdir/$pkgname-$pkgver" - patch -Np1 -i "$srcdir/fix-gschema.patch" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --disable-static --disable-scrollkeeper --disable-schemas-compile + --disable-static --disable-schemas-compile make } diff --git a/community/hitori/PKGBUILD b/community/hitori/PKGBUILD index 99afb9dd3..9a8053373 100644 --- a/community/hitori/PKGBUILD +++ b/community/hitori/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 69054 2012-04-08 19:56:12Z bgyorgy $ +# $Id: PKGBUILD 77547 2012-10-12 03:16:10Z bgyorgy $ # Maintainer: Balló György pkgname=hitori -pkgver=0.3.2 +pkgver=0.4.0 pkgrel=1 pkgdesc="GTK+ application to generate and let you play games of Hitori" arch=('i686' 'x86_64') url="https://live.gnome.org/Hitori" license=('GPL') depends=('gtk3' 'hicolor-icon-theme' 'xdg-utils') -makedepends=('intltool' 'gnome-doc-utils') +makedepends=('intltool' 'itstool') install=$pkgname.install source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('9e72bb0c84b0e0b66a96fcee6918cf15832f45458df4d8dd5f8091a20bba4350') +sha256sums=('5d9e1c0f5d33c960167a126242bf57ff4865a6aaf6602da4a25aae56dc491030') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/community/lazarus/PKGBUILD b/community/lazarus/PKGBUILD index d7d070855..b686bad3d 100644 --- a/community/lazarus/PKGBUILD +++ b/community/lazarus/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 76459 2012-09-18 17:57:53Z spupykin $ +# $Id: PKGBUILD 77496 2012-10-11 11:35:28Z spupykin $ # Maintainer: Sergej Pupykin # Contributor: Jens Adam (byte/jra) # Contributor: BlackIkeEagle pkgbase=lazarus pkgname=('lazarus' 'lazarus-gtk2' 'lazarus-qt') -pkgver=1.0 +pkgver=1.0.2 _pkgsubver=0 -pkgrel=2 +pkgrel=1 url='http://www.lazarus.freepascal.org/' license=('GPL2' 'MPL' 'custom:LGPL') arch=('i686' 'x86_64') @@ -15,7 +15,7 @@ makedepends=('fpc' 'fpc-src' 'gtk2' 'qt4pas' 'rsync') options=('!emptydirs' '!makeflags') source=("http://downloads.sourceforge.net/project/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20$pkgver/lazarus-$pkgver-${_pkgsubver}.tar.gz" 'lazcontrols2.diff') -md5sums=('2412545d740059d006485f5d17ef0eca' +md5sums=('738ee29686de71cd599b468eabf034e8' '288bca6ad5ade79deec34c3602daaaa9') build() { diff --git a/community/libcryptui/PKGBUILD b/community/libcryptui/PKGBUILD index cae4d802c..6e0e849f2 100644 --- a/community/libcryptui/PKGBUILD +++ b/community/libcryptui/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 69509 2012-04-17 14:38:21Z bgyorgy $ +# $Id: PKGBUILD 77551 2012-10-12 03:46:14Z bgyorgy $ # Maintainer: Balló György pkgname=libcryptui -pkgver=3.4.1 +pkgver=3.6.0 pkgrel=1 pkgdesc="Library for OpenPGP prompts" arch=('i686' 'x86_64') @@ -13,7 +13,7 @@ makedepends=('intltool' 'gobject-introspection') options=('!libtool') install=$pkgname.install source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('fad4addf5c5b6588f492a720edce59f925190e4cdf3672984f53b25327f10fd5') +sha256sums=('0a4a747fff33acd03d1381d27454f8aa5eaca026b7475e24c4b8f8272bbe1c87') build() { cd "$srcdir/$pkgname-$pkgver" diff --git a/community/lilypond/PKGBUILD b/community/lilypond/PKGBUILD index 9617be403..4a58cd269 100644 --- a/community/lilypond/PKGBUILD +++ b/community/lilypond/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 75534 2012-08-26 20:38:31Z spupykin $ +# $Id: PKGBUILD 77506 2012-10-11 12:11:13Z spupykin $ # Maintainer: Sergej Pupykin # Maintainer: Geoffroy Carrier # Contributor: William Rea @@ -6,7 +6,7 @@ pkgname=lilypond pkgver=2.16.0 -pkgrel=1 +pkgrel=2 pkgdesc="An automated music engraving system" arch=('i686' 'x86_64') url="http://lilypond.org" @@ -39,5 +39,5 @@ build() { package() { cd "$srcdir/$pkgname-$pkgver" - make DESTDIR="$pkgdir" install + make DESTDIR="$pkgdir" vimdir="/usr/share/vim/vimfiles" install } diff --git a/community/oath-toolkit/PKGBUILD b/community/oath-toolkit/PKGBUILD index a1a5bedf9..7e4fcd265 100644 --- a/community/oath-toolkit/PKGBUILD +++ b/community/oath-toolkit/PKGBUILD @@ -1,19 +1,19 @@ -# $Id: PKGBUILD 75890 2012-09-04 18:45:38Z seblu $ +# $Id: PKGBUILD 77539 2012-10-11 23:18:29Z seblu $ # Maintainer: Sébastien Luttringer # Contributor: Christian Hesse # Contributor: L42y <423300@gmail.com> pkgname=oath-toolkit -pkgver=1.12.6 +pkgver=2.0.0 pkgrel=1 pkgdesc='OATH one-time password toolkit' arch=('i686' 'x86_64') url='http://www.nongnu.org/oath-toolkit/' license=('GPL3') -depends=('pam') +depends=('glibc' 'pam' 'libxml2') options=('!libtool') source=("http://download.savannah.nongnu.org/releases/$pkgname/$pkgname-$pkgver.tar.gz") -md5sums=('7c8c4231aecfc5d74467b2a9e6bf054c') +md5sums=('2da5d9211062dfd746539c783185fae1') build() { cd $pkgname-$pkgver @@ -24,7 +24,6 @@ build() { package() { cd $pkgname-$pkgver make DESTDIR="$pkgdir" install - # Install basic docs too install -D -m 644 pam_oath/README "$pkgdir/usr/share/doc/$pkgname/PAM_README" install -D -m 644 README "$pkgdir/usr/share/doc/$pkgname/README" diff --git a/community/pam_mount/PKGBUILD b/community/pam_mount/PKGBUILD index 9b226e9f2..d652fe0c3 100644 --- a/community/pam_mount/PKGBUILD +++ b/community/pam_mount/PKGBUILD @@ -1,10 +1,10 @@ -# $Id$ +# $Id: PKGBUILD 77500 2012-10-11 11:40:42Z spupykin $ # Maintainer: Sergej Pupykin # Contributors: Sirius Bakke pkgname=pam_mount pkgver=2.13 -pkgrel=3 +pkgrel=4 pkgdesc="A PAM module that can mount volumes for a user session" arch=('i686' 'x86_64') url="http://pam-mount.sourceforge.net/" @@ -13,11 +13,18 @@ depends=('util-linux' 'libhx>=3.12.1' 'libxml2>=2.6' 'openssl>0.9.7' 'cryptsetup optdepends=('hxtools: If you have something like in your config') backup=('etc/security/pam_mount.conf.xml') options=(!emptydirs !libtool) -source=("http://downloads.sourceforge.net/project/pam-mount/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz") -md5sums=('9f75fc8e84ea9cde619cdd6a62c7de33') +source=("http://downloads.sourceforge.net/project/pam-mount/$pkgname/$pkgver/$pkgname-$pkgver.tar.xz" + "$pkgname-git.patch") +md5sums=('9f75fc8e84ea9cde619cdd6a62c7de33' + 'f018cb901eb6a18447a3a1b0a50c14dd') build() { cd -- "$srcdir/$pkgname-$pkgver" + patch -p1 <$srcdir/$pkgname-git.patch + aclocal + automake --add-missing + libtoolize + autoreconf ./configure \ --prefix=/usr \ --with-ssbindir=/usr/sbin \ diff --git a/community/pam_mount/pam_mount-git.patch b/community/pam_mount/pam_mount-git.patch new file mode 100644 index 000000000..5890d83f3 --- /dev/null +++ b/community/pam_mount/pam_mount-git.patch @@ -0,0 +1,1345 @@ +diff -wbBurN pam_mount-2.13/configure.ac pam-mount/configure.ac +--- pam_mount-2.13/configure.ac 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/configure.ac 2012-10-11 15:28:24.848220631 +0400 +@@ -13,9 +13,10 @@ + AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_MACRO_DIR([m4]) + AC_PROG_INSTALL +-AM_INIT_AUTOMAKE([-Wall no-dist foreign subdir-objects]) ++AM_INIT_AUTOMAKE([-Wall foreign subdir-objects tar-pax no-dist-gzip dist-xz]) + AC_PROG_CC + AM_PROG_CC_C_O ++m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + AC_DISABLE_STATIC + AM_PROG_LIBTOOL + AC_PROG_LN_S +diff -wbBurN pam_mount-2.13/doc/changelog.txt pam-mount/doc/changelog.txt +--- pam_mount-2.13/doc/changelog.txt 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/doc/changelog.txt 2012-10-11 15:28:24.851553965 +0400 +@@ -3,6 +3,15 @@ + + HEAD + ==== ++Fixes: ++- fix "feature 1 already set to zero" ++- pmt-ehd: avoid miscalculating blockdev size obtained from BLKGETSIZE64 ++- pam_mount: give more verbose output on "unknown digest/cipher" ++- pam_mount: fix crash when an unknown digest/cipher was specified ++- pam_mount: correctly mkdir mountpoint if requested ++- pam_mount: only remove mountpoint if actually created ++Changes: ++- Complain louder when EUID is not 0 + + + v2.13 (2011-12-15) +diff -wbBurN pam_mount-2.13/doc/Makefile.am pam-mount/doc/Makefile.am +--- pam_mount-2.13/doc/Makefile.am 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/doc/Makefile.am 2012-10-11 15:28:24.848220631 +0400 +@@ -5,8 +5,9 @@ + pmvarrun.8 pmt-ehd.8 \ + umount.crypt.8 umount.crypt_LUKS.8 \ + umount.crypto_LUKS.8 +-dist_noinst_DATA = pam_mount.txt +-EXTRA_DIST = bugs.txt changelog.txt faq.txt install.txt options.txt todo.txt ++EXTRA_DIST = bugs.txt changelog.txt faq.txt install.txt options.txt todo.txt \ ++ pam_mount.8.in pam_mount.conf.5.in ++DISTCLEANFILES = pam_mount.txt + CLEANFILES = ${man_MANS} + + replcmd = perl -lpe 's/\@''PACKAGE\@/@PACKAGE@/g;s/\@''PACKAGE_VERSION\@/@PACKAGE_VERSION@/g;s/\@''PACKAGE_RELDATE\@/@PACKAGE_RELDATE@/g;' +diff -wbBurN pam_mount-2.13/doc/mount.crypt.8 pam-mount/doc/mount.crypt.8 +--- pam_mount-2.13/doc/mount.crypt.8 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/doc/mount.crypt.8 2012-10-11 15:28:24.851553965 +0400 +@@ -37,10 +37,6 @@ + Select the name for the crypto device (optional). This option is currently + only usable with dm-crypt systems. + .TP +-\fBdm\-timeout=\fP\fIseconds\fP +-Wait at most this many seconds for udev to create /dev/mapper/\fIname\fP after +-calling cryptsetup(8). The default value is 0 seconds. +-.TP + \fBfsck\fP + Run fsck on the container before mounting it. + .TP +diff -wbBurN pam_mount-2.13/doc/options.txt pam-mount/doc/options.txt +--- pam_mount-2.13/doc/options.txt 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/doc/options.txt 2012-10-11 15:28:24.851553965 +0400 +@@ -4,6 +4,11 @@ + + auth optional pam_mount.so debug + ++Options are to be separated by whitespace, hence specifying more than ++one is to look like: ++ ++ auth optional pam_mount.so debug disable_interactive ++ + + enable_pam_password (default) + disable_pam_password +diff -wbBurN pam_mount-2.13/doc/pam_mount.conf.5.in pam-mount/doc/pam_mount.conf.5.in +--- pam_mount-2.13/doc/pam_mount.conf.5.in 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/doc/pam_mount.conf.5.in 2012-10-11 15:28:24.851553965 +0400 +@@ -171,35 +171,33 @@ + processes and optionally wait before sending signals. + .TP + \fB\fP +-Individual users may define additional volumes (usually in +-~/.pam_mount.conf.xml) to mount if allowed by the master configuration file by +-the presence of the \fB\fP element. With it, users may mount and +-unmount any volumes they specify that they have ownership of (in case of +-local mounts) - the mount process is called \fBas +-superuser\fP. On some filesystem configurations this may be a security risk so +-user-defined volumes are not allowed by the default pam_mount.conf.xml +-distributed with pam_mount. Luserconfigs are parsed after any volumes from +-the global configuration file are mounted, so mounting home directories with a +-global config and then mounting further volumes from luserconfigs is possible. ++Individual users may define additional volumes in a file by the specified ++\fIname\fP relative to their home directory. The presence of \fB\fP ++in the master config file enables this feature. If turned on, users may mount ++and unmount any volumes they specify and that they have ownership of (in case ++of local mounts). The mount process is executed \fBas superuser\fP. This may ++have security implications, so this feature is disabled by default. ++Luserconfigs are parsed after any volumes from the global configuration file ++have been mounted, so that first mounting home directories with a global config ++and then mounting further volumes from luserconfigs is possible. + .TP + \fB\fP +-The elements determine which options may be specified in per\-user +-configuration files (see ). It does not apply to the master file. +-Specifying is forbidden and ignored in per\-user configs. +-It defaults to \fIallow="nosuid,nodev"\fP, and the default is cleared when the +-first tag is seen. All further are +-additive, though. ++The elements determine which options may be specified in ++in per-user configuration files (see ). It does not apply to the ++master file. Specifying is forbidden and ignored in per-user ++configs. The default allowed list consists of "\fInosuid,nodev\fP", and this ++default is cleared when the first allow="..." attribute is seen by the config ++parser. All further allow="..." are additive, though. + .TP + \fB\fP +-Any options listed in deny may not appear in the option list of per\-user +-mounts. (Does not apply to the master file.) ++Any options listed in deny may not appear in the option list of per-user ++mounts. The default deny list is empty. + .TP + \fB\fP +-All options listed in require must appear in the option list of per\-user +-mounts. (Does not apply to the master file.) +-It defaults to \fInosuid,nodev\fP, and the default is cleared when the +-first tag is seen. All further are +-additive, though. ++All options listed in require must appear in the option list of per-user ++mounts. The default require list consists of "\fInosuid,nodev\fP", and like ++allow="", is cleared when first encountered by the parser, and is otherwise ++additive. + .TP + \fB\fP\fIdirectories...\fP\fB\fP + The default for the PATH environmental variable is not consistent across +diff -wbBurN pam_mount-2.13/Makefile.am pam-mount/Makefile.am +--- pam_mount-2.13/Makefile.am 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/Makefile.am 2012-10-11 15:28:24.848220631 +0400 +@@ -24,14 +24,11 @@ + tar --use=${packer} -C ${tmpdir} -cf ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext} --owner=root --group=root ${PACKAGE_NAME}-${PACKAGE_VERSION}/; + rm -Rf ${tmpdir}; + +-dist-hook: +- tar --use=${packer} -cf ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext} --owner=root --group=root ${distdir} +- + DISTCHECK_CONFIGURE_FLAGS = \ + --with-ssbindir='$${abs_builddir}/ssbin' \ + --with-slibdir='$${abs_builddir}/slib' \ + --enable-la + + DISTCLEANFILES = ${PACKAGE_NAME}-${PACKAGE_VERSION}${packext} +-EXTRA_DIST = autogen.sh dist/pam_mount.spec LICENSE.GPL2 LICENSE.GPL3 \ ++EXTRA_DIST = LICENSE.GPL2 LICENSE.GPL3 \ + LICENSE.LGPL2 LICENSE.LGPL3 +diff -wbBurN pam_mount-2.13/src/cmt-internal.h pam-mount/src/cmt-internal.h +--- pam_mount-2.13/src/cmt-internal.h 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/cmt-internal.h 2012-10-11 15:28:24.851553965 +0400 +@@ -3,6 +3,7 @@ + + #include + #include ++#include "libcryptmount.h" + + /** + * struct ehd_mount - EHD mount info +@@ -12,6 +13,7 @@ + * @loop_device: loop device that was created, if any + * @crypto_name: crypto device that was created (basename only) + * @crypto_device: full path to the crypto device ++ * @mountpoint: assigned mountpoint + */ + struct ehd_mount_info { + char *container; +@@ -19,25 +21,36 @@ + char *loop_device; + hxmc_t *crypto_name; + hxmc_t *crypto_device; ++ hxmc_t *mountpoint; + }; + + /** + * struct ehd_mount_request - mapping and mount request for EHD + * @container: path to disk image ++ * @fstype: filesystem type ++ * @mount_opts: mount options for fs + * @mountpoint: where to mount the volume on + * @fs_cipher: cipher used for filesystem, if any. (cryptsetup name) + * @fs_hash: hash used for filesystem, if any. (cryptsetup name) + * @key_data: key material/password + * @key_size: size of key data, in bytes + * @trunc_keysize: extra cryptsetup instruction for truncation (in bytes) ++ * @loop_hook: hook function to run after loop device setup ++ * @crypto_hook: hook function to run after crypto device setup ++ * @hook_priv: user data +++ * @last_stage: stop after setup of given component + * @readonly: whether to create a readonly vfsmount ++ * @allow_discards: allow fs trim requests + */ + struct ehd_mount_request { +- char *container, *crypto_name, *mountpoint; ++ char *container, *crypto_name, *fstype, *mount_opts, *mountpoint; + char *fs_cipher, *fs_hash; + void *key_data; ++ ehd_hook_fn_t loop_hook, crypto_hook; ++ void *hook_priv; + unsigned int key_size, trunc_keysize; +- bool readonly; ++ enum ehd_mtreq_stage last_stage; ++ bool readonly, allow_discards; + }; + + struct ehd_crypto_ops { +diff -wbBurN pam_mount-2.13/src/crypto.c pam-mount/src/crypto.c +--- pam_mount-2.13/src/crypto.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/crypto.c 2012-10-11 15:28:24.851553965 +0400 +@@ -100,6 +100,9 @@ + case EHD_MTINFO_LOOPDEV: + *static_cast(const char **, ptr) = mt->loop_device; + break; ++ case EHD_MTINFO_LOWERDEV: ++ *static_cast(const char **, ptr) = mt->lower_device; ++ break; + default: + return 0; + } +@@ -129,6 +132,7 @@ + rq = calloc(1, sizeof(*rq)); + if (rq == NULL) + return NULL; ++ rq->last_stage = EHD_MTREQ_STAGE_MOUNT; + return rq; + } + +@@ -147,7 +151,7 @@ + { + va_list args; + const void *orig; +- void *nv; ++ void *nv = NULL; + + va_start(args, opt); + switch (opt) { +@@ -156,6 +160,8 @@ + case EHD_MTREQ_MOUNTPOINT: + case EHD_MTREQ_FS_CIPHER: + case EHD_MTREQ_FS_HASH: ++ case EHD_MTREQ_FSTYPE: ++ case EHD_MTREQ_MOUNT_OPTS: + orig = va_arg(args, const char *); + nv = HX_strdup(orig); + if (nv == NULL && orig != NULL) +@@ -178,6 +184,21 @@ + case EHD_MTREQ_READONLY: + rq->readonly = va_arg(args, unsigned int); + break; ++ case EHD_MTREQ_LOOP_HOOK: ++ rq->loop_hook = va_arg(args, ehd_hook_fn_t); ++ break; ++ case EHD_MTREQ_HOOK_PRIV: ++ rq->hook_priv = va_arg(args, void *); ++ break; ++ case EHD_MTREQ_CRYPTO_HOOK: ++ rq->crypto_hook = va_arg(args, ehd_hook_fn_t); ++ break; ++ case EHD_MTREQ_LAST_STAGE: ++ rq->last_stage = va_arg(args, enum ehd_mtreq_stage); ++ break; ++ case EHD_MTREQ_ALLOW_DISCARDS: ++ rq->allow_discards = va_arg(args, unsigned int); ++ break; + } + switch (opt) { + case EHD_MTREQ_CONTAINER: +@@ -200,6 +221,14 @@ + free(rq->fs_hash); + rq->fs_hash = nv; + break; ++ case EHD_MTREQ_FSTYPE: ++ free(rq->fstype); ++ rq->fstype = nv; ++ break; ++ case EHD_MTREQ_MOUNT_OPTS: ++ free(rq->mount_opts); ++ rq->mount_opts = nv; ++ break; + default: + break; + } +@@ -210,25 +239,52 @@ + return -errno; + } + ++static int ehd_wait_for_file(const char *path) ++{ ++ static const struct timespec delay = {0, 100000000}; ++ unsigned int retries = 50; ++ struct stat sb; ++ bool done = false; ++ int ret; ++ ++ /* Nicer way to do these wait loops? libudev? */ ++ while (retries-- > 0) { ++ ret = stat(path, &sb); ++ if (ret == 0) ++ break; ++ ret = -errno; ++ if (ret != -ENOENT) ++ return -errno; ++ if (!done) { ++ w4rn("Waiting for %s to appear\n", path); ++ done = true; ++ } ++ fprintf(stderr, "."); ++ nanosleep(&delay, NULL); ++ } ++ if (ret == -ENOENT) ++ w4rn("Device node %s was not created\n", path); ++ return (ret == 0) ? 1 : ret; ++} ++ + /** + * ehd_load - set up crypto device for an EHD container + * @req: parameters for setting up the mount + * @mt: EHD mount state + */ +-EXPORT_SYMBOL int ehd_load(const struct ehd_mount_request *req, ++EXPORT_SYMBOL int ehd_load(struct ehd_mount_request *req, + struct ehd_mount_info **mtp) + { + struct stat sb; + int saved_errno, ret; + struct ehd_mount_info *mt; + +- *mtp = mt = malloc(sizeof(*mt)); + if (stat(req->container, &sb) < 0) { + l0g("Could not stat %s: %s\n", req->container, strerror(errno)); + return -errno; + } + +- *mtp = mt = malloc(sizeof(*mt)); ++ *mtp = mt = calloc(1, sizeof(*mt)); + if (mt == NULL) + goto out_err; + if ((mt->container = HX_strdup(req->container)) == NULL) +@@ -252,7 +308,19 @@ + w4rn("Using %s\n", mt->loop_device); + mt->lower_device = mt->loop_device; + } ++ ++ ret = ehd_wait_for_file(mt->loop_device); ++ if (ret <= 0) ++ goto out_ser; ++ } ++ ++ if (req->loop_hook != NULL) { ++ ret = req->loop_hook(req, mt, req->hook_priv); ++ if (ret <= 0) ++ goto out_ser; + } ++ if (req->last_stage == EHD_MTREQ_STAGE_LOOP) ++ return 1; + + #ifdef HAVE_LIBCRYPTSETUP + ret = ehd_dmcrypt_ops.load(req, mt); +@@ -264,6 +332,18 @@ + if (ret <= 0) + goto out_ser; + ++ ret = ehd_wait_for_file(mt->crypto_device); ++ if (ret <= 0) ++ goto out_ser; ++ ++ if (req->crypto_hook != NULL) { ++ ret = req->crypto_hook(req, mt, req->hook_priv); ++ if (ret <= 0) ++ goto out_ser; ++ } ++ if (req->last_stage == EHD_MTREQ_STAGE_CRYPTO) ++ return 1; ++ + return ret; + + out_err: +@@ -294,6 +374,7 @@ + { + int ret, ret2; + ++ if (mt->crypto_device != NULL) { + #ifdef HAVE_LIBCRYPTSETUP + ret = ehd_dmcrypt_ops.unload(mt); + #elif defined(HAVE_DEV_CGDVAR_H) +@@ -301,6 +382,9 @@ + #else + ret = -EOPNOTSUPP; + #endif ++ } else { ++ ret = 1; ++ } + /* Try to free loop device even if cryptsetup remove failed */ + if (mt->loop_device != NULL) { + ret2 = ehd_loop_release(mt->loop_device); +@@ -445,7 +529,7 @@ + { + va_list args; + const void *orig; +- void *nv; ++ void *nv = NULL; + + va_start(args, opt); + switch (opt) { +diff -wbBurN pam_mount-2.13/src/crypto-dmc.c pam-mount/src/crypto-dmc.c +--- pam_mount-2.13/src/crypto-dmc.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/crypto-dmc.c 2012-10-11 15:28:24.851553965 +0400 +@@ -97,6 +97,14 @@ + } + if (req->readonly) + flags |= CRYPT_ACTIVATE_READONLY; ++ if (req->allow_discards) { ++#ifdef CRYPT_ACTIVATE_ALLOW_DISCARDS ++ flags |= CRYPT_ACTIVATE_ALLOW_DISCARDS; ++#else ++ fprintf(stderr, "CRYPT_ACTIVATE_ALLOW_DISCARDS requested, " ++ "but not provided by your libcryptsetup.\n"); ++#endif ++ } + + ret = crypt_load(cd, CRYPT_LUKS1, NULL); + if (ret == 0) { +diff -wbBurN pam_mount-2.13/src/ehd.c pam-mount/src/ehd.c +--- pam_mount-2.13/src/ehd.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/ehd.c 2012-10-11 15:28:24.851553965 +0400 +@@ -41,8 +41,6 @@ + /** + * @size: container size in bytes + * @path: store container at this path +- * @loop_dev: loop device in use (may be %NULL) +- * @device: pointer to either @path or @loop_dev as crypto demands + * @fstype: initialize container with this filesystem + * @cipher: cipher specification as understood by cryptsetup + * @keybits: block size, as understood by cryptsetup and the cipher +@@ -51,7 +49,7 @@ + */ + struct container_ctl { + unsigned long long size; +- char *path, *loop_dev, *device, *fstype, *cipher, *hash, *user; ++ char *path, *fstype, *cipher, *hash, *user; + unsigned int keybits, skip_random, uid; + bool blkdev; + }; +@@ -61,11 +59,12 @@ + * @force_level: number of "-f"s passed + * @interactive: if stdin is a tty + * @cont: container control substructure +- * @fskey: fskey control substructure ++ * @password: master key password + */ + struct ehd_ctl { + unsigned int force_level; + struct container_ctl cont; ++ const char *password; + bool interactive; + }; + +@@ -239,16 +238,23 @@ + return ret; + } + +-static bool ehd_mkfs(const struct ehd_ctl *pg, const hxmc_t *crypto_device) ++static bool ehd_mkfs(struct ehd_mount_request *rq, ++ struct ehd_mount_info *mtinfo, void *priv) + { ++ const struct ehd_ctl *pg = priv; + const struct container_ctl *cont = &pg->cont; ++ const char *crypto_device = NULL; ++ int ret; ++ ++ ehd_mtinfo_get(mtinfo, EHD_MTINFO_CRYPTODEV, &crypto_device); ++ if (!cont->skip_random) ++ ehd_xfer2(crypto_device, cont->size); + + hxmc_t *fsprog = HXmc_strinit("mkfs."); + HXmc_strcat(&fsprog, cont->fstype); + const char *const argv[] = {fsprog, crypto_device, NULL}; +- int ret; + +- fprintf(stderr, "-- Calling %s\n", fsprog); ++ fprintf(stderr, "-- Calling %s %s\n", fsprog, crypto_device); + if ((ret = HXproc_run_sync(argv, HXPROC_VERBOSE)) < 0 || ret != 0) + fprintf(stderr, "%s failed with run_sync status %d\n", + fsprog, ret); +@@ -273,24 +279,34 @@ + HX_strlcpy(cipher_mode, p, cm_size); + } + +-static int ehd_init_volume_luks(struct ehd_ctl *pg, const char *password) ++static int ehd_init_volume_luks(struct ehd_mount_request *rq, ++ struct ehd_mount_info *mtinfo, void *priv) + { + /* + * Pick what? WP specifies that XTS has a wider support range than + * ESSIV. But XTS is also double complexity due to the double key, + * without adding anything of value. + */ ++ struct ehd_ctl *pg = priv; + struct container_ctl *cont = &pg->cont; + char cipher[32], cipher_mode[32]; + struct crypt_params_luks1 format_params = {.hash = cont->hash}; + struct crypt_device *cd = NULL; ++ const char *lower_dev = NULL; + int ret; + ++ BUILD_BUG_ON(!__builtin_types_compatible_p( ++ __typeof__(&ehd_init_volume_luks), ehd_hook_fn_t)); ++ + ehd_parse_name(cont->cipher, cipher, sizeof(cipher), + cipher_mode, sizeof(cipher_mode)); +- ret = crypt_init(&cd, cont->device); ++ ret = ehd_mtinfo_get(mtinfo, EHD_MTINFO_LOWERDEV, &lower_dev); ++ if (ret <= 0 || lower_dev == NULL) ++ goto out; ++ ret = crypt_init(&cd, lower_dev); + if (ret < 0) { +- fprintf(stderr, "crypt_init: %s\n", strerror(-ret)); ++ fprintf(stderr, "crypt_init: %s: %s\n", ++ lower_dev, strerror(-ret)); + goto out; + } + ret = crypt_format(cd, CRYPT_LUKS1, cipher, cipher_mode, NULL, NULL, +@@ -300,7 +316,7 @@ + goto out2; + } + ret = crypt_keyslot_add_by_volume_key(cd, CRYPT_ANY_SLOT, NULL, 0, +- password, strlen(password)); ++ pg->password, strlen(pg->password)); + if (ret < 0) { + fprintf(stderr, "add_by_volume_key: %s\n", strerror(-ret)); + goto out2; +@@ -315,70 +331,53 @@ + /** + * ehd_init_volume - set up loop device association if necessary + */ +-static bool ehd_init_volume(struct ehd_ctl *pg, const char *password) ++static bool ehd_init_volume(struct ehd_ctl *pg) + { + struct container_ctl *cont = &pg->cont; + struct ehd_mount_info *mount_info; + struct ehd_mount_request *mount_request; +- bool f_ret = false; + int ret; + +- if (cont->blkdev) { +- cont->device = cont->path; +- } else { +- /* +- * Need manual setup of loop device here, since ehd_load +- * always does a crypt mount too, which we do not have yet. +- */ +- ret = ehd_loop_setup(cont->path, &cont->loop_dev, EHD_LOSETUP_RW); +- if (ret == 0) { +- fprintf(stderr, "loop_setup: error: no free loop " +- "devices\n"); +- return false; +- } else if (ret < 0) { +- fprintf(stderr, "loop_setup: error: %s\n", +- strerror(-ret)); +- return false; +- } +- cont->device = cont->loop_dev; +- } +- +- ehd_init_volume_luks(pg, password); +- ret = ehd_loop_release(cont->device); +- if (ret <= 0) +- fprintf(stderr, "loop_release: warning: %s\n", strerror(-ret)); +- + mount_request = ehd_mtreq_new(); + if (mount_request == NULL) + return -errno; + ret = ehd_mtreq_set(mount_request, EHD_MTREQ_CONTAINER, cont->path); + if (ret < 0) + goto out; +- ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_SIZE, strlen(password)); ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_SIZE, ++ strlen(pg->password)); + if (ret < 0) + goto out; +- ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_DATA, password); ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_KEY_DATA, pg->password); + if (ret < 0) + goto out; + ret = ehd_mtreq_set(mount_request, EHD_MTREQ_READONLY, EHD_LOSETUP_RW); + if (ret < 0) + goto out; ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_LOOP_HOOK, ++ ehd_init_volume_luks); ++ if (ret < 0) ++ goto out; ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_HOOK_PRIV, pg); ++ if (ret < 0) ++ goto out; ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_CRYPTO_HOOK, ehd_mkfs); ++ if (ret < 0) ++ goto out; ++ /* We don't need to mount it */ ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_LAST_STAGE, ++ EHD_MTREQ_STAGE_CRYPTO); ++ if (ret < 0) ++ goto out; + +- if (ehd_load(mount_request, &mount_info) > 0) { +- const char *crypto_device = NULL; +- ehd_mtinfo_get(mount_info, EHD_MTINFO_CRYPTODEV, &crypto_device); +- if (!cont->skip_random) +- ehd_xfer2(crypto_device, cont->size); +- f_ret = ehd_mkfs(pg, crypto_device); ++ ret = ehd_load(mount_request, &mount_info); ++ if (ret > 0) { + ret = ehd_unload(mount_info); +- /* If mkfs failed, use its code. */ + ehd_mtinfo_free(mount_info); +- if (f_ret) +- f_ret = ret > 0; + } + out: + ehd_mtreq_free(mount_request); +- return f_ret; ++ return ret > 0; + } + + static void ehd_final_printout(const struct ehd_ctl *pg) +@@ -463,16 +462,15 @@ + HX_getl(&tmp, stdin); + HX_chomp(tmp); + s = strtoul(tmp, NULL, 0); ++ s <<= 20; /* megabytes -> bytes */ + } while (*tmp == '\0' || s == 0); + cont->size = s; + } + +- if (strcmp(cont->fstype, "xfs") == 0 && cont->size < 16) ++ if (strcmp(cont->fstype, "xfs") == 0 && cont->size < 16*1048576) + fprintf(stderr, "Warning: XFS volumes need to be " + "at least 16 MB\n"); + +- cont->size <<= 20; /* megabytes -> bytes */ +- + if (cont->cipher == NULL) { + cont->cipher = HX_strdup(ehd_default_dmcipher); + if (cont->keybits == 0) +@@ -544,6 +542,7 @@ + HXOPT_ERR_SUCCESS) + return false; + ++ cont->size <<= 20; /* mb -> b */ + pg->interactive = isatty(fileno(stdin)); + return ehd_fill_options_container(pg); + } +@@ -574,8 +573,8 @@ + goto out; + } + +- ret = ehd_init_volume(pg, password != NULL ? password : "") ? +- EXIT_SUCCESS : EXIT_FAILURE; ++ pg->password = (password != NULL) ? password : ""; ++ ret = ehd_init_volume(pg) ? EXIT_SUCCESS : EXIT_FAILURE; + if (ret == EXIT_SUCCESS) + ehd_final_printout(pg); + +diff -wbBurN pam_mount-2.13/src/ismnt.c pam-mount/src/ismnt.c +--- pam_mount-2.13/src/ismnt.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/ismnt.c 1970-01-01 03:00:00.000000000 +0300 +@@ -1,45 +0,0 @@ +-/* +- * Internal diagnostic tool to debug pmt mtab.c +- * Copyright © Jan Engelhardt, 2009 +- * +- * This file is part of pam_mount; 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. +- */ +-#include +-#include +-#include +-#include +-#include +-#include "pam_mount.h" +- +-int main(int argc, const char **argv) +-{ +- int ret; +- +- ret = HX_init(); +- if (ret <= 0) { +- fprintf(stderr, "HX_init: %s\n", strerror(errno)); +- abort(); +- } +- +- if (argc < 3) { +- fprintf(stderr, "Usage: %s dev mountpoint\n", *argv); +- return EXIT_FAILURE; +- } +- +- ret = pmt_cmtab_mounted(argv[1], argv[2]); +- if (ret < 0) { +- fprintf(stderr, "%s\n", strerror(-ret)); +- ret = 2; +- } else if (ret == 0) { +- printf("Not mounted\n"); +- ret = EXIT_FAILURE; +- } else { +- printf("Mounted\n"); +- ret = EXIT_SUCCESS; +- } +- HX_exit(); +- return ret; +-} +diff -wbBurN pam_mount-2.13/src/libcryptmount.h pam-mount/src/libcryptmount.h +--- pam_mount-2.13/src/libcryptmount.h 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/libcryptmount.h 2012-10-11 15:28:24.851553965 +0400 +@@ -69,6 +69,13 @@ + EHD_MTREQ_TRUNC_KEYSIZE, + EHD_MTREQ_READONLY, + EHD_MTREQ_CRYPTONAME, ++ EHD_MTREQ_LOOP_HOOK, ++ EHD_MTREQ_HOOK_PRIV, ++ EHD_MTREQ_CRYPTO_HOOK, ++ EHD_MTREQ_LAST_STAGE, ++ EHD_MTREQ_FSTYPE, ++ EHD_MTREQ_MOUNT_OPTS, ++ EHD_MTREQ_ALLOW_DISCARDS, + }; + + enum ehd_mtinfo_opt { +@@ -76,11 +83,22 @@ + EHD_MTINFO_CRYPTONAME, + EHD_MTINFO_CRYPTODEV, + EHD_MTINFO_LOOPDEV, ++ EHD_MTINFO_LOWERDEV, ++}; ++ ++enum ehd_mtreq_stage { ++ EHD_MTREQ_STAGE_NONE, ++ EHD_MTREQ_STAGE_LOOP, ++ EHD_MTREQ_STAGE_CRYPTO, ++ EHD_MTREQ_STAGE_MOUNT, + }; + + struct ehd_mount_info; + struct ehd_mount_request; + ++typedef int (*ehd_hook_fn_t)(struct ehd_mount_request *, ++ struct ehd_mount_info *, void *); ++ + extern int cryptmount_init(void); + extern void cryptmount_exit(void); + +@@ -91,7 +109,7 @@ + extern int ehd_mtinfo_get(struct ehd_mount_info *, enum ehd_mtinfo_opt, void *); + extern void ehd_mtinfo_free(struct ehd_mount_info *); + +-extern int ehd_load(const struct ehd_mount_request *, struct ehd_mount_info **); ++extern int ehd_load(struct ehd_mount_request *, struct ehd_mount_info **); + extern int ehd_unload(struct ehd_mount_info *); + extern int ehd_is_luks(const char *, bool); + +diff -wbBurN pam_mount-2.13/src/Makefile.am pam-mount/src/Makefile.am +--- pam_mount-2.13/src/Makefile.am 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/Makefile.am 2012-10-11 15:28:24.851553965 +0400 +@@ -8,9 +8,11 @@ + moduledir = @PAM_MODDIR@ + module_LTLIBRARIES = pam_mount.la + sbin_PROGRAMS = pmvarrun ++if HAVE_LIBCRYPTSETUP + sbin_PROGRAMS += pmt-ehd ++endif + ssbin_PROGRAMS = mount.crypt +-noinst_PROGRAMS = autoloop ismnt ++noinst_PROGRAMS = autoloop + noinst_SCRIPTS = umount.crypt + + lib_LTLIBRARIES = libcryptmount.la +@@ -64,10 +66,6 @@ + autoloop_SOURCES = autoloop.c + autoloop_LDADD = libcryptmount.la ${libHX_LIBS} + +-ismnt_SOURCES = ismnt.c log.c +-ismnt_CFLAGS = ${AM_CFLAGS} +-ismnt_LDADD = libpmt_mtab.la +- + # + # mount helpers + # +@@ -75,7 +73,7 @@ + mount_crypt_LDADD = libcryptmount.la libpmt_mtab.la ${libHX_LIBS} + + pmt_ehd_SOURCES = ehd.c bdev.c misc.c spawn.c +-pmt_ehd_LDADD = libcryptmount.la ${libHX_LIBS} ++pmt_ehd_LDADD = libcryptmount.la ${libHX_LIBS} ${libcryptsetup_LIBS} + + # + # runtime helpers +@@ -83,10 +81,10 @@ + pmvarrun_SOURCES = pmvarrun.c + pmvarrun_LDADD = libcryptmount.la ${libHX_LIBS} + +-EXTRA_DIST = misc.h mount.h pam_mount.h readconfig.h spawn.h ++EXTRA_DIST = cmt-internal.h libcryptmount.h pam_mount.h libcryptmount.map + + umount.crypt${EXEEXT}: mount.crypt${EXEEXT} +- -${LN_S} $^ $@; ++ -${LN_S} -f $^ $@; + + if !KEEP_LA + install-data-hook: +diff -wbBurN pam_mount-2.13/src/misc.c pam-mount/src/misc.c +--- pam_mount-2.13/src/misc.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/misc.c 2012-10-11 15:28:24.851553965 +0400 +@@ -28,18 +28,6 @@ + struct HXbtree; + + /** +- * misc_dump_id - print user IDs +- */ +-void misc_dump_id(const char *where) +-{ +- w4rn("%s: (ruid/rgid=%u/%u, e=%u/%u)\n", where, +- static_cast(unsigned int, getuid()), +- static_cast(unsigned int, getgid()), +- static_cast(unsigned int, geteuid()), +- static_cast(unsigned int, getegid())); +-} +- +-/** + * pmt_fileop_exists - + * @file: file to check + * +@@ -47,7 +35,7 @@ + * non-zero if that was successful. Returns 0 for error. %errno will be set + * in case of error. + */ +-int pmt_fileop_exists(const char *file) ++bool pmt_fileop_exists(const char *file) + { + struct stat sb; + assert(file != NULL); +@@ -61,7 +49,7 @@ + * Check if a path is a regular file and return positive non-zero if that was + * successful. Returns 0 for error. %errno will be set in case of error. + */ +-int pmt_fileop_isreg(const char *path) ++bool pmt_fileop_isreg(const char *path) + { + struct stat sb; + +@@ -75,11 +63,10 @@ + * @user: user to check for + * @file: file to check + * +- * Checks whether @user owns @file. Returns positive non-zero if this is the +- * case, otherwise zero. If an error occurred, zero is returned and %errno +- * is set. (For the success case, %errno is undefined.) ++ * Checks whether @user owns @file. If an error occurred, false is returned and ++ * %errno is set. (For the success case, %errno is undefined.) + */ +-int pmt_fileop_owns(const char *user, const char *file) ++bool pmt_fileop_owns(const char *user, const char *file) + { + struct stat filestat; + struct passwd *userinfo; +@@ -90,12 +77,12 @@ + if ((userinfo = getpwnam(user)) == NULL) { + l0g("user %s could not be translated to UID\n", + user); +- return 0; ++ return false; + } + + if (stat(file, &filestat) != 0) { + w4rn("file %s could not be stat'ed\n", file); +- return 0; ++ return false; + } + + return filestat.st_uid == userinfo->pw_uid && +diff -wbBurN pam_mount-2.13/src/mount.c pam-mount/src/mount.c +--- pam_mount-2.13/src/mount.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/mount.c 2012-10-11 15:28:24.851553965 +0400 +@@ -295,6 +295,7 @@ + dtmp = HXmc_strinit(d); + if (dtmp == NULL || (!is_file && HXmc_strcat(&dtmp, "/") == NULL)) { + l0g("HXmc_strinit: %s\n", strerror(errno)); ++ HXmc_free(dtmp); + return false; + } + +@@ -350,6 +351,7 @@ + w4rn("chown %s -> %ld:%ld\n", dtmp, + static_cast(long, pe->pw_uid), + static_cast(long, pe->pw_gid)); ++ *last = '/'; + } + HXmc_free(dtmp); + +@@ -435,10 +437,11 @@ + ret = proc.p_exited && proc.p_status == 0; + + out: +- if (config->mkmntpoint && config->rmdir_mntpt && vpt->created_mntpt) ++ if (vpt->created_mntpt && config->rmdir_mntpt) + if (rmdir(vpt->mountpoint) < 0) + /* non-fatal, but warn */ +- w4rn("could not remove %s\n", vpt->mountpoint); ++ w4rn("could not remove %s: %s\n", vpt->mountpoint, ++ strerror(errno)); + return ret; + } + +@@ -577,9 +580,14 @@ + if (ret < 0) + goto out; + ret = ehd_keydec_run(dp, result); +- if (ret != EHD_KEYDEC_SUCCESS) +- l0g("ehd_keydec_run: %s\n", +- ehd_keydec_strerror(ret)); ++ if (ret == EHD_KEYDEC_NODIGEST) ++ l0g("ehd_keydec_run: %s: \"%s\"\n", ehd_keydec_strerror(ret), ++ vol->fs_key_hash); ++ else if (ret == EHD_KEYDEC_NOCIPHER) ++ l0g("ehd_keydec_run: %s: \"%s\"\n", ehd_keydec_strerror(ret), ++ vol->fs_key_cipher); ++ else if (ret != EHD_KEYDEC_SUCCESS) ++ l0g("ehd_keydec_run: %s\n", ehd_keydec_strerror(ret)); + out: + ehd_kdreq_free(dp); + return ret; +@@ -601,7 +609,7 @@ + struct HXdeque *argv; + struct HXproc proc; + const char *mount_user; +- hxmc_t *ll_password; ++ hxmc_t *ll_password = NULL; + int ret; + + assert(vinfo != NULL); +@@ -642,8 +650,11 @@ + * any openssl decryption. Without %CMD_CRYPTMOUNT however, + * we have to do this ourselves. + */ ++ w4rn("Not a crypto-type volume. Will decode OpenSSL key.\n"); + ret = pmt_decrypt_keyfile(vpt, password, &ll_password); + } else { ++ w4rn("This is a crypto-type volume. " ++ "Key decoding deferred to mount.crypt.\n"); + ll_password = HXmc_strinit(password); + } + if (ll_password == NULL) +@@ -698,7 +709,8 @@ + return 0; + } + +- if (!proc.p_exited || proc.p_status != 0) { ++ if ((!proc.p_exited || proc.p_status != 0) && ++ vpt->created_mntpt && config->rmdir_mntpt) { + /* + * Remove mountpoint if mount failed, to flag unavailability + * of service (e.g. when mntpt is the user's home directory). +diff -wbBurN pam_mount-2.13/src/mtab.c pam-mount/src/mtab.c +--- pam_mount-2.13/src/mtab.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/mtab.c 2012-10-11 15:28:24.851553965 +0400 +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include "cmt-internal.h" + #include "libcryptmount.h" + #include "pam_mount.h" + +@@ -191,28 +192,27 @@ + return ret; + } + +-int pmt_cmtab_add(const char *mountpoint, const char *container, +- const char *loop_device, const char *crypto_device) ++int pmt_cmtab_add(struct ehd_mount_info *mt) + { ++ const char *loop_device, *crypto_device; + hxmc_t *line; + int ret; + +- if (container == NULL) ++ if (mt->container == NULL) + return -EINVAL; +- if (loop_device == NULL) +- loop_device = "-"; +- if (crypto_device == NULL) +- crypto_device = "-"; ++ loop_device = (mt->loop_device == NULL) ? "-" : mt->loop_device; ++ crypto_device = (mt->crypto_device == NULL) ? "-" : mt->crypto_device; + + /* Preallocate just the normal size */ +- line = HXmc_meminit(NULL, strlen(mountpoint) + strlen(container) + +- strlen(loop_device) + strlen(crypto_device) + 5); ++ line = HXmc_meminit(NULL, strlen(mt->mountpoint) + ++ strlen(mt->container) + strlen(loop_device) + ++ strlen(crypto_device) + 5); + if (line == NULL) + return -errno; + +- mt_esccat(&line, mountpoint); ++ mt_esccat(&line, mt->mountpoint); + HXmc_strcat(&line, "\t"); +- mt_esccat(&line, container); ++ mt_esccat(&line, mt->container); + HXmc_strcat(&line, "\t"); + mt_esccat(&line, loop_device); + HXmc_strcat(&line, "\t"); +diff -wbBurN pam_mount-2.13/src/mtcrypt.c pam-mount/src/mtcrypt.c +--- pam_mount-2.13/src/mtcrypt.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/mtcrypt.c 2012-10-11 15:28:24.851553965 +0400 +@@ -44,6 +44,7 @@ + * @blkdev: true if @container is a block device + * @fsck: true if fsck should be performed + * @remount: issue a remount ++ * @allow_discards: allow fs trim requests + */ + struct mount_options { + hxmc_t *object, *container, *mountpoint; +@@ -53,11 +54,11 @@ + hxmc_t *fsk_password, *extra_opts, *crypto_device; + char *loop_device; + unsigned int no_update, readonly, trunc_keysize; +- int dm_timeout; + bool is_cont; + bool blkdev; + bool fsck; + bool remount; ++ bool allow_discards; + }; + + /** +@@ -120,9 +121,7 @@ + else if (ret < EHD_SECURITY_UNSPEC) + fprintf(stderr, "Hash \"%s\" is considered " + "insecure.\n", value); +- } else if (strcmp(key, "dm-timeout") == 0) +- mo->dm_timeout = strtoul(value, NULL, 0); +- else if (strcmp(key, "fstype") == 0) ++ } else if (strcmp(key, "fstype") == 0) + mo->fstype = value; + else if (strcmp(key, "keyfile") == 0) + mo->fsk_file = value; +@@ -165,6 +164,8 @@ + mo->readonly = EHD_LOSETUP_RO; + else if (strcmp(key, "rw") == 0) + mo->readonly = EHD_LOSETUP_RW; ++ else if (strcmp(key, "discard") == 0) ++ mo->allow_discards = true; + } + + if (*passthru != '\0') { +@@ -397,6 +398,26 @@ + return ret; + } + ++static int mtcr_fsck(struct ehd_mount_request *rq, ++ struct ehd_mount_info *mtinfo) ++{ ++ const char *const fsck_args[4] = ++ {"fsck", "-p", mtinfo->crypto_device, NULL}; ++ int ret; ++ ++ arglist_llog(fsck_args); ++ ret = HXproc_run_sync(fsck_args, HXPROC_VERBOSE); ++ /* ++ * Return codes higher than 1 indicate that manual intervention ++ * is required, therefore abort the mount/login. ++ * Lower than 0: internal error (e.g. fork). ++ */ ++ if (ret != 0 && ret != 1) ++ fprintf(stderr, "Automatic fsck failed, manual intervention " ++ "required, run_status/exit status %d\n", ret); ++ return ret == 0; ++} ++ + /** + * mtcr_mount + * +@@ -405,8 +426,6 @@ + static int mtcr_mount(struct mount_options *opt) + { + const char *mount_args[8]; +- const char *fsck_args[4]; +- struct stat sb; + hxmc_t *key = NULL; + int ret, argk; + struct ehd_mount_info *mount_info; +@@ -433,6 +452,10 @@ + ret = ehd_mtreq_set(mount_request, EHD_MTREQ_READONLY, opt->readonly); + if (ret < 0) + goto out_r; ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_ALLOW_DISCARDS, ++ opt->allow_discards); ++ if (ret < 0) ++ goto out_r; + /* Hack for CRYPT_PLAIN: default to 256 */ + trunc_keysize = 256 / CHAR_BIT; + ret = ehd_mtreq_set(mount_request, EHD_MTREQ_TRUNC_KEYSIZE, trunc_keysize); +@@ -482,6 +505,12 @@ + if (ret < 0) + goto out_r; + } ++ if (opt->fsck) { ++ ret = ehd_mtreq_set(mount_request, EHD_MTREQ_CRYPTO_HOOK, ++ mtcr_fsck); ++ if (ret < 0) ++ goto out_r; ++ } + + w4rn("keysize=%u trunc_keysize=%u\n", key_size, trunc_keysize); + if ((ret = ehd_load(mount_request, &mount_info)) < 0) { +@@ -490,44 +519,6 @@ + } else if (ret == 0) { + goto out_z; + } +- if (mount_info->crypto_device == NULL) { +- if (mtcr_debug) +- fprintf(stderr, "No crypto device assigned\n"); +- ehd_unload(mount_info); +- ehd_mtinfo_free(mount_info); +- goto out_z; +- } +- +- opt->dm_timeout *= 3; +- while (stat(mount_info->crypto_device, &sb) < 0 && errno == ENOENT && +- opt->dm_timeout-- > 0) +- usleep(333333); +- +- if (opt->fsck) { +- argk = 0; +- fsck_args[argk++] = "fsck"; +- fsck_args[argk++] = "-p"; +- fsck_args[argk++] = mount_info->crypto_device; +- fsck_args[argk] = NULL; +- assert(argk < ARRAY_SIZE(fsck_args)); +- +- arglist_llog(fsck_args); +- ret = HXproc_run_sync(fsck_args, HXPROC_VERBOSE); +- +- /* +- * Return codes higher than 1 indicate that manual intervention +- * is required, therefore abort the mount/login. +- * Lower than 0: internal error (e.g. fork). +- */ +- if (ret != 0 && ret != 1) { +- fprintf(stderr, "Automatic fsck failed, manual " +- "intervention required, run_sync status %d\n", +- ret); +- ehd_unload(mount_info); +- ehd_mtinfo_free(mount_info); +- goto out_z; +- } +- } + + /* candidate for replacement by some libmount calls, I guess. */ + argk = 0; +@@ -550,19 +541,24 @@ + fprintf(stderr, "mount failed with run_sync status %d\n", ret); + ehd_unload(mount_info); + ret = 0; +- } else if ((ret = pmt_cmtab_add(opt->mountpoint, +- mount_info->container, mount_info->loop_device, +- mount_info->crypto_device)) <= 0) { ++ goto out_i; ++ } ++ ret = HX_realpath(&mount_info->mountpoint, opt->mountpoint, ++ HX_REALPATH_DEFAULT | HX_REALPATH_ABSOLUTE); ++ if (ret <= 0) ++ goto out_i; ++ if ((ret = pmt_cmtab_add(mount_info)) <= 0) { + fprintf(stderr, "pmt_cmtab_add: %s\n", strerror(errno)); + /* ignore error on cmtab - let user have his crypto */ + } else if (opt->no_update) { + /* awesome logic */; + } else { +- pmt_smtab_add(mount_info->container, opt->mountpoint, ++ pmt_smtab_add(mount_info->container, mount_info->mountpoint, + "crypt", (opt->extra_opts != NULL) ? + opt->extra_opts : "defaults"); + } + ++ out_i: + ehd_mtinfo_free(mount_info); + return ret; + +diff -wbBurN pam_mount-2.13/src/pam_mount.c pam-mount/src/pam_mount.c +--- pam_mount-2.13/src/pam_mount.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/pam_mount.c 2012-10-11 15:28:24.851553965 +0400 +@@ -526,6 +526,20 @@ + return ret; + } + ++static void assert_root(void) ++{ ++ /* ++ * I know checking for 0 is rather unflexible, but it does - so far - ++ * account for all the bugreports involving insufficient permissions. ++ */ ++ if (geteuid() == 0) ++ return; ++ l0g("*** PAM_MOUNT WAS INVOKED WITH INSUFFICIENT PRIVILEGES. (euid=%ld)\n", ++ static_cast(long, geteuid())); ++ l0g("*** THIS IS A BUG OF THE CALLER. CONSULT YOUR DISTRO.\n"); ++ l0g("*** Also see bugs.txt in the pam_mount source tarball/website documentation.\n"); ++} ++ + /** + * pam_sm_open_session - + * @pamh: PAM handle +@@ -589,7 +603,7 @@ + /* There are some volumes, so grab a password. */ + system_authtok = ses_grab_authtok(pamh); + +- misc_dump_id("Session open"); ++ assert_root(); + envpath_init(Config.path); + ret = process_volumes(&Config, system_authtok); + +@@ -690,12 +704,12 @@ + l0g("libHX init failed: %s\n", strerror(errno)); + ret = PAM_SUCCESS; + w4rn("received order to close things\n"); ++ assert_root(); + if (Config.volume_list.items == 0) { + w4rn("No volumes to umount\n"); + goto out; + } + +- misc_dump_id("Session close"); + /* + * call pam_get_user() again because ssh calls PAM fns from seperate + * processes. +diff -wbBurN pam_mount-2.13/src/pam_mount.h pam-mount/src/pam_mount.h +--- pam_mount-2.13/src/pam_mount.h 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/pam_mount.h 2012-10-11 15:28:24.851553965 +0400 +@@ -156,10 +156,9 @@ + extern void kvplist_genocide(struct HXclist_head *); + extern hxmc_t *kvplist_to_str(const struct HXclist_head *); + extern void misc_add_ntdom(struct HXformat_map *, const char *); +-extern void misc_dump_id(const char *); +-extern int pmt_fileop_exists(const char *); +-extern int pmt_fileop_isreg(const char *); +-extern int pmt_fileop_owns(const char *, const char *); ++extern bool pmt_fileop_exists(const char *); ++extern bool pmt_fileop_isreg(const char *); ++extern bool pmt_fileop_owns(const char *, const char *); + extern char *relookup_user(const char *); + extern long str_to_long(const char *); + extern char *xstrdup(const char *); +@@ -187,13 +186,14 @@ + PMT_BY_CRYPTODEV = 1 << 1, + }; + ++struct ehd_mount_info; ++ + extern int pmt_smtab_add(const char *, const char *, + const char *, const char *); + extern int pmt_smtab_remove(const char *, enum smtab_field); + extern int pmt_smtab_mounted(const char *, const char *, + int (*)(const char *, const char *)); +-extern int pmt_cmtab_add(const char *, const char *, +- const char *, const char *); ++extern int pmt_cmtab_add(struct ehd_mount_info *); + extern int pmt_cmtab_get(const char *, enum cmtab_field, + char **, char **, char **, char **); + extern int pmt_cmtab_remove(const char *); +diff -wbBurN pam_mount-2.13/src/rdconf1.c pam-mount/src/rdconf1.c +--- pam_mount-2.13/src/rdconf1.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/rdconf1.c 2012-10-11 15:28:24.851553965 +0400 +@@ -340,6 +340,7 @@ + char options_require[] = "nosuid,nodev"; + + memset(config, 0, sizeof(*config)); ++ ehd_logctl(EHD_LOGFT_DEBUG, EHD_LOG_SET); + config->debug = true; + config->mkmntpoint = true; + +@@ -1355,6 +1356,10 @@ + } + + //----------------------------------------------------------------------------- ++/* ++ * This list has no linear relation to vpt->command. Instead, what is done: ++ * config->command[default_command[i].type] = ++ */ + static const struct pmt_command default_command[] = { + {CMD_SMBMOUNT, "smbfs", {"smbmount", "%(COMBOPATH)", "%(MNTPT)", "-o", "username=%(USER),uid=%(USERUID),gid=%(USERGID)%(if %(OPTIONS),\",%(OPTIONS)\")", NULL}}, + {CMD_SMBUMOUNT, "smbfs", {"smbumount", "%(MNTPT)", NULL}}, +@@ -1368,6 +1373,8 @@ + {CMD_NFSMOUNT, "nfs4"}, + {CMD_LCLMOUNT, NULL, {"mount", "-p0", "%(if %(OPTIONS),-o%(OPTIONS))", "-t%(FSTYPE)", "%(VOLUME)", "%(MNTPT)", NULL}}, + {CMD_CRYPTMOUNT, "crypt", {"mount", "-t", "crypt", "%(if %(CIPHER),-ocipher=%(CIPHER))", "%(if %(FSKEYCIPHER),-ofsk_cipher=%(FSKEYCIPHER))", "%(if %(FSKEYHASH),-ofsk_hash=%(FSKEYHASH))", "%(if %(FSKEYPATH),-okeyfile=%(FSKEYPATH))", "%(if %(OPTIONS),-o%(OPTIONS))", "%(VOLUME)", "%(MNTPT)", NULL}}, ++ {CMD_CRYPTMOUNT, "crypt_LUKS"}, ++ {CMD_CRYPTMOUNT, "crypto_LUKS"}, + {CMD_CRYPTUMOUNT, "crypt", {"umount.crypt", "%(MNTPT)", NULL}}, + {CMD_UMOUNT, NULL, {"umount", "%(MNTPT)", NULL}}, + {CMD_FSCK, NULL, {"fsck", "-p", "%(FSCKTARGET)", NULL}}, +diff -wbBurN pam_mount-2.13/src/spawn.c pam-mount/src/spawn.c +--- pam_mount-2.13/src/spawn.c 2011-12-15 16:12:10.000000000 +0400 ++++ pam-mount/src/spawn.c 2012-10-11 15:28:24.851553965 +0400 +@@ -6,10 +6,12 @@ + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + */ ++#include + #include + #include + #include + #include ++#include + #include + #include + #include +@@ -124,9 +126,8 @@ + if (chdir("/") < 0) + ; + if (user == NULL) { +- misc_dump_id("set_myuid
");
+ 		if (setuid(0) < 0) {
+-			l0g("error setting uid to 0\n");
++			l0g("error setting uid to 0: %s\n", strerror(errno));
+ 			return;
+ 		}
+ 	} else {
+@@ -151,7 +152,6 @@
+ 		setenv("HOME", real_user->pw_dir, 1);
+ 		setenv("USER", real_user->pw_name, 1);
+ 	}
+-	misc_dump_id("set_myuid");
+ }
+ 
+ const struct HXproc_ops pmt_dropprivs_ops = {
diff --git a/community/puzzles/PKGBUILD b/community/puzzles/PKGBUILD
index 45255c407..24cf8cd24 100644
--- a/community/puzzles/PKGBUILD
+++ b/community/puzzles/PKGBUILD
@@ -3,7 +3,7 @@
 # Maintainer: schuay 
 
 pkgname=puzzles
-pkgver=9660
+pkgver=9682
 pkgrel=1
 pkgdesc="Simon Tatham's Portable Puzzle Collection"
 arch=('i686' 'x86_64')
@@ -38,4 +38,4 @@ package() {
 	mv ${pkgdir}/usr/bin/blackbox ${pkgdir}/usr/bin/puzzles-blackbox
 }
 
-md5sums=('06f88f737158a1d7912b20010b75d1b1')
+md5sums=('2a592b4c43d24504be327367008807f7')
diff --git a/community/rsyslog/PKGBUILD b/community/rsyslog/PKGBUILD
index cf349549d..0a40f4aae 100644
--- a/community/rsyslog/PKGBUILD
+++ b/community/rsyslog/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 77466 2012-10-10 16:19:43Z spupykin $
+# $Id: PKGBUILD 77498 2012-10-11 11:39:59Z spupykin $
 # Maintainer: Sergej Pupykin 
 
 pkgname=rsyslog
 pkgver=6.4.2
-pkgrel=1
+pkgrel=2
 pkgdesc="An enhanced multi-threaded syslogd with a focus on security and reliability"
 url="http://www.rsyslog.com/"
 arch=('i686' 'x86_64')
@@ -25,7 +25,7 @@ source=("http://www.rsyslog.com/files/download/rsyslog/rsyslog-$pkgver.tar.gz"
 md5sums=('7de0124ec7d67ce2bfda0009ab1263ee'
          'a18bbcbb6ebdaa13a6ec6d9f3d9eb2da'
          '8065db4bef3061a4f000ba58779f6829'
-         '1a0cd4530dd5d1439456d5ae230574d9')
+         '18565f38a4445136446a31a3c95ffc3e')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/community/rsyslog/rsyslog.conf.d b/community/rsyslog/rsyslog.conf.d
index e39f8c3b9..fc0770666 100644
--- a/community/rsyslog/rsyslog.conf.d
+++ b/community/rsyslog/rsyslog.conf.d
@@ -3,4 +3,4 @@
 # This should almost certainly include at least the current compatability
 # level, e.g. -c4
 #
-RSYSLOGD_ARGS="-c4"
+RSYSLOGD_ARGS="-c6"
diff --git a/community/scummvm/PKGBUILD b/community/scummvm/PKGBUILD
new file mode 100644
index 000000000..7ac13cb3a
--- /dev/null
+++ b/community/scummvm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 160945 2012-06-07 12:04:14Z juergen $
+# Maintainer: juergen 
+# Contributor: Manolis Tzanidakis, Petter Gundersen
+
+pkgname=scummvm
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="A 'virtual machine' for several classic graphical point-and-click adventure games."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.scummvm.org/"
+depends=('libmad' 'sdl' 'fluidsynth' 'flac' 'faad2' 'libvorbis' 'libmad')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d71d1df5c8262556fedbe885972fbf6e')
+
+build() {
+  cd "${srcdir}"/${pkgname}-${pkgver}
+  ./configure --disable-debug \
+    --enable-release \
+    --prefix=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
+  install -Dm644 dists/${pkgname}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/warsow/PKGBUILD b/community/warsow/PKGBUILD
index 9a08f17a3..f44ddc603 100644
--- a/community/warsow/PKGBUILD
+++ b/community/warsow/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 74467 2012-07-29 03:46:52Z svenstaro $
+# $Id: PKGBUILD 77523 2012-10-11 13:44:25Z svenstaro $
 # Maintainer: Sven-Hendrik Haase 
 # Contributor: Slash 
 # Contributor: Babets
 # Contributor: Vain
 
 pkgname=warsow
-pkgver=1.0
+pkgver=1.01
 pkgrel=1
 pkgdesc="Free online multiplayer competitive FPS based on the Qfusion engine"
 url="http://www.warsow.net/"
@@ -15,13 +15,13 @@ depends=('curl' 'libjpeg' 'libvorbis' 'libxinerama' 'libxxf86dga' 'libxxf86vm' '
 makedepends=('mesa' 'openal' 'imagemagick' 'gendesk')
 optdepends=('openal: for openal audio support')
 source=('warsow.launcher' 'wsw-server.launcher' 'wswtv-server.launcher' \
-        "http://funpark.warsow-esport.net/~warsow/1.0/warsow_${pkgver}_sdk.tar.gz")
+        "http://wsw.null.so/warsow_${pkgver}_sdk.tar.gz")
 _genericname=('First person shooter')
 _comment=('Online Mulitiplayer Competitive FPS')
 md5sums=('ec00081d81ad9802a8ca42fc2eac5498'
          'f73e10c26197178df71b941b10bf83d7'
          'd7e4a69835bbcf801e58307e9d6b951e'
-         '35b9a8f530b51cda15c660b3a73f377e')
+         '9901ef17b4faf03d2b05e52ac3d189d5')
 
 build() {
   cd "$srcdir"
diff --git a/core/dnsutils/PKGBUILD b/core/dnsutils/PKGBUILD
index 72eeb78ec..03ae9a15a 100644
--- a/core/dnsutils/PKGBUILD
+++ b/core/dnsutils/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 166636 2012-09-13 23:21:14Z bisson $
+# $Id: PKGBUILD 168406 2012-10-11 06:22:42Z bisson $
 # Maintainer: Gaetan Bisson 
 # Contributor: kevin 
 # Contributor: mario 
 
 pkgname=dnsutils
-_pkgver=9.9.1-P3
+_pkgver=9.9.2
 pkgver=${_pkgver//-/.}
 pkgrel=1
 pkgdesc='DNS utilities: dig host nslookup'
@@ -15,8 +15,8 @@ options=('!makeflags')
 depends=('openssl' 'krb5' 'idnkit' 'dnssec-anchors')
 source=("http://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz"
         'remove-bind.patch')
-sha1sums=('1c890f69f627ffbc76460c766bafefde408ed799'
-          'b465ef6160b004838f04de9978fe1be8422af777')
+sha1sums=('eb9fa7b497d67ce61a120cb96c302381bc385324'
+          'bb13bd54134e4d787469be25461a3cc3f5cb57f4')
 
 replaces=('bind-tools' 'host')
 
diff --git a/core/dnsutils/remove-bind.patch b/core/dnsutils/remove-bind.patch
index 19d650964..8d4b49848 100644
--- a/core/dnsutils/remove-bind.patch
+++ b/core/dnsutils/remove-bind.patch
@@ -6,7 +6,7 @@ diff -aur old/bin/Makefile.in new/bin/Makefile.in
  top_srcdir =	@top_srcdir@
  
 -SUBDIRS =	named rndc dig dnssec tests tools nsupdate \
--		check confgen @PKCS11_TOOLS@
+-		check confgen @PYTHON_TOOLS@ @PKCS11_TOOLS@
 +SUBDIRS =	dig
  TARGETS =
  
diff --git a/extra/bluedevil/PKGBUILD b/extra/bluedevil/PKGBUILD
index d26d78b21..b8107fcaa 100644
--- a/extra/bluedevil/PKGBUILD
+++ b/extra/bluedevil/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 157804 2012-04-29 17:06:36Z andrea $
+# $Id: PKGBUILD 168408 2012-10-11 07:00:11Z andrea $
 # Maintainer: Andrea Scarpino 
 
 pkgname=bluedevil
-pkgver=1.2.3
+pkgver=1.2.4
 pkgrel=1
 pkgdesc='KDE bluetooth framework'
 arch=('i686' 'x86_64')
@@ -12,10 +12,9 @@ depends=('kdebase-workspace' 'libbluedevil' 'obex-data-server' 'obexd-client')
 makedepends=('cmake' 'automoc4')
 install="${pkgname}.install"
 source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('e792576d34956d27cd0c3eb3c81a5923')
+md5sums=('e0be81bb13a3aa90d521ab96347ed305')
 
 build(){
-  cd "${srcdir}"
   mkdir build
   cd build
   cmake ../${pkgname}-${pkgver} \
@@ -25,6 +24,6 @@ build(){
 }
 
 package() {
-  cd "${srcdir}"/build
+  cd build
   make DESTDIR="${pkgdir}" install
 }
diff --git a/extra/claws-mail/PKGBUILD b/extra/claws-mail/PKGBUILD
index c2dc3040a..da1602db0 100644
--- a/extra/claws-mail/PKGBUILD
+++ b/extra/claws-mail/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 162656 2012-06-27 15:37:01Z andyrtr $
+# $Id: PKGBUILD 168432 2012-10-11 16:05:02Z andyrtr $
 # Maintainer: Andreas Radke 
 
 pkgname=claws-mail
 pkgver=3.8.1
-pkgrel=1
+pkgrel=2
 pkgdesc="A GTK+ based e-mail client."
 arch=('i686' 'x86_64')
 license=('GPL3')
 url="http://www.claws-mail.org"
 depends=('gtk2' 'gnutls' 'startup-notification' 'pilot-link' 'enchant'
-         'gpgme' 'libetpan' 'libsm' 'db' 'dbus-glib' 'hicolor-icon-theme' 'desktop-file-utils')
+         'gpgme' 'libetpan>=1.1' 'libsm' 'db' 'dbus-glib' 'hicolor-icon-theme' 'desktop-file-utils')
 makedepends=('compface' 'spamassassin' 'bogofilter' 'valgrind')
 optdepends=('python2:           needed for some tools'
             'perl:              needed for some tools'
diff --git a/extra/ecasound/PKGBUILD b/extra/ecasound/PKGBUILD
index 04a9e1793..60b4b177b 100644
--- a/extra/ecasound/PKGBUILD
+++ b/extra/ecasound/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 150935 2012-02-24 01:43:21Z tdziedzic $
+# $Id: PKGBUILD 168410 2012-10-11 09:44:14Z schiv $
 # Maintainer: Ray Rashif 
 # Contributor: Eric Belanger 
 # Contributor: Tom Newsom 
 
 pkgname=ecasound
-pkgver=2.8.1
-pkgrel=3
+pkgver=2.9.0
+pkgrel=1
 pkgdesc="A software package designed for multitrack audio processing"
 arch=('i686' 'x86_64')
 url="http://www.eca.cx/ecasound/"
 license=('GPL' 'LGPL')
-depends=('gcc-libs' 'readline>=6.0.00' 'audiofile'
-         'jack' 'liblo' 'liboil')
-makedepends=('pkg-config' 'python2' 'ruby')
+depends=('audiofile' 'liblo'
+         'liboil' 'lilv')
+makedepends=('python2' 'ruby')
 optdepends=('python2: ecamonitor, ECI API'
             'ruby: ECI API'
             'mpg123: MP3 decoding'
@@ -24,7 +24,7 @@ optdepends=('python2: ecamonitor, ECI API'
             'libmikmod: tracker module')
 options=('!libtool')
 source=(http://ecasound.seul.org/download/$pkgname-$pkgver.tar.gz)
-md5sums=('d9ded0074a8eeb59dd507c248220d010')
+md5sums=('05e7d4664cdf4c7a138c098e9506a551')
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
diff --git a/extra/gparted/PKGBUILD b/extra/gparted/PKGBUILD
index 1709a553f..be00fc49c 100644
--- a/extra/gparted/PKGBUILD
+++ b/extra/gparted/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 165018 2012-08-08 23:33:07Z giovanni $
+# $Id: PKGBUILD 168428 2012-10-11 16:00:51Z giovanni $
 # Maintainer: Giovanni Scafora 
 # Contributor: Andrew Simmons 
 # Contributor: György Balló 
 
 pkgname=gparted
-pkgver=0.13.1
+pkgver=0.14.0
 pkgrel=1
 pkgdesc="A Partition Magic clone, frontend to GNU Parted"
 arch=('i686' 'x86_64')
@@ -24,7 +24,7 @@ optdepends=('dosfstools: for FAT16 and FAT32 partitions'
 install=gparted.install
 source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2"
         'org.archlinux.pkexec.gparted.policy')
-md5sums=('2c3f88fbdd0b43bfe4d843f6dc8063f2'
+md5sums=('fc3507479e930967a2049c533907384d'
          '27c264cfad8fa413d75954dda7a2dd50')
 
 build() {
diff --git a/extra/kdebindings-python/PKGBUILD b/extra/kdebindings-python/PKGBUILD
index 4ede68181..86373e429 100644
--- a/extra/kdebindings-python/PKGBUILD
+++ b/extra/kdebindings-python/PKGBUILD
@@ -1,31 +1,36 @@
-# $Id: PKGBUILD 167774 2012-10-03 14:39:54Z andrea $
+# $Id: PKGBUILD 168439 2012-10-11 21:49:14Z andrea $
 # Maintainer: Andrea Scarpino 
 
 pkgbase=kdebindings-python
 pkgname=('kdebindings-python'
          'kdebindings-python2')
 pkgver=4.9.2
-pkgrel=1
+pkgrel=2
 url='https://projects.kde.org/projects/kde/kdebindings/pykde4'
 arch=('i686' 'x86_64')
 license=('GPL' 'LGPL' 'FDL')
 groups=('kdebindings')
 makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'python2-pyqt'
              'pyqt' 'qscintilla' 'python2-sip' 'python-sip')
-source=("http://download.kde.org/stable/${pkgver}/src/pykde4-${pkgver}.tar.xz")
-sha1sums=('44b3f02797c43a59f8c3a91131a2488a733cfa11')
+source=("http://download.kde.org/stable/${pkgver}/src/pykde4-${pkgver}.tar.xz"
+        'pyqt495.patch')
+sha1sums=('44b3f02797c43a59f8c3a91131a2488a733cfa11'
+          '0935c32e55806873f2d088613594559285da7e9c')
 
 build() {
   export PYTHONDONTWRITEBYTECODE="TRUE"
 
-  cd "${srcdir}"
+  cd pykde4-${pkgver}
+  patch -p1 -i "${srcdir}"/pyqt495.patch
+  cd ../ 
+
   mkdir build
   cd build
   cmake ../pykde4-${pkgver} \
     -DCMAKE_BUILD_TYPE=Release \
     -DCMAKE_INSTALL_PREFIX=/usr \
-    -DPYTHON_EXECUTABLE=/usr/bin/python \
-    -DPYTHON_LIBRARY=/usr/lib/libpython3.2mu.so.1.0
+    -DPYTHON_EXECUTABLE=/usr/bin/python3 \
+    -DPYTHON_LIBRARY=/usr/lib/libpython3.3m.so.1.0
   make
   cd ..
 
diff --git a/extra/kdebindings-python/pyqt495.patch b/extra/kdebindings-python/pyqt495.patch
new file mode 100644
index 000000000..b8a9df258
--- /dev/null
+++ b/extra/kdebindings-python/pyqt495.patch
@@ -0,0 +1,95 @@
+From: Luca Beltrame 
+Date: Mon, 01 Oct 2012 18:47:56 +0000
+Subject: Remove duplicated QVector definition, since it's in PyQt now.
+X-Git-Url: http://quickgit.kde.org/?p=pykde4.git&a=commitdiff&h=017822bd0dfc83fe9a7a483ecc33f4aab839a3c6
+---
+Remove duplicated QVector definition, since it's in PyQt now.
+Simon, if you have time, please review if everything is OK.
+
+CCMAIL: simon@simonzone.com
+---
+
+
+--- a/sip/kdecore/typedefs.sip
++++ b/sip/kdecore/typedefs.sip
+@@ -951,78 +951,4 @@
+ %End
+ };
+ 
+-%MappedType QVector
+-{
+-%TypeHeaderCode
+-#include 
+-%End
+-
+-%ConvertFromTypeCode
+-    // Create the list.
+-    PyObject *l;
+-
+-    if ((l = PyList_New(sipCpp->size())) == NULL)
+-        return NULL;
+-
+-    // Set the list elements.
+-    for (int i = 0; i < sipCpp->size(); ++i)
+-    {
+-        int t = (sipCpp->at(i));
+-
+-#if PY_MAJOR_VERSION >= 3        
+-        PyObject *tobj = PyLong_FromLong(t);
+-#else
+-        PyObject *tobj = PyInt_FromLong(t);
+-#endif
+-
+-        PyList_SET_ITEM(l, i, tobj);
+-    }
+-
+-    return l;
+-%End
+-
+-%ConvertToTypeCode
+-    // Check the type if that is all that is required.
+-    if (sipIsErr == NULL)
+-    {
+-        if (!PyList_Check(sipPy))
+-            return 0;
+-
+-        for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) {
+-            PyObject *tobj = PyList_GET_ITEM(sipPy, i);
+-#if PY_MAJOR_VERSION >= 3
+-            if (!PyNumber_Check(tobj))
+-#else
+-            if (!PyInt_Check(tobj))
+-#endif
+-                return 0;
+-        }
+-        return 1;
+-    }
+-
+-    QVector *qv = new QVector;
+- 
+-    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+-    {
+-        PyObject *tobj = PyList_GET_ITEM(sipPy, i);
+- #if PY_MAJOR_VERSION >= 3
+-        int t = PyLong_AsLong (tobj);
+-#else
+-        int t = PyInt_AS_LONG (tobj);
+-#endif
+-
+-        if (*sipIsErr)
+-        {
+-            delete qv;
+-            return 0;
+-        }
+-
+-        qv->append(t);
+-    }
+- 
+-    *sipCppPtr = qv;
+- 
+-    return sipGetState(sipTransferObj);
+-%End
+-};
+-
++
+
diff --git a/extra/libetpan/PKGBUILD b/extra/libetpan/PKGBUILD
index eccaf4151..482123b31 100644
--- a/extra/libetpan/PKGBUILD
+++ b/extra/libetpan/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 146471 2012-01-11 15:22:10Z stephane $
+# $Id: PKGBUILD 168431 2012-10-11 16:04:57Z andyrtr $
 # Maintainer: Andreas Radke 
 
 pkgname=libetpan
-pkgver=1.0
-pkgrel=4
+pkgver=1.1
+pkgrel=1
 pkgdesc="A portable middleware for email access"
 arch=('i686' 'x86_64')
 url="http://www.etpan.org/"
@@ -11,7 +11,7 @@ license=("custom:etpan")
 depends=('db>=5.3.15' 'libsasl>=2.1.23' 'curl>=7.23.1' 'expat>=2.0.1-1')
 options=('!libtool')
 source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('5addc766141a0b1d29ee1ca4ba1b6808')
+md5sums=('6fee60d08506e941642b8fa087e60b07')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/extra/mtdev/PKGBUILD b/extra/mtdev/PKGBUILD
index 7e49b6371..50bf1642f 100644
--- a/extra/mtdev/PKGBUILD
+++ b/extra/mtdev/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 153465 2012-03-14 17:58:06Z andyrtr $
+# $Id: PKGBUILD 168434 2012-10-11 16:11:43Z andyrtr $
 # Maintainer: AndyRTR 
 # Contributor: SpepS 
 
 pkgname=mtdev
-pkgver=1.1.2
+pkgver=1.1.3
 pkgrel=1
 pkgdesc="A stand-alone library which transforms all variants of kernel MT events to the slotted type B protocol"
 arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ license=('custom:MIT')
 depends=('glibc')
 options=('!libtool')
 source=("$url$pkgname-$pkgver.tar.bz2")
-md5sums=('d9c7700918fc392e29da7477ae20c5c2')
+md5sums=('8a236569ad3dd79eaeed45f1935359be')
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
@@ -20,6 +20,11 @@ build() {
   make
 }
 
+check() {
+  cd "$srcdir/$pkgname-$pkgver"
+  make -k check
+}
+
 package() {
   cd "$srcdir/$pkgname-$pkgver"
   make DESTDIR="$pkgdir/" install
diff --git a/extra/xterm/PKGBUILD b/extra/xterm/PKGBUILD
index 3c06380ef..a5dc6dcd1 100644
--- a/extra/xterm/PKGBUILD
+++ b/extra/xterm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 167270 2012-09-29 15:04:11Z andyrtr $
+# $Id: PKGBUILD 168424 2012-10-11 15:38:51Z andyrtr $
 # Maintainer: Jan de Groot 
 # Contributor: Alexander Baldeck 
 
 pkgname=xterm
-pkgver=282
+pkgver=283
 pkgrel=1
 pkgdesc="X Terminal Emulator"
 arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ license=('custom')
 depends=('libxft' 'libxaw' 'ncurses' 'xorg-luit' 'xbitmaps')
 source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz
         LICENSE)
-md5sums=('eeac090c7e56ea573f7691d382a59968'
+md5sums=('678fb45f749216b11d57c4ffc935df65'
          '10ecc3f8ee91e3189863a172f68282d2')
 
 build() {
diff --git a/gnome-unstable/pidgin/PKGBUILD b/gnome-unstable/pidgin/PKGBUILD
new file mode 100644
index 000000000..cc41d66a4
--- /dev/null
+++ b/gnome-unstable/pidgin/PKGBUILD
@@ -0,0 +1,100 @@
+# $Id: PKGBUILD 168421 2012-10-11 15:28:56Z foutrelis $
+# Maintainer: Evangelos Foutras 
+# Contributor: Ionut Biru 
+# Contributor: Andrea Scarpino 
+# Contributor: Alexander Fehr 
+# Contributor: Lucien Immink 
+
+pkgname=('pidgin' 'libpurple' 'finch')
+pkgver=2.10.6
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://pidgin.im/"
+license=('GPL')
+makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
+             'libidn' 'python2' 'hicolor-icon-theme' 'gstreamer0.10' 'avahi'
+             'tk' 'ca-certificates' 'intltool'
+             'networkmanager')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+sha256sums=('3e25a633b97cbfa8326999a30282e7a662a9b9bbf2853be84af0b8fb60392c96')
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # Use Python 2
+  sed -i 's/env python$/&2/' */plugins/*.py \
+    libpurple/purple-{remote,notifications-example,url-handler}
+
+  ./configure \
+    --prefix=/usr \
+    --sysconfdir=/etc \
+    --disable-schemas-install \
+    --disable-meanwhile \
+    --disable-gnutls \
+    --enable-cyrus-sasl \
+    --disable-doxygen \
+    --enable-nm \
+    --disable-vv \
+    --with-python=/usr/bin/python2 \
+    --with-system-ssl-certs=/etc/ssl/certs
+    make
+}
+
+package_pidgin(){
+  pkgdesc="Multi-protocol instant messaging client"
+  depends=('libpurple' 'startup-notification' 'gtkspell' 'libxss' 'libsm'
+           'hicolor-icon-theme')
+  optdepends=('aspell: for spelling correction')
+  install=pidgin.install
+
+  cd "$srcdir/pidgin-$pkgver"
+
+  # For linking
+  make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
+
+  make -C pidgin DESTDIR="$pkgdir" install
+  make -C doc DESTDIR="$pkgdir" install
+
+  # Remove files that are packaged in libpurle
+  make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
+
+  install -Dm644 pidgin.desktop "$pkgdir"/usr/share/applications/pidgin.desktop
+
+  rm "$pkgdir/usr/share/man/man1/finch.1"
+}
+
+package_libpurple(){
+  pkgdesc="IM library extracted from Pidgin"
+  depends=('gstreamer0.10' 'libsasl' 'libidn' 'dbus-glib' 'nss')
+  optdepends=('avahi: Bonjour protocol support'
+              'ca-certificates: SSL CA certificates'
+              'python2-dbus: for purple-remote and purple-url-handler'
+              'tk: Tcl/Tk scripting support')
+
+  cd "$srcdir/pidgin-$pkgver"
+
+  for _dir in libpurple share/sounds share/ca-certs m4macros po; do
+    make -C "$_dir" DESTDIR="$pkgdir" install
+  done
+}
+
+package_finch(){
+  pkgdesc="A ncurses-based messaging client"
+  depends=("libpurple=$pkgver-$pkgrel" 'libx11' 'python2')
+
+  cd "$srcdir/pidgin-$pkgver"
+
+  # For linking
+  make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
+
+  make -C finch DESTDIR="$pkgdir" install
+  make -C doc DESTDIR="$pkgdir" install
+
+  # Remove files that are packaged in libpurle
+  make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
+
+  rm "$pkgdir"/usr/share/man/man1/pidgin.1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/pidgin/pidgin.install b/gnome-unstable/pidgin/pidgin.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/gnome-unstable/pidgin/pidgin.install
@@ -0,0 +1,11 @@
+post_install() {
+  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  post_install
+}
diff --git a/libre/blender-libre/PKGBUILD b/libre/blender-libre/PKGBUILD
index 6e3228359..f7005d739 100644
--- a/libre/blender-libre/PKGBUILD
+++ b/libre/blender-libre/PKGBUILD
@@ -3,8 +3,8 @@
 
 _pkgname=blender
 pkgname=blender-libre
-pkgver=2.63a
-pkgrel=5
+pkgver=2.64
+pkgrel=1
 pkgdesc="A fully integrated 3D graphics creation suite (without nonfree cuda-toolkit support)"
 arch=('i686' 'x86_64' 'mips64el')
 license=('GPL')
@@ -21,17 +21,17 @@ install=${_pkgname}.install
 source=(http://download.${_pkgname}.org/source/${_pkgname}-${pkgver}.tar.gz
         ffmpeg-0.11.patch
         boost-1.50.patch)
-md5sums=('31a60b3ce5466d965cb7e2648995e092'
+md5sums=('caec080d2a3dcd57fe1ca20c51c00e53'
          '9e5649403e51654615d30b10bc460217'
          '0bab80da07d980c47b8ce3cb998edaef')
 
 build() {
   cd "${srcdir}/${_pkgname}-${pkgver}"
 
-  patch -Np1 < "${srcdir}"/ffmpeg-0.11.patch
-  patch -Np1 < "${srcdir}"/boost-1.50.patch
-  sed -i "//d" intern/ffmpeg/ffmpeg_compat.h
-  sed -i "//d" source/blender/blenkernel/intern/writeffmpeg.c
+  #patch -Np1 < "${srcdir}"/ffmpeg-0.11.patch
+  #patch -Np1 < "${srcdir}"/boost-1.50.patch
+  #sed -i "//d" intern/ffmpeg/ffmpeg_compat.h
+  #sed -i "//d" source/blender/blenkernel/intern/writeffmpeg.c
 
   mkdir build
   cd build
diff --git a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
index 240c3d4e8..a5fe02165 100644
--- a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
+++ b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
@@ -139,7 +139,7 @@ index 21cf405..f3c1a6b 100644
  
  
 diff --git a/browser/locales/en-US/chrome/browser/migration/migration.properties b/browser/locales/en-US/chrome/browser/migration/migration.properties
-index ab82d85..915f6b8 100644
+index 260bc29..52b32cc 100644
 --- a/browser/locales/en-US/chrome/browser/migration/migration.properties
 +++ b/browser/locales/en-US/chrome/browser/migration/migration.properties
 @@ -8,7 +8,6 @@ profileName_format=%S %S
@@ -150,7 +150,7 @@ index ab82d85..915f6b8 100644
  
  importedBookmarksFolder=From %S
  
-@@ -22,22 +21,22 @@ importedSafariReadingList=Reading List (From Safari)
+@@ -24,22 +23,22 @@ importedSafariReadingList=Reading List (From Safari)
  2_ie=Cookies
  2_safari=Cookies
  2_chrome=Cookies
@@ -177,25 +177,25 @@ index ab82d85..915f6b8 100644
  
  32_ie=Favorites
  32_safari=Bookmarks
-@@ -46,4 +45,4 @@ importedSafariReadingList=Reading List (From Safari)
+@@ -48,4 +47,4 @@ importedSafariReadingList=Reading List (From Safari)
  64_ie=Other Data
  64_safari=Other Data
  64_chrome=Other Data
 -64_firefox=Bookmarks Backups
 +64_self=Bookmarks Backups
 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
-index 697b217..b6e1709 100644
+index 339ffda..6999b26 100644
 --- a/toolkit/content/jar.mn
 +++ b/toolkit/content/jar.mn
 @@ -38,7 +38,7 @@ toolkit.jar:
  +  content/global/mozilla.xhtml               (mozilla.xhtml)
- *+ content/global/nsDragAndDrop.js            (nsDragAndDrop.js)
+    content/global/nsDragAndDrop.js            (nsDragAndDrop.js)
     content/global/resetProfile.css            (resetProfile.css)
 -*  content/global/resetProfile.js             (resetProfile.js)
 +   content/global/resetProfile.js             (resetProfile.js)
- *  content/global/resetProfile.xul            (resetProfile.xul)
- *  content/global/resetProfileProgress.xul    (resetProfileProgress.xul)
- *  content/global/treeUtils.js                (treeUtils.js)
+    content/global/resetProfile.xul            (resetProfile.xul)
+    content/global/resetProfileProgress.xul    (resetProfileProgress.xul)
+    content/global/treeUtils.js                (treeUtils.js)
 diff --git a/toolkit/content/resetProfile.js b/toolkit/content/resetProfile.js
 index dcb4065..09c1146 100644
 --- a/toolkit/content/resetProfile.js
@@ -267,10 +267,10 @@ index f35c227..7062886 100644
  
  %{C++
 diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
-index e5d3042..6de3390 100644
+index 60348b5..c240c4f 100644
 --- a/toolkit/xre/nsAppRunner.cpp
 +++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3650,7 +3650,7 @@ XREMain::XRE_mainRun()
+@@ -3651,7 +3651,7 @@ XREMain::XRE_mainRun()
          if (gDoProfileReset) {
            // Automatically migrate from the current application if we just
            // reset the profile.
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 8eb6ef769..4e177229c 100644
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -14,7 +14,7 @@ _pgo=false
 
 # We're getting this from Debian Experimental
 _debname=iceweasel
-_debver=15.0.1
+_debver=16.0.1
 _debrel=1
 _debrepo=http://ftp.debian.org/debian/pool/main/
 debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -52,16 +52,16 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
         vendor.js
         shared-libs.patch
         Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch)
-md5sums=('0936242388cd4c75930c1d2487e15216'
-         'ce37c76476b8edf40780d00cf79d0d62'
+md5sums=('33e50f7ddfa7274e5a3bd393c37fb3b3'
+         'ddfcf225ea0e3d7b4b377f4a63d5e8c4'
          'eab149c1994ab14392e55af3abb08e80'
          'ac29b01c189f20abae2f3eef1618ffc0'
          'a485a2b5dc544a8a2bd40c985d2e5813'
-         '6d8816d2577263556d76f1aa4527b55b'
-         'e529742c0a425648087bc3ce537fe4c5'
+         '8768dfc39e9f1057c2956bf4405ae58e'
+         'cc5c68c8851eeed694e7e933779a0f16'
          '0d053487907de4376d67d8f499c5502b'
          '52e52f840a49eb1d14be1c0065b03a93'
-         'c52fac65c1e06290a5108b75c31ace79')
+         '0a31239f1008038df5057982fe745dec')
 
 if [ "$_pkgname" != "$pkgname" ]; then
   provides+=("$_pkgname=$pkgver")
diff --git a/libre/iceweasel-libre/iceweasel-install-dir.patch b/libre/iceweasel-libre/iceweasel-install-dir.patch
index f80a3eca9..e9ca4aa38 100644
--- a/libre/iceweasel-libre/iceweasel-install-dir.patch
+++ b/libre/iceweasel-libre/iceweasel-install-dir.patch
@@ -1,28 +1,30 @@
-diff -Nur iceweasel-9.0.1.orig/config/autoconf.mk.in iceweasel-9.0.1/config/autoconf.mk.in
---- iceweasel-9.0.1.orig/config/autoconf.mk.in	2011-12-31 17:07:52.000000000 -0500
-+++ iceweasel-9.0.1/config/autoconf.mk.in	2011-12-31 17:11:18.000000000 -0500
-@@ -68,8 +68,8 @@
- mandir		= @mandir@
- idldir		= $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_BASE_VERSION)
+diff -Nur iceweasel-16.0.1.orig/config/baseconfig.mk iceweasel-16.0.1/config/baseconfig.mk
+--- iceweasel-16.0.1.orig/config/baseconfig.mk	2012-10-10 19:42:45.000000000 -0200
++++ iceweasel-16.0.1/config/baseconfig.mk	2012-10-12 05:07:39.393233306 -0200
+@@ -1,9 +1,9 @@
+ INCLUDED_AUTOCONF_MK = 1
  
--installdir	= $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_BASE_VERSION)
--sdkdir		= $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_BASE_VERSION)
-+installdir	= $(libdir)/$(MOZ_APP_NAME)
-+sdkdir		= $(libdir)/$(MOZ_APP_NAME)-devel
+-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
++includedir := $(includedir)/$(MOZ_APP_NAME)
++idldir = $(datadir)/idl/$(MOZ_APP_NAME)
++installdir = $(libdir)/$(MOZ_APP_NAME)
++sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
+ DIST = $(DEPTH)/dist
  
- DIST		= $(DEPTH)/dist
- LIBXUL_SDK      = @LIBXUL_SDK@
-diff -Nur iceweasel-9.0.1.orig/js/src/config/autoconf.mk.in iceweasel-9.0.1/js/src/config/autoconf.mk.in
---- iceweasel-9.0.1.orig/js/src/config/autoconf.mk.in	2011-12-20 18:28:21.000000000 -0500
-+++ iceweasel-9.0.1/js/src/config/autoconf.mk.in	2011-12-31 17:11:43.000000000 -0500
-@@ -60,8 +60,8 @@
- datadir		= @datadir@
- mandir		= @mandir@
+ # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't
+diff -Nur iceweasel-16.0.1.orig/js/src/config/baseconfig.mk iceweasel-16.0.1/js/src/config/baseconfig.mk
+--- iceweasel-16.0.1.orig/js/src/config/baseconfig.mk	2012-10-10 19:43:05.000000000 -0200
++++ iceweasel-16.0.1/js/src/config/baseconfig.mk	2012-10-12 05:08:23.064066227 -0200
+@@ -1,7 +1,7 @@
+ INCLUDED_AUTOCONF_MK = 1
  
--installdir	= $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir		= $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir	= $(libdir)/$(MOZ_APP_NAME)
-+sdkdir		= $(libdir)/$(MOZ_APP_NAME)-devel
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
++installdir = $(libdir)/$(MOZ_APP_NAME)
++sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
  
- TOP_DIST	= @TOP_DIST@
  ifneq (,$(filter /%,$(TOP_DIST)))
+ DIST = $(TOP_DIST)
diff --git a/libre/iceweasel-libre/libre.patch b/libre/iceweasel-libre/libre.patch
index 9ffaf3a9a..7e7b7290f 100644
--- a/libre/iceweasel-libre/libre.patch
+++ b/libre/iceweasel-libre/libre.patch
@@ -1,7 +1,7 @@
-diff -urN iceweasel-13.0.orig/browser/app/profile/firefox.js iceweasel-13.0/browser/app/profile/firefox.js
---- mozilla-build.orig/browser/app/profile/firefox.js	2012-06-01 09:03:47.000000000 -0300
-+++ mozilla-build/browser/app/profile/firefox.js	2012-06-05 19:53:08.847012282 -0300
-@@ -64,11 +64,11 @@
+diff -urN iceweasel-16.0.orig/browser/app/profile/firefox.js iceweasel-16.0/browser/app/profile/firefox.js
+--- iceweasel-16.0.orig/browser/app/profile/firefox.js	2012-10-05 20:01:58.000000000 -0300
++++ iceweasel-16.0/browser/app/profile/firefox.js	2012-10-11 17:19:44.984225170 -0200
+@@ -37,11 +37,11 @@
  // Preferences for AMO integration
  pref("extensions.getAddons.cache.enabled", true);
  pref("extensions.getAddons.maxResults", 15);
@@ -18,16 +18,7 @@ diff -urN iceweasel-13.0.orig/browser/app/profile/firefox.js iceweasel-13.0/brow
  
  // Blocklist preferences
  pref("extensions.blocklist.enabled", true);
-@@ -92,7 +92,7 @@
- pref("extensions.autoDisableScopes", 15);
- 
- // Dictionary download preference
--pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
-+pref("browser.dictionaries.download.url", "about:blank");
- 
- // The minimum delay in seconds for the timer to fire.
- // default=2 minutes
-@@ -218,7 +218,7 @@
+@@ -194,7 +194,7 @@
  pref("extensions.update.interval", 86400);  // Check for updates to Extensions and 
                                              // Themes every day
  // Non-symmetric (not shared by extensions) extension-specific [update] preferences
@@ -36,25 +27,16 @@ diff -urN iceweasel-13.0.orig/browser/app/profile/firefox.js iceweasel-13.0/brow
  pref("extensions.dss.enabled", false);          // Dynamic Skin Switching                                               
  pref("extensions.dss.switchPending", false);    // Non-dynamic switch pending after next
                                                  // restart.
-@@ -252,7 +252,7 @@
- // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session
- // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore
- pref("browser.startup.page",                1);
--pref("browser.startup.homepage",            "chrome://branding/locale/browserconfig.properties");
-+pref("browser.startup.homepage",            "about:home");
- 
- // This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into
- // this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream
-@@ -345,7 +345,7 @@
- pref("browser.download.manager.resumeOnWakeDelay", 10000);
+@@ -327,7 +327,7 @@
+ pref("browser.download.panel.removeFinishedDownloads", false);
  
  // search engines URL
 -pref("browser.search.searchEnginesURL",      "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/");
-+pref("browser.search.searchEnginesURL",      "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("browser.search.searchEnginesURL",      "http://www.gnu.org/software/gnuzilla/addons.html#search%20engines");
  
  // pointer to the default engine name
  pref("browser.search.defaultenginename",      "chrome://browser-region/locale/region.properties");
-@@ -593,7 +593,7 @@
+@@ -584,7 +584,7 @@
  pref("accessibility.typeaheadfind.flashBar", 1);
  
  // plugin finder service url
diff --git a/libre/parabola-keyring/PKGBUILD b/libre/parabola-keyring/PKGBUILD
index 7a95abd0b..9d77543ce 100644
--- a/libre/parabola-keyring/PKGBUILD
+++ b/libre/parabola-keyring/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: André Silva 
 
 pkgname=parabola-keyring
-pkgver=20120816
+pkgver=20121012
 pkgrel=1
 pkgdesc='Parabola GNU/Linux-libre PGP keyring'
 arch=('any')
@@ -16,5 +16,5 @@ package() {
 	cd "${srcdir}/${pkgname}-${pkgver}"
 	make PREFIX=/usr DESTDIR=${pkgdir} install
 }
-md5sums=('4163ebfce3ccc32e2398e18c19158fc1'
-         'b4b1b532657eb754ef2e9f7cf4d0a09a')
+md5sums=('386550a6b179ebd158bc7469362bf0b8'
+         '4794d17dd40d51069eca315c2243528b')
diff --git a/multilib/lib32-libtasn1/PKGBUILD b/multilib/lib32-libtasn1/PKGBUILD
index 5e5d04580..0020a2816 100644
--- a/multilib/lib32-libtasn1/PKGBUILD
+++ b/multilib/lib32-libtasn1/PKGBUILD
@@ -3,8 +3,8 @@
 
 _pkgbase=libtasn1
 pkgname=lib32-${_pkgbase}
-pkgver=2.13
-pkgrel=2
+pkgver=2.14
+pkgrel=1
 pkgdesc="The ASN.1 library used in GNUTLS (32 bit)"
 arch=('x86_64')
 license=('GPL3' 'LGPL')
@@ -13,7 +13,7 @@ depends=('lib32-glibc' ${_pkgbase})
 makedepends=('gcc-multilib')
 options=('!libtool')
 source=("http://ftp.gnu.org/gnu/libtasn1/${_pkgbase}-${pkgver}.tar.gz")
-sha1sums=('89120584bfedd244dab92df99e955a174c481851')
+sha1sums=('22f9e0b15f870c8e03ac9cc1ead969d4d84eb931')
 
 build() {
   export CC='gcc -m32'
diff --git a/testing/curl/PKGBUILD b/testing/curl/PKGBUILD
index 218b910f8..8b6373338 100644
--- a/testing/curl/PKGBUILD
+++ b/testing/curl/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 164228 2012-07-27 22:56:01Z dreisner $
+# $Id: PKGBUILD 168414 2012-10-11 14:27:49Z dreisner $
 # Maintainer: Dave Reisner 
 # Contributor: Angel Velasquez 
 # Contributor: Eric Belanger 
@@ -6,9 +6,9 @@
 # Contributor: Daniel J Griffiths 
 
 pkgname=curl
-pkgver=7.27.0
+pkgver=7.28.0
 pkgrel=1
-pkgdesc="An URL retrival utility and library"
+pkgdesc="An URL retrieval utility and library"
 arch=('i686' 'x86_64')
 url="http://curl.haxx.se"
 license=('MIT')
@@ -16,8 +16,8 @@ depends=('ca-certificates' 'libssh2' 'openssl' 'zlib')
 options=('!libtool')
 source=("http://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc}
         curlbuild.h)
-md5sums=('f0e48fdb635b5939e02a9291b89e5336'
-         'b5d6d54f97adcaf5c871174e5460f081'
+md5sums=('cbdc0a79bdf6e657dd387c3d88d802e3'
+         '7359e07276cdaff6317bbc39e6d5899c'
          '751bd433ede935c8fae727377625a8ae')
 
 ptrsize=$(cpp <<<'__SIZEOF_POINTER__' | sed '/^#/d')
diff --git a/testing/openldap/PKGBUILD b/testing/openldap/PKGBUILD
index 4e7c93414..ba6380387 100644
--- a/testing/openldap/PKGBUILD
+++ b/testing/openldap/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 164499 2012-08-01 08:04:05Z eric $
+# $Id: PKGBUILD 168437 2012-10-11 21:32:47Z eric $
 # Maintainer:
 
 pkgbase=openldap
 pkgname=('libldap' 'openldap')
-pkgver=2.4.32
+pkgver=2.4.33
 pkgrel=1
 arch=('i686' 'x86_64')
 url="http://www.openldap.org/"
@@ -13,7 +13,7 @@ options=('!makeflags')
 source=(ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
         slapd slapd.default slapd.service slapd.tmpfiles
         ntlm.patch)
-sha1sums=('294d5e9711bcb6850188ed895eeb986d43b62664'
+sha1sums=('0cea642ba2dae1eb719da41bfedb9eba72ad504d'
           'b684038a7f5bc7d2ba470b2d16ee47b5aae64c65'
           'd89b8a533045123f1ab46c9c430cf132d58a20a4'
           'a2cdab7e800a9f0c8b1e319a68598a12f4af27a4'
-- 
cgit v1.2.3-54-g00ecf