aboutsummaryrefslogtreecommitdiffstats
path: root/testing/dconf
diff options
context:
space:
mode:
Diffstat (limited to 'testing/dconf')
-rw-r--r--testing/dconf/0001-Avoid-posix_fallocate-so-it-works-on-uClibc.patch36
-rw-r--r--testing/dconf/APKBUILD41
2 files changed, 77 insertions, 0 deletions
diff --git a/testing/dconf/0001-Avoid-posix_fallocate-so-it-works-on-uClibc.patch b/testing/dconf/0001-Avoid-posix_fallocate-so-it-works-on-uClibc.patch
new file mode 100644
index 0000000000..5317b39c96
--- /dev/null
+++ b/testing/dconf/0001-Avoid-posix_fallocate-so-it-works-on-uClibc.patch
@@ -0,0 +1,36 @@
+From e6d875ff19ba7f23e68a2131d9abe2de3f39d001 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Sat, 9 Oct 2010 20:34:08 +0000
+Subject: [PATCH] Avoid posix_fallocate() so it works on uClibc
+
+It seems like the possix_fallocate() does not need to be provided on
+all implementations (see "Application Usage" in
+http://www.opengroup.org/onlinepubs/009695399/functions/posix_fallocate.html )
+
+I'm not too familiar with the code but it looks like _DConfEngine->shm
+is a mmap to a file with 1 char size. If thats the case then something
+like this would work:
+---
+ engine/dconf-engine.c | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/engine/dconf-engine.c b/engine/dconf-engine.c
+index cf57431..8eb3fa7 100644
+--- a/engine/dconf-engine.c
++++ b/engine/dconf-engine.c
+@@ -144,7 +144,11 @@ dconf_engine_setup_user (DConfEngine *engine)
+
+ if (fd >= 0)
+ {
+- if (posix_fallocate (fd, 0, 1) == 0)
++ struct stat st;
++ int r = fstat(fd, &st);
++ if (r == 0 && st.st_size == 0)
++ r = write(fd, "", 1);
++ if (r == 0)
+ {
+ engine->shm = mmap (NULL, 1, PROT_READ, MAP_SHARED, fd, 0);
+
+--
+1.7.3.1
+
diff --git a/testing/dconf/APKBUILD b/testing/dconf/APKBUILD
new file mode 100644
index 0000000000..4a73a30681
--- /dev/null
+++ b/testing/dconf/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=dconf
+pkgver=0.5.1
+pkgrel=0
+pkgdesc="A low-level configuration system."
+url="http://live.gnome.org/dconf"
+license="LGPL2.1"
+depends=""
+makedepends="vala gobject-introspection gtk+-dev glib-dev libxml2-dev"
+install=
+source="http://download.gnome.org/sources/dconf/0.5/dconf-$pkgver.tar.bz2
+ 0001-Avoid-posix_fallocate-so-it-works-on-uClibc.patch
+ "
+
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch)
+ patch -p1 -i "$srcdir/$i" || return 1
+ ;;
+ esac
+ done
+}
+
+build ()
+{
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/dconf
+ make
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="c905497d0255fe2ba58564f9655908ab dconf-0.5.1.tar.bz2
+750788f7fa6ff128ecdf7639ffff8b78 0001-Avoid-posix_fallocate-so-it-works-on-uClibc.patch"