Files
main/x11/misc/wmctrl/files/wmctrl_1.07-6.diff
T

424 lines
15 KiB
Diff

--- wmctrl-1.07.orig/debian/control
+++ wmctrl-1.07/debian/control
@@ -0,0 +1,20 @@
+Source: wmctrl
+Section: x11
+Priority: optional
+Maintainer: Decklin Foster <decklin@red-bean.com>
+Build-Depends: debhelper (>= 4.0.0), x11proto-core-dev, libx11-dev, libxmu-dev, libglib2.0-dev (>= 2.4.0)
+Standards-Version: 3.6.2
+
+Package: wmctrl
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: control an EWMH/NetWM compatible X Window Manager
+ Wmctrl is a command line tool to interact with an
+ EWMH/NetWM compatible X Window Manager (examples include
+ Enlightenment, icewm, kwin, metacity, and sawfish).
+ .
+ Wmctrl provides command line access to almost all the features
+ defined in the EWMH specification. For example it can maximize
+ windows, make them sticky, set them to be always on top. It can
+ switch and resize desktops and perform many other useful
+ operations.
--- wmctrl-1.07.orig/debian/wmctrl.docs
+++ wmctrl-1.07/debian/wmctrl.docs
@@ -0,0 +1 @@
+README
--- wmctrl-1.07.orig/debian/watch
+++ wmctrl-1.07/debian/watch
@@ -0,0 +1,2 @@
+version=2
+http://sweb.cz/tripie/utils/wmctrl/dist/ wmctrl-(.*)\.tar\.gz debian uupdate
--- wmctrl-1.07.orig/debian/compat
+++ wmctrl-1.07/debian/compat
@@ -0,0 +1 @@
+4
--- wmctrl-1.07.orig/debian/changelog
+++ wmctrl-1.07/debian/changelog
@@ -0,0 +1,69 @@
+wmctrl (1.07-6) unstable; urgency=low
+
+ * Reverted CARD32 patch, which was broken on amd64; use fix from Chris
+ Donoghue instead. (Closes: #362068)
+ * Change x-dev -> x11proto-core-dev build-dep.
+
+ -- Decklin Foster <decklin@red-bean.com> Tue, 18 Apr 2006 10:20:00 -0400
+
+wmctrl (1.07-5) unstable; urgency=low
+
+ * Not all the new build-deps from -2 were actually added to debian/control.
+ (Closes: #345816)
+
+ -- Decklin Foster <decklin@red-bean.com> Tue, 3 Jan 2006 14:26:57 -0500
+
+wmctrl (1.07-4) unstable; urgency=low
+
+ * Get rid of huge mess in .diff.gz caused by vim's braindead folding.
+
+ -- Decklin Foster <decklin@red-bean.com> Mon, 2 Jan 2006 23:27:14 -0500
+
+wmctrl (1.07-3) unstable; urgency=low
+
+ * Fix typo in description (Closes: #345576)
+
+ -- Decklin Foster <decklin@red-bean.com> Mon, 2 Jan 2006 22:53:30 -0500
+
+wmctrl (1.07-2) unstable; urgency=low
+
+ * Patch main.c to use CARD32 for all EWMH properties instead of unsigned
+ long, which may be 64 bits on 64-bit archs. (Closes: #344080)
+ * Replace xlibs-dev build-dep with libx11-dev, x-dev, libxmu-dev.
+ * Update Standards-Version to 3.6.2.
+
+ -- Decklin Foster <decklin@red-bean.com> Mon, 2 Jan 2006 22:34:27 -0500
+
+wmctrl (1.07-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Decklin Foster <decklin@red-bean.com> Sat, 29 Jan 2005 09:45:14 -0500
+
+wmctrl (1.06-1) unstable; urgency=low
+
+ * New upstream release
+ - debian/wmctrl.1: merged upstream.
+ * debian/watch: added trailing / to directory (Thanks, Shyamal).
+ * debian/control: lowercase first letter of description.
+
+ -- Decklin Foster <decklin@red-bean.com> Sat, 22 Jan 2005 14:04:09 -0500
+
+wmctrl (1.05-2) unstable; urgency=low
+
+ * Adopting package created by Debian user Shyamal Prasad
+ <shyamal@member.fsf.org>.
+ * Removed debian/{pre,post}{inst,rm}.ex and config.{sub,guess}, and do not
+ generate config.{sub,guess} in clean.
+ * Removed example cruft in copyright and watch.
+ * Install ChangeLog as the upstream changelog, not a doc. Do not install
+ NEWS, since it is empty.
+
+ -- Decklin Foster <decklin@red-bean.com> Mon, 13 Dec 2004 10:41:11 -0500
+
+wmctrl (1.05-1) unstable; urgency=low
+
+ * Initial Release. Added man page wmctrl.1 (closes: #285397)
+
+ -- Shyamal Prasad <shyamal@member.fsf.org> Thu, 12 Dec 2004 18:59:40 -0800
+
--- wmctrl-1.07.orig/debian/rules
+++ wmctrl-1.07/debian/rules
@@ -0,0 +1,91 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+config.status: configure
+ dh_testdir
+ # Add here commands to configure the package.
+ CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
+
+
+build: build-stamp
+
+build-stamp: config.status
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) distclean
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/wmctrl.
+ $(MAKE) install DESTDIR=$(CURDIR)/debian/wmctrl
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs ChangeLog
+ dh_installdocs
+ dh_installexamples
+# dh_install
+# dh_installmenu
+# dh_installlogrotate
+# dh_installinit
+# dh_installinfo
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
--- wmctrl-1.07.orig/debian/copyright
+++ wmctrl-1.07/debian/copyright
@@ -0,0 +1,15 @@
+This package was debianized by Shyamal Prasad <shyamal@member.fsf.org> on
+Thu, 12 Dec 2004 18:59:40 -0800.
+
+It was downloaded from http://sweb.cz/tripie/utils/wmctrl/
+
+Upstream Author: Tomas Styblo <tripie@cpan.org>
+
+Copyright (C) 2003, Tomas Styblo <tripie@cpan.org>
+
+You are free to distribute this software under the terms of the GNU
+General Public License.
+
+On Debian systems, the complete text of the GNU General Public License
+can be found in the file `/usr/share/common-licenses/GPL'.
+
--- wmctrl-1.07.orig/BAH
+++ wmctrl-1.07/BAH
@@ -0,0 +1,172 @@
+--- wmctrl-1.07.orig/main.c
++++ wmctrl-1.07/main.c
+@@ -31,6 +31,7 @@
+ #include <string.h>
+ #include <locale.h>
+ #include <X11/Xlib.h>
++#include <X11/Xmd.h>
+ #include <X11/Xatom.h>
+ #include <X11/cursorfont.h>
+ #include <X11/Xmu/WinUtil.h>
+@@ -477,8 +478,8 @@
+ Window *sup_window = NULL;
+ gchar *wm_name = NULL;
+ gchar *wm_class = NULL;
+- unsigned long *wm_pid = NULL;
+- unsigned long *showing_desktop = NULL;
++ CARD32 *wm_pid = NULL;
++ CARD32 *showing_desktop = NULL;
+ gboolean name_is_utf8 = TRUE;
+ gchar *name_out;
+ gchar *class_out;
+@@ -517,13 +518,13 @@
+
+
+ /* WM_PID */
+- if (! (wm_pid = (unsigned long *)get_property(disp, *sup_window,
++ if (! (wm_pid = (CARD32 *)get_property(disp, *sup_window,
+ XA_CARDINAL, "_NET_WM_PID", NULL))) {
+ p_verbose("Cannot get pid of the window manager (_NET_WM_PID).\n");
+ }
+
+ /* _NET_SHOWING_DESKTOP */
+- if (! (showing_desktop = (unsigned long *)get_property(disp, DefaultRootWindow(disp),
++ if (! (showing_desktop = (CARD32 *)get_property(disp, DefaultRootWindow(disp),
+ XA_CARDINAL, "_NET_SHOWING_DESKTOP", NULL))) {
+ p_verbose("Cannot get the _NET_SHOWING_DESKTOP property.\n");
+ }
+@@ -678,13 +679,13 @@
+ }/*}}}*/
+
+ static int window_to_desktop (Display *disp, Window win, int desktop) {/*{{{*/
+- unsigned long *cur_desktop = NULL;
++ CARD32 *cur_desktop = NULL;
+ Window root = DefaultRootWindow(disp);
+
+ if (desktop == -1) {
+- if (! (cur_desktop = (unsigned long *)get_property(disp, root,
++ if (! (cur_desktop = (CARD32 *)get_property(disp, root,
+ XA_CARDINAL, "_NET_CURRENT_DESKTOP", NULL))) {
+- if (! (cur_desktop = (unsigned long *)get_property(disp, root,
++ if (! (cur_desktop = (CARD32 *)get_property(disp, root,
+ XA_CARDINAL, "_WIN_WORKSPACE", NULL))) {
+ fputs("Cannot get current desktop properties. "
+ "(_NET_CURRENT_DESKTOP or _WIN_WORKSPACE property)"
+@@ -702,12 +703,12 @@
+
+ static int activate_window (Display *disp, Window win, /* {{{ */
+ gboolean switch_desktop) {
+- unsigned long *desktop;
++ CARD32 *desktop;
+
+ /* desktop ID */
+- if ((desktop = (unsigned long *)get_property(disp, win,
++ if ((desktop = (CARD32 *)get_property(disp, win,
+ XA_CARDINAL, "_NET_WM_DESKTOP", NULL)) == NULL) {
+- if ((desktop = (unsigned long *)get_property(disp, win,
++ if ((desktop = (CARD32 *)get_property(disp, win,
+ XA_CARDINAL, "_WIN_WORKSPACE", NULL)) == NULL) {
+ p_verbose("Cannot find desktop ID of the window.\n");
+ }
+@@ -1016,16 +1017,16 @@
+ }/*}}}*/
+
+ static int list_desktops (Display *disp) {/*{{{*/
+- unsigned long *num_desktops = NULL;
+- unsigned long *cur_desktop = NULL;
++ CARD32 *num_desktops = NULL;
++ CARD32 *cur_desktop = NULL;
+ unsigned long desktop_list_size = 0;
+- unsigned long *desktop_geometry = NULL;
++ CARD32 *desktop_geometry = NULL;
+ unsigned long desktop_geometry_size = 0;
+ gchar **desktop_geometry_str = NULL;
+- unsigned long *desktop_viewport = NULL;
++ CARD32 *desktop_viewport = NULL;
+ unsigned long desktop_viewport_size = 0;
+ gchar **desktop_viewport_str = NULL;
+- unsigned long *desktop_workarea = NULL;
++ CARD32 *desktop_workarea = NULL;
+ unsigned long desktop_workarea_size = 0;
+ gchar **desktop_workarea_str = NULL;
+ gchar *list = NULL;
+@@ -1036,9 +1037,9 @@
+ gchar **names = NULL;
+ gboolean names_are_utf8 = TRUE;
+
+- if (! (num_desktops = (unsigned long *)get_property(disp, root,
++ if (! (num_desktops = (CARD32 *)get_property(disp, root,
+ XA_CARDINAL, "_NET_NUMBER_OF_DESKTOPS", NULL))) {
+- if (! (num_desktops = (unsigned long *)get_property(disp, root,
++ if (! (num_desktops = (CARD32 *)get_property(disp, root,
+ XA_CARDINAL, "_WIN_WORKSPACE_COUNT", NULL))) {
+ fputs("Cannot get number of desktops properties. "
+ "(_NET_NUMBER_OF_DESKTOPS or _WIN_WORKSPACE_COUNT)"
+@@ -1047,9 +1048,9 @@
+ }
+ }
+
+- if (! (cur_desktop = (unsigned long *)get_property(disp, root,
++ if (! (cur_desktop = (CARD32 *)get_property(disp, root,
+ XA_CARDINAL, "_NET_CURRENT_DESKTOP", NULL))) {
+- if (! (cur_desktop = (unsigned long *)get_property(disp, root,
++ if (! (cur_desktop = (CARD32 *)get_property(disp, root,
+ XA_CARDINAL, "_WIN_WORKSPACE", NULL))) {
+ fputs("Cannot get current desktop properties. "
+ "(_NET_CURRENT_DESKTOP or _WIN_WORKSPACE property)"
+@@ -1074,21 +1075,21 @@
+ }
+
+ /* common size of all desktops */
+- if (! (desktop_geometry = (unsigned long *)get_property(disp, DefaultRootWindow(disp),
++ if (! (desktop_geometry = (CARD32 *)get_property(disp, DefaultRootWindow(disp),
+ XA_CARDINAL, "_NET_DESKTOP_GEOMETRY", &desktop_geometry_size))) {
+ p_verbose("Cannot get common size of all desktops (_NET_DESKTOP_GEOMETRY).\n");
+ }
+
+ /* desktop viewport */
+- if (! (desktop_viewport = (unsigned long *)get_property(disp, DefaultRootWindow(disp),
++ if (! (desktop_viewport = (CARD32 *)get_property(disp, DefaultRootWindow(disp),
+ XA_CARDINAL, "_NET_DESKTOP_VIEWPORT", &desktop_viewport_size))) {
+ p_verbose("Cannot get common size of all desktops (_NET_DESKTOP_VIEWPORT).\n");
+ }
+
+ /* desktop workarea */
+- if (! (desktop_workarea = (unsigned long *)get_property(disp, DefaultRootWindow(disp),
++ if (! (desktop_workarea = (CARD32 *)get_property(disp, DefaultRootWindow(disp),
+ XA_CARDINAL, "_NET_WORKAREA", &desktop_workarea_size))) {
+- if (! (desktop_workarea = (unsigned long *)get_property(disp, DefaultRootWindow(disp),
++ if (! (desktop_workarea = (CARD32 *)get_property(disp, DefaultRootWindow(disp),
+ XA_CARDINAL, "_WIN_WORKAREA", &desktop_workarea_size))) {
+ p_verbose("Cannot get _NET_WORKAREA property.\n");
+ }
+@@ -1301,16 +1302,16 @@
+ gchar *title_out = get_output_str(title_utf8, TRUE);
+ gchar *client_machine;
+ gchar *class_out = get_window_class(disp, client_list[i]); /* UTF8 */
+- unsigned long *pid;
+- unsigned long *desktop;
++ CARD32 *pid;
++ CARD32 *desktop;
+ int x, y, junkx, junky;
+ unsigned int wwidth, wheight, bw, depth;
+ Window junkroot;
+
+ /* desktop ID */
+- if ((desktop = (unsigned long *)get_property(disp, client_list[i],
++ if ((desktop = (CARD32 *)get_property(disp, client_list[i],
+ XA_CARDINAL, "_NET_WM_DESKTOP", NULL)) == NULL) {
+- desktop = (unsigned long *)get_property(disp, client_list[i],
++ desktop = (CARD32 *)get_property(disp, client_list[i],
+ XA_CARDINAL, "_WIN_WORKSPACE", NULL);
+ }
+
+@@ -1319,7 +1320,7 @@
+ XA_STRING, "WM_CLIENT_MACHINE", NULL);
+
+ /* pid */
+- pid = (unsigned long *)get_property(disp, client_list[i],
++ pid = (CARD32 *)get_property(disp, client_list[i],
+ XA_CARDINAL, "_NET_WM_PID", NULL);
+
+ /* geometry */
--- wmctrl-1.07.orig/main.c
+++ wmctrl-1.07/main.c
@@ -1425,6 +1425,16 @@
*
* 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 @@
/* 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';