diff options
Diffstat (limited to 'x11/kdelibs3')
-rw-r--r-- | x11/kdelibs3/Makefile | 2 | ||||
-rw-r--r-- | x11/kdelibs3/files/patch-kdesu::kdesu_pty.cpp | 18 | ||||
-rw-r--r-- | x11/kdelibs3/files/patch-kdesu::process.cpp | 39 |
3 files changed, 58 insertions, 1 deletions
diff --git a/x11/kdelibs3/Makefile b/x11/kdelibs3/Makefile index 51a2c7d..48a1f74 100644 --- a/x11/kdelibs3/Makefile +++ b/x11/kdelibs3/Makefile @@ -7,7 +7,7 @@ PORTNAME= kdelibs PORTVERSION= 2.2.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES?= x11 kde MASTER_SITES= ${MASTER_SITE_KDE} MASTER_SITE_SUBDIR= stable/${PORTVERSION}/src diff --git a/x11/kdelibs3/files/patch-kdesu::kdesu_pty.cpp b/x11/kdelibs3/files/patch-kdesu::kdesu_pty.cpp new file mode 100644 index 0000000..74be807 --- /dev/null +++ b/x11/kdelibs3/files/patch-kdesu::kdesu_pty.cpp @@ -0,0 +1,18 @@ +--- kdesu/kdesu_pty.cpp.orig Wed Apr 11 12:48:56 2001 ++++ kdesu/kdesu_pty.cpp Thu Jan 10 18:35:17 2002 +@@ -101,13 +101,13 @@ + #elif defined(HAVE_OPENPTY) + // 2: BSD interface + // More prefered than the linux hacks +- char name[10]; ++ char name[30]; + int master_fd, slave_fd; + if (openpty(&master_fd, &slave_fd, name, 0L, 0L) != -1) { + ttyname = name; + name[5]='p'; + ptyname = name; +- //close(slave_fd); // We don't need this yet // Yes, we do. ++ close(slave_fd); // We don't need this yet // Yes, we do. + ptyfd = master_fd; + return ptyfd; + } diff --git a/x11/kdelibs3/files/patch-kdesu::process.cpp b/x11/kdelibs3/files/patch-kdesu::process.cpp new file mode 100644 index 0000000..6107894 --- /dev/null +++ b/x11/kdelibs3/files/patch-kdesu::process.cpp @@ -0,0 +1,39 @@ +--- kdesu/process.cpp.orig Sat Feb 17 21:03:18 2001 ++++ kdesu/process.cpp Fri Jan 11 21:23:41 2002 +@@ -120,13 +120,16 @@ + kdError(900) << k_lineinfo << "fcntl(F_GETFL): " << perror << "\n"; + return ret; + } ++ int oflags = flags; + if (block) + flags &= ~O_NONBLOCK; + else + flags |= O_NONBLOCK; +- if (fcntl(m_Fd, F_SETFL, flags) < 0) ++ ++ if ((flags != oflags) && (fcntl(m_Fd, F_SETFL, flags) < 0)) + { +- kdError(900) << k_lineinfo << "fcntl(F_SETFL): " << perror << "\n"; ++ // We get an error here when the child process has closed ++ // the file descriptor already. + return ret; + } + +@@ -231,12 +234,12 @@ + path = QFile::encodeName(file); + } + +- int i; +- const char * argp[32]; +- argp[0] = path; +- QCStringList::Iterator it; +- for (i=1, it=args.begin(); it!=args.end() && i<31; it++) ++ const char **argp = (const char **)malloc((args.count()+2)*sizeof(char *)); ++ int i = 0; ++ argp[i++] = path; ++ for (QCStringList::ConstIterator it=args.begin(); it!=args.end(); it++) + argp[i++] = *it; ++ + argp[i] = 0L; + + execv(path, (char * const *)argp); |