diff options
Diffstat (limited to 'extra')
29 files changed, 1709 insertions, 122 deletions
diff --git a/extra/cairo/PKGBUILD b/extra/cairo/PKGBUILD index 70807fd91..65e1708a6 100644 --- a/extra/cairo/PKGBUILD +++ b/extra/cairo/PKGBUILD @@ -1,46 +1,37 @@ -# $Id: PKGBUILD 167546 2012-10-02 15:03:57Z foutrelis $ +# $Id: PKGBUILD 170057 2012-10-31 10:24:44Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Brice Carpentier <brice@daknet.org> pkgname=cairo -#_gitdate=20120426 -#_gitver=957a9cc619965178a8927d114fe852034fc2385c -pkgver=1.12.2 -pkgrel=3 +pkgver=1.12.6 +pkgrel=2 pkgdesc="Cairo vector graphics library" arch=(i686 x86_64 'mips64el') license=('LGPL' 'MPL') url="http://cairographics.org/" -depends=('libpng' 'libxrender' 'fontconfig' 'pixman' 'glib2' 'sh') +depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman' 'glib2' 'sh') makedepends=('librsvg' 'poppler-glib' 'libspectre' 'gtk-doc') # 'libdrm') optdepends=('xcb-util: for XCB backend') # really needed? provides=('cairo-xcb') replaces=('cairo-xcb') options=('!libtool' '!distcc' '!makeflags') source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz - #$pkgname-$pkgver.tar.gz::http://cgit.freedesktop.org/cairo/snapshot/cairo-${_gitver}.tar.gz cairo-1.10.0-buggy_gradients.patch - cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch - cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch - #git_fixes.patch -) -md5sums=('87649eb75789739d517c743e94879e51' - '9b323790dab003e228c6955633cb888e' - '75ec73746cfaefcbed0e9b2a9f76bf00' - '56f64466fd70ead732b00691464144f2') + git_fixes.diff) +sha1sums=('a383c6cb4495e18848ea43e1031c294aa9417a43' + '8b843a9934e5112b6188e5bcf4adfc1fdaf9fa04' + '31b3179cda0afa2e2f037d6850fd8607383cb95a') build() { cd "$srcdir/$pkgname-$pkgver" - #cd ${srcdir}/${pkgname}-${_gitver} - patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch - # https://bugs.freedesktop.org/show_bug.cgi?id=50852 - patch -Np1 -i ${srcdir}/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch - # https://bugs.freedesktop.org/show_bug.cgi?id=51443 - patch -Np1 -i ${srcdir}/cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch - # status is 2012-04-26 last commit: image: Fix typo in _blit_spans() - #patch -Np1 -i ${srcdir}/git_fixes.patch - autoreconf -vfi - #./autogen.sh --prefix=/usr \ +# patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch + + # status: http://cgit.freedesktop.org/cairo/commit/?id=66625cb46c985321c46b79d2163a4d676d6700ba + # 2012-10-30 12:40:41 (GMT) + # xlib: Apply the image offsets to the destination rather the source + patch -Np1 -i ${srcdir}/git_fixes.diff + +# autoreconf -vfi ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ @@ -53,13 +44,11 @@ build() { } #check() { -# #cd "$srcdir/$pkgname-$pkgver" -# cd $srcdir/$pkgname-${_gitver} -# make -k check || /bin/true # 165 Passed, 316 Failed [3 crashed, 10 expected], 23 Skipped +# cd "$srcdir/$pkgname-$pkgver" +# make -k check || /bin/true # 161 Passed, 328 Failed [8 crashed, 10 expected], 26 Skipped #} package() { cd "$srcdir/$pkgname-$pkgver" - #cd $srcdir/$pkgname-${_gitver} make DESTDIR="$pkgdir" install } diff --git a/extra/cairo/git_fixes.diff b/extra/cairo/git_fixes.diff new file mode 100644 index 000000000..3fc7ff659 --- /dev/null +++ b/extra/cairo/git_fixes.diff @@ -0,0 +1,934 @@ +From e43f53bf7f3d371116f31f22ab9754b08b5abe7f Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon, 22 Oct 2012 12:47:11 +0000 +Subject: version: Post release bump to 1.12.7 + +--- +diff --git a/cairo-version.h b/cairo-version.h +index dc89a19..c685909 100644 +--- a/cairo-version.h ++++ b/cairo-version.h +@@ -3,6 +3,6 @@ + + #define CAIRO_VERSION_MAJOR 1 + #define CAIRO_VERSION_MINOR 12 +-#define CAIRO_VERSION_MICRO 6 ++#define CAIRO_VERSION_MICRO 7 + + #endif +-- +cgit v0.9.0.2-2-gbebe +From 00feb8ce530a472abbde445b52d9ae8c99ec97f0 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Fri, 26 Oct 2012 09:51:31 +0000 +Subject: xlib/shm: Sanity check that the server handles XSendEvent with ShmCompletion + +Uli Schlachter suggested it would be wiser to complement our blacklist +of known broken X/libXext with an explicit roundtrip to check for a +BadValue error return when we try to use XSendEvent. + +Suggested-by: Uli Schlachter <psychon@znc.in> +Reported-by: Martin Husemann <martin@duskware.de> +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c +index ec0d334..17594b1 100644 +--- a/src/cairo-xlib-surface-shm.c ++++ b/src/cairo-xlib-surface-shm.c +@@ -1128,8 +1128,60 @@ _cairo_xlib_shm_surface_is_idle (cairo_surface_t *surface) + (((major) * 10000000) + ((minor) * 100000) + ((patch) * 1000) + snap) + + static cairo_bool_t +-xorg_has_buggy_send_shm_completion_event(Display *dpy) ++has_broken_send_shm_event (cairo_xlib_display_t *display, ++ cairo_xlib_shm_display_t *shm) + { ++ Display *dpy = display->display; ++ int (*old_handler) (Display *display, XErrorEvent *event); ++ XShmCompletionEvent ev; ++ XShmSegmentInfo info; ++ ++ info.shmid = shmget (IPC_PRIVATE, 0x1000, IPC_CREAT | 0600); ++ if (info.shmid == -1) ++ return TRUE; ++ ++ info.readOnly = FALSE; ++ info.shmaddr = shmat (info.shmid, NULL, 0); ++ if (info.shmaddr == (char *) -1) { ++ shmctl (info.shmid, IPC_RMID, NULL); ++ return TRUE; ++ } ++ ++ ev.type = shm->event; ++ ev.drawable = shm->window; ++ ev.major_code = shm->opcode; ++ ev.minor_code = X_ShmPutImage; ++ ++ ev.shmseg = info.shmid; ++ ev.offset = 0; ++ ++ assert (CAIRO_MUTEX_IS_LOCKED (_cairo_xlib_display_mutex)); ++ _x_error_occurred = FALSE; ++ ++ XLockDisplay (dpy); ++ XSync (dpy, False); ++ old_handler = XSetErrorHandler (_check_error_handler); ++ ++ XShmAttach (dpy, &info); ++ XSendEvent (dpy, ev.drawable, False, 0, (XEvent *)&ev); ++ XShmDetach (dpy, &info); ++ ++ XSync (dpy, False); ++ XSetErrorHandler (old_handler); ++ XUnlockDisplay (dpy); ++ ++ shmctl (info.shmid, IPC_RMID, NULL); ++ shmdt (info.shmaddr); ++ ++ return _x_error_occurred; ++} ++ ++static cairo_bool_t ++xorg_has_buggy_send_shm_completion_event(cairo_xlib_display_t *display, ++ cairo_xlib_shm_display_t *shm) ++{ ++ Display *dpy = display->display; ++ + /* As libXext sets the SEND_EVENT bit in the ShmCompletionEvent, + * the Xserver may crash if it does not take care when processing + * the event type. For instance versions of Xorg prior to 1.11.1 +@@ -1141,8 +1193,12 @@ xorg_has_buggy_send_shm_completion_event(Display *dpy) + * + * Remove the SendEvent bit (0x80) before doing range checks on event type. + */ +- return (strstr (ServerVendor (dpy), "X.Org") != NULL && +- VendorRelease (dpy) < XORG_VERSION_ENCODE(1,11,0,1)); ++ if (strstr (ServerVendor (dpy), "X.Org") != NULL && ++ VendorRelease (dpy) < XORG_VERSION_ENCODE(1,11,0,1)) ++ return TRUE; ++ ++ /* For everyone else check that no error is generated */ ++ return has_broken_send_shm_event (display, shm); + } + + void +@@ -1162,6 +1218,15 @@ _cairo_xlib_display_init_shm (cairo_xlib_display_t *display) + if (unlikely (shm == NULL)) + return; + ++ codes = XInitExtension (display->display, SHMNAME); ++ if (codes == NULL) { ++ free (shm); ++ return; ++ } ++ ++ shm->opcode = codes ->major_opcode; ++ shm->event = codes->first_event; ++ + if (unlikely (_pqueue_init (&shm->info))) { + free (shm); + return; +@@ -1177,16 +1242,12 @@ _cairo_xlib_display_init_shm (cairo_xlib_display_t *display) + DefaultVisual (display->display, scr), + CWOverrideRedirect, &attr); + +- if (xorg_has_buggy_send_shm_completion_event(display->display)) ++ if (xorg_has_buggy_send_shm_completion_event(display, shm)) + has_pixmap = 0; + + shm->has_pixmaps = has_pixmap ? MIN_PIXMAP_SIZE : 0; + cairo_list_init (&shm->pool); + +- codes = XInitExtension (display->display, SHMNAME); +- shm->opcode = codes ->major_opcode; +- shm->event = codes->first_event; +- + cairo_list_init (&shm->surfaces); + + display->shm = shm; +-- +cgit v0.9.0.2-2-gbebe +From fdd2082f923012a1354be7086d03f78fb166695b Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Fri, 26 Oct 2012 09:51:31 +0000 +Subject: xlib: Check for both X.org and Xorg ServerVendors + +Martin Husemann reported that on his NetBSD machine the vendor was being +reported as "The Xorg Foundation", a non-conformist separatist split of +the Peoples' Liberation Army^W^W^W "The X.Org Foundation". Simply check +for both during initialisation. + +Reported-by: Martin Husemann <martin@duskware.de> +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-xlib-display.c b/src/cairo-xlib-display.c +index 67c0673..04c89b2 100644 +--- a/src/cairo-xlib-display.c ++++ b/src/cairo-xlib-display.c +@@ -315,7 +315,7 @@ _cairo_xlib_device_create (Display *dpy) + * safest to just blacklist all old-versioning-scheme X servers, + * (just using VendorRelease < 70000000), as buggy_repeat=TRUE. + */ +- if (strstr (ServerVendor (dpy), "X.Org") != NULL) { ++ if (_cairo_xlib_vendor_is_xorg (dpy)) { + if (VendorRelease (dpy) >= 60700000) { + if (VendorRelease (dpy) < 70000000) + display->buggy_repeat = TRUE; +diff --git a/src/cairo-xlib-private.h b/src/cairo-xlib-private.h +index d2bd588..c328302 100644 +--- a/src/cairo-xlib-private.h ++++ b/src/cairo-xlib-private.h +@@ -216,6 +216,13 @@ struct _cairo_xlib_proxy { + cairo_surface_t *owner; + }; + ++inline static cairo_bool_t ++_cairo_xlib_vendor_is_xorg (Display *dpy) ++{ ++ const char *const vendor = ServerVendor (dpy); ++ return strstr (vendor, "X.Org") || strstr (vendor, "Xorg"); ++} ++ + cairo_private cairo_status_t + _cairo_xlib_surface_get_gc (cairo_xlib_display_t *display, + cairo_xlib_surface_t *surface, +diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c +index 17594b1..89f51a9 100644 +--- a/src/cairo-xlib-surface-shm.c ++++ b/src/cairo-xlib-surface-shm.c +@@ -1193,7 +1193,7 @@ xorg_has_buggy_send_shm_completion_event(cairo_xlib_display_t *display, + * + * Remove the SendEvent bit (0x80) before doing range checks on event type. + */ +- if (strstr (ServerVendor (dpy), "X.Org") != NULL && ++ if (_cairo_xlib_vendor_is_xorg (dpy) && + VendorRelease (dpy) < XORG_VERSION_ENCODE(1,11,0,1)) + return TRUE; + +-- +cgit v0.9.0.2-2-gbebe +From d57e652f08f5ff7c334d01bc071962e6a131928f Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Fri, 26 Oct 2012 12:30:01 +0000 +Subject: type1-subset: parse all operators + +The PDF at bug 56265 contained a Type 1 font that used the "div" +operator to compute the glyph width. As the "div" operator was +not handled by the charstring parser this resulted in an incorrect +glyph width in the PDF output. + +Fix this by upgrading the charstring parsing to handle all Type 1 +operators. +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index 1bdb12b..c7f613a 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -137,13 +137,10 @@ typedef struct _cairo_type1_font_subset { + int hex_column; + + struct { +- int stack[TYPE1_STACKSIZE], sp, top_value; ++ double stack[TYPE1_STACKSIZE]; ++ int sp; + } build_stack; + +- struct { +- int other_subr_args[TYPE1_STACKSIZE], num_other_subr_args, cur_other_subr_arg; +- } ps_stack; +- + + } cairo_type1_font_subset_t; + +@@ -742,15 +739,33 @@ use_standard_encoding_glyph (cairo_type1_font_subset_t *font, int index) + return CAIRO_INT_STATUS_UNSUPPORTED; + } + +-#define TYPE1_CHARSTRING_COMMAND_ESCAPE 0x0c +-#define TYPE1_CHARSTRING_COMMAND_SEAC 0x0c06 +-#define TYPE1_CHARSTRING_COMMAND_SBW 0x0c07 +-#define TYPE1_CHARSTRING_COMMAND_HSBW 0x0d +-#define TYPE1_CHARSTRING_COMMAND_CALLSUBR 0x0a +-#define TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR 0x0c10 +-#define TYPE1_CHARSTRING_COMMAND_POP 0x0c11 +- + ++#define TYPE1_CHARSTRING_COMMAND_HSTEM 0x01 ++#define TYPE1_CHARSTRING_COMMAND_VSTEM 0x03 ++#define TYPE1_CHARSTRING_COMMAND_VMOVETO 0x04 ++#define TYPE1_CHARSTRING_COMMAND_RLINETO 0x05 ++#define TYPE1_CHARSTRING_COMMAND_HLINETO 0x06 ++#define TYPE1_CHARSTRING_COMMAND_VLINETO 0x07 ++#define TYPE1_CHARSTRING_COMMAND_RRCURVETO 0x08 ++#define TYPE1_CHARSTRING_COMMAND_CLOSEPATH 0x09 ++#define TYPE1_CHARSTRING_COMMAND_CALLSUBR 0x0a ++#define TYPE1_CHARSTRING_COMMAND_RETURN 0x0b ++#define TYPE1_CHARSTRING_COMMAND_ESCAPE 0x0c ++#define TYPE1_CHARSTRING_COMMAND_HSBW 0x0d ++#define TYPE1_CHARSTRING_COMMAND_ENDCHAR 0x0e ++#define TYPE1_CHARSTRING_COMMAND_RMOVETO 0x15 ++#define TYPE1_CHARSTRING_COMMAND_HMOVETO 0x16 ++#define TYPE1_CHARSTRING_COMMAND_VHCURVETO 0x1e ++#define TYPE1_CHARSTRING_COMMAND_HVCURVETO 0x1f ++#define TYPE1_CHARSTRING_COMMAND_DOTSECTION 0x0c00 ++#define TYPE1_CHARSTRING_COMMAND_VSTEM3 0x0c01 ++#define TYPE1_CHARSTRING_COMMAND_HSTEM3 0x0c02 ++#define TYPE1_CHARSTRING_COMMAND_SEAC 0x0c06 ++#define TYPE1_CHARSTRING_COMMAND_SBW 0x0c07 ++#define TYPE1_CHARSTRING_COMMAND_DIV 0x0c0c ++#define TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR 0x0c10 ++#define TYPE1_CHARSTRING_COMMAND_POP 0x0c11 ++#define TYPE1_CHARSTRING_COMMAND_SETCURRENTPOINT 0x0c21 + + /* Get glyph width and look for seac operatorParse charstring */ + static cairo_status_t +@@ -765,7 +780,6 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + const unsigned char *p; + cairo_bool_t last_op_was_integer; + int command; +- int subr_num, i; + + charstring = malloc (encrypted_charstring_length); + if (unlikely (charstring == NULL)) +@@ -785,37 +799,60 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + if (*p < 32) { + command = *p++; + switch (command) { +- case TYPE1_CHARSTRING_COMMAND_HSBW: +- if (! last_op_was_integer) +- return CAIRO_INT_STATUS_UNSUPPORTED; +- +- font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; ++ case TYPE1_CHARSTRING_COMMAND_HSTEM: ++ case TYPE1_CHARSTRING_COMMAND_VSTEM: ++ case TYPE1_CHARSTRING_COMMAND_VMOVETO: ++ case TYPE1_CHARSTRING_COMMAND_RLINETO: ++ case TYPE1_CHARSTRING_COMMAND_HLINETO: ++ case TYPE1_CHARSTRING_COMMAND_VLINETO: ++ case TYPE1_CHARSTRING_COMMAND_RRCURVETO: ++ case TYPE1_CHARSTRING_COMMAND_CLOSEPATH: ++ case TYPE1_CHARSTRING_COMMAND_RMOVETO: ++ case TYPE1_CHARSTRING_COMMAND_HMOVETO: ++ case TYPE1_CHARSTRING_COMMAND_VHCURVETO: ++ case TYPE1_CHARSTRING_COMMAND_HVCURVETO: ++ case TYPE1_CHARSTRING_COMMAND_RETURN: ++ case TYPE1_CHARSTRING_COMMAND_ENDCHAR: ++ default: + font->build_stack.sp = 0; +- last_op_was_integer = FALSE; + break; + + case TYPE1_CHARSTRING_COMMAND_CALLSUBR: +- if (font->subset_subrs && +- last_op_was_integer && +- font->build_stack.top_value >= 0 && +- font->build_stack.top_value < font->num_subrs) +- { +- subr_num = font->build_stack.top_value; +- font->build_stack.sp--; +- font->subrs[subr_num].used = TRUE; +- last_op_was_integer = FALSE; +- status = cairo_type1_font_subset_parse_charstring (font, +- glyph, +- font->subrs[subr_num].subr_string, +- font->subrs[subr_num].subr_length); +- } else { +- font->subset_subrs = FALSE; ++ if (font->subset_subrs && font->build_stack.sp > 0) { ++ int subr_num = font->build_stack.stack[--font->build_stack.sp]; ++ if (subr_num >= 0 && subr_num < font->num_subrs) { ++ font->subrs[subr_num].used = TRUE; ++ status = cairo_type1_font_subset_parse_charstring ( ++ font, ++ glyph, ++ font->subrs[subr_num].subr_string, ++ font->subrs[subr_num].subr_length); ++ break; ++ } + } ++ font->subset_subrs = FALSE; ++ break; ++ ++ case TYPE1_CHARSTRING_COMMAND_HSBW: ++ if (font->build_stack.sp < 2) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; ++ font->build_stack.sp = 0; + break; + + case TYPE1_CHARSTRING_COMMAND_ESCAPE: + command = command << 8 | *p++; + switch (command) { ++ case TYPE1_CHARSTRING_COMMAND_DOTSECTION: ++ case TYPE1_CHARSTRING_COMMAND_VSTEM3: ++ case TYPE1_CHARSTRING_COMMAND_HSTEM3: ++ case TYPE1_CHARSTRING_COMMAND_SETCURRENTPOINT: ++ case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: ++ default: ++ font->build_stack.sp = 0; ++ break; ++ + case TYPE1_CHARSTRING_COMMAND_SEAC: + /* The seac command takes five integer arguments. The + * last two are glyph indices into the PS standard +@@ -823,6 +860,9 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + * glyph is composed from. All we need to do is to + * make sure those glyphs are present in the subset + * under their standard names. */ ++ if (font->build_stack.sp < 5) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ + status = use_standard_encoding_glyph (font, font->build_stack.stack[3]); + if (unlikely (status)) + return status; +@@ -832,55 +872,49 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + return status; + + font->build_stack.sp = 0; +- last_op_was_integer = FALSE; + break; + + case TYPE1_CHARSTRING_COMMAND_SBW: +- if (! last_op_was_integer) ++ if (font->build_stack.sp < 4) + return CAIRO_INT_STATUS_UNSUPPORTED; + + font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; + font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; +- +- case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: +- for (i = 0; i < font->build_stack.sp; i++) +- font->ps_stack.other_subr_args[i] = font->build_stack.stack[i]; +- font->ps_stack.num_other_subr_args = font->build_stack.sp; +- font->ps_stack.cur_other_subr_arg = 0; +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; + break; + +- case TYPE1_CHARSTRING_COMMAND_POP: +- if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) { +- font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++]; +- last_op_was_integer = TRUE; ++ case TYPE1_CHARSTRING_COMMAND_DIV: ++ if (font->build_stack.sp < 2) { ++ return CAIRO_INT_STATUS_UNSUPPORTED; + } else { +- font->subset_subrs = FALSE; ++ double num1 = font->build_stack.stack[font->build_stack.sp - 2]; ++ double num2 = font->build_stack.stack[font->build_stack.sp - 1]; ++ font->build_stack.sp--; ++ if (num2 == 0.0) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ font->build_stack.stack[font->build_stack.sp - 1] = num1/num2; + } + break; + +- default: +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; ++ case TYPE1_CHARSTRING_COMMAND_POP: ++ if (font->build_stack.sp < TYPE1_STACKSIZE) { ++ /* use negative number to prevent it being used as a subr_num */ ++ font->build_stack.stack[font->build_stack.sp++] = -1.0; ++ } + break; + } + break; +- +- default: +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; + } +- } else { ++ } else { + /* integer argument */ +- p = cairo_type1_font_subset_decode_integer (p, &font->build_stack.top_value); +- last_op_was_integer = TRUE; +- if (font->build_stack.sp < TYPE1_STACKSIZE) +- font->build_stack.stack[font->build_stack.sp++] = font->build_stack.top_value; +- } ++ if (font->build_stack.sp < TYPE1_STACKSIZE) { ++ int val; ++ p = cairo_type1_font_subset_decode_integer (p, &val); ++ font->build_stack.stack[font->build_stack.sp++] = val; ++ } else { ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ } ++ } + } + + free (charstring); +@@ -1321,7 +1355,6 @@ skip_subrs: + for (j = 0; j < font->num_glyphs; j++) { + glyph = font->subset_index_to_glyphs[j]; + font->build_stack.sp = 0; +- font->ps_stack.num_other_subr_args = 0; + status = cairo_type1_font_subset_parse_charstring (font, + glyph, + font->glyphs[glyph].encrypted_charstring, +-- +cgit v0.9.0.2-2-gbebe +From f18199fcfb3b052c198041fc05156ae3d9e6aee7 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 28 Oct 2012 10:04:12 +0000 +Subject: xlib/shm: Check for XShm headers + +Not all version of libXext ship the same set of headers, so play safe +and check during configure that we have the headers we depend upon in +the code. + +Reported-by: Sebastian Haas <sehaas@gmail.com> +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/configure.ac b/configure.ac +index 7adbeb1..021ec8e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -105,6 +105,10 @@ CAIRO_ENABLE_SURFACE_BACKEND(xlib, Xlib, auto, [ + AC_MSG_RESULT(no), + AC_MSG_RESULT(assuming no)) + fi ++ ++ AC_CHECK_HEADERS([X11/extensions/XShm.h X11/extensions/shmproto.h], [], [], ++ [#include <X11/Xlibint.h> ++ #include <X11/Xproto.h>]) + ]) + + CAIRO_ENABLE_SURFACE_BACKEND(xlib_xrender, Xlib Xrender, auto, [ +diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c +index 89f51a9..a3d4385 100644 +--- a/src/cairo-xlib-surface-shm.c ++++ b/src/cairo-xlib-surface-shm.c +@@ -41,12 +41,105 @@ + + #include "cairo-xlib-private.h" + #include "cairo-xlib-surface-private.h" +-#include "cairo-image-surface-private.h" +-#include "cairo-mempool-private.h" ++ ++#if !HAVE_X11_EXTENSIONS_XSHM_H || !HAVE_X11_EXTENSIONS_SHMPROTO_H ++void _cairo_xlib_display_init_shm (cairo_xlib_display_t *display) {} ++ ++cairo_surface_t * ++_cairo_xlib_surface_get_shm (cairo_xlib_surface_t *surface, ++ cairo_bool_t overwrite) ++{ ++ return NULL; ++} ++ ++cairo_int_status_t ++_cairo_xlib_surface_put_shm (cairo_xlib_surface_t *surface) ++{ ++ ASSERT_NOT_REACHED; ++ return CAIRO_INT_STATUS_SUCCESS; ++} ++ ++cairo_surface_t * ++_cairo_xlib_surface_create_shm (cairo_xlib_surface_t *other, ++ pixman_format_code_t format, ++ int width, int height) ++{ ++ return NULL; ++} ++ ++cairo_surface_t * ++_cairo_xlib_surface_create_shm__image (cairo_xlib_surface_t *surface, ++ pixman_format_code_t format, ++ int width, int height) ++{ ++ return NULL; ++} ++ ++cairo_surface_t * ++_cairo_xlib_surface_create_similar_shm (void *other, ++ cairo_format_t format, ++ int width, int height) ++{ ++ return cairo_image_surface_create (format, width, height); ++} ++ ++void ++_cairo_xlib_shm_surface_mark_active (cairo_surface_t *_shm) ++{ ++ ASSERT_NOT_REACHED; ++} ++ ++void ++_cairo_xlib_shm_surface_get_ximage (cairo_surface_t *surface, ++ XImage *ximage) ++{ ++ ASSERT_NOT_REACHED; ++} ++ ++void * ++_cairo_xlib_shm_surface_get_obdata (cairo_surface_t *surface) ++{ ++ ASSERT_NOT_REACHED; ++ return NULL; ++} ++ ++Pixmap ++_cairo_xlib_shm_surface_get_pixmap (cairo_surface_t *surface) ++{ ++ ASSERT_NOT_REACHED; ++ return 0; ++} ++ ++XRenderPictFormat * ++_cairo_xlib_shm_surface_get_xrender_format (cairo_surface_t *surface) ++{ ++ ASSERT_NOT_REACHED; ++ return NULL; ++} ++ ++cairo_bool_t ++_cairo_xlib_shm_surface_is_active (cairo_surface_t *surface) ++{ ++ ASSERT_NOT_REACHED; ++ return FALSE; ++} ++ ++cairo_bool_t ++_cairo_xlib_shm_surface_is_idle (cairo_surface_t *surface) ++{ ++ ASSERT_NOT_REACHED; ++ return TRUE; ++} ++ ++void _cairo_xlib_display_fini_shm (cairo_xlib_display_t *display) {} ++ ++#else + + #include "cairo-damage-private.h" + #include "cairo-default-context-private.h" ++#include "cairo-image-surface-private.h" + #include "cairo-list-inline.h" ++#include "cairo-mempool-private.h" + + #include <X11/Xlibint.h> + #include <X11/Xproto.h> +@@ -1281,5 +1374,5 @@ _cairo_xlib_display_fini_shm (cairo_xlib_display_t *display) + free (shm); + display->shm = NULL; + } +- ++#endif + #endif +-- +cgit v0.9.0.2-2-gbebe +From 0e2458697848cf8c89c9d57fa9b64f0ea7bd0877 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 28 Oct 2012 10:08:39 +0000 +Subject: xlib/shm: Use shmstr.h instead of shmproto.h if available + +Before it was known as shmproto.h, the wire protocol definition was to +be found in shmstr.h, so if we don't have the current version of libXext +try to use the older includes. + +Reported-by: Sebastian Haas <sehaas@gmail.com> +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/configure.ac b/configure.ac +index 021ec8e..f523284 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -106,7 +106,7 @@ CAIRO_ENABLE_SURFACE_BACKEND(xlib, Xlib, auto, [ + AC_MSG_RESULT(assuming no)) + fi + +- AC_CHECK_HEADERS([X11/extensions/XShm.h X11/extensions/shmproto.h], [], [], ++ AC_CHECK_HEADERS([X11/extensions/XShm.h X11/extensions/shmproto.h X11/extensions/shmstr.h], [], [], + [#include <X11/Xlibint.h> + #include <X11/Xproto.h>]) + ]) +diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c +index a3d4385..44e6284 100644 +--- a/src/cairo-xlib-surface-shm.c ++++ b/src/cairo-xlib-surface-shm.c +@@ -42,7 +42,7 @@ + #include "cairo-xlib-private.h" + #include "cairo-xlib-surface-private.h" + +-#if !HAVE_X11_EXTENSIONS_XSHM_H || !HAVE_X11_EXTENSIONS_SHMPROTO_H ++#if !HAVE_X11_EXTENSIONS_XSHM_H || !(HAVE_X11_EXTENSIONS_SHMPROTO_H || HAVE_X11_EXTENSIONS_SHMSTR_H) + void _cairo_xlib_display_init_shm (cairo_xlib_display_t *display) {} + + cairo_surface_t * +@@ -144,7 +144,11 @@ void _cairo_xlib_display_fini_shm (cairo_xlib_display_t *display) {} + #include <X11/Xlibint.h> + #include <X11/Xproto.h> + #include <X11/extensions/XShm.h> ++#if HAVE_X11_EXTENSIONS_SHMPROTO_H + #include <X11/extensions/shmproto.h> ++#elif HAVE_X11_EXTENSIONS_SHMSTR_H ++#include <X11/extensions/shmstr.h> ++#endif + #include <sys/ipc.h> + #include <sys/shm.h> + +-- +cgit v0.9.0.2-2-gbebe +From 5a6e1d680a5bf1c4091e74f999abd611abd92334 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Sun, 28 Oct 2012 10:28:52 +0000 +Subject: type1-subset: restore correct callothersub behavior + +that was removed in d57e652f. Without this subsetting of subroutines +won't work for some fonts. +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index c7f613a..786055a 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -141,6 +141,11 @@ typedef struct _cairo_type1_font_subset { + int sp; + } build_stack; + ++ struct { ++ int stack[TYPE1_STACKSIZE]; ++ int sp; ++ } ps_stack; ++ + + } cairo_type1_font_subset_t; + +@@ -767,7 +772,9 @@ use_standard_encoding_glyph (cairo_type1_font_subset_t *font, int index) + #define TYPE1_CHARSTRING_COMMAND_POP 0x0c11 + #define TYPE1_CHARSTRING_COMMAND_SETCURRENTPOINT 0x0c21 + +-/* Get glyph width and look for seac operatorParse charstring */ ++/* Parse the charstring, including recursing into subroutines. Find ++ * the glyph width, subroutines called, and glyphs required by the ++ * SEAC operator. */ + static cairo_status_t + cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + int glyph, +@@ -814,6 +821,7 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + case TYPE1_CHARSTRING_COMMAND_RETURN: + case TYPE1_CHARSTRING_COMMAND_ENDCHAR: + default: ++ /* stack clearing operator */ + font->build_stack.sp = 0; + break; + +@@ -848,8 +856,8 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + case TYPE1_CHARSTRING_COMMAND_VSTEM3: + case TYPE1_CHARSTRING_COMMAND_HSTEM3: + case TYPE1_CHARSTRING_COMMAND_SETCURRENTPOINT: +- case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: + default: ++ /* stack clearing operator */ + font->build_stack.sp = 0; + break; + +@@ -896,11 +904,25 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + } + break; + ++ case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: ++ if (font->build_stack.sp < 1) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ font->build_stack.sp--; ++ font->ps_stack.sp = 0; ++ while (font->build_stack.sp) ++ font->ps_stack.stack[font->ps_stack.sp++] = font->build_stack.stack[--font->build_stack.sp]; ++ ++ break; ++ + case TYPE1_CHARSTRING_COMMAND_POP: +- if (font->build_stack.sp < TYPE1_STACKSIZE) { +- /* use negative number to prevent it being used as a subr_num */ +- font->build_stack.stack[font->build_stack.sp++] = -1.0; +- } ++ if (font->ps_stack.sp < 1) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ /* T1 spec states that if the interpreter does not ++ * support executing the callothersub, the results ++ * must be taken from the callothersub arguments. */ ++ font->build_stack.stack[font->build_stack.sp++] = font->ps_stack.stack[--font->ps_stack.sp]; + break; + } + break; +@@ -1355,6 +1377,7 @@ skip_subrs: + for (j = 0; j < font->num_glyphs; j++) { + glyph = font->subset_index_to_glyphs[j]; + font->build_stack.sp = 0; ++ font->ps_stack.sp = 0; + status = cairo_type1_font_subset_parse_charstring (font, + glyph, + font->glyphs[glyph].encrypted_charstring, +-- +cgit v0.9.0.2-2-gbebe +From 0c800dc3f64ee030df1cd0a6a1dcd6df71502dea Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Tue, 30 Oct 2012 08:53:30 +0000 +Subject: type1-subset: ensure subroutine numnber is an integer + +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index 786055a..dff4a95 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -827,15 +827,18 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + + case TYPE1_CHARSTRING_COMMAND_CALLSUBR: + if (font->subset_subrs && font->build_stack.sp > 0) { +- int subr_num = font->build_stack.stack[--font->build_stack.sp]; +- if (subr_num >= 0 && subr_num < font->num_subrs) { +- font->subrs[subr_num].used = TRUE; +- status = cairo_type1_font_subset_parse_charstring ( +- font, +- glyph, +- font->subrs[subr_num].subr_string, +- font->subrs[subr_num].subr_length); +- break; ++ double int_val; ++ if (modf(font->build_stack.stack[--font->build_stack.sp], &int_val) == 0.0) { ++ int subr_num = int_val; ++ if (subr_num >= 0 && subr_num < font->num_subrs) { ++ font->subrs[subr_num].used = TRUE; ++ status = cairo_type1_font_subset_parse_charstring ( ++ font, ++ glyph, ++ font->subrs[subr_num].subr_string, ++ font->subrs[subr_num].subr_length); ++ break; ++ } + } + } + font->subset_subrs = FALSE; +-- +cgit v0.9.0.2-2-gbebe +From 65176b7380f0d633da514be1febe16f17b99d876 Mon Sep 17 00:00:00 2001 +From: Kevin Tardif <kiyoka@gmail.com> +Date: Tue, 30 Oct 2012 04:27:27 +0000 +Subject: type1-subset, cff-subset: Plugged 2 memory leaks + +- _cairo_type1_font_subset_fini doesn't free font->cleartext +- _cairo_cff_font_create can exit without freeing font->font_name and/or + font->data; _cairo_cff_font_load_opentype_cff is called to allocate + font_name, then _cairo_cff_font_load_cff is called to allocate + font->data, then _cairo_cff_font_load_cff's return status is checked + and if it failed, it jumps to fail1. This can cause font_name to leak + since the fail1 target only frees the font variable. In addition, + _cairo_cff_font_load_cff can fail -after- allocating data, and then + data won't be freed either. + +Bug 56566 +--- +diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c +index e3040fc..bd8d5b5 100644 +--- a/src/cairo-cff-subset.c ++++ b/src/cairo-cff-subset.c +@@ -2787,7 +2787,7 @@ _cairo_cff_font_create (cairo_scaled_font_subset_t *scaled_font_subset, + if (backend->is_synthetic && backend->is_synthetic (scaled_font_subset->scaled_font)) + return CAIRO_INT_STATUS_UNSUPPORTED; + +- font = malloc (sizeof (cairo_cff_font_t)); ++ font = calloc (1, sizeof (cairo_cff_font_t)); + if (unlikely (font == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + +@@ -2862,11 +2862,11 @@ fail4: + fail3: + free (font->subset_font_name); + fail2: +- free (font->data); +- free (font->font_name); + free (font->ps_name); + _cairo_array_fini (&font->output); + fail1: ++ free (font->data); ++ free (font->font_name); + free (font); + + return status; +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index dff4a95..2ec56f1 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -1670,6 +1670,8 @@ _cairo_type1_font_subset_fini (cairo_type1_font_subset_t *font) + + free (font->subset_index_to_glyphs); + ++ free (font->cleartext); ++ + return status; + } + +-- +cgit v0.9.0.2-2-gbebe +From 66625cb46c985321c46b79d2163a4d676d6700ba Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Tue, 30 Oct 2012 12:40:41 +0000 +Subject: xlib: Apply the image offsets to the destination rather the source + +So that we can specify the entire source surface as the region to copy +and not introduce clipping errors. + +Fixes regression from +commit c068691ff57c2f6cd750a54db17393c0e132cb00 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Fri Aug 17 21:33:54 2012 +0100 + + xlib/shm: Use an impromptu upload ShmSegment + +Reported-by: John Lindgren <john.lindgren@aol.com> +Reported-by: Kalev Lember <kalevlember@gmail.com> +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56547 +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c +index e325382..74c43e9 100644 +--- a/src/cairo-xlib-render-compositor.c ++++ b/src/cairo-xlib-render-compositor.c +@@ -179,22 +179,19 @@ copy_image_boxes (void *_dst, + int x2 = _cairo_fixed_integer_part (chunk->base[i].p2.x); + int y2 = _cairo_fixed_integer_part (chunk->base[i].p2.y); + +- rects[j].x = x1; +- rects[j].y = y1; +- rects[j].width = x2 - x1; +- rects[j].height = y2 - y1; +- j++; ++ if (x2 > x1 && y2 > y1) { ++ rects[j].x = x1; ++ rects[j].y = y1; ++ rects[j].width = x2 - x1; ++ rects[j].height = y2 - y1; ++ j++; ++ } + } + } +- assert (j == boxes->num_boxes); + + XSetClipRectangles (dst->dpy, gc, 0, 0, rects, j, Unsorted); +- + XCopyArea (dst->dpy, src, dst->drawable, gc, +- dx, dy, +- image->width, image->height, +- 0, 0); +- ++ 0, 0, image->width, image->height, -dx, -dy); + XSetClipMask (dst->dpy, gc, None); + + if (rects != stack_rects) +@@ -337,7 +334,8 @@ draw_image_boxes (void *_dst, + + if (_cairo_xlib_shm_surface_get_pixmap (&image->base)) { + status = copy_image_boxes (dst, image, boxes, dx, dy); +- goto out; ++ if (status != CAIRO_INT_STATUS_UNSUPPORTED) ++ goto out; + } + } + } +-- +cgit v0.9.0.2-2-gbebe diff --git a/extra/empathy/PKGBUILD b/extra/empathy/PKGBUILD index edf14e524..d513df2ae 100644 --- a/extra/empathy/PKGBUILD +++ b/extra/empathy/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 169862 2012-10-30 22:24:57Z heftig $ +# $Id: PKGBUILD 170065 2012-10-31 13:32:53Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=empathy pkgver=3.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="A GNOME instant messaging client using the Telepathy framework." arch=('i686' 'x86_64' 'mips64el') url="http://live.gnome.org/Empathy" @@ -16,7 +16,7 @@ optdepends=('telepathy-gabble: XMPP/Jabber support' 'telepathy-rakia: SIP support' 'telepathy-haze: libpurple support' 'nautilus-sendto: Send files from nautilus') -options=('!libtool') +options=('!libtool' '!makeflags') groups=('gnome-extra') install=empathy.install source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz) diff --git a/extra/gconf-editor/PKGBUILD b/extra/gconf-editor/PKGBUILD index 697822a45..03cab56c4 100644 --- a/extra/gconf-editor/PKGBUILD +++ b/extra/gconf-editor/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 150859 2012-02-23 13:04:28Z ibiru $ +# $Id: PKGBUILD 170049 2012-10-31 09:09:59Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gconf-editor -pkgver=3.0.0 -pkgrel=2.1 +pkgver=3.0.1 +pkgrel=1 pkgdesc="Graphical gconf registry editor" arch=(i686 x86_64 'mips64el') license=('GPL') @@ -13,11 +13,14 @@ url="http://www.gnome.org" groups=('gnome-extra') options=(!emptydirs) install=gconf-editor.install -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2) -sha256sums=('184e17416c2dd927ccb3a9b435d86fbe4b654316b91a6db724a3fd447a9fae60') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2 + fix-assertion-failed-crash.patch) +sha256sums=('9afc4fc0d0afe019998736f06c04cbfa0393c813e2aa755133d95e83835f8869' + '6550714ee06d09632244d0f4f41402224599f5230ef71376ea34291ce0d651bc') build() { cd "$srcdir/$pkgname-$pkgver" + patch -Np1 -i "${srcdir}/fix-assertion-failed-crash.patch" ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --disable-scrollkeeper make diff --git a/extra/gconf-editor/fix-assertion-failed-crash.patch b/extra/gconf-editor/fix-assertion-failed-crash.patch new file mode 100644 index 000000000..c9162f7f6 --- /dev/null +++ b/extra/gconf-editor/fix-assertion-failed-crash.patch @@ -0,0 +1,34 @@ +From 25d823099337f7ede4782f46fea46f251646dc3e Mon Sep 17 00:00:00 2001 +From: Edward Sheldrake <ejsheldrake@gmail.com> +Date: Wed, 11 Apr 2012 07:27:16 +0000 +Subject: Fix assertion failed crash + +Fix "assertion failed: (last_slash != NULL)" crash while navigating the +left tree view, fixed by having the model for the right list view emit +all the row deleted signals before deleting any of its data. + +Fixes https://bugzilla.gnome.org/show_bug.cgi?id=670586 +--- +diff --git a/src/gconf-list-model.c b/src/gconf-list-model.c +index 27e1af6..4fc60f8 100644 +--- a/src/gconf-list-model.c ++++ b/src/gconf-list-model.c +@@ -133,11 +133,14 @@ gconf_list_model_set_root_path (GConfListModel *model, const gchar *root_path) + + if (model->root_path != NULL) { + for (list = model->values; list; list = list->next) { ++ model->stamp++; ++ gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path); ++ } ++ ++ for (list = model->values; list; list = list->next) { + GConfEntry *entry = list->data; + + g_hash_table_remove (model->key_hash, gconf_entry_get_key (entry)); +- model->stamp++; +- gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path); + + gconf_entry_unref (entry); + } +-- +cgit v0.9.0.2 diff --git a/extra/gconf/PKGBUILD b/extra/gconf/PKGBUILD index a40f8e164..04dbecf47 100644 --- a/extra/gconf/PKGBUILD +++ b/extra/gconf/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 156770 2012-04-23 09:05:12Z ibiru $ +# $Id: PKGBUILD 170051 2012-10-31 09:24:25Z jgc $ # Maintainer: Jan de Groot <jan@archlinux.org> pkgname=gconf pkgver=3.2.5 -pkgrel=2 +pkgrel=3 pkgdesc="A configuration database system" arch=(i686 x86_64 'mips64el') license=('LGPL') @@ -13,11 +13,17 @@ options=('!libtool') install=gconf.install url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-$pkgver.tar.xz + gconf-dbus-fix-use-after-free.patch + gconf-dbus-fix-shutdown.patch + gsettings-schema-convert-dont-fail.patch gconf-merge-schema gconfpkg gconf-reload.patch 01_xml-gettext-domain.patch) sha256sums=('4ddea9503a212ee126c5b46a0a958fd5484574c3cb6ef2baf38db02e819e58c6' + '76c078218e7c3e93691ddd4d7fd9f5c83d4862d0a0406d17b805f3106b50375d' + 'ddf55a40a260dd00364b32b3200bd8a76e890070ea6267fbfb322907c0946ab2' + 'be6f084a31229e8edfd6936005c6bb4f2d1548b777df5937923b4702f7a9ac19' 'ee6b6e6f4975dad13a8c45f1c1f0547a99373bdecdcd6604bfc12965c328a028' 'bf1928718caa5df2b9e54a13cfd0f15a8fe0e09e86b84385ce023616a114e898' '567b78d8b4b4bbcb77c5f134d57bc503c34867fcc6341c0b01716bcaa4a21694' @@ -25,6 +31,11 @@ sha256sums=('4ddea9503a212ee126c5b46a0a958fd5484574c3cb6ef2baf38db02e819e58c6' build() { cd "GConf-$pkgver" + # Upstream fixes from git + patch -Np1 -i "$srcdir/gconf-dbus-fix-shutdown.patch" + patch -Np1 -i "$srcdir/gsettings-schema-convert-dont-fail.patch" + patch -Np1 -i "$srcdir/gconf-dbus-fix-use-after-free.patch" + # Patch from fedora - reloads gconf after installing schemas patch -Np1 -i "$srcdir/gconf-reload.patch" # http://bugzilla.gnome.org/show_bug.cgi?id=568845 diff --git a/extra/gconf/gconf-dbus-fix-shutdown.patch b/extra/gconf/gconf-dbus-fix-shutdown.patch new file mode 100644 index 000000000..b294284b2 --- /dev/null +++ b/extra/gconf/gconf-dbus-fix-shutdown.patch @@ -0,0 +1,34 @@ +From 39299610083e0e7f9b44e62b7f4e51e89693cf89 Mon Sep 17 00:00:00 2001 +From: Ray Strode <rstrode@redhat.com> +Date: Tue, 06 Mar 2012 19:39:06 +0000 +Subject: dbus: fix shutdown + +gconftool-2 wasn't properly shutting down gconfd, because +it was trying to do it before connecting to the daemon. + +This commit makes sure that we always first try to connect to +the daemon before asking it to shutdown. + +https://bugzilla.gnome.org/show_bug.cgi?id=671490 +--- +diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c +index 442a94b..f167fc5 100644 +--- a/gconf/gconf-dbus.c ++++ b/gconf/gconf-dbus.c +@@ -2483,7 +2483,13 @@ gconf_shutdown_daemon (GError** err) + { + DBusMessage *message; + +- /* Don't want to spawn it if it's already down */ ++ /* If we haven't reached out to it yet, ++ * reach out now. ++ */ ++ if (global_conn == NULL) ++ gconf_ping_daemon(); ++ ++ /* But we don't want to spawn it if it's already down */ + if (global_conn == NULL || !service_running) + return; + +-- +cgit v0.9.0.2 diff --git a/extra/gconf/gconf-dbus-fix-use-after-free.patch b/extra/gconf/gconf-dbus-fix-use-after-free.patch new file mode 100644 index 000000000..d99b222cc --- /dev/null +++ b/extra/gconf/gconf-dbus-fix-use-after-free.patch @@ -0,0 +1,99 @@ +From 84884e9df7ce8c081a1c223c66a799b82545ff1e Mon Sep 17 00:00:00 2001 +From: Milan Crha <mcrha@redhat.com> +Date: Thu, 18 Oct 2012 20:08:02 +0000 +Subject: gconf-dbus: fix use after free + +gconf_engine_get_fuller is accessing freed memory. +The problem is that it's referencing strings that are owned +by a D-Bus message, and they go away when the D-Bus message is freed. + +This commit addresses the problem by duplicating the strings and +freeing them later. + +https://bugzilla.gnome.org/show_bug.cgi?id=667167 +--- +diff --git a/gconf/gconf-dbus-utils.c b/gconf/gconf-dbus-utils.c +index 6fd5bfa..92f5980 100644 +--- a/gconf/gconf-dbus-utils.c ++++ b/gconf/gconf-dbus-utils.c +@@ -569,11 +569,11 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter *main_iter, + gchar **schema_name_p) + { + DBusMessageIter struct_iter; +- gchar *key; ++ const gchar *key; + GConfValue *value; + gboolean is_default; + gboolean is_writable; +- gchar *schema_name; ++ const gchar *schema_name; + + g_return_val_if_fail (dbus_message_iter_get_arg_type (main_iter) == DBUS_TYPE_STRUCT, + FALSE); +@@ -587,7 +587,7 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter *main_iter, + value = utils_get_value (&struct_iter); + + dbus_message_iter_next (&struct_iter); +- schema_name = (gchar *) utils_get_optional_string (&struct_iter); ++ schema_name = utils_get_optional_string (&struct_iter); + + dbus_message_iter_next (&struct_iter); + dbus_message_iter_get_basic (&struct_iter, &is_default); +@@ -596,7 +596,7 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter *main_iter, + dbus_message_iter_get_basic (&struct_iter, &is_writable); + + if (key_p) +- *key_p = key; ++ *key_p = g_strdup (key); + + if (value_p) + *value_p = value; +@@ -604,7 +604,7 @@ gconf_dbus_utils_get_entry_values (DBusMessageIter *main_iter, + gconf_value_free (value); + + if (schema_name_p) +- *schema_name_p = schema_name; ++ *schema_name_p = g_strdup (schema_name); + + if (is_default_p) + *is_default_p = is_default; +diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c +index f167fc5..5610fcf 100644 +--- a/gconf/gconf-dbus.c ++++ b/gconf/gconf-dbus.c +@@ -1252,12 +1252,13 @@ gconf_engine_get_fuller (GConfEngine *conf, + + if (schema_name && schema_name[0] != '/') + { ++ g_free (schema_name); + schema_name = NULL; + } + + if (schema_name_p) +- *schema_name_p = g_strdup (schema_name); +- ++ *schema_name_p = schema_name; ++ + return val; + } + +@@ -2402,7 +2403,7 @@ handle_notify (DBusConnection *connection, + GConfEngine *conf2) + { + GConfEngine *conf; +- gchar *key, *schema_name; ++ gchar *key = NULL, *schema_name = NULL; + gboolean is_default, is_writable; + DBusMessageIter iter; + GConfValue *value; +@@ -2466,6 +2467,8 @@ handle_notify (DBusConnection *connection, + + if (value) + gconf_value_free (value); ++ g_free (key); ++ g_free (schema_name); + + if (!match) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +-- +cgit v0.9.0.2 diff --git a/extra/gconf/gsettings-schema-convert-dont-fail.patch b/extra/gconf/gsettings-schema-convert-dont-fail.patch new file mode 100644 index 000000000..92040b343 --- /dev/null +++ b/extra/gconf/gsettings-schema-convert-dont-fail.patch @@ -0,0 +1,28 @@ +From 02f12f41b031a1c2672e7cf1cb8ebde58288c547 Mon Sep 17 00:00:00 2001 +From: Guido Günther <agx@sigxcpu.org> +Date: Thu, 23 Feb 2012 20:14:18 +0000 +Subject: gsettings-schema-convert: Don't fail to convert lists without default element + +--- +diff --git a/gsettings/gsettings-schema-convert b/gsettings/gsettings-schema-convert +index a60dc35..913cc83 100755 +--- a/gsettings/gsettings-schema-convert ++++ b/gsettings/gsettings-schema-convert +@@ -854,11 +854,10 @@ class GConfSchema: + # Fix the default value to be parsable by GVariant + if self.type == 'list': + l = self.default.strip() +- if not (l[0] == '[' and l[-1] == ']'): +- if not l: +- l = '[]' +- else: +- raise GSettingsSchemaConvertException('Cannot parse default list value \'%s\' for key \'%s\'.' % (self.default, self.applyto or self.key)) ++ if not l: ++ l = '[]' ++ elif not (l[0] == '[' and l[-1] == ']'): ++ raise GSettingsSchemaConvertException('Cannot parse default list value \'%s\' for key \'%s\'.' % (self.default, self.applyto or self.key)) + values = l[1:-1].strip() + if not values: + self.default = '[]' +-- +cgit v0.9.0.2 diff --git a/extra/gnome-shell/PKGBUILD b/extra/gnome-shell/PKGBUILD index a4604c983..c0ae57272 100644 --- a/extra/gnome-shell/PKGBUILD +++ b/extra/gnome-shell/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 169913 2012-10-30 22:34:45Z heftig $ +# $Id: PKGBUILD 170067 2012-10-31 13:36:50Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> # Contributor: Flamelab <panosfilip@gmail.com pkgname=gnome-shell pkgver=3.6.1 -pkgrel=1 +pkgrel=2 pkgdesc="The next generation GNOME Shell" arch=('i686' 'x86_64' 'mips64el') url="http://live.gnome.org/GnomeShell" diff --git a/extra/gnutls/PKGBUILD b/extra/gnutls/PKGBUILD index 2ac6e32f0..06483ec82 100644 --- a/extra/gnutls/PKGBUILD +++ b/extra/gnutls/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 168527 2012-10-13 06:38:44Z andyrtr $ +# $Id: PKGBUILD 170032 2012-10-31 05:16:00Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gnutls pkgver=3.1.3 -pkgrel=1 +pkgrel=2 pkgdesc="A library which provides a secure layer over a reliable transport layer" arch=('i686' 'x86_64' 'mips64el') license=('GPL3' 'LGPL') url="http://www.gnu.org/software/gnutls/" install=gnutls.install options=('!libtool' '!zipman') -depends=('gcc-libs>=4.7.1-5' 'libtasn1' 'readline' 'zlib' 'nettle>=2.4' 'p11-kit>=0.12') +depends=('gcc-libs>=4.7.1-5' 'libtasn1>=3.0' 'readline' 'zlib' 'nettle>=2.4' 'p11-kit>=0.12') makedepends=('strace') [ "$CARCH" = "mips64el" ] || makedepends+=('valgrind') source=(http://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.xz{,.sig}) diff --git a/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD index a00e293a4..e45e4f56b 100644 --- a/extra/kdebase-workspace/PKGBUILD +++ b/extra/kdebase-workspace/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 169946 2012-10-30 22:46:25Z heftig $ +# $Id: PKGBUILD 170060 2012-10-31 10:38:11Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdebase-workspace _pkgname=kde-workspace pkgver=4.9.2 -pkgrel=5 +pkgrel=6 pkgdesc="Provides the interface and basic tools for the KDE workspace" arch=('i686' 'x86_64' 'mips64el') url='https://projects.kde.org/projects/kde/kde-workspace' @@ -26,18 +26,22 @@ backup=('usr/share/config/kdm/kdmrc') source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz" 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' 'kdm.service' 'kdm.logrotate' 'etc-scripts.patch' 'terminate-server.patch' 'kdm-xinitrd.patch' - 'logind-support.patch') + 'logind-support.patch' + 'logind-support2.patch' + 'fix-mesa9.patch') sha1sums=('091bec159d85db2a9a6d6b1b43a53183c23de488' '5db3a245201bd4a50e65aa2ef583cf5490e4f646' '660eae40a707d2711d8d7f32a93214865506b795' - 'b7980f2e199963caf8e92b499042d244ece2fca0' + '6aeecc9e0e221f0515c6bf544f9a3c11cb6961fe' '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8' 'b6f8e8692737b11eec1f8022ce74b5b23e247b1b' 'bbe55f2000217474ce7246f12ee437ceaaf7e9ae' 'c079ebd157c836ba996190f0d2bcea1a7828d02c' 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee' 'd509dac592bd8b310df27991b208c95b6d907514' - 'ccde71c42e19feaf40d3bd76e7396a0cb6df012f') + 'ccde71c42e19feaf40d3bd76e7396a0cb6df012f' + '8f27ebd4bcc2f833a73d453837f4522b2be0aa1f' + 'c57583555bf8acd213295316512b92b6dc07703e') build() { cd ${_pkgname}-${pkgver} @@ -51,6 +55,9 @@ build() { patch -p0 -i "${srcdir}"/terminate-server.patch # KDEBUG#307412 (fixed upstream) patch -p1 -i "${srcdir}"/logind-support.patch + patch -p1 -i "${srcdir}"/logind-support2.patch + # KDEBUG#308385 (fixed upstream) + patch -p1 -i "${srcdir}"/fix-mesa9.patch cd ../ diff --git a/extra/kdebase-workspace/fix-mesa9.patch b/extra/kdebase-workspace/fix-mesa9.patch new file mode 100644 index 000000000..4c5fca408 --- /dev/null +++ b/extra/kdebase-workspace/fix-mesa9.patch @@ -0,0 +1,60 @@ +commit 6cf057777555a5d0c834de3a0165a62916cf3b40 +Author: Fredrik Höglund <fredrik@kde.org> +Date: Tue Oct 30 18:20:00 2012 +0100 + + kwin/glx: Avoid MSAA configs in initBufferConfigs() + + It appears that we're accidentally choosing an MSAA config with the + Intel driver in Mesa 9.0. So change the algorithm to take the values + of GLX_SAMPLES and GLX_SAMPLE_BUFFERS into account. + + Found by Kenneth Graunke. + +diff --git a/kwin/scene_opengl_glx.cpp b/kwin/scene_opengl_glx.cpp +index 1fe2f18..cf7933b 100644 +--- a/kwin/scene_opengl_glx.cpp ++++ b/kwin/scene_opengl_glx.cpp +@@ -270,12 +270,15 @@ bool SceneOpenGL::initBufferConfigs() + fbcbuffer_nondb = NULL; + + for (int i = 0; i < 2; i++) { +- int back, stencil, depth, caveat, alpha; ++ int back, stencil, depth, caveat, msaa_buffers, msaa_samples, alpha; + back = i > 0 ? INT_MAX : 1; + stencil = INT_MAX; + depth = INT_MAX; + caveat = INT_MAX; ++ msaa_buffers = INT_MAX; ++ msaa_samples = INT_MAX; + alpha = 0; ++ + for (int j = 0; j < cnt; j++) { + XVisualInfo *vi; + int visual_depth; +@@ -322,10 +325,26 @@ bool SceneOpenGL::initBufferConfigs() + GLX_CONFIG_CAVEAT, &caveat_value); + if (caveat_value > caveat) + continue; ++ ++ int msaa_buffers_value; ++ glXGetFBConfigAttrib(display(), fbconfigs[j], GLX_SAMPLE_BUFFERS, ++ &msaa_buffers_value); ++ if (msaa_buffers_value > msaa_buffers) ++ continue; ++ ++ int msaa_samples_value; ++ glXGetFBConfigAttrib(display(), fbconfigs[j], GLX_SAMPLES, ++ &msaa_samples_value); ++ if (msaa_samples_value > msaa_samples) ++ continue; ++ + back = back_value; + stencil = stencil_value; + depth = depth_value; + caveat = caveat_value; ++ msaa_buffers = msaa_buffers_value; ++ msaa_samples = msaa_samples_value; ++ + if (i > 0) + fbcbuffer_nondb = fbconfigs[ j ]; + else diff --git a/extra/kdebase-workspace/kde-np.pam b/extra/kdebase-workspace/kde-np.pam index eccaa08f4..2a4a940c7 100644 --- a/extra/kdebase-workspace/kde-np.pam +++ b/extra/kdebase-workspace/kde-np.pam @@ -3,7 +3,7 @@ auth required pam_tally.so onerr=succeed file=/var/log/faillog auth required pam_shells.so auth requisite pam_nologin.so auth required pam_env.so -auth optional pam_permit.s +auth optional pam_permit.so account include system-login diff --git a/extra/kdebase-workspace/kdebase-workspace.install b/extra/kdebase-workspace/kdebase-workspace.install index f7d6d305b..c52c06417 100644 --- a/extra/kdebase-workspace/kdebase-workspace.install +++ b/extra/kdebase-workspace/kdebase-workspace.install @@ -4,6 +4,7 @@ post_install() { chown -R 135:135 var/lib/kdm &>/dev/null xdg-icon-resource forceupdate --theme hicolor &>/dev/null update-desktop-database -q + genkdmconf --no-old --no-backup &>/dev/null } post_upgrade() { @@ -12,6 +13,7 @@ post_upgrade() { chown -R 135:135 var/lib/kdm &>/dev/null xdg-icon-resource forceupdate --theme hicolor &> /dev/null update-desktop-database -q + genkdmconf &>/dev/null } post_remove() { @@ -22,4 +24,8 @@ post_remove() { groupdel kdm fi xdg-icon-resource forceupdate --theme hicolor &> /dev/null + + if [ -d usr/share/apps/kdm/faces ]; then + rm -r usr/share/apps/kdm/faces + fi } diff --git a/extra/kdebase-workspace/logind-support2.patch b/extra/kdebase-workspace/logind-support2.patch new file mode 100644 index 000000000..e36757f6a --- /dev/null +++ b/extra/kdebase-workspace/logind-support2.patch @@ -0,0 +1,124 @@ +commit 80e9e6e48ff5b84962f3a8543ee06bcd4f122623 +Author: Lukáš Tinkl <lukas@kde.org> +Date: Tue Oct 30 11:32:52 2012 +0100 + + move systemd inhibition initialization to a slot + + and call it on resume. It looks like the filedescriptor + goes away when you suspend so we need to recreate it. + + BUG: 307412 + +diff --git a/powerdevil/daemon/powerdevilcore.cpp b/powerdevil/daemon/powerdevilcore.cpp +index df79667..7f24cbb 100644 +--- a/powerdevil/daemon/powerdevilcore.cpp ++++ b/powerdevil/daemon/powerdevilcore.cpp +@@ -127,8 +127,6 @@ void Core::onBackendReady() + this, SLOT(onAcAdapterStateChanged(PowerDevil::BackendInterface::AcAdapterState))); + connect(m_backend, SIGNAL(batteryRemainingTimeChanged(qulonglong)), + this, SLOT(onBatteryRemainingTimeChanged(qulonglong))); +- connect(m_backend, SIGNAL(resumeFromSuspend()), +- this, SLOT(onResumeFromSuspend())); + connect(KIdleTime::instance(), SIGNAL(timeoutReached(int,int)), + this, SLOT(onKIdleTimeoutReached(int,int))); + connect(KIdleTime::instance(), SIGNAL(resumingFromIdle()), +@@ -139,6 +137,9 @@ void Core::onBackendReady() + // Set up the policy agent + PowerDevil::PolicyAgent::instance()->init(); + ++ connect(m_backend, SIGNAL(resumeFromSuspend()), ++ this, SLOT(onResumeFromSuspend())); ++ + // Initialize the action pool, which will also load the needed startup actions. + PowerDevil::ActionPool::instance()->init(this); + +@@ -601,6 +602,7 @@ void Core::onResumeFromSuspend() + "/ScreenSaver", + QDBusConnection::sessionBus()); + iface.SimulateUserActivity(); ++ PowerDevil::PolicyAgent::instance()->setupSystemdInhibition(); + + emit resumingFromSuspend(); + } +diff --git a/powerdevil/daemon/powerdevilpolicyagent.cpp b/powerdevil/daemon/powerdevilpolicyagent.cpp +index 70588db..0777846 100644 +--- a/powerdevil/daemon/powerdevilpolicyagent.cpp ++++ b/powerdevil/daemon/powerdevilpolicyagent.cpp +@@ -88,6 +88,7 @@ PolicyAgent *PolicyAgent::instance() + PolicyAgent::PolicyAgent(QObject* parent) + : QObject(parent) + , m_sdAvailable(false) ++ , m_systemdInhibitFd(-1) + , m_ckAvailable(false) + , m_sessionIsBeingInterrupted(false) + , m_lastCookie(0) +@@ -223,23 +224,7 @@ void PolicyAgent::onSessionHandlerRegistered(const QString & serviceName) + + onActiveSessionChanged(m_activeSessionPath); + +- // inhibit systemd handling of power/sleep/lid buttons +- // http://www.freedesktop.org/wiki/Software/systemd/inhibit +- kDebug() << "fd passing available:" << bool(managerIface.connection().connectionCapabilities() & QDBusConnection::UnixFileDescriptorPassing); +- +- QVariantList args; +- args << "handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch"; // what +- args << "PowerDevil"; // who +- args << "KDE handles power events"; // why +- args << "block"; // mode +- QDBusPendingReply<QDBusUnixFileDescriptor> desc = managerIface.asyncCallWithArgumentList("Inhibit", args); +- desc.waitForFinished(); +- if (desc.isValid()) { +- m_systemdInhibitFd = desc.value(); +- kDebug() << "systemd powersave events handling inhibited, descriptor:" << m_systemdInhibitFd.fileDescriptor(); +- } +- else +- kWarning() << "failed to inhibit systemd powersave handling"; ++ setupSystemdInhibition(); + + kDebug() << "systemd support initialized"; + } else if (serviceName == CONSOLEKIT_SERVICE) { +@@ -552,6 +537,31 @@ void PolicyAgent::releaseAllInhibitions() + } + } + ++void PolicyAgent::setupSystemdInhibition() ++{ ++ if (m_systemdInhibitFd.fileDescriptor() != -1) ++ return; ++ ++ // inhibit systemd handling of power/sleep/lid buttons ++ // http://www.freedesktop.org/wiki/Software/systemd/inhibit ++ QDBusInterface managerIface(SYSTEMD_LOGIN1_SERVICE, SYSTEMD_LOGIN1_PATH, SYSTEMD_LOGIN1_MANAGER_IFACE, QDBusConnection::systemBus()); ++ kDebug() << "fd passing available:" << bool(managerIface.connection().connectionCapabilities() & QDBusConnection::UnixFileDescriptorPassing); ++ ++ QVariantList args; ++ args << "handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch"; // what ++ args << "PowerDevil"; // who ++ args << "KDE handles power events"; // why ++ args << "block"; // mode ++ QDBusPendingReply<QDBusUnixFileDescriptor> desc = managerIface.asyncCallWithArgumentList("Inhibit", args); ++ desc.waitForFinished(); ++ if (desc.isValid()) { ++ m_systemdInhibitFd = desc.value(); ++ kDebug() << "systemd powersave events handling inhibited, descriptor:" << m_systemdInhibitFd.fileDescriptor(); ++ } ++ else ++ kWarning() << "failed to inhibit systemd powersave handling"; ++} ++ + } + + #include "powerdevilpolicyagent.moc" +diff --git a/powerdevil/daemon/powerdevilpolicyagent.h b/powerdevil/daemon/powerdevilpolicyagent.h +index a046497..f1e8c03 100644 +--- a/powerdevil/daemon/powerdevilpolicyagent.h ++++ b/powerdevil/daemon/powerdevilpolicyagent.h +@@ -74,6 +74,8 @@ public: + + RequiredPolicies unavailablePolicies(); + ++ void setupSystemdInhibition(); ++ + public Q_SLOTS: + // Exported slots + uint AddInhibition(uint types, const QString &appName, const QString &reason); diff --git a/extra/kdeplasma-addons/PKGBUILD b/extra/kdeplasma-addons/PKGBUILD index e29894932..6cd96e548 100644 --- a/extra/kdeplasma-addons/PKGBUILD +++ b/extra/kdeplasma-addons/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 167845 2012-10-03 14:46:47Z andrea $ +# $Id: PKGBUILD 170053 2012-10-31 10:13:04Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> @@ -76,17 +76,23 @@ pkgname=('kdeplasma-addons-applets-bball' 'kdeplasma-addons-wallpapers-virus' 'kdeplasma-addons-wallpapers-weather') pkgver=4.9.2 -pkgrel=1 +pkgrel=3 arch=('i686' 'x86_64' 'mips64el') url='http://www.kde.org' license=('GPL' 'LGPL') groups=('kde' 'kdeplasma-addons') makedepends=('cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble' 'eigen' 'scim' 'qwt' 'boost' 'libkexiv2' 'ibus' 'qoauth' 'qjson') -source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('9f6493d52beb2ed723038e60f5f9ab53beec4e44') +source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" + 'fix-spell-crash.patch') +sha1sums=('9f6493d52beb2ed723038e60f5f9ab53beec4e44' + '1ff0e61d73a4fce8ee7f585504a129ff50405ae6') build() { + cd ${pkgbase}-${pkgver} + patch -p1 -i "${srcdir}"/fix-spell-crash.patch + cd ../ + mkdir build cd build cmake ../${pkgbase}-${pkgver} \ diff --git a/extra/kdeplasma-addons/fix-spell-crash.patch b/extra/kdeplasma-addons/fix-spell-crash.patch new file mode 100644 index 000000000..75c26c6ad --- /dev/null +++ b/extra/kdeplasma-addons/fix-spell-crash.patch @@ -0,0 +1,267 @@ +commit 124e35885b8cd1b593b7b83a070bd0bdb5758661 +Author: Simeon Bird <bladud@gmail.com> +Date: Fri Oct 19 21:16:34 2012 -0400 + + Fix the plasma spellchecker's 'foreign language' support. + Previously this caused segfaults (even if not used) because + it called setLanguage(), which is not thread-safe, in match(). + + Instead, this patch constructs a new speller safely for each new + language, without deleting the old one. Old spellers are instead + deleted on the teardown() signal. + + While we're at it, amend the language detection so that the user + can type natural language names (eg, 'german') and have the + spell-checker find the right language. + + REVIEW: 106244 + BUG: 303831 + BUG: 264779 + FIXED-IN: 4.9.3 + +diff --git a/runners/spellchecker/spellcheck.cpp b/runners/spellchecker/spellcheck.cpp +index 672732d..cc6aeb2 100644 +--- a/runners/spellchecker/spellcheck.cpp ++++ b/runners/spellchecker/spellcheck.cpp +@@ -24,6 +24,7 @@ + // #include <KDebug> + #include <KGlobal> + #include <KIcon> ++#include <QSet> + + SpellCheckRunner::SpellCheckRunner(QObject* parent, const QVariantList &args) + : Plasma::AbstractRunner(parent, args) +@@ -43,13 +44,64 @@ void SpellCheckRunner::init() + { + Plasma::AbstractRunner::init(); + +- //store all language names, makes it posible to type "spell german TERM" if english locale is set ++ //Connect prepare and teardown signals ++ connect(this, SIGNAL(prepare()), this, SLOT(loaddata())); ++ connect(this, SIGNAL(teardown()), this, SLOT(destroydata())); ++} ++ ++//Load a default dictionary and some locale names ++void SpellCheckRunner::loaddata() ++{ ++ //Load the default speller, with the default language ++ if (!m_spellers.contains("")) { ++ m_spellers[""] = QSharedPointer<Sonnet::Speller> (new Sonnet::Speller("")); ++ } ++ //store all language names, makes it possible to type "spell german TERM" if english locale is set ++ //Need to construct a map between natual language names and names the spell-check recognises. + KLocale *locale = KGlobal::locale(); +- QStringList codes = locale->allLanguagesList(); +- foreach (const QString &code, codes) { +- const QString name = locale->languageCodeToName(code); +- m_languages[name.toLower()] = code; ++ const QStringList avail = m_spellers[""]->availableLanguages(); ++ //We need to filter the available languages so that we associate the natural language ++ //name (eg. 'german') with one sub-code. ++ QSet<QString> families; ++ //First get the families ++ foreach (const QString &code, avail) { ++ families +=code.left(2); ++ } ++ //Now for each family figure out which is the main code. ++ foreach (const QString &fcode,families) { ++ QStringList family = avail.filter(fcode); ++ QString code; ++ //If we only have one code, use it. ++ //If a string is the default language, use it ++ if (family.contains(m_spellers[""]->language())) { ++ code = m_spellers[""]->language(); ++ } else if (fcode == QLatin1String("en")) { ++ //If the family is english, default to en_US. ++ if (family.contains("en_US")) { ++ code = QLatin1String("en_US"); ++ } ++ } else if (family.contains(fcode+QLatin1String("_")+fcode.toUpper())) { ++ //If we have a speller of the form xx_XX, try that. ++ //This gets us most European languages with more than one spelling. ++ code = fcode+QLatin1String("_")+fcode.toUpper(); ++ } else { ++ //Otherwise, pick the first value as it is highest priority. ++ code = family.first(); ++ } ++ //Finally, add code to the map. ++ const QString name = locale->languageCodeToName(fcode); ++ if (!name.isEmpty()) { ++ m_languages[name.toLower()] = code; ++ } ++// kDebug() << "SPELL lang: " << fcode<< "::"<< name << " : " << code; + } ++ ++} ++ ++void SpellCheckRunner::destroydata() ++{ ++ //Clear the data arrays to save memory ++ m_spellers.clear(); + } + + void SpellCheckRunner::reloadConfiguration() +@@ -73,13 +125,52 @@ void SpellCheckRunner::reloadConfiguration() + setSyntaxes(syns); + } + ++/* Take the input query, split into a list, and see if it contains a language to spell in. ++ * Return the empty string if we can't match a language. */ ++QString SpellCheckRunner::findlang(const QStringList& terms) ++{ ++ //If first term is a language code (like en_GB), set it as the spell-check language ++ if (terms.count() >= 1 && m_spellers[""]->availableLanguages().contains(terms[0])) { ++ return terms[0]; ++ } ++ //If we have two terms and the first is a language name (eg 'french'), ++ //set it as the available language ++ else if (terms.count() >=2) { ++ QString code; ++ { ++ //Is this a descriptive language name? ++ QMap<QString, QString>::const_iterator it = m_languages.constFind(terms[0].toLower()); ++ if (it != m_languages.constEnd()) { ++ code = *it; ++ } ++ //Maybe it is a subset of a language code? ++ else { ++ QStringList codes = QStringList(m_languages.values()).filter(terms[0]); ++ if (!codes.isEmpty()) { ++ code = codes.first(); ++ } ++ } ++ } ++ ++ if (!code.isEmpty()) { ++ //We found a valid language! Check still available ++ const QStringList avail = m_spellers[""]->availableLanguages(); ++ //Does the spell-checker like it? ++ if (avail.contains(code)) { ++ return code; ++ } ++ } ++ //FIXME: Support things like 'british english' or 'canadian french' ++ } ++ return QLatin1String(""); ++} ++ + void SpellCheckRunner::match(Plasma::RunnerContext &context) + { + if (!context.isValid()) { + return; + } + +- + const QString term = context.query(); + QString query = term; + +@@ -88,53 +179,46 @@ void SpellCheckRunner::match(Plasma::RunnerContext &context) + if (query.left(len) != m_triggerWord) { + return; + } +- +- QString language = m_speller.defaultLanguage(); + query = query.mid(len).trimmed(); +- QStringList terms = query.split(' '); +- +- //two terms specified, check if first is a language +- QString customLanguage; +- if (terms.count() == 2) { +- customLanguage = terms[0]; +- query = terms[1]; +- } +- //three terms specified, check if first two are a language, e.g. "american english" +- if (terms.count() == 3) { +- customLanguage = terms[0] + ' ' + terms[1]; +- query = terms[2]; +- } +- +- if (!customLanguage.isEmpty()) { +- language = customLanguage; +- m_speller.setLanguage(language); ++ } + +- //not valid, maybe it is a language name, not a code +- if (!m_speller.isValid()) { +- QHash<QString, QString>::const_iterator it = m_languages.constFind(language.toLower()); +- //is a valid language name +- if (it != m_languages.constEnd()) { +- language = *it; ++ //Pointer to speller object with our chosen language ++ QSharedPointer<Sonnet::Speller> speller = m_spellers[""]; ++ ++ if (speller->isValid()) { ++ QStringList terms = query.split(' ', QString::SkipEmptyParts); ++ QString lang = findlang(terms); ++ //If we found a language, create a new speller object using it. ++ if (!lang.isEmpty()) { ++ //First term is the language ++ terms.removeFirst(); ++ //New speller object if we don't already have one ++ if (!m_spellers.contains(lang)) { ++ QMutexLocker lock (&m_spellLock); ++ //Check nothing happened while we were acquiring the lock ++ if (!m_spellers.contains(lang)) { ++ m_spellers[lang] = QSharedPointer<Sonnet::Speller>(new Sonnet::Speller(lang)); + } + } ++ speller = m_spellers[lang]; ++ //Rejoin the strings ++ query = terms.join(QLatin1String(" ")); + } +- +- m_speller.setLanguage(language); + } + +- if (query.size() < 3) { ++ if (query.size() < 2) { + return; + } + + Plasma::QueryMatch match(this); + match.setType(Plasma::QueryMatch::InformationalMatch); + +- if (m_speller.isValid()) { ++ if (speller->isValid()) { + QStringList suggestions; +- const bool correct = m_speller.checkAndSuggest(query,suggestions); ++ const bool correct = speller->checkAndSuggest(query,suggestions); + if (correct) { + match.setIcon(KIcon(QLatin1String( "checkbox" ))); +- match.setText(i18n("Correct")); ++ match.setText(i18n("Correct")+QLatin1String(": ")+query); + } else { + match.setIcon(KIcon(QLatin1String( "edit-delete" ))); + const QString recommended = i18n("Suggested words: %1", suggestions.join(i18nc("seperator for a list of words", ", "))); +diff --git a/runners/spellchecker/spellcheck.h b/runners/spellchecker/spellcheck.h +index 492c370..ca65452 100644 +--- a/runners/spellchecker/spellcheck.h ++++ b/runners/spellchecker/spellcheck.h +@@ -22,6 +22,7 @@ + #include <sonnet/speller.h> + + #include <plasma/abstractrunner.h> ++#include <QSharedPointer> + + /** + * This checks the spelling of query +@@ -41,12 +42,17 @@ public: + + protected slots: + void init(); ++ void loaddata(); ++ void destroydata(); + + private: ++ QString findlang(const QStringList &terms); ++ + QString m_triggerWord; +- QHash<QString, QString> m_languages;//key=language name, value=language code ++ QMap<QString, QString> m_languages;//key=language name, value=language code + bool m_requireTriggerWord; +- Sonnet::Speller m_speller; ++ QMap<QString, QSharedPointer<Sonnet::Speller> > m_spellers; //spellers ++ QMutex m_spellLock; //Lock held when constructing a new speller + }; + + K_EXPORT_PLASMA_RUNNER(spellcheckrunner, SpellCheckRunner) diff --git a/extra/libcanberra/PKGBUILD b/extra/libcanberra/PKGBUILD index b8e312874..4f5856625 100644 --- a/extra/libcanberra/PKGBUILD +++ b/extra/libcanberra/PKGBUILD @@ -1,20 +1,20 @@ -# $Id: PKGBUILD 160365 2012-06-01 12:58:34Z dreisner $ +# $Id: PKGBUILD 170059 2012-10-31 10:33:15Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=libcanberra pkgname=(libcanberra libcanberra-pulse libcanberra-gstreamer) -pkgver=0.28 -pkgrel=5 +pkgver=0.30 +pkgrel=1 pkgdesc="A small and lightweight implementation of the XDG Sound Theme Specification" arch=(i686 x86_64 'mips64el') license=('LGPL') depends=('libvorbis' 'libltdl' 'alsa-lib' 'tdb') -makedepends=('gtk-doc' 'libpulse' 'gstreamer0.10' 'gtk2' 'gtk3') +makedepends=('gtk-doc' 'libpulse' 'gstreamer' 'gtk2' 'gtk3') options=(!emptydirs) url=http://0pointer.de/lennart/projects/libcanberra -source=(http://0pointer.de/lennart/projects/${pkgbase}/${pkgbase}-${pkgver}.tar.gz +source=(http://0pointer.de/lennart/projects/${pkgbase}/${pkgbase}-${pkgver}.tar.xz libcanberra.xinit) -sha256sums=('eb1f8b2cabad7f07b6e44d606a91d73e1efca4b46daf92bd553e7222bc68868c' +sha256sums=('c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72' '68a68d66b7491f99d5aa09fe7c6ef4eb38352a2a8ff7997d184d1cbc5e80c0d3') build() { @@ -36,9 +36,6 @@ package_libcanberra() { rm -f "${pkgdir}"/usr/lib/libcanberra-gtk*.la rm -f "${pkgdir}"/usr/lib/gtk-{2,3}.0/modules/*.la - install -d "${pkgdir}/usr/share/gconf" - mv "${pkgdir}/etc/gconf/schemas" "${pkgdir}/usr/share/gconf/" - install -D "${srcdir}/libcanberra.xinit" \ "${pkgdir}/etc/X11/xinit/xinitrc.d/40-libcanberra-gtk-module" @@ -61,7 +58,7 @@ package_libcanberra-pulse() { package_libcanberra-gstreamer() { pkgdesc="GStreamer plugin for libcanberra" - depends=("$pkgbase=$pkgver-$pkgrel" 'gstreamer0.10') + depends=("$pkgbase=$pkgver-$pkgrel" 'gstreamer') cd "${srcdir}/${pkgbase}-${pkgver}" diff --git a/extra/libcanberra/libcanberra.install b/extra/libcanberra/libcanberra.install index 7f5012199..6027540fd 100644 --- a/extra/libcanberra/libcanberra.install +++ b/extra/libcanberra/libcanberra.install @@ -1,23 +1,5 @@ -pkgname=libcanberra - -post_install() { - if [ -x usr/sbin/gconfpkg ]; then - usr/sbin/gconfpkg --install ${pkgname} - fi -} - pre_upgrade() { - if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then - pre_remove - fi -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - if [ -x usr/sbin/gconfpkg ]; then - usr/sbin/gconfpkg --uninstall ${pkgname} + if [ -f usr/share/gconf/schemas/libcanberra.schemas ] && [ -x usr/sbin/gconfpkg ]; then + usr/sbin/gconfpkg --uninstall libcanberra fi } diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD index 2bb3bf12e..dc7396217 100644 --- a/extra/libreoffice/PKGBUILD +++ b/extra/libreoffice/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 169387 2012-10-20 09:31:46Z andyrtr $ +# $Id: PKGBUILD 170071 2012-10-31 14:01:16Z andyrtr $ # Maintainer: AndyRTR <andyrtr@archlinux.org> pkgbase="libreoffice" @@ -24,9 +24,9 @@ pkgname=('libreoffice-common' 'libreoffice-extension-scripting-python' 'libreoffice-extension-wiki-publisher' 'libreoffice-extension-nlpsolver') # svn up -r 142692 (last one with all extensions built) -_LOver=3.6.2.2 -pkgver=3.6.2 -pkgrel=3 +_LOver=3.6.3.2 +pkgver=3.6.3 +pkgrel=1 arch=('i686' 'x86_64') license=('LGPL3') url="http://www.libreoffice.org/" @@ -75,10 +75,10 @@ source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.xz ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - ${_additional_source_url}/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 + ${_additional_source_url}/9f9e15966b5624834157fe3d748312bc-mdds_0.6.1.tar.bz2 ${_additional_source_url}/6097739c841f671cb21332b9cc593ae7-libexttextcat-3.3.1.tar.bz2 ${_additional_source_url}/0d2dcdfbf28d6208751b33057f5361f0-libcmis-0.2.3.tar.gz - ${_additional_source_url}/ce5a1def34578b75959ac31210f031f6-libcdr-0.0.8.tar.bz2 + ${_additional_source_url}/3c0037fb07dea2f0bbae8386fa7c6a9a-libcdr-0.0.9.tar.bz2 ${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll make-pyuno-work-with-system-wide-module-install.diff buildfix.diff @@ -87,7 +87,7 @@ noextract=(94e7f271e38c976462558b4278590178-libvisio-0.0.19.tar.bz2 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2 185d60944ea767075d27247c3162b3bc-unowinreg.dll - 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 + 9f9e15966b5624834157fe3d748312bc-mdds_0.6.1.tar.bz2 ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz @@ -111,11 +111,11 @@ noextract=(94e7f271e38c976462558b4278590178-libvisio-0.0.19.tar.bz2 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip - ce5a1def34578b75959ac31210f031f6-libcdr-0.0.8.tar.bz2 + 3c0037fb07dea2f0bbae8386fa7c6a9a-libcdr-0.0.9.tar.bz2 ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip) -md5sums=('ae171ba4633cc72dba4451b1bdd3385e' - 'cdad0734d247d91a79cb282fd851d2a7' - 'e9a7e3d35432b72a4603ce094deb6a67' +md5sums=('17ccf623caa77dc135d5343a51fa1ddd' + '94a8d18009f8e0e4ae80dc34c43604d7' + 'f76c4439c211f229d49e5fb10ca2ba73' '18f577b374d60b3c760a3a3350407632' 'f02578f5218f217a9f20e9c30e119c6a' '94e7f271e38c976462558b4278590178' @@ -141,10 +141,10 @@ md5sums=('ae171ba4633cc72dba4451b1bdd3385e' 'ace6ab49184e329db254e454a010f56d' 'db60e4fde8dd6d6807523deb71ee34dc' 'ba2930200c9f019c2d93a8c88c651a0f' - '0ff7d225d087793c8c2c680d77aac3e7' + '9f9e15966b5624834157fe3d748312bc' '6097739c841f671cb21332b9cc593ae7' '0d2dcdfbf28d6208751b33057f5361f0' - 'ce5a1def34578b75959ac31210f031f6' + '3c0037fb07dea2f0bbae8386fa7c6a9a' '185d60944ea767075d27247c3162b3bc' '97bf43dda273d79ff90c848ab53b0e3c' '234e91ac65945ce1ab1e3839780e90f7' diff --git a/extra/libtasn1/PKGBUILD b/extra/libtasn1/PKGBUILD index be088182b..1a88dbdeb 100644 --- a/extra/libtasn1/PKGBUILD +++ b/extra/libtasn1/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 167197 2012-09-27 15:53:17Z andyrtr $ +# $Id: PKGBUILD 170031 2012-10-31 05:15:58Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=libtasn1 -pkgver=2.14 +pkgver=3.0 pkgrel=1 pkgdesc="The ASN.1 library used in GNUTLS" arch=('i686' 'x86_64' 'mips64el') @@ -13,8 +13,8 @@ depends=('glibc' 'texinfo') options=('!libtool') install=libtasn1.install source=(http://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz{,.sig}) -sha1sums=('22f9e0b15f870c8e03ac9cc1ead969d4d84eb931' - 'cd6fdde4f59f7c24eb738896904034f17ab490f2') +sha1sums=('0ce12f8b0460ae6eabf2a608506dbd337bf78a71' + '48abf083dc9d36cc64f0d80cebd3da1dbc47d557') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/metacity/PKGBUILD b/extra/metacity/PKGBUILD index 3bf16c859..0e96942c6 100644 --- a/extra/metacity/PKGBUILD +++ b/extra/metacity/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 166589 2012-09-12 17:45:09Z jgc $ +# $Id: PKGBUILD 170056 2012-10-31 10:19:33Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=metacity -pkgver=2.34.8 +pkgver=2.34.13 pkgrel=1 pkgdesc="A window manager for GNOME" arch=(i686 x86_64 'mips64el') @@ -15,7 +15,7 @@ options=('!libtool' '!emptydirs') install=metacity.install source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz fix_compositing_startup.patch) -sha256sums=('ab83038a9dc0b53a63b66c3f9323a10abb0b9a9ae2b5c5d3cc6bbabe2b607806' +sha256sums=('8cf4dbf0da0a6f36357ce7db7f829ec685908a7792453c662fb8184572b91075' '5094a0ffe3eb8289ed752829877c2e1b743eddf938ad3fc92fb4574b42765ae2') build() { diff --git a/extra/openmpi/PKGBUILD b/extra/openmpi/PKGBUILD index 61305009e..2e09ffcde 100644 --- a/extra/openmpi/PKGBUILD +++ b/extra/openmpi/PKGBUILD @@ -1,7 +1,7 @@ -# $Id: PKGBUILD 167415 2012-10-02 00:13:37Z stephane $ +# $Id: PKGBUILD 170075 2012-10-31 21:09:28Z stephane $ # Maintainer: Stéphane Gaudreault <stephane@archlinux.org> pkgname=openmpi -pkgver=1.6.2 +pkgver=1.6.3 pkgrel=1 pkgdesc="High performance message passing library (MPI)" arch=('i686' 'x86_64' 'mips64el') @@ -12,7 +12,7 @@ depends=('gcc-fortran' 'openssh' 'libltdl' 'hwloc') makedepends=('inetutils') options=(!libtool) source=(http://www.open-mpi.org/software/ompi/v1.6/downloads/${pkgname}-${pkgver}.tar.bz2) -sha1sums=('694fd3bac911cdb22f77175884d819b6fea871df') +sha1sums=('a61aa2dee4c47d93d88e49ebed36de25df4f6492') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/screen/PKGBUILD b/extra/screen/PKGBUILD index d691067a7..a152626c5 100644 --- a/extra/screen/PKGBUILD +++ b/extra/screen/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 147962 2012-01-29 04:41:21Z allan $ +# $Id: PKGBUILD 170087 2012-11-01 01:12:40Z thomas $ # Maintainer: Allan McRae <allan@archlinux.org> # Committer: dorphell <dorphell@gmx.net> pkgname=screen pkgver=4.0.3 -pkgrel=13 +pkgrel=15 _ptygroup=5 #the UID of our PTY/TTY group pkgdesc="Full-screen window manager that multiplexes a physical terminal" arch=('i686' 'x86_64' 'mips64el') @@ -32,7 +32,8 @@ build() { --with-sys-screenrc=/etc/screenrc --enable-colors256 \ --enable-rxvt_osc --enable-telnet \ --with-pty-group=$_ptygroup \ - --mandir=/usr/share/man --infodir=/usr/share/info + --mandir=/usr/share/man --infodir=/usr/share/info \ + --with-socket-dir=/run/screens make } diff --git a/extra/screen/screen.install b/extra/screen/screen.install index 9340e6067..3adc8f3f6 100644 --- a/extra/screen/screen.install +++ b/extra/screen/screen.install @@ -10,6 +10,11 @@ post_install() { post_upgrade() { post_install $1 + if [ $(vercmp $2 4.0.3-15) -lt 0 ]; then + echo 'The location of the screen sockets has changed.' + echo 'If you need to access running screen sessions, run' + echo ' # SCREENDIR=/tmp/screens/S-$USER/ screen ...' + fi } pre_remove() { diff --git a/extra/telepathy-kde-text-ui/PKGBUILD b/extra/telepathy-kde-text-ui/PKGBUILD index 1b8f6c055..105c44f09 100644 --- a/extra/telepathy-kde-text-ui/PKGBUILD +++ b/extra/telepathy-kde-text-ui/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 168059 2012-10-05 14:07:08Z andrea $ +# $Id: PKGBUILD 170066 2012-10-31 13:33:12Z ibiru $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Laurent Carlier <lordheavym@gmail.com> pkgname=telepathy-kde-text-ui _pkgname=ktp-text-ui pkgver=0.5.1 -pkgrel=1 +pkgrel=2 pkgdesc="Telepathy handler for Text Chats" arch=('i686' 'x86_64' 'mips64el') url="http://community.kde.org/Real-Time_Communication_and_Collaboration" diff --git a/extra/telepathy-logger/PKGBUILD b/extra/telepathy-logger/PKGBUILD index e7645f939..bd4516383 100644 --- a/extra/telepathy-logger/PKGBUILD +++ b/extra/telepathy-logger/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 156978 2012-04-23 09:10:28Z ibiru $ +# $Id: PKGBUILD 170064 2012-10-31 13:30:17Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=telepathy-logger -pkgver=0.4.0 +pkgver=0.6.0 pkgrel=1 pkgdesc="Telepathy framework logging daemon" arch=(i686 x86_64 'mips64el') url="http://telepathy.freedesktop.org/wiki/Logger" license=('LGPL2.1') -depends=('telepathy-glib' 'sqlite3' 'libxml2' 'dconf') +depends=('telepathy-glib' 'sqlite' 'libxml2' 'dconf') makedepends=('intltool' 'gnome-doc-utils' 'gobject-introspection') options=('!libtool') install=telepathy-logger.install source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.bz2) -md5sums=('0b891b860c7f3a01926f5cc22fd26120') +md5sums=('f453c49e53898c64bc423f0fdf117290') build() { cd "$pkgname-$pkgver" diff --git a/extra/transmission/PKGBUILD b/extra/transmission/PKGBUILD index da50b5292..64f106019 100644 --- a/extra/transmission/PKGBUILD +++ b/extra/transmission/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 169450 2012-10-21 11:25:20Z ibiru $ +# $Id: PKGBUILD 170069 2012-10-31 13:47:37Z ibiru $ # Maintainer : Ionut Biru <ibiru@archlinux.org> pkgbase=transmission pkgname=('transmission-cli' 'transmission-gtk' 'transmission-qt') pkgver=2.73 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64' 'mips64el') url="http://www.transmissionbt.com/" license=('MIT') @@ -14,7 +14,7 @@ source=(http://mirrors.m0k.org/transmission/files/$pkgbase-$pkgver.tar.xz transmission.tmpfiles) build() { - cd "$pkgbase-$pkgver" + cd $pkgbase-$pkgver ./configure --prefix=/usr make @@ -28,7 +28,7 @@ package_transmission-cli() { backup=('etc/conf.d/transmissiond') install=transmission-cli.install - cd "$pkgbase-$pkgver" + cd $pkgbase-$pkgver for dir in daemon cli web utils do @@ -50,7 +50,7 @@ package_transmission-gtk() { 'transmission-cli: daemon and web support') install=transmission-gtk.install - cd "$pkgbase-$pkgver" + cd $pkgbase-$pkgver make -C gtk DESTDIR="$pkgdir" install make -C po DESTDIR="$pkgdir" install @@ -63,7 +63,7 @@ package_transmission-qt() { optdepends=('transmission-cli: daemon and web support') install=transmission-qt.install - cd "$pkgbase-$pkgver" + cd $pkgbase-$pkgver make -C qt INSTALL_ROOT="$pkgdir"/usr install |