Skip to contentSkip to conversation

Add gpm (general purpose mouse) server package

PATCH New julien.boibessot at free.fr 2 participants 4 messages Jan 15, 2014 – Jan 16, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Add gpm (general purpose mouse) server package

From: Julien Boibessot <[email protected]>

To test it:
* configure a getty on tty1 (virtual Framebuffer terminal)
* plug USB keyboard and mouse, login in tty1
* launch gpm: gpm -m /dev/input/mouse0 -t imps2
* mouse cut & paste should work on terminal
* launch gpm-root from this terminal
* Ctrl+mouse buttons should open text menus

---
 package/Config.in     |    1 +
 package/gpm/Config.in |   20 ++++++++++++++++++++
 package/gpm/gpm.mk    |   39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 package/gpm/Config.in
 create mode 100644 package/gpm/gpm.mk
package/Config.in +1 -0
index 78c0e06..d52c65e 100644
@@ -290,6 +290,7 @@ source "package/fmtools/Config.in"
 source "package/freescale-imx/Config.in"
 source "package/fxload/Config.in"
 source "package/gadgetfs-test/Config.in"
+source "package/gpm/Config.in"
 source "package/gpsd/Config.in"
 source "package/gptfdisk/Config.in"
 source "package/gvfs/Config.in"
package/gpm/Config.in new file +20 -0
new file mode 100644
index 0000000..b60f4a3
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_GPM
+	bool "gpm mouse server"
+	help
+	  "gpm" means general purpose mouse (server) and provides mouse support
+	  for Linux virtual consoles.
+	  gpm-root (to draw menus in current virtual console; config file in
+	  /etc/gpm-root.conf) and disable-paste (to disable paste buffer for
+	  security reasons), will also be installed.
+
+	  http://www.nico.schottelius.org/software/gpm/
+
+if BR2_PACKAGE_GPM
+
+config BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS
+	bool "install gpm test tools also"
+	help
+	  Install gpm test tools (get-versions, mev, hltest, mouse-test,
+	  display-buttons & display-coords).
+
+endif
package/gpm/gpm.mk new file +39 -0
new file mode 100644
index 0000000..49ac8df
@@ -0,0 +1,39 @@
+#############################################################
+#
+# gpm
+#
+#############################################################
+
+GPM_VERSION = 1.20.7
+GPM_SOURCE = gpm-$(GPM_VERSION).tar.bz2
+GPM_SITE = http://www.nico.schottelius.org/software/gpm/archives/
+GPM_LICENSE = GPLv2+
+GPM_LICENSE_FILES = COPYING
+
+GPM_INSTALL_STAGING = YES
+
+# To generate missing configure:
+define GPM_AUTOGEN_CALL
+	cd $(@D); ./autogen.sh
+endef
+
+GPM_PRE_CONFIGURE_HOOKS += GPM_AUTOGEN_CALL
+
+define GPM_REMOVE_TEST_TOOLS_FROM_TARGET
+	for tools in mev hltest mouse-test display-buttons \
+			get-versions display-coords; do \
+		rm -f $(TARGET_DIR)/usr/bin/$$tools ; \
+	done
+endef
+
+ifeq ($(BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS),)
+GPM_POST_INSTALL_TARGET_HOOKS += GPM_REMOVE_TEST_TOOLS_FROM_TARGET
+endif
+
+define GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET
+	$(INSTALL) -m 0644 -D $(@D)/conf/gpm-root.conf $(TARGET_DIR)/etc/
+endef
+
+GPM_POST_INSTALL_TARGET_HOOKS += GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET
+
+$(eval $(autotools-package))
Signature · 1 line
1.7.5.4
#1 lore raw

PATCH 1/1 Add gpm (general purpose mouse) server package

Hi,

Le 15/01/2014 18:27, julien.boibessot at free.fr a ?crit :

Quoted 92 lines

From: Julien Boibessot <[email protected]>

To test it:
* configure a getty on tty1 (virtual Framebuffer terminal)
* plug USB keyboard and mouse, login in tty1
* launch gpm: gpm -m /dev/input/mouse0 -t imps2
* mouse cut & paste should work on terminal
* launch gpm-root from this terminal
* Ctrl+mouse buttons should open text menus

---
  package/Config.in     |    1 +
  package/gpm/Config.in |   20 ++++++++++++++++++++
  package/gpm/gpm.mk    |   39 +++++++++++++++++++++++++++++++++++++++
  3 files changed, 60 insertions(+), 0 deletions(-)

create mode 100644 package/gpm/Config.in
create mode 100644 package/gpm/gpm.mk

package/Config.in +1 -0
index 78c0e06..d52c65e 100644
@@ -290,6 +290,7 @@ source "package/fmtools/Config.in"
  source "package/freescale-imx/Config.in"
  source "package/fxload/Config.in"
  source "package/gadgetfs-test/Config.in"
+source "package/gpm/Config.in"
  source "package/gpsd/Config.in"
  source "package/gptfdisk/Config.in"
  source "package/gvfs/Config.in"
package/gpm/Config.in new file +20 -0
new file mode 100644
index 0000000..b60f4a3
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_GPM
+	bool "gpm mouse server"
+	help
+	  "gpm" means general purpose mouse (server) and provides mouse support
+	  for Linux virtual consoles.
+	  gpm-root (to draw menus in current virtual console; config file in
+	  /etc/gpm-root.conf) and disable-paste (to disable paste buffer for
+	  security reasons), will also be installed.
+
+	  http://www.nico.schottelius.org/software/gpm/
+
+if BR2_PACKAGE_GPM
+
+config BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS
+	bool "install gpm test tools also"
+	help
+	  Install gpm test tools (get-versions, mev, hltest, mouse-test,
+	  display-buttons & display-coords).
+
+endif
package/gpm/gpm.mk new file +29 -0
new file mode 100644
index 0000000..49ac8df
@@ -0,0 +1,39 @@
+#############################################################
+#
+# gpm
+#
+#############################################################
+
+GPM_VERSION = 1.20.7
+GPM_SOURCE = gpm-$(GPM_VERSION).tar.bz2
+GPM_SITE = http://www.nico.schottelius.org/software/gpm/archives/
+GPM_LICENSE = GPLv2+
+GPM_LICENSE_FILES = COPYING
+
+GPM_INSTALL_STAGING = YES
+
+# To generate missing configure:
+define GPM_AUTOGEN_CALL
+	cd $(@D); ./autogen.sh
+endef
+
+GPM_PRE_CONFIGURE_HOOKS += GPM_AUTOGEN_CALL
+
+define GPM_REMOVE_TEST_TOOLS_FROM_TARGET
+	for tools in mev hltest mouse-test display-buttons \
+			get-versions display-coords; do \
+		rm -f $(TARGET_DIR)/usr/bin/$$tools ; \
+	done
+endef
+
+ifeq ($(BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS),)

package/gpm/gpm.mk line 39

Quoted 10 lines
package/gpm/gpm.mk new file +10 -0
+GPM_POST_INSTALL_TARGET_HOOKS += GPM_REMOVE_TEST_TOOLS_FROM_TARGET
+endif
+
+define GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET
+	$(INSTALL) -m 0644 -D $(@D)/conf/gpm-root.conf $(TARGET_DIR)/etc/
+endef
+
+GPM_POST_INSTALL_TARGET_HOOKS += GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET
+
+$(eval $(autotools-package))

May I suggest you to test gpm package with different toolchain configuration ?

It won't build in static case (BR2_PREFER_STATIC_LIB=y):
"i686-buildroot-linux-uclibc/bin/ld: attempted static link of dynamic object `lib/libgpm.so.2'
collect2: error: ld returned 1 exit status"

There is also some errors about missing gpm.h in these files: (wrong path) display-buttons.c
display-coords.c
get-versions.c
||
And It would be good to disable the doc installation on target.

Thank for your contribution (I was working on gpm package too ;-) )

Best regards,
Romain Naour
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140115/2df28d9a/attachment-0001.html>

#2 lore raw

PATCH 1/1 Add gpm (general purpose mouse) server package

Hello Romain,

and thanks for the review !

Quoted 108 lines · Romain Naour

Hi,

Le 15/01/2014 18:27, julien.boibessot at free.fr a ?crit :

Quoted 92 lines

From: Julien Boibessot <[email protected]>

To test it:
* configure a getty on tty1 (virtual Framebuffer terminal)
* plug USB keyboard and mouse, login in tty1
* launch gpm: gpm -m /dev/input/mouse0 -t imps2
* mouse cut & paste should work on terminal
* launch gpm-root from this terminal
* Ctrl+mouse buttons should open text menus

---
 package/Config.in     |    1 +
 package/gpm/Config.in |   20 ++++++++++++++++++++
 package/gpm/gpm.mk    |   39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 package/gpm/Config.in
 create mode 100644 package/gpm/gpm.mk
package/Config.in +1 -0
index 78c0e06..d52c65e 100644
@@ -290,6 +290,7 @@ source "package/fmtools/Config.in"
 source "package/freescale-imx/Config.in"
 source "package/fxload/Config.in"
 source "package/gadgetfs-test/Config.in"
+source "package/gpm/Config.in"
 source "package/gpsd/Config.in"
 source "package/gptfdisk/Config.in"
 source "package/gvfs/Config.in"
package/gpm/Config.in new file +20 -0
new file mode 100644
index 0000000..b60f4a3
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_GPM
+	bool "gpm mouse server"
+	help
+	  "gpm" means general purpose mouse (server) and provides mouse support
+	  for Linux virtual consoles.
+	  gpm-root (to draw menus in current virtual console; config file in
+	  /etc/gpm-root.conf) and disable-paste (to disable paste buffer for
+	  security reasons), will also be installed.
+
+	  http://www.nico.schottelius.org/software/gpm/
+
+if BR2_PACKAGE_GPM
+
+config BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS
+	bool "install gpm test tools also"
+	help
+	  Install gpm test tools (get-versions, mev, hltest, mouse-test,
+	  display-buttons & display-coords).
+
+endif
package/gpm/gpm.mk new file +29 -0
new file mode 100644
index 0000000..49ac8df
@@ -0,0 +1,39 @@
+#############################################################
+#
+# gpm
+#
+#############################################################
+
+GPM_VERSION = 1.20.7
+GPM_SOURCE = gpm-$(GPM_VERSION).tar.bz2
+GPM_SITE = http://www.nico.schottelius.org/software/gpm/archives/
+GPM_LICENSE = GPLv2+
+GPM_LICENSE_FILES = COPYING
+
+GPM_INSTALL_STAGING = YES
+
+# To generate missing configure:
+define GPM_AUTOGEN_CALL
+	cd $(@D); ./autogen.sh
+endef
+
+GPM_PRE_CONFIGURE_HOOKS += GPM_AUTOGEN_CALL
+
+define GPM_REMOVE_TEST_TOOLS_FROM_TARGET
+	for tools in mev hltest mouse-test display-buttons \
+			get-versions display-coords; do \
+		rm -f $(TARGET_DIR)/usr/bin/$$tools ; \
+	done
+endef
+
+ifeq ($(BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS),)

package/gpm/gpm.mk line 39

Quoted 10 lines
package/gpm/gpm.mk new file +10 -0
+GPM_POST_INSTALL_TARGET_HOOKS += GPM_REMOVE_TEST_TOOLS_FROM_TARGET
+endif
+
+define GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET
+	$(INSTALL) -m 0644 -D $(@D)/conf/gpm-root.conf $(TARGET_DIR)/etc/
+endef
+
+GPM_POST_INSTALL_TARGET_HOOKS += GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET
+
+$(eval $(autotools-package))

May I suggest you to test gpm package with different toolchain configuration ?

Quoted 4 lines

It won't build in static case (BR2_PREFER_STATIC_LIB=y):
"i686-buildroot-linux-uclibc/bin/ld: attempted static link of dynamic object `lib/libgpm.so.2'
collect2: error: ld returned 1 exit status"

When I send patches they have been tested on different ARM target with mainly 2 uClibc configs ("default" and "with large file, threads and Co"), but not the one you mentionned (static lib)... sorry :-( Have you other configs that could lead to compilation problems ?

Quoted 5 lines

There is also some errors about missing gpm.h in these files: (wrong path) display-buttons.c
display-coords.c
get-versions.c

where do you see that error ? (for me these tools are compiling fine and working on target)

Quoted 2 lines

||
And It would be good to disable the doc installation on target.

why ?
/usr/share/info/ and /usr/share/man/ are cleaned by Buildroot before generating root filesystem images.
Am I wrong ?

Quoted 2 lines

Thank for your contribution (I was working on gpm package too ;-) )

Is yours very different from mine ? I'm not against merging your work and sharing the credits or vis et versa.

Best regards,
Julien
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140116/2bb870c8/attachment.html>

#3 lore raw

PATCH 1/1 Add gpm (general purpose mouse) server package

Hi Julien,

Le 16/01/2014 20:16, Julien Boibessot a ?crit :

Quoted 4 lines

Hello Romain,

and thanks for the review !

You're welcome.

Quoted 8 lines
Quoted 7 lines

May I suggest you to test gpm package with different toolchain configuration ?

It won't build in static case (BR2_PREFER_STATIC_LIB=y):
"i686-buildroot-linux-uclibc/bin/ld: attempted static link of dynamic object `lib/libgpm.so.2'
collect2: error: ld returned 1 exit status"

Quoted 4 lines

When I send patches they have been tested on different ARM target with mainly 2 uClibc configs ("default" and "with large file, threads and Co"), but not the one you mentionned (static lib)... sorry :-( Have you other configs that could lead to compilation problems ?

It's common source of failure in autobuilder, especially with new packages. I'm not sure about mmu less case (BR2_USE_MMU=n)...

Quoted 10 lines
Quoted 7 lines

There is also some errors about missing gpm.h in these files: (wrong path)
display-buttons.c
display-coords.c
get-versions.c

where do you see that error ? (for me these tools are compiling fine and working on target)

I get these error when ncurses is missing (see below):
prog/display-buttons.c:39:57: fatal error: gpm.h: no such file or directory compilation terminated.
prog/display-coords.c:40:57: fatal error: gpm.h: no such file or directory compilation terminated.
prog/get-versions.c:25:57: fatal error: gpm.h: no such file or directory compilation terminated.

I need to add "headers/" before gpm.h

There is an optional dependency on ncurses:
ifeq ($(BR2_PACKAGE_NCURSES),y)
GPM_DEPENDENCIES += ncurses
GPM_CONF_OPT += --with-curses
else
GPM_CONF_OPT += --without-curses
endif

Quoted 8 lines
Quoted 3 lines

||
And It would be good to disable the doc installation on target.

why ?
/usr/share/info/ and /usr/share/man/ are cleaned by Buildroot before generating root filesystem images.
Am I wrong ?

Sorry your right, I was abused by my command line :
"make toolchain gpm" which doesn't run target-finalize.

But this script (/usr/share/emacs/site-lisp/t-mouse.el) remain on target I'm not sure it is really useful.
You can remove it with:
GPM_CONF_OPT += ac_cv_path_emacs=no

Be careful with makeinfo, because some host don't have it and fail to build the documentation.
Normally you can disable makeinfo with:
GPM_CONF_OPT += ac_cv_path_MAKEINFO=no
But I get an error during install...

Quoted 6 lines
Quoted 3 lines

Thank for your contribution (I was working on gpm package too ;-) )

Is yours very different from mine ? I'm not against merging your work and sharing the credits or vis et versa.

Thanks, I gave you all my notes :)

Best regards,
Romain Naour
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140117/d39b9318/attachment.html>