diff options
-rw-r--r-- | x11/xtrace/DESCR | 4 | ||||
-rw-r--r-- | x11/xtrace/Makefile | 19 | ||||
-rw-r--r-- | x11/xtrace/PLIST | 29 | ||||
-rw-r--r-- | x11/xtrace/distinfo | 6 | ||||
-rw-r--r-- | x11/xtrace/files/tdestroy.c | 99 | ||||
-rw-r--r-- | x11/xtrace/patches/patch-Makefile.in | 24 |
6 files changed, 181 insertions, 0 deletions
diff --git a/x11/xtrace/DESCR b/x11/xtrace/DESCR new file mode 100644 index 00000000000..2a201ca6610 --- /dev/null +++ b/x11/xtrace/DESCR @@ -0,0 +1,4 @@ +Xtrace fakes an X server and forwards all connections to a real X +server, displaying the communication between clients. It prints +the requests going from client to server and the replies, events +and errors going the other way. diff --git a/x11/xtrace/Makefile b/x11/xtrace/Makefile new file mode 100644 index 00000000000..9a193fa2e48 --- /dev/null +++ b/x11/xtrace/Makefile @@ -0,0 +1,19 @@ +# $NetBSD: Makefile,v 1.1 2015/09/27 11:21:41 tnn Exp $ + +DISTNAME= xtrace_1.3.1.orig +PKGNAME= ${DISTNAME:S/_/-/:S/.orig//} +CATEGORIES= x11 +MASTER_SITES= ${MASTER_SITE_DEBIAN:=pool/main/x/xtrace/} + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= http://packages.qa.debian.org/x/xtrace.html +COMMENT= Trace communication between X11 client and server +LICENSE= gnu-gpl-v2 + +GNU_CONFIGURE= yes +WRKSRC= ${WRKDIR}/${PKGNAME_NOREV} + +post-extract: + ${CP} ${FILESDIR}/tdestroy.c ${WRKSRC} + +.include "../../mk/bsd.pkg.mk" diff --git a/x11/xtrace/PLIST b/x11/xtrace/PLIST new file mode 100644 index 00000000000..61eef51bdab --- /dev/null +++ b/x11/xtrace/PLIST @@ -0,0 +1,29 @@ +@comment $NetBSD: PLIST,v 1.1 2015/09/27 11:21:41 tnn Exp $ +bin/xtrace +man/man1/xtrace.1 +share/xtrace/all.proto +share/xtrace/bigfont.proto +share/xtrace/bigrequest.proto +share/xtrace/composite.proto +share/xtrace/damage.proto +share/xtrace/dga.proto +share/xtrace/dpms.proto +share/xtrace/dri2.proto +share/xtrace/errors.proto +share/xtrace/events.proto +share/xtrace/fixes.proto +share/xtrace/genericevents.proto +share/xtrace/glx.proto +share/xtrace/mitshm.proto +share/xtrace/randr.proto +share/xtrace/render.proto +share/xtrace/requests.proto +share/xtrace/saver.proto +share/xtrace/setup.proto +share/xtrace/shape.proto +share/xtrace/sync.proto +share/xtrace/vidmode.proto +share/xtrace/xinerama.proto +share/xtrace/xinput.proto +share/xtrace/xkb.proto +share/xtrace/xvideo.proto diff --git a/x11/xtrace/distinfo b/x11/xtrace/distinfo new file mode 100644 index 00000000000..9bfc414c622 --- /dev/null +++ b/x11/xtrace/distinfo @@ -0,0 +1,6 @@ +$NetBSD: distinfo,v 1.1 2015/09/27 11:21:41 tnn Exp $ + +SHA1 (xtrace_1.3.1.orig.tar.gz) = a28069a0cc7f364350cee5e972dac26c9be0cf6e +RMD160 (xtrace_1.3.1.orig.tar.gz) = ee576ce4251ad28c298be19f753db004185af453 +Size (xtrace_1.3.1.orig.tar.gz) = 185308 bytes +SHA1 (patch-Makefile.in) = 4a592285a74b19f9e8e747ca2c75d15c79a5e84e diff --git a/x11/xtrace/files/tdestroy.c b/x11/xtrace/files/tdestroy.c new file mode 100644 index 00000000000..7568e7d9d8d --- /dev/null +++ b/x11/xtrace/files/tdestroy.c @@ -0,0 +1,99 @@ +/* modified version of the file below, from vlc */ +/** + * @file tdestroy.c + * @brief replacement for GNU tdestroy() + */ +/***************************************************************************** + * Copyright (C) 2009 RĂ©mi Denis-Courmont + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <stdlib.h> +#include <assert.h> + +#include <search.h> + +static struct +{ + const void **tab; + size_t count; +} list = { NULL, 0 }; + +static void list_nodes (const void *node, const VISIT which, const int depth) +{ + (void) depth; + + if (which != postorder && which != leaf) + return; + + const void **tab = realloc (list.tab, sizeof (*tab) * (list.count + 1)); + if (tab == NULL) + abort (); + + tab[list.count] = *(const void **)node; + list.tab = tab; + list.count++; +} + +static struct +{ + const void *node; +} smallest = { NULL }; + +static int cmp_smallest (const void *a, const void *b) +{ + if (a == b) + return 0; + if (a == smallest.node) + return -1; + if (b == smallest.node) + return +1; + abort (); +} + +void tdestroy (void *root, void (*freenode) (void *)) +{ + const void **tab; + size_t count; + + assert (freenode != NULL); + + /* Enumerate nodes in order */ + assert (list.count == 0); + twalk (root, list_nodes); + tab = list.tab; + count = list.count; + list.tab = NULL; + list.count = 0; + + /* Destroy the tree */ + for (size_t i = 0; i < count; i++) + { + smallest.node = tab[i]; + if (tdelete (smallest.node, &root, cmp_smallest) == NULL) + abort (); + } + assert (root == NULL); + + /* Destroy the nodes */ + for (size_t i = 0; i < count; i++) + freenode ((void *)(tab[i])); + free (tab); +} diff --git a/x11/xtrace/patches/patch-Makefile.in b/x11/xtrace/patches/patch-Makefile.in new file mode 100644 index 00000000000..e7b67fa0ba0 --- /dev/null +++ b/x11/xtrace/patches/patch-Makefile.in @@ -0,0 +1,24 @@ +$NetBSD: patch-Makefile.in,v 1.1 2015/09/27 11:21:41 tnn Exp $ + +Hook in tdestroy replacement. + +--- Makefile.in.orig 2012-06-11 12:57:07.000000000 +0000 ++++ Makefile.in +@@ -74,7 +74,7 @@ PROGRAMS = $(bin_PROGRAMS) + am_xtrace_OBJECTS = main.$(OBJEXT) x11common.$(OBJEXT) \ + x11client.$(OBJEXT) x11server.$(OBJEXT) parse.$(OBJEXT) \ + copyauth.$(OBJEXT) atoms.$(OBJEXT) translate.$(OBJEXT) \ +- stringlist.$(OBJEXT) ++ stringlist.$(OBJEXT) tdestroy.$(OBJEXT) + xtrace_OBJECTS = $(am_xtrace_OBJECTS) + xtrace_LDADD = $(LDADD) + DEFAULT_INCLUDES = -I.@am__isrc@ +@@ -229,7 +229,7 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + AM_CPPFLAGS = -DPKGDATADIR='"$(pkgdatadir)"' +-xtrace_SOURCES = main.c x11common.c x11client.c x11server.c parse.c copyauth.c atoms.c translate.c stringlist.c ++xtrace_SOURCES = main.c x11common.c x11client.c x11server.c parse.c copyauth.c atoms.c translate.c stringlist.c tdestroy.c + noinst_HEADERS = xtrace.h parse.h stringlist.h translate.h + dist_man_MANS = xtrace.1 + MAINTAINERCLEANFILES = $(srcdir)/Makefile.in $(srcdir)/configure $(srcdir)/stamp-h.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in |