PKGBUILDs/extra/enlightenment/PKGBUILD
Nicolas Boichat bdc766ed1b extra/enlightenment: fix segfault on start
enlightenment_start stops very quickly with a segfault:
(gdb) bt
 #0  0xb6bcba1c in pause () from /usr/lib/libpthread.so.0
 #1  <signal handler called>
 #2  0x0007672c in e_desk_show ()
 #3  0x0010ace8 in e_zone_desk_count_set ()
 #4  0x00000000 in ?? ()

After recompiling with debug symbols, I noticed this is due to
some memory corruption, and found an upstream patch that fixes the
problem (applied in their enlightenment-0.18 branch but not in
release 0.18.8):
http://git.enlightenment.org/core/enlightenment.git/commit/?h=enlightenment-0.18&id=590eb392f1438d2cde775a93aa1178c61b75e9e7

Technically, the bug is also present on x86, but does not cause a
segfault.
2014-07-13 10:36:14 +08:00

52 lines
1.6 KiB
Bash

# Maintainer: Ronald van Haren <ronald@archlinux.org>
# Contributor: Enlightenment Developers <enlightenment-devel@enlightenment.org>>
# ALARM: Nicolas Boichat <nicolas@boichat.ch>
# - Add upstream patch to fix overflow in e_desk.c
pkgname=enlightenment
pkgver=0.18.8
pkgrel=1.1
pkgdesc="Enlightenment window manager"
arch=('i686' 'x86_64')
url="http://www.enlightenment.org"
license=('BSD')
depends=('elementary' 'xcb-util-keysyms' 'hicolor-icon-theme' 'pixman' 'mesa'
'desktop-file-utils' 'udisks2' 'ttf-font' 'bluez-libs')
optdepends=('connman: network module'
'acpid: power events on laptop lid close')
provides=("enlightenment17=$pkgver" 'notification-daemon')
conflicts=("enlightenment17")
replaces=("enlightenment17")
backup=('etc/enlightenment/sysactions.conf'
'etc/xdg/menus/enlightenment.menu')
source=(http://download.enlightenment.org/rel/apps/${pkgname}/$pkgname-$pkgver.tar.gz
enlightenment-0.18.8-e-desk-overflow.patch)
install=enlightenment.install
sha1sums=('71d6212fc55ba65a47d656b0bc4891684445e3ff'
'd915cfde817dddd9e2ecf673aea53dfd06344813')
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
patch -p1 -i "${srcdir}/enlightenment-0.18.8-e-desk-overflow.patch"
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
export CFLAGS="$CFLAGS -fvisibility=hidden"
./configure --prefix=/usr --sysconfdir=/etc \
--enable-wayland-egl \
--enable-wayland-clients
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make -j1 DESTDIR="$pkgdir" install
# install LICENSE
install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}