diff options
author | root <root@rshg054.dnsready.net> | 2012-10-20 01:22:20 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-10-20 01:22:20 -0700 |
commit | 9598f5141ea75ffa72a3c7c85639c6f296020ef1 (patch) | |
tree | 36488f90eaa723f707c26f79ba771bb2910e8368 /staging | |
parent | dcc55a1cfa32068d0759c1c8307f6c07c11aec99 (diff) |
Sat Oct 20 01:22:19 PDT 2012
Diffstat (limited to 'staging')
28 files changed, 3144 insertions, 8 deletions
diff --git a/staging/cinepaint/LICENSE b/staging/cinepaint/LICENSE new file mode 100644 index 000000000..746207229 --- /dev/null +++ b/staging/cinepaint/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2005, Kai-Uwe Behrmann +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution.ntributors may be used to endorse or promote + products derived from this software without specific prior written + permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/staging/cinepaint/PKGBUILD b/staging/cinepaint/PKGBUILD new file mode 100644 index 000000000..d8d5e0195 --- /dev/null +++ b/staging/cinepaint/PKGBUILD @@ -0,0 +1,51 @@ +# $Id: PKGBUILD 169355 2012-10-20 02:54:29Z eric $ +# Maintainer: tobias [tobias.archlinux.org] +# Contributor: tobias [tobias.justdreams.de] + +pkgname=cinepaint +pkgver=1.3 +pkgrel=5 +pkgdesc="Sophisticated graphics manipulation programm supporting > 8bit pictures" +arch=('i686' 'x86_64') +license=('LGPL' 'GPL' 'MIT') +url="http://www.cinepaint.org" +depends=('gtk2' 'openexr' 'lcms' 'libxpm' 'fltk' 'ftgl' 'libxxf86vm') +makedepends=('python2' 'gutenprint>=5.2.9') +optdepends=('python2: for python plug-ins' + 'gutenprint: for print plug-ins' + 'ghostscript: for pdf plug-ins') +options=('!libtool') +install=cinepaint.install +source=(http://downloads.sourceforge.net/project/cinepaint/CinePaint/CinePaint-${pkgver}/${pkgname}-${pkgver}.tgz + LICENSE cinepaint-libpng15.patch cinepaint-missing-include.patch) +sha1sums=('1982e32b0f461f4fd0ff0fe17a2e81ccd8dbd52b' + 'ca8411db87f3fc51bbdfade22f4e1f555b2ee19e' + '3dfc9f06f02791aee59b60d33ddf9d305b0f1de5' + 'a4f43aabdbb33d059f1a38442cd6625e4f00c5b9') + +build() { + cd "${srcdir}/${pkgname}" + patch -p1 -i ../cinepaint-libpng15.patch + patch -p1 -i ../cinepaint-missing-include.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 + +# aclocal -I aclocal +# autoconf + 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}" + make DESTDIR="${pkgdir}" install + sed -i -e "s|-I$srcdir/cinepaint||" -e "s|-I$srcdir/cinepaint/lib||" -e "/libcinepaint.la/d" \ + -e "s|$srcdir/cinepaint/lib/.libs/\$dlname||" "${pkgdir}/usr/bin/cinepainttool" + sed -i "s/cinepaint.png/cinepaint/" "${pkgdir}/usr/share/applications/cinepaint.desktop" + install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/staging/cinepaint/cinepaint-libpng15.patch b/staging/cinepaint/cinepaint-libpng15.patch new file mode 100644 index 000000000..e22edafae --- /dev/null +++ b/staging/cinepaint/cinepaint-libpng15.patch @@ -0,0 +1,452 @@ +diff -Naur cinepaint.old/plug-ins/png/png.c cinepaint/plug-ins/png/png.c +--- cinepaint.old/plug-ins/png/png.c 2012-01-23 12:39:42.000000000 -0500 ++++ cinepaint/plug-ins/png/png.c 2012-01-23 12:39:50.000000000 -0500 +@@ -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 +849,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; +@@ -857,15 +882,6 @@ + drawable = gimp_drawable_get (drawable_ID); + 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 +@@ -874,71 +890,69 @@ + 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,30 +964,36 @@ + * 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)) { +- int size; ++ int size; + char *buffer; + + buffer = gimp_image_get_icc_profile_by_mem (image_ID, &size, + 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) { +@@ -1095,9 +1116,8 @@ + } + + 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/staging/cinepaint/cinepaint-missing-include.patch b/staging/cinepaint/cinepaint-missing-include.patch new file mode 100644 index 000000000..ed159213a --- /dev/null +++ b/staging/cinepaint/cinepaint-missing-include.patch @@ -0,0 +1,11 @@ +diff -Naur cinepaint-orig/plug-ins/icc_examin/icc_examin/icc_modell_beobachter.cpp cinepaint/plug-ins/icc_examin/icc_examin/icc_modell_beobachter.cpp +--- cinepaint-orig/plug-ins/icc_examin/icc_examin/icc_modell_beobachter.cpp 2012-04-20 18:51:10.625503826 -0400 ++++ cinepaint/plug-ins/icc_examin/icc_examin/icc_modell_beobachter.cpp 2012-04-20 18:52:04.478835055 -0400 +@@ -32,6 +32,7 @@ + + #include <list> + #include <string> ++#include <unistd.h> + + #include "icc_modell_beobachter.h" + diff --git a/staging/cinepaint/cinepaint.install b/staging/cinepaint/cinepaint.install new file mode 100644 index 000000000..5e5cfef4d --- /dev/null +++ b/staging/cinepaint/cinepaint.install @@ -0,0 +1,11 @@ +post_install() { + update-desktop-database -q +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + update-desktop-database -q +} diff --git a/staging/fyre/PKGBUILD b/staging/fyre/PKGBUILD new file mode 100644 index 000000000..db81bc725 --- /dev/null +++ b/staging/fyre/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 169349 2012-10-20 00:55:07Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> + +pkgname=fyre +pkgver=1.0.1 +pkgrel=6 +pkgdesc="Rendering of the Peter de Jong map" +arch=('i686' 'x86_64') +url="http://fyre.navi.cx/" +license=('GPL') +depends=('openexr' 'libglade' 'gnet' 'shared-mime-info' 'hicolor-icon-theme' 'desktop-file-utils') +install=fyre.install +source=(http://releases.navi.cx/fyre/fyre-${pkgver}.tar.bz2) +sha1sums=('41c0ec45eff16cc1bba081c5c855a3980e404835') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make update_xdgmime=/bin/false update_fdodesktop=/bin/false gtk_update_icon_cache=/bin/false \ + prefix="${pkgdir}/usr" install +} diff --git a/staging/fyre/fyre.install b/staging/fyre/fyre.install new file mode 100644 index 000000000..388efbb11 --- /dev/null +++ b/staging/fyre/fyre.install @@ -0,0 +1,13 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/staging/glew/PKGBUILD b/staging/glew/PKGBUILD index c71ce3a24..4cc448ce2 100644 --- a/staging/glew/PKGBUILD +++ b/staging/glew/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 164235 2012-07-28 03:12:10Z eric $ +# $Id: PKGBUILD 169341 2012-10-19 22:31:09Z eric $ # Maintainer: Stéphane Gaudreault <stephane@archlinux.org> # Contributor: SleepyDog pkgname=glew -pkgver=1.8.0 +pkgver=1.9.0 pkgrel=1 pkgdesc="The OpenGL Extension Wrangler Library" arch=('i686' 'x86_64') url="http://glew.sourceforge.net" license=('BSD' 'MIT' 'GPL') -depends=('libxmu' 'libxi' 'mesa') +depends=('libxmu' 'libxi' 'glu') source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tgz) -sha1sums=('641c6bb3f924ec786e1e6cf2b1b230f594e0f0e4') +sha1sums=('9291f5c5afefd482c7f3e91ffb3cd4716c6c9ffe') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/staging/ilmbase/PKGBUILD b/staging/ilmbase/PKGBUILD new file mode 100644 index 000000000..fe1618f48 --- /dev/null +++ b/staging/ilmbase/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=ilmbase +pkgver=1.0.3 +pkgrel=1 +depends=('gcc-libs') +pkgdesc="Base libraries from ILM for OpenEXR" +arch=(i686 x86_64) +url="http://www.openexr.com" +license=('custom') +options=('!libtool') +source=(https://github.com/downloads/openexr/openexr/$pkgname-$pkgver.tar.gz + ilmbase-IexMath.patch) +md5sums=('d99962ec7e2bfac0647aaabf6b91d5de' + '9c8efaf15f60bccf79749ec879657962') + +build() { + cd "${srcdir}/$pkgname-$pkgver" + patch -p0 -i "${srcdir}/ilmbase-IexMath.patch" + ./configure --prefix=/usr + make +} + +check() { + cd "${srcdir}/$pkgname-$pkgver" + # one of the tests fails randomly for an unknown reason + make check || true +} + +package() { + cd "${srcdir}/$pkgname-$pkgver" + make DESTDIR="${pkgdir}" install + install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" +} diff --git a/staging/ilmbase/ilmbase-IexMath.patch b/staging/ilmbase/ilmbase-IexMath.patch new file mode 100644 index 000000000..546034966 --- /dev/null +++ b/staging/ilmbase/ilmbase-IexMath.patch @@ -0,0 +1,12 @@ +--- IexMath/IexMathFpu.cpp.orig 2012-07-26 20:51:55.000000000 +0200 ++++ IexMath/IexMathFpu.cpp 2012-10-04 15:30:47.000000000 +0200 +@@ -27,8 +27,7 @@ + #endif + + +-#ifdef HAVE_UCONTEXT_H +- ++#if defined(HAVE_UCONTEXT_H) && (defined(x86_64) || defined(i386_)) + + #include <ucontext.h> + #include <signal.h> diff --git a/staging/imagemagick/PKGBUILD b/staging/imagemagick/PKGBUILD new file mode 100644 index 000000000..04ce425a9 --- /dev/null +++ b/staging/imagemagick/PKGBUILD @@ -0,0 +1,82 @@ +# $Id: PKGBUILD 169345 2012-10-20 00:21:55Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> + +pkgbase=imagemagick +pkgname=('imagemagick' 'imagemagick-doc') +pkgver=6.8.0.1 +pkgrel=1 +arch=('i686' 'x86_64') +url="http://www.imagemagick.org/" +license=('custom') +makedepends=('libltdl' 'lcms2' 'libxt' 'fontconfig' 'libxext' 'ghostscript' \ + 'openexr' 'libwmf' 'librsvg' 'libxml2' 'jasper' 'liblqr') +source=(ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \ + perlmagick.rpath.patch) +sha1sums=('47926535dd68b38f5ae8a01e470cebf671018831' + '23405f80904b1de94ebd7bd6fe2a332471b8c283') + +build() { + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} + + sed '/AC_PATH_XTRA/d' -i configure.ac + autoreconf --force --install + patch -p0 -i ../perlmagick.rpath.patch + + ./configure --prefix=/usr --sysconfdir=/etc --with-modules --disable-static \ + --disable-openmp --with-wmf --with-openexr --with-xml --with-lcms2 --with-jp2 \ + --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \ + --with-perl --with-perl-options="INSTALLDIRS=vendor" --with-lqr --with-rsvg \ + --without-gvc --without-djvu --without-autotrace --without-webp \ + --without-jbig --without-fpx --without-dps --without-fftw + make +} + +check() { + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} +# make check +} + +package_imagemagick() { + pkgdesc="An image viewing/manipulation program" + depends=('perl' 'libltdl' 'lcms2' 'libxt' 'fontconfig' 'libxext' 'liblqr') + optdepends=('ghostscript: for Ghostscript support' + 'openexr: for OpenEXR support' + 'libwmf: for WMF support' + 'librsvg: for SVG support' + 'libxml2: for XML support' + 'jasper: for JPEG-2000 support' + 'libpng: for PNG support') + backup=('etc/ImageMagick/coder.xml' + 'etc/ImageMagick/colors.xml' + 'etc/ImageMagick/delegates.xml' + 'etc/ImageMagick/log.xml' + 'etc/ImageMagick/magic.xml' + 'etc/ImageMagick/mime.xml' + 'etc/ImageMagick/policy.xml' + 'etc/ImageMagick/quantization-table.xml' + 'etc/ImageMagick/thresholds.xml' + 'etc/ImageMagick/type.xml' + 'etc/ImageMagick/type-dejavu.xml' + 'etc/ImageMagick/type-ghostscript.xml' + 'etc/ImageMagick/type-windows.xml') + options=('!docs' 'libtool' '!emptydirs') + + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} + make DESTDIR="${pkgdir}" install + chmod 755 "${pkgdir}/usr/lib/perl5/vendor_perl/auto/Image/Magick/Magick.so" + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick/LICENSE" + install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick/NOTICE" + +#Cleaning + find "${pkgdir}" -name '*.bs' -delete + rm -f "${pkgdir}"/usr/lib/*.la +} + +package_imagemagick-doc() { + pkgdesc="The ImageMagick documentation (utilities manuals and libraries API)" + + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} + make DESTDIR="${pkgdir}" install-data-html + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick-doc/LICENSE" + install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick-doc/NOTICE" +} diff --git a/staging/imagemagick/perlmagick.rpath.patch b/staging/imagemagick/perlmagick.rpath.patch new file mode 100644 index 000000000..958c0f2ee --- /dev/null +++ b/staging/imagemagick/perlmagick.rpath.patch @@ -0,0 +1,10 @@ +--- Makefile.in.orig 2009-05-26 16:22:11.000000000 -0300 ++++ Makefile.in 2009-05-26 16:23:27.000000000 -0300 +@@ -10067,6 +10067,7 @@ + + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@$(PERLMAKEFILE): perl-sources $(PERLMAKEMAKER) + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @PERL@ Makefile.PL $(PERL_MAKE_OPTIONS) ++@WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @SED@ -i 's|LD_RUN_PATH|DIE_LD_RUN_PATH_DIE|g' Makefile + + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@install-exec-perl: $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(PERLMAKEFILE) + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && $(MAKE) CC='@CC@' install diff --git a/staging/kdelibs3/PKGBUILD b/staging/kdelibs3/PKGBUILD new file mode 100644 index 000000000..107727721 --- /dev/null +++ b/staging/kdelibs3/PKGBUILD @@ -0,0 +1,97 @@ +# $Id: PKGBUILD 169353 2012-10-20 02:30:14Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> +# Contributor: Pierre Schmitz <pierre@archlinux.de> +# Contributor: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=kdelibs3 +pkgver=3.5.10 +pkgrel=15 +pkgdesc='KDE3 Core Libraries' +arch=('i686' 'x86_64') +url='http://www.kde.org' +license=('GPL' 'LGPL') +depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 'libcups' 'jasper' + 'libidn' 'openexr' 'aspell' 'qt3' 'ca-certificates') +makedepends=('cups' 'hspell') +optdepends=('hspell: for Hebrew spell-checking support') +options=('libtool' '!makeflags') +install=kdelibs3.install +source=("ftp://ftp.kde.org/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2" + 'ftp://ftp.archlinux.org/other/kde/kde-3.5-1074156.patch.gz' + 'acinclude.patch' + 'kde3.profile' + 'kde4-compatibility.patch' + 'kconf_updaterc' + 'openssl.patch' + 'kdelibs3-missing-include.patch' + 'kdelibs3-cups16.patch') +sha1sums=('c930a25f4419134def55b8466c3a6f737227fb82' + 'c8ca21e4848a627760746d0a8a64bf4f90684c3e' + '50c9de71b102507fb78b192ecc22a5fc3e031bc3' + 'fbd6e773edf3e8bb8e1272629984025e041da2ca' + '5fbbf7a5e2032878815fa055bfb5020f478d2b25' + '35e56fe4c5f71685e64b13f448dcacc620166e06' + '50e92950498463defb9149ffcf8cbc2e8cd1063b' + 'e5f5b8c060a2db9cedb82bf18caadfa869921779' + '6a6c544b3336bfe89bb17ef737d783a7ec006c6c') + +build() { + cd "$srcdir"/kdelibs-${pkgver} + + . /etc/profile.d/qt3.sh + . "$srcdir"/kde3.profile + + patch -p0 -i "$srcdir"/kde-3.5-1074156.patch + patch -p1 -i "$srcdir"/acinclude.patch + patch -p1 -i "$srcdir"/kde4-compatibility.patch + patch -p1 -i "${srcdir}"/openssl.patch + patch -p0 -i "$srcdir"/kdelibs3-missing-include.patch + patch -p1 -i "${srcdir}"/kdelibs3-cups16.patch + + sed -iautomake -e 's|automake\*1.10\*|automake\*1.1[0-5]\*|' admin/cvs.sh + make -f admin/Makefile.common cvs + + ./configure --prefix=/opt/kde \ + --with-distribution='Arch Linux' \ + --with-alsa \ + --disable-debug \ + --disable-dnssd \ + --disable-dnotify \ + --enable-inotify \ + --enable-sendfile \ + --without-lua \ + --with-hspell \ + --enable-gcc-hidden-visibility \ + --enable-final \ + --enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \ + --without-arts \ + --disable-libfam + make +} + +package() { + cd "$srcdir"/kdelibs-${pkgver} + + make DESTDIR="$pkgdir" install + + # disable broken kconf_update by default + install -D -m644 "$srcdir"/kconf_updaterc \ + "$pkgdir"/opt/kde/share/config/kconf_updaterc + + # install KDE3 profile + install -D -m755 "$srcdir"/kde3.profile "$pkgdir"/etc/profile.d/kde3.sh + # make KDE3 styles available to Qt3 + install -d -m755 "$pkgdir"/opt/qt/plugins + ln -sf /opt/kde/lib/kde3/plugins/styles "$pkgdir"/opt/qt/plugins/styles + + # cert bundle seems to be hardcoded + # link it to the one from ca-certificates + rm -f "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt + ln -sf /etc/ssl/certs/ca-certificates.crt "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt + + # we don't have khelpcenter anyway + rm -rf "$pkgdir"/opt/kde/share/doc + + install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/ + echo '/opt/kde/lib' > "${pkgdir}"/etc/ld.so.conf.d/kdelibs3.conf +} diff --git a/staging/kdelibs3/acinclude.patch b/staging/kdelibs3/acinclude.patch new file mode 100644 index 000000000..0610d6df5 --- /dev/null +++ b/staging/kdelibs3/acinclude.patch @@ -0,0 +1,66 @@ +2009-12-10 Stepan Kasal <skasal@redhat.com> + +The change of implementation of AC_REQUIRE in 2.64 caused a regression +in the arts project. +This can be fixed by shuffling some macro calls. + +I suppose that most of this patch will not be needed with a future +release of Autoconf. +But the last chunk of this patch is a real bug in this source and +should go upstream. + +--- arts-1.5.10/admin/acinclude.m4.in 2008-08-20 18:07:05.000000000 +0200 ++++ arts-1.5.10/admin/acinclude.m4.in 2009-12-09 17:30:57.000000000 +0100 +@@ -3081,8 +3081,18 @@ + fi + ]) + ++AC_DEFUN([AC_CHECK_COMPILERS_CC], ++[ ++ dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS ++ CFLAGS=" $CFLAGS" ++ AC_PROG_CC ++ CXXFLAGS=" $CXXFLAGS" ++ AC_PROG_CXX ++]) ++ + AC_DEFUN([AC_CHECK_COMPILERS], + [ ++ AC_REQUIRE([AC_CHECK_COMPILERS_CC]) + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), + [ +@@ -3141,11 +3151,6 @@ + [kde_use_profiling="no"] + ) + +- dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS +- CFLAGS=" $CFLAGS" +- +- AC_PROG_CC +- + AC_PROG_CPP + + if test "$GCC" = "yes"; then +@@ -3174,10 +3179,6 @@ + LDFLAGS="" + fi + +- CXXFLAGS=" $CXXFLAGS" +- +- AC_PROG_CXX +- + KDE_CHECK_FOR_BAD_COMPILER + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then +@@ -3503,8 +3504,8 @@ + AC_REQUIRE([AC_LIBTOOL_DLOPEN]) + AC_REQUIRE([KDE_CHECK_LIB64]) + +-AC_OBJEXT +-AC_EXEEXT ++AC_REQUIRE([AC_OBJEXT]) ++AC_REQUIRE([AC_EXEEXT]) + + AM_PROG_LIBTOOL + AC_LIBTOOL_CXX diff --git a/staging/kdelibs3/kconf_updaterc b/staging/kdelibs3/kconf_updaterc new file mode 100644 index 000000000..24c2623fb --- /dev/null +++ b/staging/kdelibs3/kconf_updaterc @@ -0,0 +1,2 @@ +updateInfoAdded=false +autoUpdateDisabled=true diff --git a/staging/kdelibs3/kde3.profile b/staging/kdelibs3/kde3.profile new file mode 100755 index 000000000..ef09631ff --- /dev/null +++ b/staging/kdelibs3/kde3.profile @@ -0,0 +1,6 @@ +export PATH=$PATH:/opt/kde/bin +if [ ! -z $XDG_DATA_DIRS ]; then + export XDG_DATA_DIRS=$XDG_DATA_DIRS:/opt/kde/share +else + export XDG_DATA_DIRS=/opt/kde/share +fi diff --git a/staging/kdelibs3/kde4-compatibility.patch b/staging/kdelibs3/kde4-compatibility.patch new file mode 100644 index 000000000..129c314ae --- /dev/null +++ b/staging/kdelibs3/kde4-compatibility.patch @@ -0,0 +1,1012 @@ +diff -Nura kdelibs-3.5.10/kdecore/kcrash.cpp kdelibs-3.5.10.new/kdecore/kcrash.cpp +--- kdelibs-3.5.10/kdecore/kcrash.cpp 2007-01-15 12:34:17.000000000 +0100 ++++ kdelibs-3.5.10.new/kdecore/kcrash.cpp 2009-08-06 06:18:06.000000000 +0200 +@@ -158,7 +158,7 @@ + int i = 0; + + // argument 0 has to be drkonqi +- argv[i++] = "drkonqi"; ++ argv[i++] = "/usr/lib/kde4/libexec/drkonqi"; + + #if defined Q_WS_X11 + // start up on the correct display +@@ -325,7 +325,7 @@ + _exit(253); + if(!geteuid() && setuid(getuid()) < 0) + _exit(253); +- execvp("drkonqi", const_cast< char** >( argv )); ++ execvp("/usr/lib/kde4/libexec/drkonqi", const_cast< char** >( argv )); + _exit(errno); + } + else +diff -Nura kdelibs-3.5.10/kded/Makefile.am kdelibs-3.5.10.new/kded/Makefile.am +--- kdelibs-3.5.10/kded/Makefile.am 2005-10-10 17:06:29.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/Makefile.am 2009-08-06 06:21:37.000000000 +0200 +@@ -58,7 +58,7 @@ + servicetype_DATA = kdedmodule.desktop + servicetypedir = $(kde_servicetypesdir) + +-xdg_menu_DATA = applications.menu ++xdg_menu_DATA = kde-applications.menu + + update_DATA = kded.upd + updatedir = $(kde_datadir)/kconf_update +diff -Nura kdelibs-3.5.10/kded/Makefile.in kdelibs-3.5.10.new/kded/Makefile.in +--- kdelibs-3.5.10/kded/Makefile.in 2008-08-20 18:05:57.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/Makefile.in 2009-08-06 06:22:19.000000000 +0200 +@@ -535,7 +535,7 @@ + + servicetype_DATA = kdedmodule.desktop + servicetypedir = $(kde_servicetypesdir) +-xdg_menu_DATA = applications.menu ++xdg_menu_DATA = kde-applications.menu + update_DATA = kded.upd + updatedir = $(kde_datadir)/kconf_update + #>- all: all-am +@@ -1173,7 +1173,7 @@ + -rm -f kded.moc vfolder_menu.moc kdedmodule.moc kbuildsycoca.moc + + #>+ 2 +-KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am ++KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h kde-applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am + + #>+ 2 + docs-am: +diff -Nura kdelibs-3.5.10/kded/applications.menu kdelibs-3.5.10.new/kded/applications.menu +--- kdelibs-3.5.10/kded/applications.menu 2005-09-10 10:27:40.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/applications.menu 1970-01-01 01:00:00.000000000 +0100 +@@ -1,469 +0,0 @@ +- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" +- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> +- +-<Menu> +- <Name>Applications</Name> +- <Directory>kde-main.directory</Directory> +- <!-- Search the default locations --> +- <KDELegacyDirs/> +- <DefaultAppDirs/> +- <DefaultDirectoryDirs/> +- <DefaultLayout> +- <Merge type="menus"/> +- <Merge type="files"/> +- <Separator/> +- <Menuname>More</Menuname> +- </DefaultLayout> +- <Layout> +- <Merge type="menus"/> +- <Menuname>Applications</Menuname> +- <Merge type="files"/> +- </Layout> +- +- <Menu> +- <Name>Applications</Name> +- <Directory>kde-unknown.directory</Directory> +- <OnlyUnallocated/> +- <Include> +- <Not> +- <!-- Don't list non-KDE core applications --> +- <And> +- <Category>Core</Category> +- <Not><Category>KDE</Category></Not> +- </And> +- <!-- Don't list SUSE's YaST in here --> +- <Category>X-SuSE-YaST</Category> +- </Not> +- </Include> +- </Menu> +- <Menu> +- <Name>Development</Name> +- <Directory>kde-development.directory</Directory> +- <Menu> +- <Name>X-KDE-KDevelopIDE</Name> +- <Directory>kde-development-kdevelop.directory</Directory> +- <Include> +- <And> +- <Category>Development</Category> +- <Category>X-KDE-KDevelopIDE</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Translation</Name> +- <Directory>kde-development-translation.directory</Directory> +- <Include> +- <And> +- <Category>Development</Category> +- <Category>Translation</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Web Development</Name> +- <Directory>kde-development-webdevelopment.directory</Directory> +- <Include> +- <And> +- <Category>Development</Category> +- <Category>WebDevelopment</Category> +- </And> +- </Include> +- </Menu> +- <Include> +- <And> +- <Category>Development</Category> +- <Not><Category>X-KDE-KDevelopIDE</Category></Not> +- <Not><Category>Translation</Category></Not> +- <Not><Category>WebDevelopment</Category></Not> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Science</Name> +- <Directory>kde-science.directory</Directory> +- <Include> +- <And><!-- Include /any/ Science app which is not an Education app --> +- <Or> +- <Category>Astronomy</Category> +- <Category>Biology</Category> +- <Category>Chemistry</Category> +- <Category>Geology</Category> +- <Category>MedicalSoftware</Category> +- <Category>Physics</Category> +- <Category>Math</Category> +- <Category>Science</Category> +- </Or> +- <Not><Category>Education</Category></Not> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Edutainment</Name> +- <Directory>kde-edutainment.directory</Directory> +- <Menu> +- <Name>Languages</Name> +- <Directory>kde-edu-languages.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Or> +- <Category>Languages</Category> +- <Category>X-KDE-Edu-Language</Category> +- </Or> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Mathematics</Name> +- <Directory>kde-edu-mathematics.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Category>Math</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Miscellaneous</Name> +- <Directory>kde-edu-miscellaneous.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Not> +- <Category>Languages</Category> +- <Category>X-KDE-Edu-Language</Category> +- <Category>Math</Category> +- <Category>Science</Category> +- <Category>Teaching</Category> +- <Category>X-KDE-Edu-Teaching</Category> +- </Not> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Science</Name> +- <Directory>kde-edu-science.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Category>Science</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Tools</Name> +- <Directory>kde-edu-tools.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Or> +- <Category>Teaching</Category> +- <Category>X-KDE-Edu-Teaching</Category> +- </Or> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Games</Name> +- <Directory>kde-games.directory</Directory> +- <Menu> +- <Name>Arcade</Name> +- <Directory>kde-games-arcade.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>ArcadeGame</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Board</Name> +- <Directory>kde-games-board.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>BoardGame</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Card</Name> +- <Directory>kde-games-card.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>CardGame</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Kidsgames</Name> +- <Directory>kde-games-kids.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Or> +- <Category>X-KDE-KidsGame</Category> +- <Category>KidsGame</Category> +- </Or> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>TacticStrategy</Name> +- <Directory>kde-games-strategy.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>StrategyGame</Category> +- </And> +- </Include> +- </Menu> +- <Include> +- <And> +- <Category>Game</Category> +- <Not> +- <Category>ArcadeGame</Category> +- <Category>BoardGame</Category> +- <Category>CardGame</Category> +- <Category>X-KDE-KidsGame</Category> +- <Category>KidsGame</Category> +- <Category>StrategyGame</Category> +- </Not> +- </And> +- </Include> +- <Menu> +- <Name>Toys</Name> +- <Directory>kde-toys.directory</Directory> +- <Include> +- <Category>Amusement</Category> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Graphics</Name> +- <Directory>kde-graphics.directory</Directory> +- <Include> +- <And> +- <Category>Graphics</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Graphics</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Internet</Name> +- <Directory>kde-internet.directory</Directory> +- <Include> +- <And> +- <Category>Network</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>Terminal</Name> +- <Directory>kde-internet-terminal.directory</Directory> +- </Menu> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Network</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Multimedia</Name> +- <Directory>kde-multimedia.directory</Directory> +- <Include> +- <And> +- <Category>AudioVideo</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>AudioVideo</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Office</Name> +- <Directory>kde-office.directory</Directory> +- <Layout> +- <Merge type="menus"/> +- <Filename>kde-koshell.desktop</Filename> +- <Filename>kde-Kontact.desktop</Filename> +- <Separator/> +- <Filename>kde-kword.desktop</Filename> +- <Filename>kde-kspread.desktop</Filename> +- <Filename>kde-kpresenter.desktop</Filename> +- <Merge type="files"/> +- <Separator/> +- <Menuname>More</Menuname> +- </Layout> +- <Include> +- <And> +- <Category>Office</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Office</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Settingsmenu</Name> +- <Directory>kde-settingsmenu.directory</Directory> +- <Include> +- <Category>Settings</Category> +- </Include> +- </Menu> +- <Menu> +- <Name>System</Name> +- <Directory>kde-system.directory</Directory> +- <Include> +- <And> +- <Category>System</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>System</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>ScreenSavers</Name> +- <Directory>kde-system-screensavers.directory</Directory> +- </Menu> +- <Menu> +- <Name>Terminal</Name> +- <Directory>kde-system-terminal.directory</Directory> +- </Menu> +- </Menu> +- <Menu> +- <Name>Utilities</Name> +- <Directory>kde-utilities.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Not><Category>Accessibility</Category></Not> +- <Not><Category>X-KDE-Utilities-Desktop</Category></Not> +- <Not><Category>X-KDE-Utilities-File</Category></Not> +- <Not><Category>X-KDE-Utilities-Peripherals</Category></Not> +- <Not><Category>X-KDE-Utilities-PIM</Category></Not> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>Accessibility</Name> +- <Directory>kde-utilities-accessibility.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>Accessibility</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Desktop</Name> +- <Directory>kde-utilities-desktop.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-Desktop</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Editors</Name> +- <Directory>kde-editors.directory</Directory> +- <Include> +- <Category>TextEditor</Category> +- </Include> +- </Menu> +- <Menu> +- <Name>File</Name> +- <Directory>kde-utilities-file.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-File</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Peripherals</Name> +- <Directory>kde-utilities-peripherals.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-Peripherals</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>PIM</Name> +- <Directory>kde-utilities-pim.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-PIM</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>XUtilities</Name> +- <Directory>kde-utilities-xutils.directory</Directory> +- </Menu> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Include> +- <And> +- <Category>KDE</Category> +- <Category>Core</Category> +- </And> +- </Include> +- <DefaultMergeDirs/> +- <MergeFile>applications-kmenuedit.menu</MergeFile> +-</Menu> +diff -Nura kdelibs-3.5.10/kded/kbuildsycoca.cpp kdelibs-3.5.10.new/kded/kbuildsycoca.cpp +--- kdelibs-3.5.10/kded/kbuildsycoca.cpp 2007-05-14 09:52:43.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/kbuildsycoca.cpp 2009-08-06 06:23:48.000000000 +0200 +@@ -379,7 +379,7 @@ + connect(g_vfolder, SIGNAL(newService(const QString &, KService **)), + this, SLOT(slotCreateEntry(const QString &, KService **))); + +- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true); ++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true); + + KServiceGroup *entry = g_bsgf->addNew("/", kdeMenu->directoryFile, 0, false); + entry->setLayoutInfo(kdeMenu->layoutList); +diff -Nura kdelibs-3.5.10/kded/kde-applications.menu kdelibs-3.5.10.new/kded/kde-applications.menu +--- kdelibs-3.5.10/kded/kde-applications.menu 1970-01-01 01:00:00.000000000 +0100 ++++ kdelibs-3.5.10.new/kded/kde-applications.menu 2005-09-10 10:27:40.000000000 +0200 +@@ -0,0 +1,469 @@ ++ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" ++ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> ++ ++<Menu> ++ <Name>Applications</Name> ++ <Directory>kde-main.directory</Directory> ++ <!-- Search the default locations --> ++ <KDELegacyDirs/> ++ <DefaultAppDirs/> ++ <DefaultDirectoryDirs/> ++ <DefaultLayout> ++ <Merge type="menus"/> ++ <Merge type="files"/> ++ <Separator/> ++ <Menuname>More</Menuname> ++ </DefaultLayout> ++ <Layout> ++ <Merge type="menus"/> ++ <Menuname>Applications</Menuname> ++ <Merge type="files"/> ++ </Layout> ++ ++ <Menu> ++ <Name>Applications</Name> ++ <Directory>kde-unknown.directory</Directory> ++ <OnlyUnallocated/> ++ <Include> ++ <Not> ++ <!-- Don't list non-KDE core applications --> ++ <And> ++ <Category>Core</Category> ++ <Not><Category>KDE</Category></Not> ++ </And> ++ <!-- Don't list SUSE's YaST in here --> ++ <Category>X-SuSE-YaST</Category> ++ </Not> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Development</Name> ++ <Directory>kde-development.directory</Directory> ++ <Menu> ++ <Name>X-KDE-KDevelopIDE</Name> ++ <Directory>kde-development-kdevelop.directory</Directory> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Category>X-KDE-KDevelopIDE</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Translation</Name> ++ <Directory>kde-development-translation.directory</Directory> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Category>Translation</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Web Development</Name> ++ <Directory>kde-development-webdevelopment.directory</Directory> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Category>WebDevelopment</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Not><Category>X-KDE-KDevelopIDE</Category></Not> ++ <Not><Category>Translation</Category></Not> ++ <Not><Category>WebDevelopment</Category></Not> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Science</Name> ++ <Directory>kde-science.directory</Directory> ++ <Include> ++ <And><!-- Include /any/ Science app which is not an Education app --> ++ <Or> ++ <Category>Astronomy</Category> ++ <Category>Biology</Category> ++ <Category>Chemistry</Category> ++ <Category>Geology</Category> ++ <Category>MedicalSoftware</Category> ++ <Category>Physics</Category> ++ <Category>Math</Category> ++ <Category>Science</Category> ++ </Or> ++ <Not><Category>Education</Category></Not> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Edutainment</Name> ++ <Directory>kde-edutainment.directory</Directory> ++ <Menu> ++ <Name>Languages</Name> ++ <Directory>kde-edu-languages.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Or> ++ <Category>Languages</Category> ++ <Category>X-KDE-Edu-Language</Category> ++ </Or> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Mathematics</Name> ++ <Directory>kde-edu-mathematics.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Category>Math</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Miscellaneous</Name> ++ <Directory>kde-edu-miscellaneous.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Not> ++ <Category>Languages</Category> ++ <Category>X-KDE-Edu-Language</Category> ++ <Category>Math</Category> ++ <Category>Science</Category> ++ <Category>Teaching</Category> ++ <Category>X-KDE-Edu-Teaching</Category> ++ </Not> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Science</Name> ++ <Directory>kde-edu-science.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Category>Science</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Tools</Name> ++ <Directory>kde-edu-tools.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Or> ++ <Category>Teaching</Category> ++ <Category>X-KDE-Edu-Teaching</Category> ++ </Or> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Games</Name> ++ <Directory>kde-games.directory</Directory> ++ <Menu> ++ <Name>Arcade</Name> ++ <Directory>kde-games-arcade.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>ArcadeGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Board</Name> ++ <Directory>kde-games-board.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>BoardGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Card</Name> ++ <Directory>kde-games-card.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>CardGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Kidsgames</Name> ++ <Directory>kde-games-kids.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Or> ++ <Category>X-KDE-KidsGame</Category> ++ <Category>KidsGame</Category> ++ </Or> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>TacticStrategy</Name> ++ <Directory>kde-games-strategy.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>StrategyGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Not> ++ <Category>ArcadeGame</Category> ++ <Category>BoardGame</Category> ++ <Category>CardGame</Category> ++ <Category>X-KDE-KidsGame</Category> ++ <Category>KidsGame</Category> ++ <Category>StrategyGame</Category> ++ </Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>Toys</Name> ++ <Directory>kde-toys.directory</Directory> ++ <Include> ++ <Category>Amusement</Category> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Graphics</Name> ++ <Directory>kde-graphics.directory</Directory> ++ <Include> ++ <And> ++ <Category>Graphics</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Graphics</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Internet</Name> ++ <Directory>kde-internet.directory</Directory> ++ <Include> ++ <And> ++ <Category>Network</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>Terminal</Name> ++ <Directory>kde-internet-terminal.directory</Directory> ++ </Menu> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Network</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Multimedia</Name> ++ <Directory>kde-multimedia.directory</Directory> ++ <Include> ++ <And> ++ <Category>AudioVideo</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>AudioVideo</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Office</Name> ++ <Directory>kde-office.directory</Directory> ++ <Layout> ++ <Merge type="menus"/> ++ <Filename>kde-koshell.desktop</Filename> ++ <Filename>kde-Kontact.desktop</Filename> ++ <Separator/> ++ <Filename>kde-kword.desktop</Filename> ++ <Filename>kde-kspread.desktop</Filename> ++ <Filename>kde-kpresenter.desktop</Filename> ++ <Merge type="files"/> ++ <Separator/> ++ <Menuname>More</Menuname> ++ </Layout> ++ <Include> ++ <And> ++ <Category>Office</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Office</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Settingsmenu</Name> ++ <Directory>kde-settingsmenu.directory</Directory> ++ <Include> ++ <Category>Settings</Category> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>System</Name> ++ <Directory>kde-system.directory</Directory> ++ <Include> ++ <And> ++ <Category>System</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>System</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>ScreenSavers</Name> ++ <Directory>kde-system-screensavers.directory</Directory> ++ </Menu> ++ <Menu> ++ <Name>Terminal</Name> ++ <Directory>kde-system-terminal.directory</Directory> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Utilities</Name> ++ <Directory>kde-utilities.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Not><Category>Accessibility</Category></Not> ++ <Not><Category>X-KDE-Utilities-Desktop</Category></Not> ++ <Not><Category>X-KDE-Utilities-File</Category></Not> ++ <Not><Category>X-KDE-Utilities-Peripherals</Category></Not> ++ <Not><Category>X-KDE-Utilities-PIM</Category></Not> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>Accessibility</Name> ++ <Directory>kde-utilities-accessibility.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>Accessibility</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Desktop</Name> ++ <Directory>kde-utilities-desktop.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-Desktop</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Editors</Name> ++ <Directory>kde-editors.directory</Directory> ++ <Include> ++ <Category>TextEditor</Category> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>File</Name> ++ <Directory>kde-utilities-file.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-File</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Peripherals</Name> ++ <Directory>kde-utilities-peripherals.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-Peripherals</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>PIM</Name> ++ <Directory>kde-utilities-pim.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-PIM</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>XUtilities</Name> ++ <Directory>kde-utilities-xutils.directory</Directory> ++ </Menu> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Include> ++ <And> ++ <Category>KDE</Category> ++ <Category>Core</Category> ++ </And> ++ </Include> ++ <DefaultMergeDirs/> ++ <MergeFile>applications-kmenuedit.menu</MergeFile> ++</Menu> diff --git a/staging/kdelibs3/kdelibs3-cups16.patch b/staging/kdelibs3/kdelibs3-cups16.patch new file mode 100644 index 000000000..6736d49d3 --- /dev/null +++ b/staging/kdelibs3/kdelibs3-cups16.patch @@ -0,0 +1,724 @@ +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/cupsdconf2/cupsdconf.cpp kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2012-10-06 15:08:17.460612585 -0400 +@@ -629,26 +629,26 @@ + cups_lang_t* lang = cupsLangDefault(); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang)); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language); +- request_->request.op.operation_id = CUPS_GET_PRINTERS; ++ ippSetOperation(request_, CUPS_GET_PRINTERS); + request_ = cupsDoRequest(http_, request_, "/printers/"); + if (request_) + { + QString name; + int type(0); +- ipp_attribute_t *attr = request_->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); + while (attr) + { + // check new printer (keep only local non-implicit printers) +- if (!attr->name) ++ if (!ippGetName(attr)) + { + if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty()) + resources_.append(new CupsResource("/printers/"+name)); + name = ""; + type = 0; + } +- else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text; +- else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer; +- attr = attr->next; ++ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL); ++ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0); ++ attr = ippNextAttribute(request_); + } + if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty()) + resources_.append(new CupsResource("/printers/"+name)); +@@ -658,26 +658,26 @@ + request_ = ippNew(); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang)); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language); +- request_->request.op.operation_id = CUPS_GET_CLASSES; ++ ippSetOperation(request_, CUPS_GET_CLASSES); + request_ = cupsDoRequest(http_, request_, "/classes/"); + if (request_) + { + QString name; + int type(0); +- ipp_attribute_t *attr = request_->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); + while (attr) + { + // check new class (keep only local classes) +- if (!attr->name) ++ if (!ippGetName(attr)) + { + if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty()) + resources_.append(new CupsResource("/classes/"+name)); + name = ""; + type = 0; + } +- else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text; +- else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer; +- attr = attr->next; ++ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL); ++ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0); ++ attr = ippNextAttribute(request_); + } + if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty()) + resources_.append(new CupsResource("/classes/"+name)); +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.cpp kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp 2012-10-06 15:12:00.919127451 -0400 +@@ -51,32 +51,34 @@ + kdDebug(500) << "Null request" << endl; + return; + } +- kdDebug(500) << "State = 0x" << QString::number(req->state, 16) << endl; +- kdDebug(500) << "ID = 0x" << QString::number(req->request.status.request_id, 16) << endl; ++ kdDebug(500) << "State = 0x" << QString::number(ippGetState(req), 16) << endl; ++ kdDebug(500) << "ID = 0x" << QString::number(ippGetRequestId(req), 16) << endl; + if (answer) + { +- kdDebug(500) << "Status = 0x" << QString::number(req->request.status.status_code, 16) << endl; +- kdDebug(500) << "Status message = " << ippErrorString(req->request.status.status_code) << endl; ++ kdDebug(500) << "Status = 0x" << QString::number(ippGetStatusCode(req), 16) << endl; ++ kdDebug(500) << "Status message = " << ippErrorString(ippGetStatusCode(req)) << endl; + } + else +- kdDebug(500) << "Operation = 0x" << QString::number(req->request.op.operation_id, 16) << endl; +- kdDebug(500) << "Version = " << (int)(req->request.status.version[0]) << "." << (int)(req->request.status.version[1]) << endl; ++ kdDebug(500) << "Operation = 0x" << QString::number(ippGetOperation(req), 16) << endl; ++ int minorVersion; ++ int majorVersion = ippGetVersion(req, &minorVersion); ++ kdDebug(500) << "Version = " << (int)(majorVersion) << "." << (int)(minorVersion) << endl; + kdDebug(500) << endl; + +- ipp_attribute_t *attr = req->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(req); + while (attr) + { +- QString s = QString::fromLatin1("%1 (0x%2) = ").arg(attr->name).arg(attr->value_tag, 0, 16); +- for (int i=0;i<attr->num_values;i++) ++ QString s = QString::fromLatin1("%1 (0x%2) = ").arg(ippGetName(attr)).arg(ippGetValueTag(attr), 0, 16); ++ for (int i=0;i<ippGetCount(attr);i++) + { +- switch (attr->value_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: + case IPP_TAG_ENUM: +- s += ("0x"+QString::number(attr->values[i].integer, 16)); ++ s += ("0x"+QString::number(ippGetInteger(attr, i), 16)); + break; + case IPP_TAG_BOOLEAN: +- s += (attr->values[i].boolean ? "true" : "false"); ++ s += (ippGetBoolean(attr, i) ? "true" : "false"); + break; + case IPP_TAG_STRING: + case IPP_TAG_TEXT: +@@ -88,16 +90,16 @@ + case IPP_TAG_TEXTLANG: + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: +- s += attr->values[i].string.text; ++ s += ippGetString(attr, i, NULL); + break; + default: + break; + } +- if (i != (attr->num_values-1)) ++ if (i != (ippGetCount(attr)-1)) + s += ", "; + } + kdDebug(500) << s << endl; +- attr = attr->next; ++ attr = ippNextAttribute(req); + } + } + +@@ -177,7 +179,7 @@ + ipp_attribute_t *attr = ippAddStrings(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL,NULL); + int i(0); + for (QStringList::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].string.text = strdup((*it).local8Bit()); ++ ippSetString(request_, &attr, i, strdup((*it).local8Bit())); + } + } + +@@ -193,7 +195,7 @@ + ipp_attribute_t *attr = ippAddIntegers(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL); + int i(0); + for (QValueList<int>::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].integer = *it; ++ ippSetInteger(request_, &attr, i, *it); + } + } + +@@ -209,19 +211,19 @@ + ipp_attribute_t *attr = ippAddBooleans(request_,(ipp_tag_t)group,name.latin1(),(int)(values.count()),NULL); + int i(0); + for (QValueList<bool>::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].boolean = (char)(*it); ++ ippSetBoolean(request_, &attr, i, (char)(*it)); + } + } + + void IppRequest::setOperation(int op) + { +- request_->request.op.operation_id = (ipp_op_t)op; +- request_->request.op.request_id = 1; // 0 is not RFC-compliant, should be at least 1 ++ ippSetOperation(request_, (ipp_op_t)op); ++ ippSetRequestId(request_, 1); // 0 is not RFC-compliant, should be at least 1 + } + + int IppRequest::status() + { +- return (request_ ? request_->request.status.status_code : (connect_ ? cupsLastError() : -2)); ++ return (request_ ? ippGetStatusCode(request_) : (connect_ ? cupsLastError() : -2)); + } + + QString IppRequest::statusMessage() +@@ -248,7 +250,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type); + if (attr) + { +- value = attr->values[0].integer; ++ value = ippGetInteger(attr, 0); + return true; + } + else return false; +@@ -260,7 +262,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type); + if (attr) + { +- value = QString::fromLocal8Bit(attr->values[0].string.text); ++ value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL)); + return true; + } + else return false; +@@ -273,8 +275,8 @@ + values.clear(); + if (attr) + { +- for (int i=0;i<attr->num_values;i++) +- values.append(QString::fromLocal8Bit(attr->values[i].string.text)); ++ for (int i=0;i<ippGetCount(attr);i++) ++ values.append(QString::fromLocal8Bit(ippGetString(attr, i, NULL))); + return true; + } + else return false; +@@ -286,7 +288,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), IPP_TAG_BOOLEAN); + if (attr) + { +- value = (bool)attr->values[0].boolean; ++ value = (bool)ippGetBoolean(attr, 0); + return true; + } + else return false; +@@ -338,10 +340,10 @@ + } + + /* No printers found */ +- if ( request_ && request_->request.status.status_code == 0x406 ) ++ if ( request_ && ippGetStatusCode(request_) == 0x406 ) + return true; + +- if (!request_ || request_->state == IPP_ERROR || (request_->request.status.status_code & 0x0F00)) ++ if (!request_ || ippGetState(request_) == IPP_ERROR || (ippGetStatusCode(request_) & 0x0F00)) + return false; + + +@@ -356,36 +358,36 @@ + output << "<tr><th bgcolor=\"dark blue\"><font color=\"white\">" << i18n("Attribute") << "</font></th>" << endl; + output << "<th bgcolor=\"dark blue\"><font color=\"white\">" << i18n("Values") << "</font></th></tr>" << endl; + // go to the first attribute of the specified group +- ipp_attribute_t *attr = request_->attrs; +- while (attr && attr->group_tag != group) +- attr = attr->next; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); ++ while (attr && ippGetGroupTag(attr) != group) ++ attr = ippNextAttribute(request_); + // print each attribute +- ipp_uchar_t *d; +- QCString dateStr; +- QDateTime dt; +- bool bg(false); +- while (attr && attr->group_tag == group) ++ const ipp_uchar_t *d; ++ QCString dateStr; ++ QDateTime dt; ++ bool bg(false); ++ while (attr && ippGetGroupTag(attr) == group) + { +- output << " <tr bgcolor=\"" << (bg ? "#ffffd9" : "#ffffff") << "\">\n <td><b>" << attr->name << "</b></td>\n <td>" << endl; ++ output << " <tr bgcolor=\"" << (bg ? "#ffffd9" : "#ffffff") << "\">\n <td><b>" << ippGetName(attr) << "</b></td>\n <td>" << endl; + bg = !bg; +- for (int i=0; i<attr->num_values; i++) ++ for (int i=0; i<ippGetCount(attr); i++) + { +- switch (attr->value_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: +- if (attr->name && strstr(attr->name, "time")) ++ if (ippGetName(attr) && strstr(ippGetName(attr), "time")) + { +- dt.setTime_t((unsigned int)(attr->values[i].integer)); ++ dt.setTime_t((unsigned int)(ippGetInteger(attr, i))); + output << dt.toString(); + } + else +- output << attr->values[i].integer; ++ output << ippGetInteger(attr, i); + break; + case IPP_TAG_ENUM: +- output << "0x" << hex << attr->values[i].integer << dec; ++ output << "0x" << hex << ippGetInteger(attr, i) << dec; + break; + case IPP_TAG_BOOLEAN: +- output << (attr->values[i].boolean ? i18n("True") : i18n("False")); ++ output << (ippGetBoolean(attr, i) ? i18n("True") : i18n("False")); + break; + case IPP_TAG_STRING: + case IPP_TAG_TEXTLANG: +@@ -397,18 +399,25 @@ + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: + case IPP_TAG_MIMETYPE: +- output << attr->values[i].string.text; ++ output << ippGetString(attr, i, NULL); + break; + case IPP_TAG_RESOLUTION: +- output << "( " << attr->values[i].resolution.xres +- << ", " << attr->values[i].resolution.yres << " )"; ++ int xres; ++ int yres; ++ ipp_res_t units; ++ xres = ippGetResolution(attr, i, &yres, &units); ++ output << "( " << xres ++ << ", " << yres << " )"; + break; + case IPP_TAG_RANGE: +- output << "[ " << (attr->values[i].range.lower > 0 ? attr->values[i].range.lower : 1) +- << ", " << (attr->values[i].range.upper > 0 ? attr->values[i].range.upper : 65535) << " ]"; ++ int lowervalue; ++ int uppervalue; ++ lowervalue = ippGetRange(attr, i, &uppervalue); ++ output << "[ " << (lowervalue > 0 ? lowervalue : 1) ++ << ", " << (uppervalue > 0 ? uppervalue : 65535) << " ]"; + break; + case IPP_TAG_DATE: +- d = attr->values[i].date; ++ d = ippGetDate(attr, i); + dateStr.sprintf("%.4d-%.2d-%.2d, %.2d:%.2d:%.2d %c%.2d%.2d", + d[0]*256+d[1], d[2], d[3], + d[4], d[5], d[6], +@@ -418,11 +427,11 @@ + default: + continue; + } +- if (i < attr->num_values-1) ++ if (i < ippGetCount(attr)-1) + output << "<br>"; + } + output << "</td>\n </tr>" << endl; +- attr = attr->next; ++ attr = ippNextAttribute(request_); + } + // end table + output << "</table>" << endl; +@@ -438,31 +447,34 @@ + ipp_attribute_t *attr = first(); + while (attr) + { +- if (group != -1 && attr->group_tag != group) ++ if (group != -1 && ippGetGroupTag(attr) != group) + { +- attr = attr->next; ++ attr = ippNextAttribute(request_); + continue; + } + QString value; +- for (int i=0; i<attr->num_values; i++) ++ for (int i=0; i<ippGetCount(attr); i++) + { +- switch (attr->value_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: + case IPP_TAG_ENUM: +- value.append(QString::number(attr->values[i].integer)).append(","); ++ value.append(QString::number(ippGetInteger(attr, i))).append(","); + break; + case IPP_TAG_BOOLEAN: +- value.append((attr->values[i].boolean ? "true" : "false")).append(","); ++ value.append((ippGetBoolean(attr, i) ? "true" : "false")).append(","); + break; + case IPP_TAG_RANGE: +- if (attr->values[i].range.lower > 0) +- value.append(QString::number(attr->values[i].range.lower)); +- if (attr->values[i].range.lower != attr->values[i].range.upper) ++ int lowervalue; ++ int uppervalue; ++ lowervalue = ippGetRange(attr, i, &uppervalue); ++ if (lowervalue > 0) ++ value.append(QString::number(lowervalue)); ++ if (lowervalue != uppervalue) + { + value.append("-"); +- if (attr->values[i].range.upper > 0) +- value.append(QString::number(attr->values[i].range.upper)); ++ if (uppervalue > 0) ++ value.append(QString::number(uppervalue)); + } + value.append(","); + break; +@@ -476,7 +488,7 @@ + case IPP_TAG_TEXTLANG: + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: +- value.append(QString::fromLocal8Bit(attr->values[i].string.text)).append(","); ++ value.append(QString::fromLocal8Bit(ippGetString(attr, i, NULL))).append(","); + break; + default: + break; +@@ -484,8 +496,8 @@ + } + if (!value.isEmpty()) + value.truncate(value.length()-1); +- opts[QString::fromLocal8Bit(attr->name)] = value; +- attr = attr->next; ++ opts[QString::fromLocal8Bit(ippGetName(attr))] = value; ++ attr = ippNextAttribute(request_); + } + } + return opts; +@@ -542,3 +554,7 @@ + } + #endif + } ++ ++ ++ipp_attribute_t* IppRequest::first() ++{ return (request_ ? ippFirstAttribute(request_) : NULL); } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.h kdelibs-3.5.10/kdeprint/cups/ipprequest.h +--- kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.h 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/ipprequest.h 2012-10-06 15:06:05.581489574 -0400 +@@ -72,7 +72,7 @@ + bool keyword(const QString& name, QStringList& value); + bool mime(const QString& name, QString& value); + ipp_attribute_t* first(); +- ipp_attribute_t* last(); ++ ipp_t* request(); + QMap<QString,QString> toMap(int group = -1); + void setMap(const QMap<QString,QString>& opts); + +@@ -178,12 +178,6 @@ + inline bool IppRequest::doRequest(const QString& res) + { return doFileRequest(res); } + +-inline ipp_attribute_t* IppRequest::first() +-{ return (request_ ? request_->attrs : NULL); } +- +-inline ipp_attribute_t* IppRequest::last() +-{ return (request_ ? request_->last : NULL); } +- + inline void IppRequest::setHost(const QString& host) + { host_ = host; } + +@@ -193,4 +187,7 @@ + inline void IppRequest::dump(int state) + { dump_ = state; } + ++inline ipp_t* IppRequest::request() ++{ return request_; } ++ + #endif +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsjobmanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsjobmanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp 2012-10-06 15:13:31.451859386 -0400 +@@ -36,6 +36,8 @@ + #include <kdebug.h> + #include <kurl.h> + ++#include "config.h" ++ + KMCupsJobManager::KMCupsJobManager(QObject *parent, const char *name, const QStringList & /*args*/) + : KMJobManager(parent,name) + { +@@ -166,17 +168,18 @@ + void KMCupsJobManager::parseListAnswer(IppRequest& req, KMPrinter *pr) + { + ipp_attribute_t *attr = req.first(); ++ ipp_attribute_t *nextAttr; + KMJob *job = new KMJob(); + QString uri; + while (attr) + { +- QString name(attr->name); +- if (name == "job-id") job->setId(attr->values[0].integer); +- else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(attr->values[0].string.text)); +- else if (name == "job-name") job->setName(QString::fromLocal8Bit(attr->values[0].string.text)); ++ QString name(ippGetName(attr)); ++ if (name == "job-id") job->setId(ippGetInteger(attr, 0)); ++ else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); ++ else if (name == "job-name") job->setName(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + else if (name == "job-state") + { +- switch (attr->values[0].integer) ++ switch (ippGetInteger(attr, 0)) + { + case IPP_JOB_PENDING: + job->setState(KMJob::Queued); +@@ -204,29 +207,30 @@ + break; + } + } +- else if (name == "job-k-octets") job->setSize(attr->values[0].integer); +- else if (name == "job-originating-user-name") job->setOwner(QString::fromLocal8Bit(attr->values[0].string.text)); +- else if (name == "job-k-octets-completed") job->setProcessedSize(attr->values[0].integer); +- else if (name == "job-media-sheets") job->setPages(attr->values[0].integer); +- else if (name == "job-media-sheets-completed") job->setProcessedPages(attr->values[0].integer); ++ else if (name == "job-k-octets") job->setSize(ippGetInteger(attr, 0)); ++ else if (name == "job-originating-user-name") job->setOwner(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); ++ else if (name == "job-k-octets-completed") job->setProcessedSize(ippGetInteger(attr, 0)); ++ else if (name == "job-media-sheets") job->setPages(ippGetInteger(attr, 0)); ++ else if (name == "job-media-sheets-completed") job->setProcessedPages(ippGetInteger(attr, 0)); + else if (name == "job-printer-uri" && !pr->isRemote()) + { +- QString str(attr->values[0].string.text); ++ QString str(ippGetString(attr, 0, NULL)); + int p = str.findRev('/'); + if (p != -1) + job->setPrinter(str.mid(p+1)); + } + else if (name == "job-priority") + { +- job->setAttribute(0, QString::fromLatin1("%1").arg(attr->values[0].integer, 3)); ++ job->setAttribute(0, QString::fromLatin1("%1").arg(ippGetInteger(attr, 0), 3)); + } + else if (name == "job-billing") + { + job->setAttributeCount(2); +- job->setAttribute(1, QString::fromLocal8Bit(attr->values[0].string.text)); ++ job->setAttribute(1, QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + } + +- if (name.isEmpty() || attr == req.last()) ++ nextAttr = ippNextAttribute(req.request()); ++ if (name.isEmpty() || (!nextAttr)) + { + if (job->printer().isEmpty()) + job->setPrinter(pr->printerName()); +@@ -234,8 +238,7 @@ + addJob(job); // don't use job after this call !!! + job = new KMJob(); + } +- +- attr = attr->next; ++ attr = nextAttr; + } + delete job; + } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsmanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsmanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp 2012-10-06 15:14:22.311521604 -0400 +@@ -476,19 +476,20 @@ + void KMCupsManager::processRequest(IppRequest* req) + { + ipp_attribute_t *attr = req->first(); ++ ipp_attribute_t *nextAttr; + KMPrinter *printer = new KMPrinter(); + while (attr) + { +- QString attrname(attr->name); ++ QString attrname(ippGetName(attr)); + if (attrname == "printer-name") + { +- QString value = QString::fromLocal8Bit(attr->values[0].string.text); ++ QString value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL)); + printer->setName(value); + printer->setPrinterName(value); + } + else if (attrname == "printer-type") + { +- int value = attr->values[0].integer; ++ int value = ippGetInteger(attr, 0); + printer->setType(0); + printer->addType(((value & CUPS_PRINTER_CLASS) || (value & CUPS_PRINTER_IMPLICIT) ? KMPrinter::Class : KMPrinter::Printer)); + if ((value & CUPS_PRINTER_REMOTE)) printer->addType(KMPrinter::Remote); +@@ -499,7 +500,7 @@ + } + else if (attrname == "printer-state") + { +- switch (attr->values[0].integer) ++ switch (ippGetInteger(attr, 0)) + { + case IPP_PRINTER_IDLE: printer->setState(KMPrinter::Idle); break; + case IPP_PRINTER_PROCESSING: printer->setState(KMPrinter::Processing); break; +@@ -508,22 +509,24 @@ + } + else if (attrname == "printer-uri-supported") + { +- printer->setUri(KURL(attr->values[0].string.text)); ++ printer->setUri(KURL(ippGetString(attr, 0, NULL))); + } + else if (attrname == "printer-location") + { +- printer->setLocation(QString::fromLocal8Bit(attr->values[0].string.text)); ++ printer->setLocation(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + } + else if (attrname == "printer-is-accepting-jobs") + { +- printer->setAcceptJobs(attr->values[0].boolean); ++ printer->setAcceptJobs(ippGetBoolean(attr, 0)); + } +- if (attrname.isEmpty() || attr == req->last()) ++ ++ nextAttr = ippNextAttribute(req->request()); ++ if (attrname.isEmpty() || (!nextAttr)) + { + addPrinter(printer); + printer = new KMPrinter(); + } +- attr = attr->next; ++ attr = nextAttr; + } + delete printer; + } +@@ -817,6 +820,7 @@ + { + QStringList list; + IppRequest req; ++ ipp_attribute_t *nextAttr; + req.setOperation(CUPS_GET_DEVICES); + if (req.doRequest("/")) + { +@@ -824,12 +828,13 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- QString attrname(attr->name); +- if (attrname == "device-info") desc = attr->values[0].string.text; +- else if (attrname == "device-make-and-model") printer = attr->values[0].string.text; +- else if (attrname == "device-uri") uri = attr->values[0].string.text; +- else if ( attrname == "device-class" ) cl = attr->values[ 0 ].string.text; +- if (attrname.isEmpty() || attr == req.last()) ++ QString attrname(ippGetName(attr)); ++ if (attrname == "device-info") desc = ippGetString(attr, 0, NULL); ++ else if (attrname == "device-make-and-model") printer = ippGetString(attr, 0, NULL); ++ else if (attrname == "device-uri") uri = ippGetString(attr, 0, NULL); ++ else if ( attrname == "device-class" ) cl = ippGetString(attr, 0, NULL); ++ nextAttr = ippNextAttribute(req.request()); ++ if (attrname.isEmpty() || (!nextAttr)) + { + if (!uri.isEmpty()) + { +@@ -838,7 +843,7 @@ + } + uri = desc = printer = cl = QString::null; + } +- attr = attr->next; ++ attr = nextAttr; + } + } + return list; +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsuimanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsuimanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp 2012-10-06 15:14:55.177970017 -0400 +@@ -60,6 +60,8 @@ + #include <kaction.h> + #include <kmessagebox.h> + ++#include "config.h" ++ + KMCupsUiManager::KMCupsUiManager(QObject *parent, const char *name, const QStringList & /*args*/) + : KMUiManager(parent,name) + { +@@ -143,22 +145,22 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"device-uri") == 0) ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0) + { +- if (strncmp(attr->values[0].string.text,"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true); +- else if (strncmp(attr->values[0].string.text,"parallel",8) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"serial",6) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"smb",3) == 0) backend->enableBackend(KMWizard::SMB,true); +- else if (strncmp(attr->values[0].string.text,"lpd",3) == 0) backend->enableBackend(KMWizard::LPD,true); +- else if (strncmp(attr->values[0].string.text,"usb",3) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"http",4) == 0 || strncmp(attr->values[0].string.text,"ipp",3) == 0) ++ if (strncmp(ippGetString(attr, 0, NULL),"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"parallel",8) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"serial",6) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"smb",3) == 0) backend->enableBackend(KMWizard::SMB,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"lpd",3) == 0) backend->enableBackend(KMWizard::LPD,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"usb",3) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"http",4) == 0 || strncmp(ippGetString(attr, 0, NULL),"ipp",3) == 0) + { + backend->enableBackend(KMWizard::IPP,true); + backend->enableBackend(KMWizard::Custom+1,true); + } +- else if (strncmp(attr->values[0].string.text,"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true); + } +- attr = attr->next; ++ attr = ippNextAttribute(req.request()); + } + backend->enableBackend(KMWizard::Class, true); + backend->enableBackend(KMWizard::Custom+5, true); +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmwfax.cpp kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmwfax.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp 2012-10-06 15:15:28.044418449 -0400 +@@ -30,6 +30,8 @@ + #include <kiconloader.h> + #include <kurl.h> + ++#include "config.h" ++ + KMWFax::KMWFax(QWidget *parent, const char *name) + : KMWizardPage(parent,name) + { +@@ -55,11 +57,11 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"device-uri") == 0 && strncmp(attr->values[0].string.text,"fax",3) == 0) ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0 && strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0) + { +- m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(attr->values[0].string.text)); ++ m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(ippGetString(attr, 0, NULL))); + } +- attr = attr->next; ++ attr = ippNextAttribute(req.request()); + } + } + } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmwippselect.cpp kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmwippselect.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp 2012-10-06 15:15:56.867560417 -0400 +@@ -29,6 +29,8 @@ + #include <kdebug.h> + #include <kiconloader.h> + ++#include "config.h" ++ + KMWIppSelect::KMWIppSelect(QWidget *parent, const char *name) + : KMWizardPage(parent,name) + { +@@ -83,9 +85,9 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"printer-name") == 0) +- m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(attr->values[0].string.text)); +- attr = attr->next; ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"printer-name") == 0) ++ m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(ippGetString(attr, 0, NULL))); ++ attr = ippNextAttribute(req.request()); + } + m_list->sort(); + } diff --git a/staging/kdelibs3/kdelibs3-missing-include.patch b/staging/kdelibs3/kdelibs3-missing-include.patch new file mode 100644 index 000000000..5b84ef746 --- /dev/null +++ b/staging/kdelibs3/kdelibs3-missing-include.patch @@ -0,0 +1,10 @@ +--- kdeprint/cups/cupsdconf2/cups-util.c.old 2012-01-19 01:30:26.000000000 -0500 ++++ kdeprint/cups/cupsdconf2/cups-util.c 2012-01-19 01:31:33.000000000 -0500 +@@ -2,6 +2,7 @@ + #include <cups/http.h> + #include <cups/cups.h> + #include <stdlib.h> ++#include <stdio.h> + #include <fcntl.h> + #include <sys/stat.h> + #include <unistd.h> diff --git a/staging/kdelibs3/kdelibs3.install b/staging/kdelibs3/kdelibs3.install new file mode 100644 index 000000000..7291ac0a2 --- /dev/null +++ b/staging/kdelibs3/kdelibs3.install @@ -0,0 +1,12 @@ +post_install() { + post_remove +} + +post_upgrade() { + post_remove +} + +post_remove() { + # this can be removed in future versions + sed -ie '/\/opt\/kde\/lib/d' etc/ld.so.conf +} diff --git a/staging/kdelibs3/openssl.patch b/staging/kdelibs3/openssl.patch new file mode 100644 index 000000000..a948b884a --- /dev/null +++ b/staging/kdelibs3/openssl.patch @@ -0,0 +1,180 @@ +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.cc +--- kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x 2009-09-04 23:10:53.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -96,9 +96,14 @@ static int (*K_BIO_write) (BIO *b, cons + static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *, + const EVP_CIPHER *,unsigned char *,int , + pem_password_cb *, void *) = 0L; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L; ++static ASN1_ITEM *K_NETSCAPE_X509_it = 0L; ++#else + static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L; + static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L; + static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L; ++#endif + static int (*K_X509_print_fp) (FILE *, X509*) = 0L; + static int (*K_i2d_PKCS12) (PKCS12*, unsigned char**) = 0L; + static int (*K_i2d_PKCS12_fp) (FILE *, PKCS12*) = 0L; +@@ -430,9 +435,14 @@ KConfig *cfg; + K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) _cryptoLib->symbol("BIO_ctrl"); + K_BIO_write = (int (*) (BIO *b, const void *data, int len)) _cryptoLib->symbol("BIO_write"); + K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) _cryptoLib->symbol("PEM_ASN1_write_bio"); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_item_i2d_fp"); ++ K_NETSCAPE_X509_it = (ASN1_ITEM *) _cryptoLib->symbol("NETSCAPE_X509_it"); ++#else + K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) _cryptoLib->symbol("X509_asn1_meth"); + K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_i2d_fp"); + K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) _cryptoLib->symbol("i2d_ASN1_HEADER"); ++#endif + K_X509_print_fp = (int (*)(FILE*, X509*)) _cryptoLib->symbol("X509_print_fp"); + K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) _cryptoLib->symbol("i2d_PKCS12"); + K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) _cryptoLib->symbol("i2d_PKCS12_fp"); +@@ -594,7 +604,7 @@ KConfig *cfg; + K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) _sslLib->symbol("SSL_set_session"); + K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, long)) _sslLib->symbol("d2i_SSL_SESSION"); + K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) _sslLib->symbol("i2d_SSL_SESSION"); +- K_SSL_get_ciphers = (STACK *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); ++ K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); + #endif + + +@@ -982,7 +992,13 @@ int KOpenSSLProxy::PEM_write_bio_X509(BI + else return -1; + } + +- ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) { ++ if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it) ++ return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x); ++ else return -1; ++} ++#else + ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) { + if (K_X509_asn1_meth) return (K_X509_asn1_meth)(); + else return 0L; +@@ -994,7 +1010,7 @@ int KOpenSSLProxy::ASN1_i2d_fp(FILE *out + return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x); + else return -1; + } +- ++#endif + + int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) { + if (K_X509_print_fp) return (K_X509_print_fp)(fp, x); +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.h +--- kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x 2006-07-22 10:16:39.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.h 2009-09-04 23:10:53.000000000 +0200 +@@ -48,6 +48,9 @@ class KOpenSSLProxyPrivate; + #include <openssl/stack.h> + #include <openssl/bn.h> + #undef crypt ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++#define STACK _STACK ++#endif + #endif + + #include <kstaticdeleter.h> +@@ -446,12 +449,12 @@ public: + */ + int PEM_write_bio_X509(BIO *bp, X509 *x); + +- ++#if OPENSSL_VERSION_NUMBER < 0x10000000L + /* + * X509_asn1_meth - used for netscape output + */ + ASN1_METHOD *X509_asn1_meth(); +- ++#endif + + /* + * ASN1_i2d_fp - used for netscape output +@@ -531,6 +534,9 @@ public: + */ + void sk_free(STACK *s); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); } ++#endif + + /* + * Number of elements in the stack +@@ -543,6 +549,9 @@ public: + */ + char *sk_value(STACK *s, int n); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); } ++#endif + + /* + * Create a new stack +@@ -555,6 +564,9 @@ public: + */ + int sk_push(STACK *s, char *d); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); } ++#endif + + /* + * Duplicate the stack +diff -up kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc +--- kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x 2005-10-10 17:05:44.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -87,7 +87,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate + + + STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList<KSSLCertificate> &certs) { +- STACK_OF(X509) *x509 = sk_new(NULL); ++ STACK_OF(X509) *x509 = reinterpret_cast<STACK_OF(X509)*>(sk_new(NULL)); + KSSLCertificate *cert = certs.first(); + while(cert) { + sk_X509_push(x509, cert->getCert()); +diff -up kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksslcertificate.cc +--- kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x 2006-01-19 18:06:12.000000000 +0100 ++++ kdelibs-3.5.10/kio/kssl/ksslcertificate.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -1003,17 +1003,31 @@ return qba; + QByteArray KSSLCertificate::toNetscape() { + QByteArray qba; + #ifdef KSSL_HAVE_SSL +-ASN1_HEADER ah; +-ASN1_OCTET_STRING os; +-KTempFile ktf; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ NETSCAPE_X509 nx; ++ ASN1_OCTET_STRING hdr; ++#else ++ ASN1_HEADER ah; ++ ASN1_OCTET_STRING os; ++#endif ++ KTempFile ktf; + +- os.data = (unsigned char *)NETSCAPE_CERT_HDR; +- os.length = strlen(NETSCAPE_CERT_HDR); +- ah.header = &os; +- ah.data = (char *)getCert(); +- ah.meth = d->kossl->X509_asn1_meth(); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ hdr.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ hdr.length = strlen(NETSCAPE_CERT_HDR); ++ nx.header = &hdr; ++ nx.cert = getCert(); ++ ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx); ++#else ++ os.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ os.length = strlen(NETSCAPE_CERT_HDR); ++ ah.header = &os; ++ ah.data = (char *)getCert(); ++ ah.meth = d->kossl->X509_asn1_meth(); + +- d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++#endif + + ktf.close(); + diff --git a/staging/openexr/PKGBUILD b/staging/openexr/PKGBUILD new file mode 100644 index 000000000..9c9431644 --- /dev/null +++ b/staging/openexr/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 169347 2012-10-20 00:48:45Z eric $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=openexr +pkgver=1.7.1 +pkgrel=2 +pkgdesc="An high dynamic-range image file format library" +url="http://www.openexr.com/" +arch=('i686' 'x86_64') +license=('BSD') +depends=('zlib' 'ilmbase') +options=('!libtool') +source=("https://github.com/downloads/${pkgname}/${pkgname}/${pkgname}-${pkgver}.tar.gz" + 'gcc43.patch') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -p0 -i "${srcdir}/gcc43.patch" + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} + +md5sums=('a9e0369dfd68941c50cdaa93e9d7a8d1' + 'd91fae759053a70bcedcf02eb33ca4a2') diff --git a/staging/openexr/gcc43.patch b/staging/openexr/gcc43.patch new file mode 100644 index 000000000..ab99eb9a1 --- /dev/null +++ b/staging/openexr/gcc43.patch @@ -0,0 +1,11 @@ +--- exrenvmap/blurImage.cpp ++++ exrenvmap/blurImage.cpp +@@ -39,6 +39,8 @@ + // + //----------------------------------------------------------------------------- + ++#include <cstring> ++ + #include <blurImage.h> + + #include <resizeImage.h> diff --git a/staging/transcode/PKGBUILD b/staging/transcode/PKGBUILD new file mode 100644 index 000000000..da28d1cba --- /dev/null +++ b/staging/transcode/PKGBUILD @@ -0,0 +1,61 @@ +# $Id: PKGBUILD 169357 2012-10-20 04:01:26Z eric $ +# Maintainer: +# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca> +# Contributor: roberto <roberto@archlinux.org> + +pkgname=transcode +_sripver=0.3-4 +pkgver=1.1.7 +pkgrel=6 +pkgdesc="A video/DVD ripper and encoder for the terminal/console" +arch=('i686' 'x86_64') +url="http://tcforge.berlios.de/" +license=('GPL') +depends=('gawk' 'imagemagick' 'lzo2' 'libdvdread' 'ffmpeg' 'mjpegtools' + 'libmpeg2' 'libxaw' 'libxml2' 'libxv' 'a52dec') +makedepends=('nasm') +options=('!libtool') +source=(https://bitbucket.org/france/transcode-tcforge/downloads/${pkgname}-${pkgver}.tar.bz2 + http://downloads.sourceforge.net/sourceforge/subtitleripper/subtitleripper-${_sripver}.tgz + subtitleripper-0.3.4-linkingorder.patch subtitleripper-0.3.4-respect-ldflags.patch + ffmpeg-0.11.patch) +sha1sums=('e35df68b960eb56ef0a59a4cdbed1491be56aee6' + 'd93ff3578dd5f722c8f4ef16bc0903eec5781a0d' + 'fa05aa1770d9350d90b7cf315aa7c4a1fd921ac7' + '591943a33235342a66c3df0625a164a1479c09ae' + '3d2dcdc23f14938e87d14cfc03000bb3b649b85e') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + patch -Np1 -i "${srcdir}/ffmpeg-0.11.patch" + ./configure --prefix=/usr \ + --disable-sse --disable-sse2 --disable-altivec --enable-mmx \ + --enable-lame --enable-ogg --enable-vorbis --enable-theora \ + --enable-libdv --enable-libxml2 --enable-v4l \ + --enable-imagemagick --enable-libjpeg --enable-lzo --enable-mjpegtools \ + --enable-sdl --enable-freetype2 --enable-a52 --enable-libpostproc \ + --enable-xvid --enable-x264 --enable-alsa --enable-libmpeg2 --enable-libmpeg2convert + make + + cd "${srcdir}/subtitleripper" + patch -p1 -i "${srcdir}/subtitleripper-0.3.4-linkingorder.patch" + patch -p1 -i "${srcdir}/subtitleripper-0.3.4-respect-ldflags.patch" + sed -e 's|^\(.*lppm.*\)$|#\1|' \ + -e 's|^\(.*D_HAVE_LIB_PPM.*\)$|#\1|' \ + -e 's/DEFINES :=/DEFINES = -DHAVE_GETLINE/' \ + -i Makefile + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + + cd "${srcdir}/subtitleripper" + install -m 755 pgm2txt "${pkgdir}/usr/bin/" + install -m 755 srttool "${pkgdir}/usr/bin/" + install -m 755 subtitle2pgm "${pkgdir}/usr/bin/" + install -m 755 subtitle2vobsub "${pkgdir}/usr/bin/" + install -m 755 vobsub2pgm "${pkgdir}/usr/bin/" +} diff --git a/staging/transcode/ffmpeg-0.11.patch b/staging/transcode/ffmpeg-0.11.patch new file mode 100644 index 000000000..b5601fe2f --- /dev/null +++ b/staging/transcode/ffmpeg-0.11.patch @@ -0,0 +1,141 @@ +diff -Naur transcode-1.1.7/export/export_ffmpeg.c fixed-tc/export/export_ffmpeg.c +--- transcode-1.1.7/export/export_ffmpeg.c 2011-11-19 11:50:27.000000000 -0500 ++++ fixed-tc/export/export_ffmpeg.c 2012-07-05 16:22:41.095346080 -0400 +@@ -180,7 +180,7 @@ + + + /* START: COPIED FROM ffmpeg-0.5_p22846(ffmpeg.c, cmdutils.c) */ +-#include <libavcodec/opt.h> ++#include <libavutil/opt.h> + #include <libavutil/avstring.h> + #include <libswscale/swscale.h> + +@@ -470,7 +470,6 @@ + } + + TC_LOCK_LIBAVCODEC; +- avcodec_init(); + avcodec_register_all(); + TC_UNLOCK_LIBAVCODEC; + +@@ -634,7 +633,6 @@ + lavc_param_rc_max_rate = 2516; + lavc_param_rc_buffer_size = 224 * 8; + lavc_param_rc_buffer_aggressivity = 99; +- lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET; + + break; + +@@ -674,7 +673,6 @@ + + lavc_param_rc_buffer_size = 224 * 8; + lavc_param_rc_buffer_aggressivity = 99; +- lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET; + + break; + +diff -Naur transcode-1.1.7/export/ffmpeg_cfg.c fixed-tc/export/ffmpeg_cfg.c +--- transcode-1.1.7/export/ffmpeg_cfg.c 2011-11-19 11:50:27.000000000 -0500 ++++ fixed-tc/export/ffmpeg_cfg.c 2012-07-05 15:26:29.112103273 -0400 +@@ -160,9 +160,7 @@ + {"vcelim", &lavc_param_chroma_elim_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99}, + {"vpsize", &lavc_param_packet_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000}, + {"vstrict", &lavc_param_strict, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99}, +- {"vdpart", &lavc_param_data_partitioning, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART}, + // {"keyint", &lavc_param_keyint, TCCONF_TYPE_INT, 0, 0, 0}, +- {"gray", &lavc_param_gray, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART}, + {"mpeg_quant", &lavc_param_mpeg_quant, TCCONF_TYPE_FLAG, 0, 0, 1}, + {"vi_qfactor", &lavc_param_vi_qfactor, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0}, + {"vi_qoffset", &lavc_param_vi_qoffset, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 31.0}, +@@ -211,7 +211,6 @@ + #else + {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED}, + #endif +- {"umv", &lavc_param_umv, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_UMV}, + {"ibias", &lavc_param_ibias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512}, + {"pbias", &lavc_param_pbias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512}, + {"coder", &lavc_param_coder, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10}, +@@ -223,9 +223,6 @@ + {"nr", &lavc_param_noise_reduction, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000}, + {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QP_RD}, + {"threads", &lavc_param_threads, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16}, +- {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_SLICE_STRUCT}, +- {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_SVCD_SCAN_OFFSET}, +- {"alt", &lavc_param_alt, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_ALT_SCAN}, + {"ilme", &lavc_param_ilme, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME}, + {"inter_threshold", &lavc_param_inter_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000}, + {"sc_threshold", &lavc_param_sc_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000}, +diff -Naur transcode-1.1.7/filter/filter_pp.c fixed-tc/filter/filter_pp.c +--- transcode-1.1.7/filter/filter_pp.c 2011-11-19 11:50:27.000000000 -0500 ++++ fixed-tc/filter/filter_pp.c 2012-07-05 15:26:28.945436613 -0400 +@@ -38,8 +38,8 @@ + + /* FIXME: these use the filter ID as an index--the ID can grow + * arbitrarily large, so this needs to be fixed */ +-static pp_mode_t *mode[100]; +-static pp_context_t *context[100]; ++static pp_mode *mode[100]; ++static pp_context *context[100]; + static int width[100], height[100]; + static int pre[100]; + +diff -Naur transcode-1.1.7/import/decode_lavc.c fixed-tc/import/decode_lavc.c +--- transcode-1.1.7/import/decode_lavc.c 2011-11-19 11:50:27.000000000 -0500 ++++ fixed-tc/import/decode_lavc.c 2012-07-05 15:26:28.842103278 -0400 +@@ -181,7 +181,7 @@ + #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) + lavc_dec_context->error_resilience = 2; + #else +- lavc_dec_context->error_recognition = 2; ++ lavc_dec_context->err_recognition = 2; + #endif + lavc_dec_context->error_concealment = 3; + lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT; +diff -Naur transcode-1.1.7/import/import_ffmpeg.c fixed-tc/import/import_ffmpeg.c +--- transcode-1.1.7/import/import_ffmpeg.c 2011-11-19 11:50:27.000000000 -0500 ++++ fixed-tc/import/import_ffmpeg.c 2012-07-05 15:26:28.848769946 -0400 +@@ -314,7 +314,7 @@ + #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) + lavc_dec_context->error_resilience = 2; + #else +- lavc_dec_context->error_recognition = 2; ++ lavc_dec_context->err_recognition = 2; + #endif + lavc_dec_context->error_concealment = 3; + lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT; +diff -Naur transcode-1.1.7/import/probe_ffmpeg.c fixed-tc/import/probe_ffmpeg.c +--- transcode-1.1.7/import/probe_ffmpeg.c 2011-11-19 11:50:27.000000000 -0500 ++++ fixed-tc/import/probe_ffmpeg.c 2012-07-05 15:26:28.838769947 -0400 +@@ -99,8 +99,8 @@ + + TC_INIT_LIBAVCODEC; + +- ret = av_open_input_file(&lavf_dmx_context, ipipe->name, +- NULL, 0, NULL); ++ ret = avformat_open_input(&lavf_dmx_context, ipipe->name, ++ NULL, NULL); + if (ret != 0) { + tc_log_error(__FILE__, "unable to open '%s'" + " (libavformat failure)", +diff -Naur transcode-1.1.7/libtc/tcavcodec.h fixed-tc/libtc/tcavcodec.h +--- transcode-1.1.7/libtc/tcavcodec.h 2011-11-19 11:50:27.000000000 -0500 ++++ fixed-tc/libtc/tcavcodec.h 2012-07-05 15:26:28.828769951 -0400 +@@ -53,7 +53,6 @@ + + #define TC_INIT_LIBAVCODEC do { \ + TC_LOCK_LIBAVCODEC; \ +- avcodec_init(); \ + avcodec_register_all(); \ + TC_UNLOCK_LIBAVCODEC; \ + } while (0) +--- transcode-1.1.7/export/export_ffmpeg.c.orig 2012-10-19 23:25:16.442303175 -0400 ++++ transcode-1.1.7/export/export_ffmpeg.c 2012-10-19 23:26:23.904268733 -0400 +@@ -1249,7 +1249,7 @@ + return TC_EXPORT_ERROR; + } + +- if (lavc_venc_context->codec->encode == NULL) { ++ if (lavc_venc_context->codec->encode2 == NULL) { + tc_log_warn(MOD_NAME, "could not open FFMPEG codec " + "(lavc_venc_context->codec->encode == NULL)"); + return TC_EXPORT_ERROR; diff --git a/staging/transcode/subtitleripper-0.3.4-linkingorder.patch b/staging/transcode/subtitleripper-0.3.4-linkingorder.patch new file mode 100644 index 000000000..7efe22346 --- /dev/null +++ b/staging/transcode/subtitleripper-0.3.4-linkingorder.patch @@ -0,0 +1,28 @@ +Index: subtitleripper/Makefile +=================================================================== +--- subtitleripper.orig/Makefile ++++ subtitleripper/Makefile +@@ -70,19 +70,19 @@ vobsub2pgm.o: vobsub2pgm.c vobsub.h spud + # Target + subtitle2pgm: subtitle2pgm.o spudec.o + @echo "Linking $@" +- @$(CC) $(LIBS) $^ -o $@ ++ @$(CC) $^ -o $@ $(LIBS) + + subtitle2vobsub: subtitle2vobsub.o vobsub.o + @echo "Linking $@" +- @$(CC) $(LIBS) $^ -o $@ ++ @$(CC) $^ -o $@ $(LIBS) + + srttool: srttool.o + @echo "Linking $@" +- @$(CC) $(LIBS) -g $^ -o $@ ++ @$(CC) -g $^ -o $@ $(LIBS) + + vobsub2pgm: vobsub2pgm.o vobsub.o spudec.o + @echo "Linking $@" +- @$(CC) $(LIBS) -g $^ -o $@ ++ @$(CC) -g $^ -o $@ $(LIBS) + + .PHONY: clean dist rpm + clean: diff --git a/staging/transcode/subtitleripper-0.3.4-respect-ldflags.patch b/staging/transcode/subtitleripper-0.3.4-respect-ldflags.patch new file mode 100644 index 000000000..2af11d257 --- /dev/null +++ b/staging/transcode/subtitleripper-0.3.4-respect-ldflags.patch @@ -0,0 +1,28 @@ +Index: subtitleripper/Makefile +=================================================================== +--- subtitleripper.orig/Makefile ++++ subtitleripper/Makefile +@@ -70,19 +70,19 @@ vobsub2pgm.o: vobsub2pgm.c vobsub.h spud + # Target + subtitle2pgm: subtitle2pgm.o spudec.o + @echo "Linking $@" +- @$(CC) $^ -o $@ $(LIBS) ++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS) + + subtitle2vobsub: subtitle2vobsub.o vobsub.o + @echo "Linking $@" +- @$(CC) $^ -o $@ $(LIBS) ++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS) + + srttool: srttool.o + @echo "Linking $@" +- @$(CC) -g $^ -o $@ $(LIBS) ++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS) + + vobsub2pgm: vobsub2pgm.o vobsub.o spudec.o + @echo "Linking $@" +- @$(CC) -g $^ -o $@ $(LIBS) ++ @$(CC) $(LDFLAGS) $^ -o $@ $(LIBS) + + .PHONY: clean dist rpm + clean: diff --git a/staging/xine-lib/PKGBUILD b/staging/xine-lib/PKGBUILD index 08f2aea37..2a0653191 100644 --- a/staging/xine-lib/PKGBUILD +++ b/staging/xine-lib/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 161814 2012-06-15 00:59:07Z eric $ +# $Id: PKGBUILD 169351 2012-10-20 01:35:15Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=xine-lib pkgver=1.2.2 -pkgrel=1 +pkgrel=3 pkgdesc="A multimedia playback engine" arch=('i686' 'x86_64') url="http://www.xine-project.org" @@ -11,11 +11,11 @@ license=('LGPL' 'GPL') depends=('libxvmc' 'ffmpeg' 'libxinerama') makedepends=('wavpack' 'faad2' 'libmng' 'imagemagick' 'mesa' 'libmodplug' 'vcdimager' 'jack' 'aalib' 'libdca' 'a52dec' 'libmad' - 'libmpcdec' 'libcaca' 'libbluray' 'gnome-vfs' 'libvdpau') + 'libmpcdec' 'libcaca' 'libbluray' 'gnome-vfs' 'libvdpau' 'glu') optdepends=('imagemagick: for using the imagemagick plugin' \ 'jack: for using the jack plugin' \ 'vcdimager: for using the vcd plugin' \ - 'mesa: for using the opengl plugin' \ + 'glu: for using the opengl plugin' \ 'wavpack: for using the wavpack plugin' \ 'faad2: for using the faad plugin' \ 'libmng: for using the mng plugin' \ |