summaryrefslogtreecommitdiff
path: root/community/gsynaptics
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/gsynaptics
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/gsynaptics')
-rw-r--r--community/gsynaptics/PKGBUILD32
-rw-r--r--community/gsynaptics/build-filename.dpatch20
-rw-r--r--community/gsynaptics/do-not-set-zero.dpatch189
-rw-r--r--community/gsynaptics/dot-fixes.dpatch73
-rw-r--r--community/gsynaptics/gsynaptics.install16
5 files changed, 330 insertions, 0 deletions
diff --git a/community/gsynaptics/PKGBUILD b/community/gsynaptics/PKGBUILD
new file mode 100644
index 000000000..af8b8cc81
--- /dev/null
+++ b/community/gsynaptics/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 248 2009-07-21 09:55:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gsynaptics
+pkgver=0.9.16
+pkgrel=1
+pkgdesc="A settings tool for Synaptics touchpad driver"
+arch=(i686 x86_64)
+url="http://gsynaptics.sourceforge.jp"
+license=("GPL")
+depends=('libgnomeui' 'synaptics')
+makedepends=('intltool' 'gettext' 'gnome-doc-utils')
+install=$pkgname.install
+source=(http://globalbase.dl.sourceforge.jp/gsynaptics/38463/gsynaptics-$pkgver.tar.gz \
+ do-not-set-zero.dpatch \
+ dot-fixes.dpatch \
+ build-filename.dpatch)
+md5sums=('571828ddca2f1d9d6ea47e072db1959d'
+ 'd6308d93fd4d04c686ba24422ed99905'
+ '4c35d5d0803296233d50146963a0bcbc'
+ '11011a651f143103614fb69dd5aa77a1')
+
+build() {
+ cd $startdir/src/gsynaptics-$pkgver
+ patch -p1 <$srcdir/dot-fixes.dpatch
+ patch -p1 <$srcdir/do-not-set-zero.dpatch
+ patch -p1 <$srcdir/build-filename.dpatch
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/gsynaptics/build-filename.dpatch b/community/gsynaptics/build-filename.dpatch
new file mode 100644
index 000000000..c48689533
--- /dev/null
+++ b/community/gsynaptics/build-filename.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## build-filename.dpatch
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: https://sourceforge.jp/tracker/index.php?func=detail&aid=12568&group_id=1720&atid=6435
+## DP: Missing terminating NULL for g_build_filename call.
+
+@DPATCH@
+diff -urNad gsynaptics-0.9.14~/src/main.c gsynaptics-0.9.14/src/main.c
+--- gsynaptics-0.9.14~/src/main.c 2008-02-28 23:27:28.000000000 +0100
++++ gsynaptics-0.9.14/src/main.c 2008-05-17 08:34:04.000000000 +0200
+@@ -690,7 +690,7 @@
+
+ gtk_window_set_default_size (GTK_WINDOW (widget), 400, -1);
+
+- path = g_build_filename (DATADIR "/pixmaps", "touchpad.png");
++ path = g_build_filename (DATADIR, "pixmaps", "touchpad.png", NULL);
+ if (path)
+ {
+ icon_pixbuf = gdk_pixbuf_new_from_file (path, NULL);
diff --git a/community/gsynaptics/do-not-set-zero.dpatch b/community/gsynaptics/do-not-set-zero.dpatch
new file mode 100644
index 000000000..f3a4aee72
--- /dev/null
+++ b/community/gsynaptics/do-not-set-zero.dpatch
@@ -0,0 +1,189 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## do-not-set-zero.dpatch by Michal Čihař <nijel@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Do not set to 0 when some keys are not defined.
+## DP: Debian bug #480744.
+## DP: Forwarded to https://sourceforge.jp/tracker/index.php?func=detail&aid=12545&group_id=1720&atid=6435
+
+@DPATCH@
+diff -urNad gsynaptics-0.9.14~/src/init.c gsynaptics-0.9.14/src/init.c
+--- gsynaptics-0.9.14~/src/init.c 2008-02-28 23:27:41.000000000 +0100
++++ gsynaptics-0.9.14/src/init.c 2008-05-17 09:14:12.000000000 +0200
+@@ -36,63 +36,148 @@
+ {
+ gboolean b_value;
+ gint i_value;
++ GConfValue *gval = NULL;
+
+ if (!gconf_client_dir_exists (gconf, DIRNAME, NULL))
+ return;
+
+ /* touchpad on/off */
+- b_value = gconf_client_get_bool (gconf, OFF_KEY, NULL);
+- g_synaptics_set_enabled (synaptics, b_value ? 1 : 0);
++ gval = gconf_client_get (gconf, OFF_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_enabled (synaptics, b_value ? 1 : 0);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* vertical scroll delta */
+- i_value = gconf_client_get_int (gconf, VERTSCROLLDELTA_KEY, NULL);
+- g_synaptics_set_vertical_scroll_delta (synaptics, i_value);
++ gval = gconf_client_get (gconf, VERTSCROLLDELTA_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_vertical_scroll_delta (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* horizontal scroll delta */
+- i_value = gconf_client_get_int (gconf, HORIZSCROLLDELTA_KEY, NULL);
+- g_synaptics_set_horizontal_scroll_delta (synaptics, i_value);
++ gval = gconf_client_get (gconf, HORIZSCROLLDELTA_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_horizontal_scroll_delta (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* circular scroll */
+- i_value = gconf_client_get_int (gconf, CIRCSCROLLDELTA_KEY, NULL);
+- b_value = gconf_client_get_bool (gconf, CIRCULARSCROLLING_KEY, NULL);
+- g_synaptics_set_circular_scroll_delta (synaptics, i_value);
+- g_synaptics_set_circular_scroll_enabled (synaptics, b_value);
++ gval = gconf_client_get (gconf, CIRCSCROLLDELTA_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_circular_scroll_delta (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
++ gval = gconf_client_get (gconf, CIRCULARSCROLLING_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_circular_scroll_enabled (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+ /* the trigger of circular scrolling */
+- i_value = gconf_client_get_int (gconf, CIRCSCROLLTRIGGER_KEY, NULL);
+- g_synaptics_set_circular_scroll_trigger (synaptics, i_value);
++ gval = gconf_client_get (gconf, CIRCSCROLLTRIGGER_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_circular_scroll_trigger (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+
+ /* tapping time */
+- i_value = gconf_client_get_int (gconf, MAXTAPTIME_KEY, NULL);
+- g_synaptics_set_tap_time (synaptics, i_value);
++ gval = gconf_client_get (gconf, MAXTAPTIME_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_tap_time (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* fast taps */
+- b_value = gconf_client_get_bool (gconf, FASTTAPS_KEY, NULL);
+- g_synaptics_set_fast_taps (synaptics, b_value);
++ gval = gconf_client_get (gconf, FASTTAPS_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_fast_taps (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* sensitivity */
+- i_value = gconf_client_get_int (gconf, SENSITIVITY_KEY, NULL);
+- g_synaptics_set_sensitivity (synaptics, i_value);
++ gval = gconf_client_get (gconf, SENSITIVITY_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_sensitivity (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* coasting */
+- b_value = gconf_client_get_bool (gconf, COASTENABLE_KEY, NULL);
+- g_synaptics_set_coasting_enabled (synaptics, b_value);
++ gval = gconf_client_get (gconf, COASTENABLE_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_coasting_enabled (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* edge motion */
+- b_value = gconf_client_get_bool (gconf, EDGEMOTIONUSEALWAYS_KEY, NULL);
+- g_synaptics_set_edge_motion_enabled (synaptics, b_value);
++ gval = gconf_client_get (gconf, EDGEMOTIONUSEALWAYS_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_edge_motion_enabled (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* min speed */
+- i_value = gconf_client_get_int (gconf, MINSPEED_KEY, NULL);
+- g_synaptics_set_min_speed (synaptics, i_value);
++ gval = gconf_client_get (gconf, MINSPEED_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_min_speed (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* max speed */
+- i_value = gconf_client_get_int (gconf, MAXSPEED_KEY, NULL);
+- g_synaptics_set_max_speed (synaptics, i_value);
++ gval = gconf_client_get (gconf, MAXSPEED_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_max_speed (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* accel factor */
+- i_value = gconf_client_get_int (gconf, ACCELFACTOR_KEY, NULL);
+- g_synaptics_set_accel_factor (synaptics, i_value);
++ gval = gconf_client_get (gconf, ACCELFACTOR_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_accel_factor (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ }
+
diff --git a/community/gsynaptics/dot-fixes.dpatch b/community/gsynaptics/dot-fixes.dpatch
new file mode 100644
index 000000000..ec8e06fcd
--- /dev/null
+++ b/community/gsynaptics/dot-fixes.dpatch
@@ -0,0 +1,73 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## dot-fixces.dpatch by Unknown
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix format strings to always use . as decimal separator, see
+## DP: https://sourceforge.jp/tracker/index.php?func=detail&aid=12498&group_id=1720&atid=6435
+## DP: Forwarded to https://sourceforge.jp/tracker/index.php?func=detail&aid=12544&group_id=1720&atid=6435
+
+@DPATCH@
+diff -urNad gsynaptics-0.9.14~/src/gsynaptics.c gsynaptics-0.9.14/src/gsynaptics.c
+--- gsynaptics-0.9.14~/src/gsynaptics.c 2008-02-28 23:21:17.000000000 +0100
++++ gsynaptics-0.9.14/src/gsynaptics.c 2008-05-17 08:36:54.000000000 +0200
+@@ -713,8 +713,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient AccelFactor=%f",
+- (gdouble)value / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)value / 1000);
++ command = g_strdup_printf ("synclient AccelFactor=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -734,8 +735,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient MaxSpeed=%f",
+- (gdouble)value / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)value / 1000);
++ command = g_strdup_printf ("synclient MaxSpeed=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -755,8 +757,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient MinSpeed=%f",
+- (gdouble)value / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)value / 1000);
++ command = g_strdup_printf ("synclient MinSpeed=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -822,8 +825,10 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient CoastingSpeedThreshold=%f",
+- thresh);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), thresh);
++ command = g_strdup_printf ("synclient CoastingSpeed=%s",
++ strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -843,8 +848,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient CircScrollDelta=%f",
+- (gdouble)delta / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)delta / 1000);
++ command = g_strdup_printf ("synclient CircScrollDelta=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
diff --git a/community/gsynaptics/gsynaptics.install b/community/gsynaptics/gsynaptics.install
new file mode 100644
index 000000000..a0f279ee6
--- /dev/null
+++ b/community/gsynaptics/gsynaptics.install
@@ -0,0 +1,16 @@
+post_install() {
+cat << EOF
+>>>
+>>> This tool can only be used if "SHMConfig" "true" is set
+>>> in the synaptics section in your xorg.conf
+>>>
+>>> Also have gsynaptics-init start with gnome by going to
+>>> [Desktop] - [Preferences] - [Sessions] - [Startup Programs]
+>>> Non-GNOME users can start it with their .xinitrc or .xsession
+>>>
+EOF
+}
+
+op=$1
+shift
+$op $*