gnu: Add wmctrl.
* gnu/packages/xdisorg.scm (wmctrl): New variable. * gnu/packages/patches/wmctrl-64-fix.patch: New file. * gnu-system.am (dist_patch_DATA): Add it.
This commit is contained in:
		
							parent
							
								
									426fde9ae1
								
							
						
					
					
						commit
						2e88e089da
					
				
					 3 changed files with 69 additions and 0 deletions
				
			
		|  | @ -448,6 +448,7 @@ dist_patch_DATA =						\ | ||||||
|   gnu/packages/patches/util-linux-perl.patch			\ |   gnu/packages/patches/util-linux-perl.patch			\ | ||||||
|   gnu/packages/patches/vpnc-script.patch			\ |   gnu/packages/patches/vpnc-script.patch			\ | ||||||
|   gnu/packages/patches/w3m-fix-compile.patch			\ |   gnu/packages/patches/w3m-fix-compile.patch			\ | ||||||
|  |   gnu/packages/patches/wmctrl-64-fix.patch			\ | ||||||
|   gnu/packages/patches/xf86-input-synaptics-glibc-2.20.patch	\ |   gnu/packages/patches/xf86-input-synaptics-glibc-2.20.patch	\ | ||||||
|   gnu/packages/patches/xf86-video-openchrome-includes.patch	\ |   gnu/packages/patches/xf86-video-openchrome-includes.patch	\ | ||||||
|   gnu/packages/patches/xmodmap-asprintf.patch |   gnu/packages/patches/xmodmap-asprintf.patch | ||||||
|  |  | ||||||
							
								
								
									
										32
									
								
								gnu/packages/patches/wmctrl-64-fix.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								gnu/packages/patches/wmctrl-64-fix.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | ||||||
|  | Description: Correct 64 Architecture implementation of 32 bit data | ||||||
|  | Author: Chris Donoghue <cdonoghu@gmail.com> | ||||||
|  | Bug-Debian: http://bugs.debian.org/362068 | ||||||
|  | 
 | ||||||
|  | --- wmctrl-1.07.orig/main.c
 | ||||||
|  | +++ wmctrl-1.07/main.c
 | ||||||
|  | @@ -1425,6 +1425,16 @@ static gchar *get_property (Display *dis
 | ||||||
|  |       * | ||||||
|  |       * long_length = Specifies the length in 32-bit multiples of the | ||||||
|  |       *               data to be retrieved. | ||||||
|  | +     *
 | ||||||
|  | +     * NOTE:  see 
 | ||||||
|  | +     * http://mail.gnome.org/archives/wm-spec-list/2003-March/msg00067.html
 | ||||||
|  | +     * In particular:
 | ||||||
|  | +     *
 | ||||||
|  | +     * 	When the X window system was ported to 64-bit architectures, a
 | ||||||
|  | +     * rather peculiar design decision was made. 32-bit quantities such
 | ||||||
|  | +     * as Window IDs, atoms, etc, were kept as longs in the client side
 | ||||||
|  | +     * APIs, even when long was changed to 64 bits.
 | ||||||
|  | +     *
 | ||||||
|  |       */ | ||||||
|  |      if (XGetWindowProperty(disp, win, xa_prop_name, 0, MAX_PROPERTY_VALUE_LEN / 4, False, | ||||||
|  |              xa_prop_type, &xa_ret_type, &ret_format,      | ||||||
|  | @@ -1441,6 +1451,8 @@ static gchar *get_property (Display *dis
 | ||||||
|  |   | ||||||
|  |      /* null terminate the result to make string handling easier */ | ||||||
|  |      tmp_size = (ret_format / 8) * ret_nitems; | ||||||
|  | +    /* Correct 64 Architecture implementation of 32 bit data */
 | ||||||
|  | +    if(ret_format==32) tmp_size *= sizeof(long)/4;
 | ||||||
|  |      ret = g_malloc(tmp_size + 1); | ||||||
|  |      memcpy(ret, ret_prop, tmp_size); | ||||||
|  |      ret[tmp_size] = '\0'; | ||||||
|  | @ -2,6 +2,7 @@ | ||||||
| ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> | ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> | ||||||
| ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> | ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> | ||||||
| ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> | ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> | ||||||
|  | ;;; Copyright © 2014 Alex Kost <alezost@gmail.com> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -27,6 +28,7 @@ | ||||||
|   #:use-module (gnu packages compression) |   #:use-module (gnu packages compression) | ||||||
|   #:use-module (gnu packages image) |   #:use-module (gnu packages image) | ||||||
|   #:use-module (gnu packages pkg-config) |   #:use-module (gnu packages pkg-config) | ||||||
|  |   #:use-module (gnu packages glib) | ||||||
|   #:use-module (gnu packages xorg)) |   #:use-module (gnu packages xorg)) | ||||||
| 
 | 
 | ||||||
| ;; packages outside the x.org system proper | ;; packages outside the x.org system proper | ||||||
|  | @ -215,3 +217,37 @@ notification protocol.  The reference implementation is mostly under an X Window | ||||||
| System style license, and has no special dependencies.") | System style license, and has no special dependencies.") | ||||||
|     ;; Most of the code is provided under x11 license. |     ;; Most of the code is provided under x11 license. | ||||||
|     (license license:lgpl2.0+))) |     (license license:lgpl2.0+))) | ||||||
|  | 
 | ||||||
|  | (define-public wmctrl | ||||||
|  |   (package | ||||||
|  |     (name "wmctrl") | ||||||
|  |     (version "1.07") | ||||||
|  |     (source (origin | ||||||
|  |               (method url-fetch) | ||||||
|  |               (uri (string-append | ||||||
|  |                     "http://tomas.styblo.name/wmctrl/dist/wmctrl-" | ||||||
|  |                     version ".tar.gz")) | ||||||
|  |               (sha256 | ||||||
|  |                (base32 | ||||||
|  |                 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np")) | ||||||
|  |               (patches (list (search-patch "wmctrl-64-fix.patch"))))) | ||||||
|  |     (build-system gnu-build-system) | ||||||
|  |     (arguments | ||||||
|  |      '(#:configure-flags | ||||||
|  |        (list (string-append "--mandir=" | ||||||
|  |                             (assoc-ref %outputs "out") | ||||||
|  |                             "/share/man")))) | ||||||
|  |     (native-inputs | ||||||
|  |      `(("pkg-config" ,pkg-config))) | ||||||
|  |     (inputs | ||||||
|  |      `(("libx11" ,libx11) | ||||||
|  |        ("libxmu" ,libxmu) | ||||||
|  |        ("glib" ,glib))) | ||||||
|  |     (home-page "http://tomas.styblo.name/wmctrl/") | ||||||
|  |     (synopsis "Command-line tool to control X window managers") | ||||||
|  |     (description | ||||||
|  |      "Wmctrl allows to interact with an X window manager that is compatible | ||||||
|  | with the EWMH/NetWM specification.  It can query the window manager for | ||||||
|  | information, and request for certain window management actions (resize and | ||||||
|  | move windows, switch between desktops, etc.)") | ||||||
|  |     (license license:gpl2+))) | ||||||
|  |  | ||||||
		Reference in a new issue