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/vpnc-script.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-video-openchrome-includes.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 © 2014 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> | ||||
| ;;; Copyright © 2014 Alex Kost <alezost@gmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -27,6 +28,7 @@ | |||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages image) | ||||
|   #:use-module (gnu packages pkg-config) | ||||
|   #:use-module (gnu packages glib) | ||||
|   #:use-module (gnu packages xorg)) | ||||
| 
 | ||||
| ;; 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.") | ||||
|     ;; Most of the code is provided under x11 license. | ||||
|     (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