summaryrefslogtreecommitdiff
path: root/x11/kdelibs3
diff options
context:
space:
mode:
Diffstat (limited to 'x11/kdelibs3')
-rw-r--r--x11/kdelibs3/Makefile2
-rw-r--r--x11/kdelibs3/files/patch-kdesu::kdesu_pty.cpp18
-rw-r--r--x11/kdelibs3/files/patch-kdesu::process.cpp39
3 files changed, 58 insertions, 1 deletions
diff --git a/x11/kdelibs3/Makefile b/x11/kdelibs3/Makefile
index 51a2c7d8f2be..48a1f7455feb 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 000000000000..74be807e3786
--- /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 000000000000..610789408085
--- /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);