commit
e6af83e346
3 changed files with 129 additions and 0 deletions
43
pkgs/development/tools/misc/xxgdb/default.nix
Normal file
43
pkgs/development/tools/misc/xxgdb/default.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{ lib, stdenv, fetchurl, imake, xlibsWrapper, gccmakedep, libXaw }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "xxgdb";
|
||||||
|
version = "1.12";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://deb.debian.org/debian/pool/main/x/xxgdb/xxgdb_${version}.orig.tar.gz";
|
||||||
|
sha256 = "0jwazg99wk2l7r390ggw0yr8xipl07bp0qynni141xss530i6d1a";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# http://zhu-qy.blogspot.com.es/2012/11/slackware-14-i-still-got-xxgdb-all-ptys.html
|
||||||
|
./xxgdb-pty.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ imake gccmakedep ];
|
||||||
|
buildInputs = [ xlibsWrapper libXaw ];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
mkdir build
|
||||||
|
xmkmf
|
||||||
|
'';
|
||||||
|
|
||||||
|
makeFlags = [
|
||||||
|
"DESTDIR=build"
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# Fix up install paths
|
||||||
|
shopt -s globstar
|
||||||
|
mv build/**/bin $out/bin
|
||||||
|
|
||||||
|
install -D xxgdb.1 $out/share/man/man1/xxgdb.1
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A simple but powerful graphical interface to gdb";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ angustrau ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
84
pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch
Normal file
84
pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
--- xxgdb-1.12-org/calldbx.c 2012-10-26 17:17:49.810750909 -0700
|
||||||
|
+++ xxgdb-1.12/calldbx.c 2012-10-26 17:53:59.209918816 -0700
|
||||||
|
@@ -69,6 +69,12 @@
|
||||||
|
* create_io_window(): create an io window for gdb to use
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#ifdef linux
|
||||||
|
+#ifndef _GNU_SOURCE
|
||||||
|
+#define _GNU_SOURCE
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
@@ -126,6 +132,13 @@
|
||||||
|
{
|
||||||
|
int master;
|
||||||
|
|
||||||
|
+#ifdef _POSIX_SOURCE
|
||||||
|
+ if ((master = posix_openpt (O_RDWR|O_NOCTTY)) < 0) {
|
||||||
|
+ perror("posix_openpt failed:");
|
||||||
|
+ } else {
|
||||||
|
+ return master;
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
#ifdef SVR4 /* (MJH) Use STREAMS */
|
||||||
|
|
||||||
|
if((master = open(MASTER_CLONE, O_RDWR)) < 0)
|
||||||
|
@@ -152,6 +165,7 @@
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif /* SVR4 */
|
||||||
|
+#endif /* _POSIX_SOURCE */
|
||||||
|
|
||||||
|
#ifdef GDB
|
||||||
|
fprintf(stderr, "xxgdb: all ptys in use\n");
|
||||||
|
@@ -167,7 +181,28 @@
|
||||||
|
{
|
||||||
|
int slave;
|
||||||
|
|
||||||
|
-#ifdef SVR4 /* (MJH) */
|
||||||
|
+#ifdef _POSIX_SOURCE
|
||||||
|
+ char *slave_name = ptsname (master);
|
||||||
|
+ if (slave_name == NULL) {
|
||||||
|
+ perror ("Pseudo-tty slave");
|
||||||
|
+ exit (2);
|
||||||
|
+ } // end if
|
||||||
|
+ if (grantpt (master) < 0) {
|
||||||
|
+ perror ("grantpt error");
|
||||||
|
+ exit (3);
|
||||||
|
+ }
|
||||||
|
+ if (unlockpt (master) < 0) {
|
||||||
|
+ perror ("unlockpt error");
|
||||||
|
+ exit (4);
|
||||||
|
+ }
|
||||||
|
+ if ((slave = open (slave_name, O_RDWR)) < 0) {
|
||||||
|
+ perror (slave_name);
|
||||||
|
+ exit (5);
|
||||||
|
+ } // end if
|
||||||
|
+ return slave;
|
||||||
|
+#else
|
||||||
|
+#ifdef SVR4
|
||||||
|
+ /* (MJH) */
|
||||||
|
char *slave_name = "unknown";
|
||||||
|
extern char *ptsname(int master);
|
||||||
|
void (*handler)();
|
||||||
|
@@ -194,6 +229,7 @@
|
||||||
|
}
|
||||||
|
return slave;
|
||||||
|
#endif /* SVR4 */
|
||||||
|
+#endif /* _POSIX_SOURCE */
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef CREATE_IO_WINDOW
|
||||||
|
@@ -230,7 +266,7 @@
|
||||||
|
{
|
||||||
|
/* child */
|
||||||
|
/* printf("xterm xterm -l -e xxgdbiowin\n");*/
|
||||||
|
- if (execlp("xterm", "xterm", "-e", "xxgdbiowin", 0))
|
||||||
|
+ if (execlp("xterm", "xterm", "-e", "xxgdbiowin", NULL))
|
||||||
|
{
|
||||||
|
printf("exec of 'xterm -e xxgdbiowin' fails\n");
|
||||||
|
unlink("/tmp/iowindowtty");
|
|
@ -14552,6 +14552,8 @@ in
|
||||||
|
|
||||||
xxdiff-tip = xxdiff;
|
xxdiff-tip = xxdiff;
|
||||||
|
|
||||||
|
xxgdb = callPackage ../development/tools/misc/xxgdb { };
|
||||||
|
|
||||||
yaml2json = callPackage ../development/tools/yaml2json { };
|
yaml2json = callPackage ../development/tools/yaml2json { };
|
||||||
|
|
||||||
yams = callPackage ../applications/audio/yams { };
|
yams = callPackage ../applications/audio/yams { };
|
||||||
|
|
Loading…
Reference in a new issue