Multiple bugfixes and enhancements for kdebase.
- Add patches for konsole which enable konsole_grantpty to properly change permissions on ttys and fix a bug which causes konsole to crash on recent builds of -CURRENT. - Add a patch for configure that fixes fontconfig detection. - Add a patch submitted by Kaarthik Sivakumar <kaarthik@comcast.net> which fixes the bug described in PR ports/48334. - Add a pkg-message that notifies users about the fonts this port installs. - Use the USE_OPENLDAP macro. PR: ports/48334 Approved by: arved (Mentor)
This commit is contained in:
parent
2c4631b763
commit
9683be5fc3
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=87921
70 changed files with 3206 additions and 63 deletions
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdebase
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11 kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
|
||||
|
@ -22,6 +23,7 @@ USE_KDELIBS_VER=3
|
|||
PREFIX= ${KDE_PREFIX}
|
||||
KDE_BUILD_PLIST=yes
|
||||
|
||||
USE_OPENLDAP= yes
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_XPM= yes
|
||||
|
@ -39,12 +41,6 @@ CONFIGURE_ARGS+=--without-java \
|
|||
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# This enables kio_ldap (needed by kaddresbook).
|
||||
.if defined(WITH_LDAP) || exists($(LOCALBASE)/lib/libldap.so)
|
||||
LIB_DEPENDS+= ldap:${PORTSDIR}/net/openldap21-client
|
||||
PLIST_APPEND+= plist.ldap
|
||||
.endif
|
||||
|
||||
.if exists(${X11BASE}/include/Xm/Xm.h)
|
||||
WITH_MOTIF= yes
|
||||
.endif # exists(${X11BASE}/include/Xm/Xm.h)
|
||||
|
@ -85,5 +81,7 @@ post-install:
|
|||
${CHMOD} u+s ${PREFIX}/bin/kcheckpass
|
||||
${CHGRP} kmem ${PREFIX}/bin/ksysguardd && \
|
||||
${CHMOD} g+s ${PREFIX}/bin/ksysguardd
|
||||
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
|
||||
| ${SED} -e 's,%%X11BASE%%,${X11BASE},g'
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
122
x11/kde4-baseapps/files/patch-configure
Normal file
122
x11/kde4-baseapps/files/patch-configure
Normal file
|
@ -0,0 +1,122 @@
|
|||
--- configure.orig Sat Aug 23 22:55:38 2003
|
||||
+++ configure Sat Aug 23 22:57:16 2003
|
||||
@@ -33894,8 +33894,67 @@
|
||||
echo "$as_me:$LINENO: result: not found" >&5
|
||||
echo "${ECHO_T}not found" >&6
|
||||
|
||||
- { echo "$as_me:$LINENO: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&5
|
||||
-echo "$as_me: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&2;}
|
||||
+
|
||||
+ echo "$as_me:$LINENO: checking for pkg-config" >&5
|
||||
+echo $ECHO_N "checking for pkg-config... $ECHO_C" >&6
|
||||
+ if test -n "$PKGCONFIG"; then
|
||||
+ kde_cv_path="$PKGCONFIG";
|
||||
+ else
|
||||
+ kde_cache=`echo pkg-config | sed 'y%./+-%__p_%'`
|
||||
+
|
||||
+ if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ kde_cv_path="NONE"
|
||||
+ dirs="${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin"
|
||||
+ kde_save_IFS=$IFS
|
||||
+ IFS=':'
|
||||
+ for dir in $PATH; do
|
||||
+ dirs="$dirs $dir"
|
||||
+ done
|
||||
+ IFS=$kde_save_IFS
|
||||
+
|
||||
+ for dir in $dirs; do
|
||||
+ if test -x "$dir/pkg-config"; then
|
||||
+ if test -n ""
|
||||
+ then
|
||||
+ evalstr="$dir/pkg-config 2>&1 "
|
||||
+ if eval $evalstr; then
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ else
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
|
||||
+ echo "$as_me:$LINENO: result: not found" >&5
|
||||
+echo "${ECHO_T}not found" >&6
|
||||
+
|
||||
+ { echo "$as_me:$LINENO: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&5
|
||||
+echo "$as_me: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&2;}
|
||||
+
|
||||
+ else
|
||||
+ echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
+echo "${ECHO_T}$kde_cv_path" >&6
|
||||
+ PKGCONFIG=$kde_cv_path
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
@@ -33905,6 +33964,30 @@
|
||||
fi
|
||||
|
||||
|
||||
+if test -n "$PKGCONFIG"; then
|
||||
+ vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
+ if test -n "$vers" && test "$vers" -ge 1000000
|
||||
+ then
|
||||
+ LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`"
|
||||
+ LIBFONTCONFIG_RPATH=
|
||||
+ for args in $LIBFONTCONFIG_LIBS; do
|
||||
+ case $args in
|
||||
+ -L*)
|
||||
+ LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | sed -e "s/-L/-R/g"`
|
||||
+ LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`"
|
||||
+
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_FONTCONFIG 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if test -n "$FONTCONFIG_CONFIG"; then
|
||||
vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test -n "$vers" && test "$vers" -ge 1000000
|
||||
@@ -37753,7 +37836,7 @@
|
||||
do
|
||||
for j in ldap.h;
|
||||
do
|
||||
- echo "configure: 37756: $i/$j" >&5
|
||||
+ echo "configure: 37839: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_incdir=$i
|
||||
@@ -37775,7 +37858,7 @@
|
||||
do
|
||||
for j in libldap.$ext;
|
||||
do
|
||||
- echo "configure: 37778: $i/$j" >&5
|
||||
+ echo "configure: 37861: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_libdir=$i
|
||||
|
33
x11/kde4-baseapps/files/patch-kdm-backend-client.c
Normal file
33
x11/kde4-baseapps/files/patch-kdm-backend-client.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- kdm/backend/client.c 18 Jun 2003 20:05:15 -0000 2.25.2.4
|
||||
+++ kdm/backend/client.c 6 Aug 2003 16:02:39 -0000 2.25.2.5
|
||||
@@ -1,5 +1,5 @@
|
||||
/* $TOG: verify.c /main/37 1998/02/11 10:00:45 kaleb $ */
|
||||
-/* $Id: client.c,v 2.25.2.4 2003/06/18 20:05:15 ossi Exp $ */
|
||||
+/* $Id: client.c,v 2.25.2.5 2003/08/06 16:02:39 ossi Exp $ */
|
||||
/*
|
||||
|
||||
Copyright 1988, 1998 The Open Group
|
||||
@@ -1009,7 +1009,11 @@ StartClient (struct display *d,
|
||||
exit (1);
|
||||
# endif
|
||||
# ifdef USE_PAM
|
||||
- pam_setcred(pamh, 0);
|
||||
+ if (pam_setcred(pamh, 0) != PAM_SUCCESS) {
|
||||
+ LogError("pam_setcred for %\"s failed, errno=%d\n",
|
||||
+ name, errno);
|
||||
+ exit (1);
|
||||
+ }
|
||||
/* pass in environment variables set by libpam and modules it called */
|
||||
pam_env = pam_getenvlist(pamh);
|
||||
ReInitErrorLog ();
|
||||
@@ -1267,7 +1271,9 @@ SessionExit (struct display *d, int stat
|
||||
#ifdef USE_PAM
|
||||
if (pamh) {
|
||||
/* shutdown PAM session */
|
||||
- pam_setcred(pamh, PAM_DELETE_CRED);
|
||||
+ if (pam_setcred(pamh, PAM_DELETE_CRED) != PAM_SUCCESS)
|
||||
+ LogError("pam_setcred(DELETE_CRED) for %\"s failed, errno=%d\n",
|
||||
+ d->verify->user, errno);
|
||||
pam_close_session(pamh, 0);
|
||||
pam_end(pamh, PAM_SUCCESS);
|
||||
pamh = NULL;
|
172
x11/kde4-baseapps/files/patch-konsole-konsole-TEPty.cpp
Normal file
172
x11/kde4-baseapps/files/patch-konsole-konsole-TEPty.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
--- konsole/konsole/TEPty.cpp 22 Nov 2002 13:17:57 -0000 1.75
|
||||
+++ konsole/konsole/TEPty.cpp 24 Aug 2003 21:44:00 -0000
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
+// Get the Q_OS_* defines
|
||||
+#include <qglobal.h>
|
||||
+
|
||||
#ifdef __sgi
|
||||
#define __svr4__
|
||||
#endif
|
||||
@@ -88,6 +91,10 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -198,9 +205,30 @@ public:
|
||||
|
||||
FILE* syslog_file = NULL; //stdout;
|
||||
|
||||
-#define PTY_FILENO 3
|
||||
+#define DEFAULT_PTY_FILENO 3
|
||||
+int PTY_FILENO = -1; // None allocated yet.
|
||||
+
|
||||
#define BASE_CHOWN "konsole_grantpty"
|
||||
|
||||
+void TEPtyInit()
|
||||
+{
|
||||
+/*
|
||||
+** FreeBSD can't dup2(fd,3) because fd 3 is already in use by
|
||||
+** some weird pipe. So instead, we get a new throwaway fd
|
||||
+** that's not in use by anyone.
|
||||
+*/
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ PTY_FILENO = open("/dev/null",O_RDWR);
|
||||
+ if (PTY_FILENO == -1) {
|
||||
+ perror("konsole:open PTY");
|
||||
+ /* This won't work either, but hey .. */
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+ }
|
||||
+#else
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int chownpty(int fd, bool grant)
|
||||
// param fd: the fd of a master pty.
|
||||
// param grant: true to grant, false to revoke
|
||||
@@ -212,6 +240,8 @@ int chownpty(int fd, bool grant)
|
||||
newsa.sa_flags = 0;
|
||||
sigaction(SIGCHLD, &newsa, &oldsa);
|
||||
|
||||
+ if (PTY_FILENO == -1) TEPtyInit();
|
||||
+
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
{
|
||||
@@ -225,7 +255,12 @@ int chownpty(int fd, bool grant)
|
||||
/* We pass the master pseudo terminal as file descriptor PTY_FILENO. */
|
||||
if (fd != PTY_FILENO && dup2(fd, PTY_FILENO) < 0) exit(1);
|
||||
QString path = locate("exe", BASE_CHOWN);
|
||||
- execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", NULL, NULL);
|
||||
+ /*
|
||||
+ ** Because konsole_grantpty now can't expect the fd
|
||||
+ ** to be constant, we need an additional parameter.
|
||||
+ */
|
||||
+ QString fdnumber = QString::number(PTY_FILENO);
|
||||
+ execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", fdnumber.ascii(), NULL, NULL);
|
||||
exit(1); // should not be reached
|
||||
}
|
||||
|
||||
@@ -486,6 +521,16 @@ int TEPty::makePty(bool _addutmp)
|
||||
// open and set all standard files to slave tty
|
||||
int tt = m_SlaveFd; // Already opened?
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** It seems to be possible for SlaveFd to be closed in error
|
||||
+ ** somewhere along the line. So check it for "liveness".
|
||||
+ */
|
||||
+ struct stat sb;
|
||||
+ if (fstat(tt,&sb)!=0)
|
||||
+ tt=-1; // Apparently not alive.
|
||||
+#endif
|
||||
+
|
||||
if (tt < 0)
|
||||
tt = open(ttynam, O_RDWR);
|
||||
|
||||
@@ -524,14 +569,57 @@ int TEPty::makePty(bool _addutmp)
|
||||
}
|
||||
strncpy(l_struct.ut_name, str_ptr, UT_NAMESIZE);
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /* FreeBSD until august 22, 2003 returned ENOMEM for too-long
|
||||
+ ** hostnames. Then sanity prevailed (?) and the error was changed
|
||||
+ ** to NAMETOOLONG, but this breaks konsole .. again.
|
||||
+ **
|
||||
+ ** Instead of bailing out with long hostnames, put in partial
|
||||
+ ** hostnames (the first UT_HOSTSIZE characters) instead.
|
||||
+ */
|
||||
+ char hostnamebuffer[MAXHOSTNAMELEN+1];
|
||||
+ memset(hostnamebuffer,0,MAXHOSTNAMELEN+1);
|
||||
+ if (gethostname(hostnamebuffer, MAXHOSTNAMELEN) == -1)
|
||||
+ {
|
||||
+ if ( (errno==ENOMEM) || (errno==ENAMETOOLONG) ) {
|
||||
+ /* ignore it, but very odd */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Not much chance of this being visible anywhere ... */
|
||||
+ perror("konsole:gethostname");
|
||||
+ abort();
|
||||
+ }
|
||||
+ }
|
||||
+ /* Copy hostname, possibly only partially */
|
||||
+ memset(l_struct.ut_host,0,UT_HOSTSIZE);
|
||||
+ strncpy(l_struct.ut_host,hostnamebuffer,UT_HOSTSIZE);
|
||||
+ l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
+#else
|
||||
+ /* Non-FreeBSD systems */
|
||||
if (gethostname(l_struct.ut_host, UT_HOSTSIZE) == -1) {
|
||||
- if (errno != ENOMEM)
|
||||
+ if (errno != ENOMEM)
|
||||
abort();
|
||||
l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (! (str_ptr=ttyname(tt)) ) {
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** In FreeBSD, the ttyname() call always returns NULL
|
||||
+ ** for the kinds of devices (ptys) we have opened,
|
||||
+ ** so don't abort, use a foolish default value instead.
|
||||
+ ** The call to login() probably won't work _anyway_,
|
||||
+ ** since normally users can't update the wtmp file.
|
||||
+ **
|
||||
+ ** If we were real sticklers for accuracy, we'd copy the
|
||||
+ ** code from konsole_grantpty that does it's darndest to
|
||||
+ ** file out the right tty name.
|
||||
+ */
|
||||
+ str_ptr = const_cast<char *>("/dev/konsole");
|
||||
+#else
|
||||
abort();
|
||||
+#endif
|
||||
}
|
||||
if (strncmp(str_ptr, "/dev/", 5) == 0)
|
||||
str_ptr += 5;
|
||||
@@ -607,7 +695,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
// #define CERASE 0177
|
||||
// #endif
|
||||
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCGETA,(char *)&ttmode);
|
||||
#else
|
||||
# if defined (_HPUX_SOURCE) || defined(__Lynx__)
|
||||
@@ -621,7 +709,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
ttmode.c_cc[VINTR] = CTRL('C');
|
||||
ttmode.c_cc[VQUIT] = CTRL('\\');
|
||||
ttmode.c_cc[VERASE] = 0177;
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCSETA,(char *)&ttmode);
|
||||
#else
|
||||
# ifdef _HPUX_SOURCE
|
|
@ -0,0 +1,62 @@
|
|||
--- konsole/konsole/konsole_grantpty.c 2 Sep 2002 01:09:24 -0000 1.7
|
||||
+++ konsole/konsole/konsole_grantpty.c 24 Aug 2003 21:44:01 -0000
|
||||
@@ -40,7 +40,9 @@
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
|
||||
-#define PTY_FILENO 3 /* keep in sync with grantpty */
|
||||
+#define DEFAULT_PTY_FILENO 3 /* keep in sync with TEPty.cpp */
|
||||
+int PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+
|
||||
#define TTY_GROUP "tty"
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -52,11 +54,13 @@ int main (int argc, char *argv[])
|
||||
uid_t uid;
|
||||
mode_t mod;
|
||||
char* tty;
|
||||
+ int command_fd; /* which fd to use? */
|
||||
|
||||
/* check preconditions **************************************************/
|
||||
- if (argc != 2 || (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
+ if (( (argc != 3) && (argc != 2) /* optional third arg */ ) ||
|
||||
+ (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
{
|
||||
- printf("usage: %s (--grant|--revoke)\n",argv[0]);
|
||||
+ printf("usage: %s (--grant|--revoke) [fd]\n",argv[0]);
|
||||
printf("%s is a helper for\n",argv[0]);
|
||||
printf("konsole and not intented to\n");
|
||||
printf("be called from the command\n");
|
||||
@@ -83,6 +87,22 @@ int main (int argc, char *argv[])
|
||||
uid = 0; /* root */
|
||||
mod = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
}
|
||||
+
|
||||
+ command_fd = DEFAULT_PTY_FILENO;
|
||||
+ if (argv[2])
|
||||
+ {
|
||||
+ command_fd = atoi(argv[2]);
|
||||
+ }
|
||||
+ if (command_fd > 2) /* must be out of stdin,stdout,stderr range */
|
||||
+ {
|
||||
+ PTY_FILENO=command_fd;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr,"%s: Bad command fd (seems to be %d)\n",argv[0],command_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
/* Get the group ID of the special `tty' group. */
|
||||
p = getgrnam(TTY_GROUP); /* posix */
|
||||
gid = p ? p->gr_gid : getgid (); /* posix */
|
||||
@@ -117,6 +137,9 @@ int main (int argc, char *argv[])
|
||||
if (dirp->d_fileno != dsb.st_ino)
|
||||
continue;
|
||||
{
|
||||
+ /* Else this is the right device file .. any possible memory
|
||||
+ ** leak here because two files match is unimportant?
|
||||
+ */
|
||||
int pdlen = strlen(_PATH_DEV), namelen = strlen(dirp->d_name);
|
||||
pty = malloc(pdlen + namelen + 1);
|
||||
if (pty) {
|
18
x11/kde4-baseapps/files/patch-konsole-konsole-main.cpp
Normal file
18
x11/kde4-baseapps/files/patch-konsole-konsole-main.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- konsole/konsole/main.cpp 29 Jun 2003 21:53:11 -0000 1.243.2.3
|
||||
+++ konsole/konsole/main.cpp 24 Aug 2003 21:44:02 -0000
|
||||
@@ -123,6 +123,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
+extern void TEPtyInit();
|
||||
|
||||
/* --| main |------------------------------------------------------ */
|
||||
int main(int argc, char* argv[])
|
||||
@@ -137,6 +138,7 @@ int main(int argc, char* argv[])
|
||||
bool scrollbaron = true;
|
||||
QCString wname = PACKAGE;
|
||||
|
||||
+ TEPtyInit();
|
||||
|
||||
KAboutData aboutData( PACKAGE, I18N_NOOP("Konsole"),
|
||||
VERSION, description, KAboutData::License_GPL_V2,
|
|
@ -0,0 +1,33 @@
|
|||
--- ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed May 7 07:44:17 2003
|
||||
+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed Aug 27 18:51:18 2003
|
||||
@@ -168,6 +168,8 @@
|
||||
int mib[4];
|
||||
struct kinfo_proc p;
|
||||
size_t len;
|
||||
+ size_t buflen = 256;
|
||||
+ char buf[256];
|
||||
|
||||
if ((ps = findProcessInList(pid)) == 0)
|
||||
{
|
||||
@@ -239,10 +241,17 @@
|
||||
#endif
|
||||
|
||||
/* process command line */
|
||||
- /* the following line causes segfaults on some FreeBSD systems... why?
|
||||
- strncpy(ps->cmdline, p.kp_proc.p_args->ar_args, sizeof(ps->cmdline) - 1);
|
||||
- */
|
||||
- strcpy(ps->cmdline, "????");
|
||||
+ /* do a sysctl to get the command line args. */
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_ARGS;
|
||||
+ mib[3] = pid;
|
||||
+
|
||||
+ if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
|
||||
+ strcpy(ps->cmdline, "????");
|
||||
+ else
|
||||
+ strncpy(ps->cmdline, buf, buflen - 1);
|
||||
|
||||
return (0);
|
||||
}
|
|
@ -277,6 +277,8 @@ lib/kde3/kio_imap4.la
|
|||
lib/kde3/kio_imap4.so
|
||||
lib/kde3/kio_info.la
|
||||
lib/kde3/kio_info.so
|
||||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
lib/kde3/kio_mac.la
|
||||
lib/kde3/kio_mac.so
|
||||
lib/kde3/kio_man.la
|
||||
|
@ -2764,6 +2766,7 @@ share/services/imagethumbnail.desktop
|
|||
share/services/imap4.protocol
|
||||
share/services/imaps.protocol
|
||||
share/services/info.protocol
|
||||
share/services/ldap.protocol
|
||||
share/services/kaccess.desktop
|
||||
share/services/kded/favicons.desktop
|
||||
share/services/kded/mountwatcher.desktop
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
share/services/ldap.protocol
|
11
x11/kde4-baseapps/pkg-message
Normal file
11
x11/kde4-baseapps/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
This port has installed fonts into %%PREFIX%%/share/fonts
|
||||
|
||||
You'll have to add %%PREFIX%%/share/fonts
|
||||
to your X font path by either:
|
||||
|
||||
$ xset fp+ %%PREFIX%%/share/fonts
|
||||
$ xset fp rehash
|
||||
|
||||
or by adding it to your X-server configuration file (usually
|
||||
/etc/X11/XF86Config or %%X11BASE%%/lib/X11/XF86Config) and
|
||||
restarting the X-server.
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdebase
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11 kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
|
||||
|
@ -22,6 +23,7 @@ USE_KDELIBS_VER=3
|
|||
PREFIX= ${KDE_PREFIX}
|
||||
KDE_BUILD_PLIST=yes
|
||||
|
||||
USE_OPENLDAP= yes
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_XPM= yes
|
||||
|
@ -39,12 +41,6 @@ CONFIGURE_ARGS+=--without-java \
|
|||
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# This enables kio_ldap (needed by kaddresbook).
|
||||
.if defined(WITH_LDAP) || exists($(LOCALBASE)/lib/libldap.so)
|
||||
LIB_DEPENDS+= ldap:${PORTSDIR}/net/openldap21-client
|
||||
PLIST_APPEND+= plist.ldap
|
||||
.endif
|
||||
|
||||
.if exists(${X11BASE}/include/Xm/Xm.h)
|
||||
WITH_MOTIF= yes
|
||||
.endif # exists(${X11BASE}/include/Xm/Xm.h)
|
||||
|
@ -85,5 +81,7 @@ post-install:
|
|||
${CHMOD} u+s ${PREFIX}/bin/kcheckpass
|
||||
${CHGRP} kmem ${PREFIX}/bin/ksysguardd && \
|
||||
${CHMOD} g+s ${PREFIX}/bin/ksysguardd
|
||||
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
|
||||
| ${SED} -e 's,%%X11BASE%%,${X11BASE},g'
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
122
x11/kde4-runtime/files/patch-configure
Normal file
122
x11/kde4-runtime/files/patch-configure
Normal file
|
@ -0,0 +1,122 @@
|
|||
--- configure.orig Sat Aug 23 22:55:38 2003
|
||||
+++ configure Sat Aug 23 22:57:16 2003
|
||||
@@ -33894,8 +33894,67 @@
|
||||
echo "$as_me:$LINENO: result: not found" >&5
|
||||
echo "${ECHO_T}not found" >&6
|
||||
|
||||
- { echo "$as_me:$LINENO: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&5
|
||||
-echo "$as_me: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&2;}
|
||||
+
|
||||
+ echo "$as_me:$LINENO: checking for pkg-config" >&5
|
||||
+echo $ECHO_N "checking for pkg-config... $ECHO_C" >&6
|
||||
+ if test -n "$PKGCONFIG"; then
|
||||
+ kde_cv_path="$PKGCONFIG";
|
||||
+ else
|
||||
+ kde_cache=`echo pkg-config | sed 'y%./+-%__p_%'`
|
||||
+
|
||||
+ if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ kde_cv_path="NONE"
|
||||
+ dirs="${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin"
|
||||
+ kde_save_IFS=$IFS
|
||||
+ IFS=':'
|
||||
+ for dir in $PATH; do
|
||||
+ dirs="$dirs $dir"
|
||||
+ done
|
||||
+ IFS=$kde_save_IFS
|
||||
+
|
||||
+ for dir in $dirs; do
|
||||
+ if test -x "$dir/pkg-config"; then
|
||||
+ if test -n ""
|
||||
+ then
|
||||
+ evalstr="$dir/pkg-config 2>&1 "
|
||||
+ if eval $evalstr; then
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ else
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
|
||||
+ echo "$as_me:$LINENO: result: not found" >&5
|
||||
+echo "${ECHO_T}not found" >&6
|
||||
+
|
||||
+ { echo "$as_me:$LINENO: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&5
|
||||
+echo "$as_me: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&2;}
|
||||
+
|
||||
+ else
|
||||
+ echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
+echo "${ECHO_T}$kde_cv_path" >&6
|
||||
+ PKGCONFIG=$kde_cv_path
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
@@ -33905,6 +33964,30 @@
|
||||
fi
|
||||
|
||||
|
||||
+if test -n "$PKGCONFIG"; then
|
||||
+ vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
+ if test -n "$vers" && test "$vers" -ge 1000000
|
||||
+ then
|
||||
+ LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`"
|
||||
+ LIBFONTCONFIG_RPATH=
|
||||
+ for args in $LIBFONTCONFIG_LIBS; do
|
||||
+ case $args in
|
||||
+ -L*)
|
||||
+ LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | sed -e "s/-L/-R/g"`
|
||||
+ LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`"
|
||||
+
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_FONTCONFIG 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if test -n "$FONTCONFIG_CONFIG"; then
|
||||
vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test -n "$vers" && test "$vers" -ge 1000000
|
||||
@@ -37753,7 +37836,7 @@
|
||||
do
|
||||
for j in ldap.h;
|
||||
do
|
||||
- echo "configure: 37756: $i/$j" >&5
|
||||
+ echo "configure: 37839: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_incdir=$i
|
||||
@@ -37775,7 +37858,7 @@
|
||||
do
|
||||
for j in libldap.$ext;
|
||||
do
|
||||
- echo "configure: 37778: $i/$j" >&5
|
||||
+ echo "configure: 37861: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_libdir=$i
|
||||
|
33
x11/kde4-runtime/files/patch-kdm-backend-client.c
Normal file
33
x11/kde4-runtime/files/patch-kdm-backend-client.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- kdm/backend/client.c 18 Jun 2003 20:05:15 -0000 2.25.2.4
|
||||
+++ kdm/backend/client.c 6 Aug 2003 16:02:39 -0000 2.25.2.5
|
||||
@@ -1,5 +1,5 @@
|
||||
/* $TOG: verify.c /main/37 1998/02/11 10:00:45 kaleb $ */
|
||||
-/* $Id: client.c,v 2.25.2.4 2003/06/18 20:05:15 ossi Exp $ */
|
||||
+/* $Id: client.c,v 2.25.2.5 2003/08/06 16:02:39 ossi Exp $ */
|
||||
/*
|
||||
|
||||
Copyright 1988, 1998 The Open Group
|
||||
@@ -1009,7 +1009,11 @@ StartClient (struct display *d,
|
||||
exit (1);
|
||||
# endif
|
||||
# ifdef USE_PAM
|
||||
- pam_setcred(pamh, 0);
|
||||
+ if (pam_setcred(pamh, 0) != PAM_SUCCESS) {
|
||||
+ LogError("pam_setcred for %\"s failed, errno=%d\n",
|
||||
+ name, errno);
|
||||
+ exit (1);
|
||||
+ }
|
||||
/* pass in environment variables set by libpam and modules it called */
|
||||
pam_env = pam_getenvlist(pamh);
|
||||
ReInitErrorLog ();
|
||||
@@ -1267,7 +1271,9 @@ SessionExit (struct display *d, int stat
|
||||
#ifdef USE_PAM
|
||||
if (pamh) {
|
||||
/* shutdown PAM session */
|
||||
- pam_setcred(pamh, PAM_DELETE_CRED);
|
||||
+ if (pam_setcred(pamh, PAM_DELETE_CRED) != PAM_SUCCESS)
|
||||
+ LogError("pam_setcred(DELETE_CRED) for %\"s failed, errno=%d\n",
|
||||
+ d->verify->user, errno);
|
||||
pam_close_session(pamh, 0);
|
||||
pam_end(pamh, PAM_SUCCESS);
|
||||
pamh = NULL;
|
172
x11/kde4-runtime/files/patch-konsole-konsole-TEPty.cpp
Normal file
172
x11/kde4-runtime/files/patch-konsole-konsole-TEPty.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
--- konsole/konsole/TEPty.cpp 22 Nov 2002 13:17:57 -0000 1.75
|
||||
+++ konsole/konsole/TEPty.cpp 24 Aug 2003 21:44:00 -0000
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
+// Get the Q_OS_* defines
|
||||
+#include <qglobal.h>
|
||||
+
|
||||
#ifdef __sgi
|
||||
#define __svr4__
|
||||
#endif
|
||||
@@ -88,6 +91,10 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -198,9 +205,30 @@ public:
|
||||
|
||||
FILE* syslog_file = NULL; //stdout;
|
||||
|
||||
-#define PTY_FILENO 3
|
||||
+#define DEFAULT_PTY_FILENO 3
|
||||
+int PTY_FILENO = -1; // None allocated yet.
|
||||
+
|
||||
#define BASE_CHOWN "konsole_grantpty"
|
||||
|
||||
+void TEPtyInit()
|
||||
+{
|
||||
+/*
|
||||
+** FreeBSD can't dup2(fd,3) because fd 3 is already in use by
|
||||
+** some weird pipe. So instead, we get a new throwaway fd
|
||||
+** that's not in use by anyone.
|
||||
+*/
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ PTY_FILENO = open("/dev/null",O_RDWR);
|
||||
+ if (PTY_FILENO == -1) {
|
||||
+ perror("konsole:open PTY");
|
||||
+ /* This won't work either, but hey .. */
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+ }
|
||||
+#else
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int chownpty(int fd, bool grant)
|
||||
// param fd: the fd of a master pty.
|
||||
// param grant: true to grant, false to revoke
|
||||
@@ -212,6 +240,8 @@ int chownpty(int fd, bool grant)
|
||||
newsa.sa_flags = 0;
|
||||
sigaction(SIGCHLD, &newsa, &oldsa);
|
||||
|
||||
+ if (PTY_FILENO == -1) TEPtyInit();
|
||||
+
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
{
|
||||
@@ -225,7 +255,12 @@ int chownpty(int fd, bool grant)
|
||||
/* We pass the master pseudo terminal as file descriptor PTY_FILENO. */
|
||||
if (fd != PTY_FILENO && dup2(fd, PTY_FILENO) < 0) exit(1);
|
||||
QString path = locate("exe", BASE_CHOWN);
|
||||
- execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", NULL, NULL);
|
||||
+ /*
|
||||
+ ** Because konsole_grantpty now can't expect the fd
|
||||
+ ** to be constant, we need an additional parameter.
|
||||
+ */
|
||||
+ QString fdnumber = QString::number(PTY_FILENO);
|
||||
+ execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", fdnumber.ascii(), NULL, NULL);
|
||||
exit(1); // should not be reached
|
||||
}
|
||||
|
||||
@@ -486,6 +521,16 @@ int TEPty::makePty(bool _addutmp)
|
||||
// open and set all standard files to slave tty
|
||||
int tt = m_SlaveFd; // Already opened?
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** It seems to be possible for SlaveFd to be closed in error
|
||||
+ ** somewhere along the line. So check it for "liveness".
|
||||
+ */
|
||||
+ struct stat sb;
|
||||
+ if (fstat(tt,&sb)!=0)
|
||||
+ tt=-1; // Apparently not alive.
|
||||
+#endif
|
||||
+
|
||||
if (tt < 0)
|
||||
tt = open(ttynam, O_RDWR);
|
||||
|
||||
@@ -524,14 +569,57 @@ int TEPty::makePty(bool _addutmp)
|
||||
}
|
||||
strncpy(l_struct.ut_name, str_ptr, UT_NAMESIZE);
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /* FreeBSD until august 22, 2003 returned ENOMEM for too-long
|
||||
+ ** hostnames. Then sanity prevailed (?) and the error was changed
|
||||
+ ** to NAMETOOLONG, but this breaks konsole .. again.
|
||||
+ **
|
||||
+ ** Instead of bailing out with long hostnames, put in partial
|
||||
+ ** hostnames (the first UT_HOSTSIZE characters) instead.
|
||||
+ */
|
||||
+ char hostnamebuffer[MAXHOSTNAMELEN+1];
|
||||
+ memset(hostnamebuffer,0,MAXHOSTNAMELEN+1);
|
||||
+ if (gethostname(hostnamebuffer, MAXHOSTNAMELEN) == -1)
|
||||
+ {
|
||||
+ if ( (errno==ENOMEM) || (errno==ENAMETOOLONG) ) {
|
||||
+ /* ignore it, but very odd */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Not much chance of this being visible anywhere ... */
|
||||
+ perror("konsole:gethostname");
|
||||
+ abort();
|
||||
+ }
|
||||
+ }
|
||||
+ /* Copy hostname, possibly only partially */
|
||||
+ memset(l_struct.ut_host,0,UT_HOSTSIZE);
|
||||
+ strncpy(l_struct.ut_host,hostnamebuffer,UT_HOSTSIZE);
|
||||
+ l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
+#else
|
||||
+ /* Non-FreeBSD systems */
|
||||
if (gethostname(l_struct.ut_host, UT_HOSTSIZE) == -1) {
|
||||
- if (errno != ENOMEM)
|
||||
+ if (errno != ENOMEM)
|
||||
abort();
|
||||
l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (! (str_ptr=ttyname(tt)) ) {
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** In FreeBSD, the ttyname() call always returns NULL
|
||||
+ ** for the kinds of devices (ptys) we have opened,
|
||||
+ ** so don't abort, use a foolish default value instead.
|
||||
+ ** The call to login() probably won't work _anyway_,
|
||||
+ ** since normally users can't update the wtmp file.
|
||||
+ **
|
||||
+ ** If we were real sticklers for accuracy, we'd copy the
|
||||
+ ** code from konsole_grantpty that does it's darndest to
|
||||
+ ** file out the right tty name.
|
||||
+ */
|
||||
+ str_ptr = const_cast<char *>("/dev/konsole");
|
||||
+#else
|
||||
abort();
|
||||
+#endif
|
||||
}
|
||||
if (strncmp(str_ptr, "/dev/", 5) == 0)
|
||||
str_ptr += 5;
|
||||
@@ -607,7 +695,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
// #define CERASE 0177
|
||||
// #endif
|
||||
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCGETA,(char *)&ttmode);
|
||||
#else
|
||||
# if defined (_HPUX_SOURCE) || defined(__Lynx__)
|
||||
@@ -621,7 +709,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
ttmode.c_cc[VINTR] = CTRL('C');
|
||||
ttmode.c_cc[VQUIT] = CTRL('\\');
|
||||
ttmode.c_cc[VERASE] = 0177;
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCSETA,(char *)&ttmode);
|
||||
#else
|
||||
# ifdef _HPUX_SOURCE
|
|
@ -0,0 +1,62 @@
|
|||
--- konsole/konsole/konsole_grantpty.c 2 Sep 2002 01:09:24 -0000 1.7
|
||||
+++ konsole/konsole/konsole_grantpty.c 24 Aug 2003 21:44:01 -0000
|
||||
@@ -40,7 +40,9 @@
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
|
||||
-#define PTY_FILENO 3 /* keep in sync with grantpty */
|
||||
+#define DEFAULT_PTY_FILENO 3 /* keep in sync with TEPty.cpp */
|
||||
+int PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+
|
||||
#define TTY_GROUP "tty"
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -52,11 +54,13 @@ int main (int argc, char *argv[])
|
||||
uid_t uid;
|
||||
mode_t mod;
|
||||
char* tty;
|
||||
+ int command_fd; /* which fd to use? */
|
||||
|
||||
/* check preconditions **************************************************/
|
||||
- if (argc != 2 || (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
+ if (( (argc != 3) && (argc != 2) /* optional third arg */ ) ||
|
||||
+ (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
{
|
||||
- printf("usage: %s (--grant|--revoke)\n",argv[0]);
|
||||
+ printf("usage: %s (--grant|--revoke) [fd]\n",argv[0]);
|
||||
printf("%s is a helper for\n",argv[0]);
|
||||
printf("konsole and not intented to\n");
|
||||
printf("be called from the command\n");
|
||||
@@ -83,6 +87,22 @@ int main (int argc, char *argv[])
|
||||
uid = 0; /* root */
|
||||
mod = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
}
|
||||
+
|
||||
+ command_fd = DEFAULT_PTY_FILENO;
|
||||
+ if (argv[2])
|
||||
+ {
|
||||
+ command_fd = atoi(argv[2]);
|
||||
+ }
|
||||
+ if (command_fd > 2) /* must be out of stdin,stdout,stderr range */
|
||||
+ {
|
||||
+ PTY_FILENO=command_fd;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr,"%s: Bad command fd (seems to be %d)\n",argv[0],command_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
/* Get the group ID of the special `tty' group. */
|
||||
p = getgrnam(TTY_GROUP); /* posix */
|
||||
gid = p ? p->gr_gid : getgid (); /* posix */
|
||||
@@ -117,6 +137,9 @@ int main (int argc, char *argv[])
|
||||
if (dirp->d_fileno != dsb.st_ino)
|
||||
continue;
|
||||
{
|
||||
+ /* Else this is the right device file .. any possible memory
|
||||
+ ** leak here because two files match is unimportant?
|
||||
+ */
|
||||
int pdlen = strlen(_PATH_DEV), namelen = strlen(dirp->d_name);
|
||||
pty = malloc(pdlen + namelen + 1);
|
||||
if (pty) {
|
18
x11/kde4-runtime/files/patch-konsole-konsole-main.cpp
Normal file
18
x11/kde4-runtime/files/patch-konsole-konsole-main.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- konsole/konsole/main.cpp 29 Jun 2003 21:53:11 -0000 1.243.2.3
|
||||
+++ konsole/konsole/main.cpp 24 Aug 2003 21:44:02 -0000
|
||||
@@ -123,6 +123,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
+extern void TEPtyInit();
|
||||
|
||||
/* --| main |------------------------------------------------------ */
|
||||
int main(int argc, char* argv[])
|
||||
@@ -137,6 +138,7 @@ int main(int argc, char* argv[])
|
||||
bool scrollbaron = true;
|
||||
QCString wname = PACKAGE;
|
||||
|
||||
+ TEPtyInit();
|
||||
|
||||
KAboutData aboutData( PACKAGE, I18N_NOOP("Konsole"),
|
||||
VERSION, description, KAboutData::License_GPL_V2,
|
|
@ -0,0 +1,33 @@
|
|||
--- ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed May 7 07:44:17 2003
|
||||
+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed Aug 27 18:51:18 2003
|
||||
@@ -168,6 +168,8 @@
|
||||
int mib[4];
|
||||
struct kinfo_proc p;
|
||||
size_t len;
|
||||
+ size_t buflen = 256;
|
||||
+ char buf[256];
|
||||
|
||||
if ((ps = findProcessInList(pid)) == 0)
|
||||
{
|
||||
@@ -239,10 +241,17 @@
|
||||
#endif
|
||||
|
||||
/* process command line */
|
||||
- /* the following line causes segfaults on some FreeBSD systems... why?
|
||||
- strncpy(ps->cmdline, p.kp_proc.p_args->ar_args, sizeof(ps->cmdline) - 1);
|
||||
- */
|
||||
- strcpy(ps->cmdline, "????");
|
||||
+ /* do a sysctl to get the command line args. */
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_ARGS;
|
||||
+ mib[3] = pid;
|
||||
+
|
||||
+ if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
|
||||
+ strcpy(ps->cmdline, "????");
|
||||
+ else
|
||||
+ strncpy(ps->cmdline, buf, buflen - 1);
|
||||
|
||||
return (0);
|
||||
}
|
|
@ -277,6 +277,8 @@ lib/kde3/kio_imap4.la
|
|||
lib/kde3/kio_imap4.so
|
||||
lib/kde3/kio_info.la
|
||||
lib/kde3/kio_info.so
|
||||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
lib/kde3/kio_mac.la
|
||||
lib/kde3/kio_mac.so
|
||||
lib/kde3/kio_man.la
|
||||
|
@ -2764,6 +2766,7 @@ share/services/imagethumbnail.desktop
|
|||
share/services/imap4.protocol
|
||||
share/services/imaps.protocol
|
||||
share/services/info.protocol
|
||||
share/services/ldap.protocol
|
||||
share/services/kaccess.desktop
|
||||
share/services/kded/favicons.desktop
|
||||
share/services/kded/mountwatcher.desktop
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
share/services/ldap.protocol
|
11
x11/kde4-runtime/pkg-message
Normal file
11
x11/kde4-runtime/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
This port has installed fonts into %%PREFIX%%/share/fonts
|
||||
|
||||
You'll have to add %%PREFIX%%/share/fonts
|
||||
to your X font path by either:
|
||||
|
||||
$ xset fp+ %%PREFIX%%/share/fonts
|
||||
$ xset fp rehash
|
||||
|
||||
or by adding it to your X-server configuration file (usually
|
||||
/etc/X11/XF86Config or %%X11BASE%%/lib/X11/XF86Config) and
|
||||
restarting the X-server.
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdebase
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11 kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
|
||||
|
@ -22,6 +23,7 @@ USE_KDELIBS_VER=3
|
|||
PREFIX= ${KDE_PREFIX}
|
||||
KDE_BUILD_PLIST=yes
|
||||
|
||||
USE_OPENLDAP= yes
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_XPM= yes
|
||||
|
@ -39,12 +41,6 @@ CONFIGURE_ARGS+=--without-java \
|
|||
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# This enables kio_ldap (needed by kaddresbook).
|
||||
.if defined(WITH_LDAP) || exists($(LOCALBASE)/lib/libldap.so)
|
||||
LIB_DEPENDS+= ldap:${PORTSDIR}/net/openldap21-client
|
||||
PLIST_APPEND+= plist.ldap
|
||||
.endif
|
||||
|
||||
.if exists(${X11BASE}/include/Xm/Xm.h)
|
||||
WITH_MOTIF= yes
|
||||
.endif # exists(${X11BASE}/include/Xm/Xm.h)
|
||||
|
@ -85,5 +81,7 @@ post-install:
|
|||
${CHMOD} u+s ${PREFIX}/bin/kcheckpass
|
||||
${CHGRP} kmem ${PREFIX}/bin/ksysguardd && \
|
||||
${CHMOD} g+s ${PREFIX}/bin/ksysguardd
|
||||
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
|
||||
| ${SED} -e 's,%%X11BASE%%,${X11BASE},g'
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
122
x11/kde4-workspace/files/patch-configure
Normal file
122
x11/kde4-workspace/files/patch-configure
Normal file
|
@ -0,0 +1,122 @@
|
|||
--- configure.orig Sat Aug 23 22:55:38 2003
|
||||
+++ configure Sat Aug 23 22:57:16 2003
|
||||
@@ -33894,8 +33894,67 @@
|
||||
echo "$as_me:$LINENO: result: not found" >&5
|
||||
echo "${ECHO_T}not found" >&6
|
||||
|
||||
- { echo "$as_me:$LINENO: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&5
|
||||
-echo "$as_me: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&2;}
|
||||
+
|
||||
+ echo "$as_me:$LINENO: checking for pkg-config" >&5
|
||||
+echo $ECHO_N "checking for pkg-config... $ECHO_C" >&6
|
||||
+ if test -n "$PKGCONFIG"; then
|
||||
+ kde_cv_path="$PKGCONFIG";
|
||||
+ else
|
||||
+ kde_cache=`echo pkg-config | sed 'y%./+-%__p_%'`
|
||||
+
|
||||
+ if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ kde_cv_path="NONE"
|
||||
+ dirs="${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin"
|
||||
+ kde_save_IFS=$IFS
|
||||
+ IFS=':'
|
||||
+ for dir in $PATH; do
|
||||
+ dirs="$dirs $dir"
|
||||
+ done
|
||||
+ IFS=$kde_save_IFS
|
||||
+
|
||||
+ for dir in $dirs; do
|
||||
+ if test -x "$dir/pkg-config"; then
|
||||
+ if test -n ""
|
||||
+ then
|
||||
+ evalstr="$dir/pkg-config 2>&1 "
|
||||
+ if eval $evalstr; then
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ else
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
|
||||
+ echo "$as_me:$LINENO: result: not found" >&5
|
||||
+echo "${ECHO_T}not found" >&6
|
||||
+
|
||||
+ { echo "$as_me:$LINENO: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&5
|
||||
+echo "$as_me: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&2;}
|
||||
+
|
||||
+ else
|
||||
+ echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
+echo "${ECHO_T}$kde_cv_path" >&6
|
||||
+ PKGCONFIG=$kde_cv_path
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
@@ -33905,6 +33964,30 @@
|
||||
fi
|
||||
|
||||
|
||||
+if test -n "$PKGCONFIG"; then
|
||||
+ vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
+ if test -n "$vers" && test "$vers" -ge 1000000
|
||||
+ then
|
||||
+ LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`"
|
||||
+ LIBFONTCONFIG_RPATH=
|
||||
+ for args in $LIBFONTCONFIG_LIBS; do
|
||||
+ case $args in
|
||||
+ -L*)
|
||||
+ LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | sed -e "s/-L/-R/g"`
|
||||
+ LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`"
|
||||
+
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_FONTCONFIG 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if test -n "$FONTCONFIG_CONFIG"; then
|
||||
vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test -n "$vers" && test "$vers" -ge 1000000
|
||||
@@ -37753,7 +37836,7 @@
|
||||
do
|
||||
for j in ldap.h;
|
||||
do
|
||||
- echo "configure: 37756: $i/$j" >&5
|
||||
+ echo "configure: 37839: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_incdir=$i
|
||||
@@ -37775,7 +37858,7 @@
|
||||
do
|
||||
for j in libldap.$ext;
|
||||
do
|
||||
- echo "configure: 37778: $i/$j" >&5
|
||||
+ echo "configure: 37861: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_libdir=$i
|
||||
|
33
x11/kde4-workspace/files/patch-kdm-backend-client.c
Normal file
33
x11/kde4-workspace/files/patch-kdm-backend-client.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- kdm/backend/client.c 18 Jun 2003 20:05:15 -0000 2.25.2.4
|
||||
+++ kdm/backend/client.c 6 Aug 2003 16:02:39 -0000 2.25.2.5
|
||||
@@ -1,5 +1,5 @@
|
||||
/* $TOG: verify.c /main/37 1998/02/11 10:00:45 kaleb $ */
|
||||
-/* $Id: client.c,v 2.25.2.4 2003/06/18 20:05:15 ossi Exp $ */
|
||||
+/* $Id: client.c,v 2.25.2.5 2003/08/06 16:02:39 ossi Exp $ */
|
||||
/*
|
||||
|
||||
Copyright 1988, 1998 The Open Group
|
||||
@@ -1009,7 +1009,11 @@ StartClient (struct display *d,
|
||||
exit (1);
|
||||
# endif
|
||||
# ifdef USE_PAM
|
||||
- pam_setcred(pamh, 0);
|
||||
+ if (pam_setcred(pamh, 0) != PAM_SUCCESS) {
|
||||
+ LogError("pam_setcred for %\"s failed, errno=%d\n",
|
||||
+ name, errno);
|
||||
+ exit (1);
|
||||
+ }
|
||||
/* pass in environment variables set by libpam and modules it called */
|
||||
pam_env = pam_getenvlist(pamh);
|
||||
ReInitErrorLog ();
|
||||
@@ -1267,7 +1271,9 @@ SessionExit (struct display *d, int stat
|
||||
#ifdef USE_PAM
|
||||
if (pamh) {
|
||||
/* shutdown PAM session */
|
||||
- pam_setcred(pamh, PAM_DELETE_CRED);
|
||||
+ if (pam_setcred(pamh, PAM_DELETE_CRED) != PAM_SUCCESS)
|
||||
+ LogError("pam_setcred(DELETE_CRED) for %\"s failed, errno=%d\n",
|
||||
+ d->verify->user, errno);
|
||||
pam_close_session(pamh, 0);
|
||||
pam_end(pamh, PAM_SUCCESS);
|
||||
pamh = NULL;
|
172
x11/kde4-workspace/files/patch-konsole-konsole-TEPty.cpp
Normal file
172
x11/kde4-workspace/files/patch-konsole-konsole-TEPty.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
--- konsole/konsole/TEPty.cpp 22 Nov 2002 13:17:57 -0000 1.75
|
||||
+++ konsole/konsole/TEPty.cpp 24 Aug 2003 21:44:00 -0000
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
+// Get the Q_OS_* defines
|
||||
+#include <qglobal.h>
|
||||
+
|
||||
#ifdef __sgi
|
||||
#define __svr4__
|
||||
#endif
|
||||
@@ -88,6 +91,10 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -198,9 +205,30 @@ public:
|
||||
|
||||
FILE* syslog_file = NULL; //stdout;
|
||||
|
||||
-#define PTY_FILENO 3
|
||||
+#define DEFAULT_PTY_FILENO 3
|
||||
+int PTY_FILENO = -1; // None allocated yet.
|
||||
+
|
||||
#define BASE_CHOWN "konsole_grantpty"
|
||||
|
||||
+void TEPtyInit()
|
||||
+{
|
||||
+/*
|
||||
+** FreeBSD can't dup2(fd,3) because fd 3 is already in use by
|
||||
+** some weird pipe. So instead, we get a new throwaway fd
|
||||
+** that's not in use by anyone.
|
||||
+*/
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ PTY_FILENO = open("/dev/null",O_RDWR);
|
||||
+ if (PTY_FILENO == -1) {
|
||||
+ perror("konsole:open PTY");
|
||||
+ /* This won't work either, but hey .. */
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+ }
|
||||
+#else
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int chownpty(int fd, bool grant)
|
||||
// param fd: the fd of a master pty.
|
||||
// param grant: true to grant, false to revoke
|
||||
@@ -212,6 +240,8 @@ int chownpty(int fd, bool grant)
|
||||
newsa.sa_flags = 0;
|
||||
sigaction(SIGCHLD, &newsa, &oldsa);
|
||||
|
||||
+ if (PTY_FILENO == -1) TEPtyInit();
|
||||
+
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
{
|
||||
@@ -225,7 +255,12 @@ int chownpty(int fd, bool grant)
|
||||
/* We pass the master pseudo terminal as file descriptor PTY_FILENO. */
|
||||
if (fd != PTY_FILENO && dup2(fd, PTY_FILENO) < 0) exit(1);
|
||||
QString path = locate("exe", BASE_CHOWN);
|
||||
- execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", NULL, NULL);
|
||||
+ /*
|
||||
+ ** Because konsole_grantpty now can't expect the fd
|
||||
+ ** to be constant, we need an additional parameter.
|
||||
+ */
|
||||
+ QString fdnumber = QString::number(PTY_FILENO);
|
||||
+ execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", fdnumber.ascii(), NULL, NULL);
|
||||
exit(1); // should not be reached
|
||||
}
|
||||
|
||||
@@ -486,6 +521,16 @@ int TEPty::makePty(bool _addutmp)
|
||||
// open and set all standard files to slave tty
|
||||
int tt = m_SlaveFd; // Already opened?
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** It seems to be possible for SlaveFd to be closed in error
|
||||
+ ** somewhere along the line. So check it for "liveness".
|
||||
+ */
|
||||
+ struct stat sb;
|
||||
+ if (fstat(tt,&sb)!=0)
|
||||
+ tt=-1; // Apparently not alive.
|
||||
+#endif
|
||||
+
|
||||
if (tt < 0)
|
||||
tt = open(ttynam, O_RDWR);
|
||||
|
||||
@@ -524,14 +569,57 @@ int TEPty::makePty(bool _addutmp)
|
||||
}
|
||||
strncpy(l_struct.ut_name, str_ptr, UT_NAMESIZE);
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /* FreeBSD until august 22, 2003 returned ENOMEM for too-long
|
||||
+ ** hostnames. Then sanity prevailed (?) and the error was changed
|
||||
+ ** to NAMETOOLONG, but this breaks konsole .. again.
|
||||
+ **
|
||||
+ ** Instead of bailing out with long hostnames, put in partial
|
||||
+ ** hostnames (the first UT_HOSTSIZE characters) instead.
|
||||
+ */
|
||||
+ char hostnamebuffer[MAXHOSTNAMELEN+1];
|
||||
+ memset(hostnamebuffer,0,MAXHOSTNAMELEN+1);
|
||||
+ if (gethostname(hostnamebuffer, MAXHOSTNAMELEN) == -1)
|
||||
+ {
|
||||
+ if ( (errno==ENOMEM) || (errno==ENAMETOOLONG) ) {
|
||||
+ /* ignore it, but very odd */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Not much chance of this being visible anywhere ... */
|
||||
+ perror("konsole:gethostname");
|
||||
+ abort();
|
||||
+ }
|
||||
+ }
|
||||
+ /* Copy hostname, possibly only partially */
|
||||
+ memset(l_struct.ut_host,0,UT_HOSTSIZE);
|
||||
+ strncpy(l_struct.ut_host,hostnamebuffer,UT_HOSTSIZE);
|
||||
+ l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
+#else
|
||||
+ /* Non-FreeBSD systems */
|
||||
if (gethostname(l_struct.ut_host, UT_HOSTSIZE) == -1) {
|
||||
- if (errno != ENOMEM)
|
||||
+ if (errno != ENOMEM)
|
||||
abort();
|
||||
l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (! (str_ptr=ttyname(tt)) ) {
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** In FreeBSD, the ttyname() call always returns NULL
|
||||
+ ** for the kinds of devices (ptys) we have opened,
|
||||
+ ** so don't abort, use a foolish default value instead.
|
||||
+ ** The call to login() probably won't work _anyway_,
|
||||
+ ** since normally users can't update the wtmp file.
|
||||
+ **
|
||||
+ ** If we were real sticklers for accuracy, we'd copy the
|
||||
+ ** code from konsole_grantpty that does it's darndest to
|
||||
+ ** file out the right tty name.
|
||||
+ */
|
||||
+ str_ptr = const_cast<char *>("/dev/konsole");
|
||||
+#else
|
||||
abort();
|
||||
+#endif
|
||||
}
|
||||
if (strncmp(str_ptr, "/dev/", 5) == 0)
|
||||
str_ptr += 5;
|
||||
@@ -607,7 +695,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
// #define CERASE 0177
|
||||
// #endif
|
||||
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCGETA,(char *)&ttmode);
|
||||
#else
|
||||
# if defined (_HPUX_SOURCE) || defined(__Lynx__)
|
||||
@@ -621,7 +709,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
ttmode.c_cc[VINTR] = CTRL('C');
|
||||
ttmode.c_cc[VQUIT] = CTRL('\\');
|
||||
ttmode.c_cc[VERASE] = 0177;
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCSETA,(char *)&ttmode);
|
||||
#else
|
||||
# ifdef _HPUX_SOURCE
|
|
@ -0,0 +1,62 @@
|
|||
--- konsole/konsole/konsole_grantpty.c 2 Sep 2002 01:09:24 -0000 1.7
|
||||
+++ konsole/konsole/konsole_grantpty.c 24 Aug 2003 21:44:01 -0000
|
||||
@@ -40,7 +40,9 @@
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
|
||||
-#define PTY_FILENO 3 /* keep in sync with grantpty */
|
||||
+#define DEFAULT_PTY_FILENO 3 /* keep in sync with TEPty.cpp */
|
||||
+int PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+
|
||||
#define TTY_GROUP "tty"
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -52,11 +54,13 @@ int main (int argc, char *argv[])
|
||||
uid_t uid;
|
||||
mode_t mod;
|
||||
char* tty;
|
||||
+ int command_fd; /* which fd to use? */
|
||||
|
||||
/* check preconditions **************************************************/
|
||||
- if (argc != 2 || (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
+ if (( (argc != 3) && (argc != 2) /* optional third arg */ ) ||
|
||||
+ (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
{
|
||||
- printf("usage: %s (--grant|--revoke)\n",argv[0]);
|
||||
+ printf("usage: %s (--grant|--revoke) [fd]\n",argv[0]);
|
||||
printf("%s is a helper for\n",argv[0]);
|
||||
printf("konsole and not intented to\n");
|
||||
printf("be called from the command\n");
|
||||
@@ -83,6 +87,22 @@ int main (int argc, char *argv[])
|
||||
uid = 0; /* root */
|
||||
mod = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
}
|
||||
+
|
||||
+ command_fd = DEFAULT_PTY_FILENO;
|
||||
+ if (argv[2])
|
||||
+ {
|
||||
+ command_fd = atoi(argv[2]);
|
||||
+ }
|
||||
+ if (command_fd > 2) /* must be out of stdin,stdout,stderr range */
|
||||
+ {
|
||||
+ PTY_FILENO=command_fd;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr,"%s: Bad command fd (seems to be %d)\n",argv[0],command_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
/* Get the group ID of the special `tty' group. */
|
||||
p = getgrnam(TTY_GROUP); /* posix */
|
||||
gid = p ? p->gr_gid : getgid (); /* posix */
|
||||
@@ -117,6 +137,9 @@ int main (int argc, char *argv[])
|
||||
if (dirp->d_fileno != dsb.st_ino)
|
||||
continue;
|
||||
{
|
||||
+ /* Else this is the right device file .. any possible memory
|
||||
+ ** leak here because two files match is unimportant?
|
||||
+ */
|
||||
int pdlen = strlen(_PATH_DEV), namelen = strlen(dirp->d_name);
|
||||
pty = malloc(pdlen + namelen + 1);
|
||||
if (pty) {
|
18
x11/kde4-workspace/files/patch-konsole-konsole-main.cpp
Normal file
18
x11/kde4-workspace/files/patch-konsole-konsole-main.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- konsole/konsole/main.cpp 29 Jun 2003 21:53:11 -0000 1.243.2.3
|
||||
+++ konsole/konsole/main.cpp 24 Aug 2003 21:44:02 -0000
|
||||
@@ -123,6 +123,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
+extern void TEPtyInit();
|
||||
|
||||
/* --| main |------------------------------------------------------ */
|
||||
int main(int argc, char* argv[])
|
||||
@@ -137,6 +138,7 @@ int main(int argc, char* argv[])
|
||||
bool scrollbaron = true;
|
||||
QCString wname = PACKAGE;
|
||||
|
||||
+ TEPtyInit();
|
||||
|
||||
KAboutData aboutData( PACKAGE, I18N_NOOP("Konsole"),
|
||||
VERSION, description, KAboutData::License_GPL_V2,
|
|
@ -0,0 +1,33 @@
|
|||
--- ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed May 7 07:44:17 2003
|
||||
+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed Aug 27 18:51:18 2003
|
||||
@@ -168,6 +168,8 @@
|
||||
int mib[4];
|
||||
struct kinfo_proc p;
|
||||
size_t len;
|
||||
+ size_t buflen = 256;
|
||||
+ char buf[256];
|
||||
|
||||
if ((ps = findProcessInList(pid)) == 0)
|
||||
{
|
||||
@@ -239,10 +241,17 @@
|
||||
#endif
|
||||
|
||||
/* process command line */
|
||||
- /* the following line causes segfaults on some FreeBSD systems... why?
|
||||
- strncpy(ps->cmdline, p.kp_proc.p_args->ar_args, sizeof(ps->cmdline) - 1);
|
||||
- */
|
||||
- strcpy(ps->cmdline, "????");
|
||||
+ /* do a sysctl to get the command line args. */
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_ARGS;
|
||||
+ mib[3] = pid;
|
||||
+
|
||||
+ if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
|
||||
+ strcpy(ps->cmdline, "????");
|
||||
+ else
|
||||
+ strncpy(ps->cmdline, buf, buflen - 1);
|
||||
|
||||
return (0);
|
||||
}
|
|
@ -277,6 +277,8 @@ lib/kde3/kio_imap4.la
|
|||
lib/kde3/kio_imap4.so
|
||||
lib/kde3/kio_info.la
|
||||
lib/kde3/kio_info.so
|
||||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
lib/kde3/kio_mac.la
|
||||
lib/kde3/kio_mac.so
|
||||
lib/kde3/kio_man.la
|
||||
|
@ -2764,6 +2766,7 @@ share/services/imagethumbnail.desktop
|
|||
share/services/imap4.protocol
|
||||
share/services/imaps.protocol
|
||||
share/services/info.protocol
|
||||
share/services/ldap.protocol
|
||||
share/services/kaccess.desktop
|
||||
share/services/kded/favicons.desktop
|
||||
share/services/kded/mountwatcher.desktop
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
share/services/ldap.protocol
|
11
x11/kde4-workspace/pkg-message
Normal file
11
x11/kde4-workspace/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
This port has installed fonts into %%PREFIX%%/share/fonts
|
||||
|
||||
You'll have to add %%PREFIX%%/share/fonts
|
||||
to your X font path by either:
|
||||
|
||||
$ xset fp+ %%PREFIX%%/share/fonts
|
||||
$ xset fp rehash
|
||||
|
||||
or by adding it to your X-server configuration file (usually
|
||||
/etc/X11/XF86Config or %%X11BASE%%/lib/X11/XF86Config) and
|
||||
restarting the X-server.
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdebase
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11 kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
|
||||
|
@ -22,6 +23,7 @@ USE_KDELIBS_VER=3
|
|||
PREFIX= ${KDE_PREFIX}
|
||||
KDE_BUILD_PLIST=yes
|
||||
|
||||
USE_OPENLDAP= yes
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_XPM= yes
|
||||
|
@ -39,12 +41,6 @@ CONFIGURE_ARGS+=--without-java \
|
|||
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# This enables kio_ldap (needed by kaddresbook).
|
||||
.if defined(WITH_LDAP) || exists($(LOCALBASE)/lib/libldap.so)
|
||||
LIB_DEPENDS+= ldap:${PORTSDIR}/net/openldap21-client
|
||||
PLIST_APPEND+= plist.ldap
|
||||
.endif
|
||||
|
||||
.if exists(${X11BASE}/include/Xm/Xm.h)
|
||||
WITH_MOTIF= yes
|
||||
.endif # exists(${X11BASE}/include/Xm/Xm.h)
|
||||
|
@ -85,5 +81,7 @@ post-install:
|
|||
${CHMOD} u+s ${PREFIX}/bin/kcheckpass
|
||||
${CHGRP} kmem ${PREFIX}/bin/ksysguardd && \
|
||||
${CHMOD} g+s ${PREFIX}/bin/ksysguardd
|
||||
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
|
||||
| ${SED} -e 's,%%X11BASE%%,${X11BASE},g'
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
122
x11/kdebase3/files/patch-configure
Normal file
122
x11/kdebase3/files/patch-configure
Normal file
|
@ -0,0 +1,122 @@
|
|||
--- configure.orig Sat Aug 23 22:55:38 2003
|
||||
+++ configure Sat Aug 23 22:57:16 2003
|
||||
@@ -33894,8 +33894,67 @@
|
||||
echo "$as_me:$LINENO: result: not found" >&5
|
||||
echo "${ECHO_T}not found" >&6
|
||||
|
||||
- { echo "$as_me:$LINENO: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&5
|
||||
-echo "$as_me: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&2;}
|
||||
+
|
||||
+ echo "$as_me:$LINENO: checking for pkg-config" >&5
|
||||
+echo $ECHO_N "checking for pkg-config... $ECHO_C" >&6
|
||||
+ if test -n "$PKGCONFIG"; then
|
||||
+ kde_cv_path="$PKGCONFIG";
|
||||
+ else
|
||||
+ kde_cache=`echo pkg-config | sed 'y%./+-%__p_%'`
|
||||
+
|
||||
+ if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ kde_cv_path="NONE"
|
||||
+ dirs="${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin"
|
||||
+ kde_save_IFS=$IFS
|
||||
+ IFS=':'
|
||||
+ for dir in $PATH; do
|
||||
+ dirs="$dirs $dir"
|
||||
+ done
|
||||
+ IFS=$kde_save_IFS
|
||||
+
|
||||
+ for dir in $dirs; do
|
||||
+ if test -x "$dir/pkg-config"; then
|
||||
+ if test -n ""
|
||||
+ then
|
||||
+ evalstr="$dir/pkg-config 2>&1 "
|
||||
+ if eval $evalstr; then
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ else
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
|
||||
+ echo "$as_me:$LINENO: result: not found" >&5
|
||||
+echo "${ECHO_T}not found" >&6
|
||||
+
|
||||
+ { echo "$as_me:$LINENO: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&5
|
||||
+echo "$as_me: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&2;}
|
||||
+
|
||||
+ else
|
||||
+ echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
+echo "${ECHO_T}$kde_cv_path" >&6
|
||||
+ PKGCONFIG=$kde_cv_path
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
@@ -33905,6 +33964,30 @@
|
||||
fi
|
||||
|
||||
|
||||
+if test -n "$PKGCONFIG"; then
|
||||
+ vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
+ if test -n "$vers" && test "$vers" -ge 1000000
|
||||
+ then
|
||||
+ LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`"
|
||||
+ LIBFONTCONFIG_RPATH=
|
||||
+ for args in $LIBFONTCONFIG_LIBS; do
|
||||
+ case $args in
|
||||
+ -L*)
|
||||
+ LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | sed -e "s/-L/-R/g"`
|
||||
+ LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`"
|
||||
+
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_FONTCONFIG 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if test -n "$FONTCONFIG_CONFIG"; then
|
||||
vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test -n "$vers" && test "$vers" -ge 1000000
|
||||
@@ -37753,7 +37836,7 @@
|
||||
do
|
||||
for j in ldap.h;
|
||||
do
|
||||
- echo "configure: 37756: $i/$j" >&5
|
||||
+ echo "configure: 37839: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_incdir=$i
|
||||
@@ -37775,7 +37858,7 @@
|
||||
do
|
||||
for j in libldap.$ext;
|
||||
do
|
||||
- echo "configure: 37778: $i/$j" >&5
|
||||
+ echo "configure: 37861: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_libdir=$i
|
||||
|
33
x11/kdebase3/files/patch-kdm-backend-client.c
Normal file
33
x11/kdebase3/files/patch-kdm-backend-client.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- kdm/backend/client.c 18 Jun 2003 20:05:15 -0000 2.25.2.4
|
||||
+++ kdm/backend/client.c 6 Aug 2003 16:02:39 -0000 2.25.2.5
|
||||
@@ -1,5 +1,5 @@
|
||||
/* $TOG: verify.c /main/37 1998/02/11 10:00:45 kaleb $ */
|
||||
-/* $Id: client.c,v 2.25.2.4 2003/06/18 20:05:15 ossi Exp $ */
|
||||
+/* $Id: client.c,v 2.25.2.5 2003/08/06 16:02:39 ossi Exp $ */
|
||||
/*
|
||||
|
||||
Copyright 1988, 1998 The Open Group
|
||||
@@ -1009,7 +1009,11 @@ StartClient (struct display *d,
|
||||
exit (1);
|
||||
# endif
|
||||
# ifdef USE_PAM
|
||||
- pam_setcred(pamh, 0);
|
||||
+ if (pam_setcred(pamh, 0) != PAM_SUCCESS) {
|
||||
+ LogError("pam_setcred for %\"s failed, errno=%d\n",
|
||||
+ name, errno);
|
||||
+ exit (1);
|
||||
+ }
|
||||
/* pass in environment variables set by libpam and modules it called */
|
||||
pam_env = pam_getenvlist(pamh);
|
||||
ReInitErrorLog ();
|
||||
@@ -1267,7 +1271,9 @@ SessionExit (struct display *d, int stat
|
||||
#ifdef USE_PAM
|
||||
if (pamh) {
|
||||
/* shutdown PAM session */
|
||||
- pam_setcred(pamh, PAM_DELETE_CRED);
|
||||
+ if (pam_setcred(pamh, PAM_DELETE_CRED) != PAM_SUCCESS)
|
||||
+ LogError("pam_setcred(DELETE_CRED) for %\"s failed, errno=%d\n",
|
||||
+ d->verify->user, errno);
|
||||
pam_close_session(pamh, 0);
|
||||
pam_end(pamh, PAM_SUCCESS);
|
||||
pamh = NULL;
|
172
x11/kdebase3/files/patch-konsole-konsole-TEPty.cpp
Normal file
172
x11/kdebase3/files/patch-konsole-konsole-TEPty.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
--- konsole/konsole/TEPty.cpp 22 Nov 2002 13:17:57 -0000 1.75
|
||||
+++ konsole/konsole/TEPty.cpp 24 Aug 2003 21:44:00 -0000
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
+// Get the Q_OS_* defines
|
||||
+#include <qglobal.h>
|
||||
+
|
||||
#ifdef __sgi
|
||||
#define __svr4__
|
||||
#endif
|
||||
@@ -88,6 +91,10 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -198,9 +205,30 @@ public:
|
||||
|
||||
FILE* syslog_file = NULL; //stdout;
|
||||
|
||||
-#define PTY_FILENO 3
|
||||
+#define DEFAULT_PTY_FILENO 3
|
||||
+int PTY_FILENO = -1; // None allocated yet.
|
||||
+
|
||||
#define BASE_CHOWN "konsole_grantpty"
|
||||
|
||||
+void TEPtyInit()
|
||||
+{
|
||||
+/*
|
||||
+** FreeBSD can't dup2(fd,3) because fd 3 is already in use by
|
||||
+** some weird pipe. So instead, we get a new throwaway fd
|
||||
+** that's not in use by anyone.
|
||||
+*/
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ PTY_FILENO = open("/dev/null",O_RDWR);
|
||||
+ if (PTY_FILENO == -1) {
|
||||
+ perror("konsole:open PTY");
|
||||
+ /* This won't work either, but hey .. */
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+ }
|
||||
+#else
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int chownpty(int fd, bool grant)
|
||||
// param fd: the fd of a master pty.
|
||||
// param grant: true to grant, false to revoke
|
||||
@@ -212,6 +240,8 @@ int chownpty(int fd, bool grant)
|
||||
newsa.sa_flags = 0;
|
||||
sigaction(SIGCHLD, &newsa, &oldsa);
|
||||
|
||||
+ if (PTY_FILENO == -1) TEPtyInit();
|
||||
+
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
{
|
||||
@@ -225,7 +255,12 @@ int chownpty(int fd, bool grant)
|
||||
/* We pass the master pseudo terminal as file descriptor PTY_FILENO. */
|
||||
if (fd != PTY_FILENO && dup2(fd, PTY_FILENO) < 0) exit(1);
|
||||
QString path = locate("exe", BASE_CHOWN);
|
||||
- execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", NULL, NULL);
|
||||
+ /*
|
||||
+ ** Because konsole_grantpty now can't expect the fd
|
||||
+ ** to be constant, we need an additional parameter.
|
||||
+ */
|
||||
+ QString fdnumber = QString::number(PTY_FILENO);
|
||||
+ execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", fdnumber.ascii(), NULL, NULL);
|
||||
exit(1); // should not be reached
|
||||
}
|
||||
|
||||
@@ -486,6 +521,16 @@ int TEPty::makePty(bool _addutmp)
|
||||
// open and set all standard files to slave tty
|
||||
int tt = m_SlaveFd; // Already opened?
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** It seems to be possible for SlaveFd to be closed in error
|
||||
+ ** somewhere along the line. So check it for "liveness".
|
||||
+ */
|
||||
+ struct stat sb;
|
||||
+ if (fstat(tt,&sb)!=0)
|
||||
+ tt=-1; // Apparently not alive.
|
||||
+#endif
|
||||
+
|
||||
if (tt < 0)
|
||||
tt = open(ttynam, O_RDWR);
|
||||
|
||||
@@ -524,14 +569,57 @@ int TEPty::makePty(bool _addutmp)
|
||||
}
|
||||
strncpy(l_struct.ut_name, str_ptr, UT_NAMESIZE);
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /* FreeBSD until august 22, 2003 returned ENOMEM for too-long
|
||||
+ ** hostnames. Then sanity prevailed (?) and the error was changed
|
||||
+ ** to NAMETOOLONG, but this breaks konsole .. again.
|
||||
+ **
|
||||
+ ** Instead of bailing out with long hostnames, put in partial
|
||||
+ ** hostnames (the first UT_HOSTSIZE characters) instead.
|
||||
+ */
|
||||
+ char hostnamebuffer[MAXHOSTNAMELEN+1];
|
||||
+ memset(hostnamebuffer,0,MAXHOSTNAMELEN+1);
|
||||
+ if (gethostname(hostnamebuffer, MAXHOSTNAMELEN) == -1)
|
||||
+ {
|
||||
+ if ( (errno==ENOMEM) || (errno==ENAMETOOLONG) ) {
|
||||
+ /* ignore it, but very odd */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Not much chance of this being visible anywhere ... */
|
||||
+ perror("konsole:gethostname");
|
||||
+ abort();
|
||||
+ }
|
||||
+ }
|
||||
+ /* Copy hostname, possibly only partially */
|
||||
+ memset(l_struct.ut_host,0,UT_HOSTSIZE);
|
||||
+ strncpy(l_struct.ut_host,hostnamebuffer,UT_HOSTSIZE);
|
||||
+ l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
+#else
|
||||
+ /* Non-FreeBSD systems */
|
||||
if (gethostname(l_struct.ut_host, UT_HOSTSIZE) == -1) {
|
||||
- if (errno != ENOMEM)
|
||||
+ if (errno != ENOMEM)
|
||||
abort();
|
||||
l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (! (str_ptr=ttyname(tt)) ) {
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** In FreeBSD, the ttyname() call always returns NULL
|
||||
+ ** for the kinds of devices (ptys) we have opened,
|
||||
+ ** so don't abort, use a foolish default value instead.
|
||||
+ ** The call to login() probably won't work _anyway_,
|
||||
+ ** since normally users can't update the wtmp file.
|
||||
+ **
|
||||
+ ** If we were real sticklers for accuracy, we'd copy the
|
||||
+ ** code from konsole_grantpty that does it's darndest to
|
||||
+ ** file out the right tty name.
|
||||
+ */
|
||||
+ str_ptr = const_cast<char *>("/dev/konsole");
|
||||
+#else
|
||||
abort();
|
||||
+#endif
|
||||
}
|
||||
if (strncmp(str_ptr, "/dev/", 5) == 0)
|
||||
str_ptr += 5;
|
||||
@@ -607,7 +695,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
// #define CERASE 0177
|
||||
// #endif
|
||||
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCGETA,(char *)&ttmode);
|
||||
#else
|
||||
# if defined (_HPUX_SOURCE) || defined(__Lynx__)
|
||||
@@ -621,7 +709,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
ttmode.c_cc[VINTR] = CTRL('C');
|
||||
ttmode.c_cc[VQUIT] = CTRL('\\');
|
||||
ttmode.c_cc[VERASE] = 0177;
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCSETA,(char *)&ttmode);
|
||||
#else
|
||||
# ifdef _HPUX_SOURCE
|
62
x11/kdebase3/files/patch-konsole-konsole-konsole_grantpty.c
Normal file
62
x11/kdebase3/files/patch-konsole-konsole-konsole_grantpty.c
Normal file
|
@ -0,0 +1,62 @@
|
|||
--- konsole/konsole/konsole_grantpty.c 2 Sep 2002 01:09:24 -0000 1.7
|
||||
+++ konsole/konsole/konsole_grantpty.c 24 Aug 2003 21:44:01 -0000
|
||||
@@ -40,7 +40,9 @@
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
|
||||
-#define PTY_FILENO 3 /* keep in sync with grantpty */
|
||||
+#define DEFAULT_PTY_FILENO 3 /* keep in sync with TEPty.cpp */
|
||||
+int PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+
|
||||
#define TTY_GROUP "tty"
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -52,11 +54,13 @@ int main (int argc, char *argv[])
|
||||
uid_t uid;
|
||||
mode_t mod;
|
||||
char* tty;
|
||||
+ int command_fd; /* which fd to use? */
|
||||
|
||||
/* check preconditions **************************************************/
|
||||
- if (argc != 2 || (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
+ if (( (argc != 3) && (argc != 2) /* optional third arg */ ) ||
|
||||
+ (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
{
|
||||
- printf("usage: %s (--grant|--revoke)\n",argv[0]);
|
||||
+ printf("usage: %s (--grant|--revoke) [fd]\n",argv[0]);
|
||||
printf("%s is a helper for\n",argv[0]);
|
||||
printf("konsole and not intented to\n");
|
||||
printf("be called from the command\n");
|
||||
@@ -83,6 +87,22 @@ int main (int argc, char *argv[])
|
||||
uid = 0; /* root */
|
||||
mod = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
}
|
||||
+
|
||||
+ command_fd = DEFAULT_PTY_FILENO;
|
||||
+ if (argv[2])
|
||||
+ {
|
||||
+ command_fd = atoi(argv[2]);
|
||||
+ }
|
||||
+ if (command_fd > 2) /* must be out of stdin,stdout,stderr range */
|
||||
+ {
|
||||
+ PTY_FILENO=command_fd;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr,"%s: Bad command fd (seems to be %d)\n",argv[0],command_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
/* Get the group ID of the special `tty' group. */
|
||||
p = getgrnam(TTY_GROUP); /* posix */
|
||||
gid = p ? p->gr_gid : getgid (); /* posix */
|
||||
@@ -117,6 +137,9 @@ int main (int argc, char *argv[])
|
||||
if (dirp->d_fileno != dsb.st_ino)
|
||||
continue;
|
||||
{
|
||||
+ /* Else this is the right device file .. any possible memory
|
||||
+ ** leak here because two files match is unimportant?
|
||||
+ */
|
||||
int pdlen = strlen(_PATH_DEV), namelen = strlen(dirp->d_name);
|
||||
pty = malloc(pdlen + namelen + 1);
|
||||
if (pty) {
|
18
x11/kdebase3/files/patch-konsole-konsole-main.cpp
Normal file
18
x11/kdebase3/files/patch-konsole-konsole-main.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- konsole/konsole/main.cpp 29 Jun 2003 21:53:11 -0000 1.243.2.3
|
||||
+++ konsole/konsole/main.cpp 24 Aug 2003 21:44:02 -0000
|
||||
@@ -123,6 +123,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
+extern void TEPtyInit();
|
||||
|
||||
/* --| main |------------------------------------------------------ */
|
||||
int main(int argc, char* argv[])
|
||||
@@ -137,6 +138,7 @@ int main(int argc, char* argv[])
|
||||
bool scrollbaron = true;
|
||||
QCString wname = PACKAGE;
|
||||
|
||||
+ TEPtyInit();
|
||||
|
||||
KAboutData aboutData( PACKAGE, I18N_NOOP("Konsole"),
|
||||
VERSION, description, KAboutData::License_GPL_V2,
|
|
@ -0,0 +1,33 @@
|
|||
--- ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed May 7 07:44:17 2003
|
||||
+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed Aug 27 18:51:18 2003
|
||||
@@ -168,6 +168,8 @@
|
||||
int mib[4];
|
||||
struct kinfo_proc p;
|
||||
size_t len;
|
||||
+ size_t buflen = 256;
|
||||
+ char buf[256];
|
||||
|
||||
if ((ps = findProcessInList(pid)) == 0)
|
||||
{
|
||||
@@ -239,10 +241,17 @@
|
||||
#endif
|
||||
|
||||
/* process command line */
|
||||
- /* the following line causes segfaults on some FreeBSD systems... why?
|
||||
- strncpy(ps->cmdline, p.kp_proc.p_args->ar_args, sizeof(ps->cmdline) - 1);
|
||||
- */
|
||||
- strcpy(ps->cmdline, "????");
|
||||
+ /* do a sysctl to get the command line args. */
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_ARGS;
|
||||
+ mib[3] = pid;
|
||||
+
|
||||
+ if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
|
||||
+ strcpy(ps->cmdline, "????");
|
||||
+ else
|
||||
+ strncpy(ps->cmdline, buf, buflen - 1);
|
||||
|
||||
return (0);
|
||||
}
|
|
@ -277,6 +277,8 @@ lib/kde3/kio_imap4.la
|
|||
lib/kde3/kio_imap4.so
|
||||
lib/kde3/kio_info.la
|
||||
lib/kde3/kio_info.so
|
||||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
lib/kde3/kio_mac.la
|
||||
lib/kde3/kio_mac.so
|
||||
lib/kde3/kio_man.la
|
||||
|
@ -2764,6 +2766,7 @@ share/services/imagethumbnail.desktop
|
|||
share/services/imap4.protocol
|
||||
share/services/imaps.protocol
|
||||
share/services/info.protocol
|
||||
share/services/ldap.protocol
|
||||
share/services/kaccess.desktop
|
||||
share/services/kded/favicons.desktop
|
||||
share/services/kded/mountwatcher.desktop
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
share/services/ldap.protocol
|
11
x11/kdebase3/pkg-message
Normal file
11
x11/kdebase3/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
This port has installed fonts into %%PREFIX%%/share/fonts
|
||||
|
||||
You'll have to add %%PREFIX%%/share/fonts
|
||||
to your X font path by either:
|
||||
|
||||
$ xset fp+ %%PREFIX%%/share/fonts
|
||||
$ xset fp rehash
|
||||
|
||||
or by adding it to your X-server configuration file (usually
|
||||
/etc/X11/XF86Config or %%X11BASE%%/lib/X11/XF86Config) and
|
||||
restarting the X-server.
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdebase
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11 kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
|
||||
|
@ -22,6 +23,7 @@ USE_KDELIBS_VER=3
|
|||
PREFIX= ${KDE_PREFIX}
|
||||
KDE_BUILD_PLIST=yes
|
||||
|
||||
USE_OPENLDAP= yes
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_XPM= yes
|
||||
|
@ -39,12 +41,6 @@ CONFIGURE_ARGS+=--without-java \
|
|||
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# This enables kio_ldap (needed by kaddresbook).
|
||||
.if defined(WITH_LDAP) || exists($(LOCALBASE)/lib/libldap.so)
|
||||
LIB_DEPENDS+= ldap:${PORTSDIR}/net/openldap21-client
|
||||
PLIST_APPEND+= plist.ldap
|
||||
.endif
|
||||
|
||||
.if exists(${X11BASE}/include/Xm/Xm.h)
|
||||
WITH_MOTIF= yes
|
||||
.endif # exists(${X11BASE}/include/Xm/Xm.h)
|
||||
|
@ -85,5 +81,7 @@ post-install:
|
|||
${CHMOD} u+s ${PREFIX}/bin/kcheckpass
|
||||
${CHGRP} kmem ${PREFIX}/bin/ksysguardd && \
|
||||
${CHMOD} g+s ${PREFIX}/bin/ksysguardd
|
||||
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
|
||||
| ${SED} -e 's,%%X11BASE%%,${X11BASE},g'
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
122
x11/kdebase4-runtime/files/patch-configure
Normal file
122
x11/kdebase4-runtime/files/patch-configure
Normal file
|
@ -0,0 +1,122 @@
|
|||
--- configure.orig Sat Aug 23 22:55:38 2003
|
||||
+++ configure Sat Aug 23 22:57:16 2003
|
||||
@@ -33894,8 +33894,67 @@
|
||||
echo "$as_me:$LINENO: result: not found" >&5
|
||||
echo "${ECHO_T}not found" >&6
|
||||
|
||||
- { echo "$as_me:$LINENO: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&5
|
||||
-echo "$as_me: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&2;}
|
||||
+
|
||||
+ echo "$as_me:$LINENO: checking for pkg-config" >&5
|
||||
+echo $ECHO_N "checking for pkg-config... $ECHO_C" >&6
|
||||
+ if test -n "$PKGCONFIG"; then
|
||||
+ kde_cv_path="$PKGCONFIG";
|
||||
+ else
|
||||
+ kde_cache=`echo pkg-config | sed 'y%./+-%__p_%'`
|
||||
+
|
||||
+ if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ kde_cv_path="NONE"
|
||||
+ dirs="${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin"
|
||||
+ kde_save_IFS=$IFS
|
||||
+ IFS=':'
|
||||
+ for dir in $PATH; do
|
||||
+ dirs="$dirs $dir"
|
||||
+ done
|
||||
+ IFS=$kde_save_IFS
|
||||
+
|
||||
+ for dir in $dirs; do
|
||||
+ if test -x "$dir/pkg-config"; then
|
||||
+ if test -n ""
|
||||
+ then
|
||||
+ evalstr="$dir/pkg-config 2>&1 "
|
||||
+ if eval $evalstr; then
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ else
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
|
||||
+ echo "$as_me:$LINENO: result: not found" >&5
|
||||
+echo "${ECHO_T}not found" >&6
|
||||
+
|
||||
+ { echo "$as_me:$LINENO: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&5
|
||||
+echo "$as_me: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&2;}
|
||||
+
|
||||
+ else
|
||||
+ echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
+echo "${ECHO_T}$kde_cv_path" >&6
|
||||
+ PKGCONFIG=$kde_cv_path
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
@@ -33905,6 +33964,30 @@
|
||||
fi
|
||||
|
||||
|
||||
+if test -n "$PKGCONFIG"; then
|
||||
+ vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
+ if test -n "$vers" && test "$vers" -ge 1000000
|
||||
+ then
|
||||
+ LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`"
|
||||
+ LIBFONTCONFIG_RPATH=
|
||||
+ for args in $LIBFONTCONFIG_LIBS; do
|
||||
+ case $args in
|
||||
+ -L*)
|
||||
+ LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | sed -e "s/-L/-R/g"`
|
||||
+ LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`"
|
||||
+
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_FONTCONFIG 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if test -n "$FONTCONFIG_CONFIG"; then
|
||||
vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test -n "$vers" && test "$vers" -ge 1000000
|
||||
@@ -37753,7 +37836,7 @@
|
||||
do
|
||||
for j in ldap.h;
|
||||
do
|
||||
- echo "configure: 37756: $i/$j" >&5
|
||||
+ echo "configure: 37839: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_incdir=$i
|
||||
@@ -37775,7 +37858,7 @@
|
||||
do
|
||||
for j in libldap.$ext;
|
||||
do
|
||||
- echo "configure: 37778: $i/$j" >&5
|
||||
+ echo "configure: 37861: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_libdir=$i
|
||||
|
33
x11/kdebase4-runtime/files/patch-kdm-backend-client.c
Normal file
33
x11/kdebase4-runtime/files/patch-kdm-backend-client.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- kdm/backend/client.c 18 Jun 2003 20:05:15 -0000 2.25.2.4
|
||||
+++ kdm/backend/client.c 6 Aug 2003 16:02:39 -0000 2.25.2.5
|
||||
@@ -1,5 +1,5 @@
|
||||
/* $TOG: verify.c /main/37 1998/02/11 10:00:45 kaleb $ */
|
||||
-/* $Id: client.c,v 2.25.2.4 2003/06/18 20:05:15 ossi Exp $ */
|
||||
+/* $Id: client.c,v 2.25.2.5 2003/08/06 16:02:39 ossi Exp $ */
|
||||
/*
|
||||
|
||||
Copyright 1988, 1998 The Open Group
|
||||
@@ -1009,7 +1009,11 @@ StartClient (struct display *d,
|
||||
exit (1);
|
||||
# endif
|
||||
# ifdef USE_PAM
|
||||
- pam_setcred(pamh, 0);
|
||||
+ if (pam_setcred(pamh, 0) != PAM_SUCCESS) {
|
||||
+ LogError("pam_setcred for %\"s failed, errno=%d\n",
|
||||
+ name, errno);
|
||||
+ exit (1);
|
||||
+ }
|
||||
/* pass in environment variables set by libpam and modules it called */
|
||||
pam_env = pam_getenvlist(pamh);
|
||||
ReInitErrorLog ();
|
||||
@@ -1267,7 +1271,9 @@ SessionExit (struct display *d, int stat
|
||||
#ifdef USE_PAM
|
||||
if (pamh) {
|
||||
/* shutdown PAM session */
|
||||
- pam_setcred(pamh, PAM_DELETE_CRED);
|
||||
+ if (pam_setcred(pamh, PAM_DELETE_CRED) != PAM_SUCCESS)
|
||||
+ LogError("pam_setcred(DELETE_CRED) for %\"s failed, errno=%d\n",
|
||||
+ d->verify->user, errno);
|
||||
pam_close_session(pamh, 0);
|
||||
pam_end(pamh, PAM_SUCCESS);
|
||||
pamh = NULL;
|
172
x11/kdebase4-runtime/files/patch-konsole-konsole-TEPty.cpp
Normal file
172
x11/kdebase4-runtime/files/patch-konsole-konsole-TEPty.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
--- konsole/konsole/TEPty.cpp 22 Nov 2002 13:17:57 -0000 1.75
|
||||
+++ konsole/konsole/TEPty.cpp 24 Aug 2003 21:44:00 -0000
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
+// Get the Q_OS_* defines
|
||||
+#include <qglobal.h>
|
||||
+
|
||||
#ifdef __sgi
|
||||
#define __svr4__
|
||||
#endif
|
||||
@@ -88,6 +91,10 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -198,9 +205,30 @@ public:
|
||||
|
||||
FILE* syslog_file = NULL; //stdout;
|
||||
|
||||
-#define PTY_FILENO 3
|
||||
+#define DEFAULT_PTY_FILENO 3
|
||||
+int PTY_FILENO = -1; // None allocated yet.
|
||||
+
|
||||
#define BASE_CHOWN "konsole_grantpty"
|
||||
|
||||
+void TEPtyInit()
|
||||
+{
|
||||
+/*
|
||||
+** FreeBSD can't dup2(fd,3) because fd 3 is already in use by
|
||||
+** some weird pipe. So instead, we get a new throwaway fd
|
||||
+** that's not in use by anyone.
|
||||
+*/
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ PTY_FILENO = open("/dev/null",O_RDWR);
|
||||
+ if (PTY_FILENO == -1) {
|
||||
+ perror("konsole:open PTY");
|
||||
+ /* This won't work either, but hey .. */
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+ }
|
||||
+#else
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int chownpty(int fd, bool grant)
|
||||
// param fd: the fd of a master pty.
|
||||
// param grant: true to grant, false to revoke
|
||||
@@ -212,6 +240,8 @@ int chownpty(int fd, bool grant)
|
||||
newsa.sa_flags = 0;
|
||||
sigaction(SIGCHLD, &newsa, &oldsa);
|
||||
|
||||
+ if (PTY_FILENO == -1) TEPtyInit();
|
||||
+
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
{
|
||||
@@ -225,7 +255,12 @@ int chownpty(int fd, bool grant)
|
||||
/* We pass the master pseudo terminal as file descriptor PTY_FILENO. */
|
||||
if (fd != PTY_FILENO && dup2(fd, PTY_FILENO) < 0) exit(1);
|
||||
QString path = locate("exe", BASE_CHOWN);
|
||||
- execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", NULL, NULL);
|
||||
+ /*
|
||||
+ ** Because konsole_grantpty now can't expect the fd
|
||||
+ ** to be constant, we need an additional parameter.
|
||||
+ */
|
||||
+ QString fdnumber = QString::number(PTY_FILENO);
|
||||
+ execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", fdnumber.ascii(), NULL, NULL);
|
||||
exit(1); // should not be reached
|
||||
}
|
||||
|
||||
@@ -486,6 +521,16 @@ int TEPty::makePty(bool _addutmp)
|
||||
// open and set all standard files to slave tty
|
||||
int tt = m_SlaveFd; // Already opened?
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** It seems to be possible for SlaveFd to be closed in error
|
||||
+ ** somewhere along the line. So check it for "liveness".
|
||||
+ */
|
||||
+ struct stat sb;
|
||||
+ if (fstat(tt,&sb)!=0)
|
||||
+ tt=-1; // Apparently not alive.
|
||||
+#endif
|
||||
+
|
||||
if (tt < 0)
|
||||
tt = open(ttynam, O_RDWR);
|
||||
|
||||
@@ -524,14 +569,57 @@ int TEPty::makePty(bool _addutmp)
|
||||
}
|
||||
strncpy(l_struct.ut_name, str_ptr, UT_NAMESIZE);
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /* FreeBSD until august 22, 2003 returned ENOMEM for too-long
|
||||
+ ** hostnames. Then sanity prevailed (?) and the error was changed
|
||||
+ ** to NAMETOOLONG, but this breaks konsole .. again.
|
||||
+ **
|
||||
+ ** Instead of bailing out with long hostnames, put in partial
|
||||
+ ** hostnames (the first UT_HOSTSIZE characters) instead.
|
||||
+ */
|
||||
+ char hostnamebuffer[MAXHOSTNAMELEN+1];
|
||||
+ memset(hostnamebuffer,0,MAXHOSTNAMELEN+1);
|
||||
+ if (gethostname(hostnamebuffer, MAXHOSTNAMELEN) == -1)
|
||||
+ {
|
||||
+ if ( (errno==ENOMEM) || (errno==ENAMETOOLONG) ) {
|
||||
+ /* ignore it, but very odd */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Not much chance of this being visible anywhere ... */
|
||||
+ perror("konsole:gethostname");
|
||||
+ abort();
|
||||
+ }
|
||||
+ }
|
||||
+ /* Copy hostname, possibly only partially */
|
||||
+ memset(l_struct.ut_host,0,UT_HOSTSIZE);
|
||||
+ strncpy(l_struct.ut_host,hostnamebuffer,UT_HOSTSIZE);
|
||||
+ l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
+#else
|
||||
+ /* Non-FreeBSD systems */
|
||||
if (gethostname(l_struct.ut_host, UT_HOSTSIZE) == -1) {
|
||||
- if (errno != ENOMEM)
|
||||
+ if (errno != ENOMEM)
|
||||
abort();
|
||||
l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (! (str_ptr=ttyname(tt)) ) {
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** In FreeBSD, the ttyname() call always returns NULL
|
||||
+ ** for the kinds of devices (ptys) we have opened,
|
||||
+ ** so don't abort, use a foolish default value instead.
|
||||
+ ** The call to login() probably won't work _anyway_,
|
||||
+ ** since normally users can't update the wtmp file.
|
||||
+ **
|
||||
+ ** If we were real sticklers for accuracy, we'd copy the
|
||||
+ ** code from konsole_grantpty that does it's darndest to
|
||||
+ ** file out the right tty name.
|
||||
+ */
|
||||
+ str_ptr = const_cast<char *>("/dev/konsole");
|
||||
+#else
|
||||
abort();
|
||||
+#endif
|
||||
}
|
||||
if (strncmp(str_ptr, "/dev/", 5) == 0)
|
||||
str_ptr += 5;
|
||||
@@ -607,7 +695,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
// #define CERASE 0177
|
||||
// #endif
|
||||
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCGETA,(char *)&ttmode);
|
||||
#else
|
||||
# if defined (_HPUX_SOURCE) || defined(__Lynx__)
|
||||
@@ -621,7 +709,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
ttmode.c_cc[VINTR] = CTRL('C');
|
||||
ttmode.c_cc[VQUIT] = CTRL('\\');
|
||||
ttmode.c_cc[VERASE] = 0177;
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCSETA,(char *)&ttmode);
|
||||
#else
|
||||
# ifdef _HPUX_SOURCE
|
|
@ -0,0 +1,62 @@
|
|||
--- konsole/konsole/konsole_grantpty.c 2 Sep 2002 01:09:24 -0000 1.7
|
||||
+++ konsole/konsole/konsole_grantpty.c 24 Aug 2003 21:44:01 -0000
|
||||
@@ -40,7 +40,9 @@
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
|
||||
-#define PTY_FILENO 3 /* keep in sync with grantpty */
|
||||
+#define DEFAULT_PTY_FILENO 3 /* keep in sync with TEPty.cpp */
|
||||
+int PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+
|
||||
#define TTY_GROUP "tty"
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -52,11 +54,13 @@ int main (int argc, char *argv[])
|
||||
uid_t uid;
|
||||
mode_t mod;
|
||||
char* tty;
|
||||
+ int command_fd; /* which fd to use? */
|
||||
|
||||
/* check preconditions **************************************************/
|
||||
- if (argc != 2 || (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
+ if (( (argc != 3) && (argc != 2) /* optional third arg */ ) ||
|
||||
+ (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
{
|
||||
- printf("usage: %s (--grant|--revoke)\n",argv[0]);
|
||||
+ printf("usage: %s (--grant|--revoke) [fd]\n",argv[0]);
|
||||
printf("%s is a helper for\n",argv[0]);
|
||||
printf("konsole and not intented to\n");
|
||||
printf("be called from the command\n");
|
||||
@@ -83,6 +87,22 @@ int main (int argc, char *argv[])
|
||||
uid = 0; /* root */
|
||||
mod = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
}
|
||||
+
|
||||
+ command_fd = DEFAULT_PTY_FILENO;
|
||||
+ if (argv[2])
|
||||
+ {
|
||||
+ command_fd = atoi(argv[2]);
|
||||
+ }
|
||||
+ if (command_fd > 2) /* must be out of stdin,stdout,stderr range */
|
||||
+ {
|
||||
+ PTY_FILENO=command_fd;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr,"%s: Bad command fd (seems to be %d)\n",argv[0],command_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
/* Get the group ID of the special `tty' group. */
|
||||
p = getgrnam(TTY_GROUP); /* posix */
|
||||
gid = p ? p->gr_gid : getgid (); /* posix */
|
||||
@@ -117,6 +137,9 @@ int main (int argc, char *argv[])
|
||||
if (dirp->d_fileno != dsb.st_ino)
|
||||
continue;
|
||||
{
|
||||
+ /* Else this is the right device file .. any possible memory
|
||||
+ ** leak here because two files match is unimportant?
|
||||
+ */
|
||||
int pdlen = strlen(_PATH_DEV), namelen = strlen(dirp->d_name);
|
||||
pty = malloc(pdlen + namelen + 1);
|
||||
if (pty) {
|
18
x11/kdebase4-runtime/files/patch-konsole-konsole-main.cpp
Normal file
18
x11/kdebase4-runtime/files/patch-konsole-konsole-main.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- konsole/konsole/main.cpp 29 Jun 2003 21:53:11 -0000 1.243.2.3
|
||||
+++ konsole/konsole/main.cpp 24 Aug 2003 21:44:02 -0000
|
||||
@@ -123,6 +123,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
+extern void TEPtyInit();
|
||||
|
||||
/* --| main |------------------------------------------------------ */
|
||||
int main(int argc, char* argv[])
|
||||
@@ -137,6 +138,7 @@ int main(int argc, char* argv[])
|
||||
bool scrollbaron = true;
|
||||
QCString wname = PACKAGE;
|
||||
|
||||
+ TEPtyInit();
|
||||
|
||||
KAboutData aboutData( PACKAGE, I18N_NOOP("Konsole"),
|
||||
VERSION, description, KAboutData::License_GPL_V2,
|
|
@ -0,0 +1,33 @@
|
|||
--- ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed May 7 07:44:17 2003
|
||||
+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed Aug 27 18:51:18 2003
|
||||
@@ -168,6 +168,8 @@
|
||||
int mib[4];
|
||||
struct kinfo_proc p;
|
||||
size_t len;
|
||||
+ size_t buflen = 256;
|
||||
+ char buf[256];
|
||||
|
||||
if ((ps = findProcessInList(pid)) == 0)
|
||||
{
|
||||
@@ -239,10 +241,17 @@
|
||||
#endif
|
||||
|
||||
/* process command line */
|
||||
- /* the following line causes segfaults on some FreeBSD systems... why?
|
||||
- strncpy(ps->cmdline, p.kp_proc.p_args->ar_args, sizeof(ps->cmdline) - 1);
|
||||
- */
|
||||
- strcpy(ps->cmdline, "????");
|
||||
+ /* do a sysctl to get the command line args. */
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_ARGS;
|
||||
+ mib[3] = pid;
|
||||
+
|
||||
+ if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
|
||||
+ strcpy(ps->cmdline, "????");
|
||||
+ else
|
||||
+ strncpy(ps->cmdline, buf, buflen - 1);
|
||||
|
||||
return (0);
|
||||
}
|
|
@ -277,6 +277,8 @@ lib/kde3/kio_imap4.la
|
|||
lib/kde3/kio_imap4.so
|
||||
lib/kde3/kio_info.la
|
||||
lib/kde3/kio_info.so
|
||||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
lib/kde3/kio_mac.la
|
||||
lib/kde3/kio_mac.so
|
||||
lib/kde3/kio_man.la
|
||||
|
@ -2764,6 +2766,7 @@ share/services/imagethumbnail.desktop
|
|||
share/services/imap4.protocol
|
||||
share/services/imaps.protocol
|
||||
share/services/info.protocol
|
||||
share/services/ldap.protocol
|
||||
share/services/kaccess.desktop
|
||||
share/services/kded/favicons.desktop
|
||||
share/services/kded/mountwatcher.desktop
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
share/services/ldap.protocol
|
11
x11/kdebase4-runtime/pkg-message
Normal file
11
x11/kdebase4-runtime/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
This port has installed fonts into %%PREFIX%%/share/fonts
|
||||
|
||||
You'll have to add %%PREFIX%%/share/fonts
|
||||
to your X font path by either:
|
||||
|
||||
$ xset fp+ %%PREFIX%%/share/fonts
|
||||
$ xset fp rehash
|
||||
|
||||
or by adding it to your X-server configuration file (usually
|
||||
/etc/X11/XF86Config or %%X11BASE%%/lib/X11/XF86Config) and
|
||||
restarting the X-server.
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdebase
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11 kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
|
||||
|
@ -22,6 +23,7 @@ USE_KDELIBS_VER=3
|
|||
PREFIX= ${KDE_PREFIX}
|
||||
KDE_BUILD_PLIST=yes
|
||||
|
||||
USE_OPENLDAP= yes
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_XPM= yes
|
||||
|
@ -39,12 +41,6 @@ CONFIGURE_ARGS+=--without-java \
|
|||
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# This enables kio_ldap (needed by kaddresbook).
|
||||
.if defined(WITH_LDAP) || exists($(LOCALBASE)/lib/libldap.so)
|
||||
LIB_DEPENDS+= ldap:${PORTSDIR}/net/openldap21-client
|
||||
PLIST_APPEND+= plist.ldap
|
||||
.endif
|
||||
|
||||
.if exists(${X11BASE}/include/Xm/Xm.h)
|
||||
WITH_MOTIF= yes
|
||||
.endif # exists(${X11BASE}/include/Xm/Xm.h)
|
||||
|
@ -85,5 +81,7 @@ post-install:
|
|||
${CHMOD} u+s ${PREFIX}/bin/kcheckpass
|
||||
${CHGRP} kmem ${PREFIX}/bin/ksysguardd && \
|
||||
${CHMOD} g+s ${PREFIX}/bin/ksysguardd
|
||||
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
|
||||
| ${SED} -e 's,%%X11BASE%%,${X11BASE},g'
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
122
x11/kdebase4-workspace/files/patch-configure
Normal file
122
x11/kdebase4-workspace/files/patch-configure
Normal file
|
@ -0,0 +1,122 @@
|
|||
--- configure.orig Sat Aug 23 22:55:38 2003
|
||||
+++ configure Sat Aug 23 22:57:16 2003
|
||||
@@ -33894,8 +33894,67 @@
|
||||
echo "$as_me:$LINENO: result: not found" >&5
|
||||
echo "${ECHO_T}not found" >&6
|
||||
|
||||
- { echo "$as_me:$LINENO: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&5
|
||||
-echo "$as_me: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&2;}
|
||||
+
|
||||
+ echo "$as_me:$LINENO: checking for pkg-config" >&5
|
||||
+echo $ECHO_N "checking for pkg-config... $ECHO_C" >&6
|
||||
+ if test -n "$PKGCONFIG"; then
|
||||
+ kde_cv_path="$PKGCONFIG";
|
||||
+ else
|
||||
+ kde_cache=`echo pkg-config | sed 'y%./+-%__p_%'`
|
||||
+
|
||||
+ if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ kde_cv_path="NONE"
|
||||
+ dirs="${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin"
|
||||
+ kde_save_IFS=$IFS
|
||||
+ IFS=':'
|
||||
+ for dir in $PATH; do
|
||||
+ dirs="$dirs $dir"
|
||||
+ done
|
||||
+ IFS=$kde_save_IFS
|
||||
+
|
||||
+ for dir in $dirs; do
|
||||
+ if test -x "$dir/pkg-config"; then
|
||||
+ if test -n ""
|
||||
+ then
|
||||
+ evalstr="$dir/pkg-config 2>&1 "
|
||||
+ if eval $evalstr; then
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ else
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
|
||||
+ echo "$as_me:$LINENO: result: not found" >&5
|
||||
+echo "${ECHO_T}not found" >&6
|
||||
+
|
||||
+ { echo "$as_me:$LINENO: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&5
|
||||
+echo "$as_me: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&2;}
|
||||
+
|
||||
+ else
|
||||
+ echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
+echo "${ECHO_T}$kde_cv_path" >&6
|
||||
+ PKGCONFIG=$kde_cv_path
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
@@ -33905,6 +33964,30 @@
|
||||
fi
|
||||
|
||||
|
||||
+if test -n "$PKGCONFIG"; then
|
||||
+ vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
+ if test -n "$vers" && test "$vers" -ge 1000000
|
||||
+ then
|
||||
+ LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`"
|
||||
+ LIBFONTCONFIG_RPATH=
|
||||
+ for args in $LIBFONTCONFIG_LIBS; do
|
||||
+ case $args in
|
||||
+ -L*)
|
||||
+ LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | sed -e "s/-L/-R/g"`
|
||||
+ LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`"
|
||||
+
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_FONTCONFIG 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if test -n "$FONTCONFIG_CONFIG"; then
|
||||
vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test -n "$vers" && test "$vers" -ge 1000000
|
||||
@@ -37753,7 +37836,7 @@
|
||||
do
|
||||
for j in ldap.h;
|
||||
do
|
||||
- echo "configure: 37756: $i/$j" >&5
|
||||
+ echo "configure: 37839: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_incdir=$i
|
||||
@@ -37775,7 +37858,7 @@
|
||||
do
|
||||
for j in libldap.$ext;
|
||||
do
|
||||
- echo "configure: 37778: $i/$j" >&5
|
||||
+ echo "configure: 37861: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_libdir=$i
|
||||
|
33
x11/kdebase4-workspace/files/patch-kdm-backend-client.c
Normal file
33
x11/kdebase4-workspace/files/patch-kdm-backend-client.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- kdm/backend/client.c 18 Jun 2003 20:05:15 -0000 2.25.2.4
|
||||
+++ kdm/backend/client.c 6 Aug 2003 16:02:39 -0000 2.25.2.5
|
||||
@@ -1,5 +1,5 @@
|
||||
/* $TOG: verify.c /main/37 1998/02/11 10:00:45 kaleb $ */
|
||||
-/* $Id: client.c,v 2.25.2.4 2003/06/18 20:05:15 ossi Exp $ */
|
||||
+/* $Id: client.c,v 2.25.2.5 2003/08/06 16:02:39 ossi Exp $ */
|
||||
/*
|
||||
|
||||
Copyright 1988, 1998 The Open Group
|
||||
@@ -1009,7 +1009,11 @@ StartClient (struct display *d,
|
||||
exit (1);
|
||||
# endif
|
||||
# ifdef USE_PAM
|
||||
- pam_setcred(pamh, 0);
|
||||
+ if (pam_setcred(pamh, 0) != PAM_SUCCESS) {
|
||||
+ LogError("pam_setcred for %\"s failed, errno=%d\n",
|
||||
+ name, errno);
|
||||
+ exit (1);
|
||||
+ }
|
||||
/* pass in environment variables set by libpam and modules it called */
|
||||
pam_env = pam_getenvlist(pamh);
|
||||
ReInitErrorLog ();
|
||||
@@ -1267,7 +1271,9 @@ SessionExit (struct display *d, int stat
|
||||
#ifdef USE_PAM
|
||||
if (pamh) {
|
||||
/* shutdown PAM session */
|
||||
- pam_setcred(pamh, PAM_DELETE_CRED);
|
||||
+ if (pam_setcred(pamh, PAM_DELETE_CRED) != PAM_SUCCESS)
|
||||
+ LogError("pam_setcred(DELETE_CRED) for %\"s failed, errno=%d\n",
|
||||
+ d->verify->user, errno);
|
||||
pam_close_session(pamh, 0);
|
||||
pam_end(pamh, PAM_SUCCESS);
|
||||
pamh = NULL;
|
172
x11/kdebase4-workspace/files/patch-konsole-konsole-TEPty.cpp
Normal file
172
x11/kdebase4-workspace/files/patch-konsole-konsole-TEPty.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
--- konsole/konsole/TEPty.cpp 22 Nov 2002 13:17:57 -0000 1.75
|
||||
+++ konsole/konsole/TEPty.cpp 24 Aug 2003 21:44:00 -0000
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
+// Get the Q_OS_* defines
|
||||
+#include <qglobal.h>
|
||||
+
|
||||
#ifdef __sgi
|
||||
#define __svr4__
|
||||
#endif
|
||||
@@ -88,6 +91,10 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -198,9 +205,30 @@ public:
|
||||
|
||||
FILE* syslog_file = NULL; //stdout;
|
||||
|
||||
-#define PTY_FILENO 3
|
||||
+#define DEFAULT_PTY_FILENO 3
|
||||
+int PTY_FILENO = -1; // None allocated yet.
|
||||
+
|
||||
#define BASE_CHOWN "konsole_grantpty"
|
||||
|
||||
+void TEPtyInit()
|
||||
+{
|
||||
+/*
|
||||
+** FreeBSD can't dup2(fd,3) because fd 3 is already in use by
|
||||
+** some weird pipe. So instead, we get a new throwaway fd
|
||||
+** that's not in use by anyone.
|
||||
+*/
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ PTY_FILENO = open("/dev/null",O_RDWR);
|
||||
+ if (PTY_FILENO == -1) {
|
||||
+ perror("konsole:open PTY");
|
||||
+ /* This won't work either, but hey .. */
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+ }
|
||||
+#else
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int chownpty(int fd, bool grant)
|
||||
// param fd: the fd of a master pty.
|
||||
// param grant: true to grant, false to revoke
|
||||
@@ -212,6 +240,8 @@ int chownpty(int fd, bool grant)
|
||||
newsa.sa_flags = 0;
|
||||
sigaction(SIGCHLD, &newsa, &oldsa);
|
||||
|
||||
+ if (PTY_FILENO == -1) TEPtyInit();
|
||||
+
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
{
|
||||
@@ -225,7 +255,12 @@ int chownpty(int fd, bool grant)
|
||||
/* We pass the master pseudo terminal as file descriptor PTY_FILENO. */
|
||||
if (fd != PTY_FILENO && dup2(fd, PTY_FILENO) < 0) exit(1);
|
||||
QString path = locate("exe", BASE_CHOWN);
|
||||
- execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", NULL, NULL);
|
||||
+ /*
|
||||
+ ** Because konsole_grantpty now can't expect the fd
|
||||
+ ** to be constant, we need an additional parameter.
|
||||
+ */
|
||||
+ QString fdnumber = QString::number(PTY_FILENO);
|
||||
+ execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", fdnumber.ascii(), NULL, NULL);
|
||||
exit(1); // should not be reached
|
||||
}
|
||||
|
||||
@@ -486,6 +521,16 @@ int TEPty::makePty(bool _addutmp)
|
||||
// open and set all standard files to slave tty
|
||||
int tt = m_SlaveFd; // Already opened?
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** It seems to be possible for SlaveFd to be closed in error
|
||||
+ ** somewhere along the line. So check it for "liveness".
|
||||
+ */
|
||||
+ struct stat sb;
|
||||
+ if (fstat(tt,&sb)!=0)
|
||||
+ tt=-1; // Apparently not alive.
|
||||
+#endif
|
||||
+
|
||||
if (tt < 0)
|
||||
tt = open(ttynam, O_RDWR);
|
||||
|
||||
@@ -524,14 +569,57 @@ int TEPty::makePty(bool _addutmp)
|
||||
}
|
||||
strncpy(l_struct.ut_name, str_ptr, UT_NAMESIZE);
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /* FreeBSD until august 22, 2003 returned ENOMEM for too-long
|
||||
+ ** hostnames. Then sanity prevailed (?) and the error was changed
|
||||
+ ** to NAMETOOLONG, but this breaks konsole .. again.
|
||||
+ **
|
||||
+ ** Instead of bailing out with long hostnames, put in partial
|
||||
+ ** hostnames (the first UT_HOSTSIZE characters) instead.
|
||||
+ */
|
||||
+ char hostnamebuffer[MAXHOSTNAMELEN+1];
|
||||
+ memset(hostnamebuffer,0,MAXHOSTNAMELEN+1);
|
||||
+ if (gethostname(hostnamebuffer, MAXHOSTNAMELEN) == -1)
|
||||
+ {
|
||||
+ if ( (errno==ENOMEM) || (errno==ENAMETOOLONG) ) {
|
||||
+ /* ignore it, but very odd */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Not much chance of this being visible anywhere ... */
|
||||
+ perror("konsole:gethostname");
|
||||
+ abort();
|
||||
+ }
|
||||
+ }
|
||||
+ /* Copy hostname, possibly only partially */
|
||||
+ memset(l_struct.ut_host,0,UT_HOSTSIZE);
|
||||
+ strncpy(l_struct.ut_host,hostnamebuffer,UT_HOSTSIZE);
|
||||
+ l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
+#else
|
||||
+ /* Non-FreeBSD systems */
|
||||
if (gethostname(l_struct.ut_host, UT_HOSTSIZE) == -1) {
|
||||
- if (errno != ENOMEM)
|
||||
+ if (errno != ENOMEM)
|
||||
abort();
|
||||
l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (! (str_ptr=ttyname(tt)) ) {
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** In FreeBSD, the ttyname() call always returns NULL
|
||||
+ ** for the kinds of devices (ptys) we have opened,
|
||||
+ ** so don't abort, use a foolish default value instead.
|
||||
+ ** The call to login() probably won't work _anyway_,
|
||||
+ ** since normally users can't update the wtmp file.
|
||||
+ **
|
||||
+ ** If we were real sticklers for accuracy, we'd copy the
|
||||
+ ** code from konsole_grantpty that does it's darndest to
|
||||
+ ** file out the right tty name.
|
||||
+ */
|
||||
+ str_ptr = const_cast<char *>("/dev/konsole");
|
||||
+#else
|
||||
abort();
|
||||
+#endif
|
||||
}
|
||||
if (strncmp(str_ptr, "/dev/", 5) == 0)
|
||||
str_ptr += 5;
|
||||
@@ -607,7 +695,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
// #define CERASE 0177
|
||||
// #endif
|
||||
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCGETA,(char *)&ttmode);
|
||||
#else
|
||||
# if defined (_HPUX_SOURCE) || defined(__Lynx__)
|
||||
@@ -621,7 +709,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
ttmode.c_cc[VINTR] = CTRL('C');
|
||||
ttmode.c_cc[VQUIT] = CTRL('\\');
|
||||
ttmode.c_cc[VERASE] = 0177;
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCSETA,(char *)&ttmode);
|
||||
#else
|
||||
# ifdef _HPUX_SOURCE
|
|
@ -0,0 +1,62 @@
|
|||
--- konsole/konsole/konsole_grantpty.c 2 Sep 2002 01:09:24 -0000 1.7
|
||||
+++ konsole/konsole/konsole_grantpty.c 24 Aug 2003 21:44:01 -0000
|
||||
@@ -40,7 +40,9 @@
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
|
||||
-#define PTY_FILENO 3 /* keep in sync with grantpty */
|
||||
+#define DEFAULT_PTY_FILENO 3 /* keep in sync with TEPty.cpp */
|
||||
+int PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+
|
||||
#define TTY_GROUP "tty"
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -52,11 +54,13 @@ int main (int argc, char *argv[])
|
||||
uid_t uid;
|
||||
mode_t mod;
|
||||
char* tty;
|
||||
+ int command_fd; /* which fd to use? */
|
||||
|
||||
/* check preconditions **************************************************/
|
||||
- if (argc != 2 || (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
+ if (( (argc != 3) && (argc != 2) /* optional third arg */ ) ||
|
||||
+ (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
{
|
||||
- printf("usage: %s (--grant|--revoke)\n",argv[0]);
|
||||
+ printf("usage: %s (--grant|--revoke) [fd]\n",argv[0]);
|
||||
printf("%s is a helper for\n",argv[0]);
|
||||
printf("konsole and not intented to\n");
|
||||
printf("be called from the command\n");
|
||||
@@ -83,6 +87,22 @@ int main (int argc, char *argv[])
|
||||
uid = 0; /* root */
|
||||
mod = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
}
|
||||
+
|
||||
+ command_fd = DEFAULT_PTY_FILENO;
|
||||
+ if (argv[2])
|
||||
+ {
|
||||
+ command_fd = atoi(argv[2]);
|
||||
+ }
|
||||
+ if (command_fd > 2) /* must be out of stdin,stdout,stderr range */
|
||||
+ {
|
||||
+ PTY_FILENO=command_fd;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr,"%s: Bad command fd (seems to be %d)\n",argv[0],command_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
/* Get the group ID of the special `tty' group. */
|
||||
p = getgrnam(TTY_GROUP); /* posix */
|
||||
gid = p ? p->gr_gid : getgid (); /* posix */
|
||||
@@ -117,6 +137,9 @@ int main (int argc, char *argv[])
|
||||
if (dirp->d_fileno != dsb.st_ino)
|
||||
continue;
|
||||
{
|
||||
+ /* Else this is the right device file .. any possible memory
|
||||
+ ** leak here because two files match is unimportant?
|
||||
+ */
|
||||
int pdlen = strlen(_PATH_DEV), namelen = strlen(dirp->d_name);
|
||||
pty = malloc(pdlen + namelen + 1);
|
||||
if (pty) {
|
18
x11/kdebase4-workspace/files/patch-konsole-konsole-main.cpp
Normal file
18
x11/kdebase4-workspace/files/patch-konsole-konsole-main.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- konsole/konsole/main.cpp 29 Jun 2003 21:53:11 -0000 1.243.2.3
|
||||
+++ konsole/konsole/main.cpp 24 Aug 2003 21:44:02 -0000
|
||||
@@ -123,6 +123,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
+extern void TEPtyInit();
|
||||
|
||||
/* --| main |------------------------------------------------------ */
|
||||
int main(int argc, char* argv[])
|
||||
@@ -137,6 +138,7 @@ int main(int argc, char* argv[])
|
||||
bool scrollbaron = true;
|
||||
QCString wname = PACKAGE;
|
||||
|
||||
+ TEPtyInit();
|
||||
|
||||
KAboutData aboutData( PACKAGE, I18N_NOOP("Konsole"),
|
||||
VERSION, description, KAboutData::License_GPL_V2,
|
|
@ -0,0 +1,33 @@
|
|||
--- ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed May 7 07:44:17 2003
|
||||
+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed Aug 27 18:51:18 2003
|
||||
@@ -168,6 +168,8 @@
|
||||
int mib[4];
|
||||
struct kinfo_proc p;
|
||||
size_t len;
|
||||
+ size_t buflen = 256;
|
||||
+ char buf[256];
|
||||
|
||||
if ((ps = findProcessInList(pid)) == 0)
|
||||
{
|
||||
@@ -239,10 +241,17 @@
|
||||
#endif
|
||||
|
||||
/* process command line */
|
||||
- /* the following line causes segfaults on some FreeBSD systems... why?
|
||||
- strncpy(ps->cmdline, p.kp_proc.p_args->ar_args, sizeof(ps->cmdline) - 1);
|
||||
- */
|
||||
- strcpy(ps->cmdline, "????");
|
||||
+ /* do a sysctl to get the command line args. */
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_ARGS;
|
||||
+ mib[3] = pid;
|
||||
+
|
||||
+ if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
|
||||
+ strcpy(ps->cmdline, "????");
|
||||
+ else
|
||||
+ strncpy(ps->cmdline, buf, buflen - 1);
|
||||
|
||||
return (0);
|
||||
}
|
|
@ -277,6 +277,8 @@ lib/kde3/kio_imap4.la
|
|||
lib/kde3/kio_imap4.so
|
||||
lib/kde3/kio_info.la
|
||||
lib/kde3/kio_info.so
|
||||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
lib/kde3/kio_mac.la
|
||||
lib/kde3/kio_mac.so
|
||||
lib/kde3/kio_man.la
|
||||
|
@ -2764,6 +2766,7 @@ share/services/imagethumbnail.desktop
|
|||
share/services/imap4.protocol
|
||||
share/services/imaps.protocol
|
||||
share/services/info.protocol
|
||||
share/services/ldap.protocol
|
||||
share/services/kaccess.desktop
|
||||
share/services/kded/favicons.desktop
|
||||
share/services/kded/mountwatcher.desktop
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
share/services/ldap.protocol
|
11
x11/kdebase4-workspace/pkg-message
Normal file
11
x11/kdebase4-workspace/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
This port has installed fonts into %%PREFIX%%/share/fonts
|
||||
|
||||
You'll have to add %%PREFIX%%/share/fonts
|
||||
to your X font path by either:
|
||||
|
||||
$ xset fp+ %%PREFIX%%/share/fonts
|
||||
$ xset fp rehash
|
||||
|
||||
or by adding it to your X-server configuration file (usually
|
||||
/etc/X11/XF86Config or %%X11BASE%%/lib/X11/XF86Config) and
|
||||
restarting the X-server.
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
PORTNAME= kdebase
|
||||
PORTVERSION= ${KDE_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11 kde
|
||||
MASTER_SITES= ${MASTER_SITE_KDE}
|
||||
MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
|
||||
|
@ -22,6 +23,7 @@ USE_KDELIBS_VER=3
|
|||
PREFIX= ${KDE_PREFIX}
|
||||
KDE_BUILD_PLIST=yes
|
||||
|
||||
USE_OPENLDAP= yes
|
||||
USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_XPM= yes
|
||||
|
@ -39,12 +41,6 @@ CONFIGURE_ARGS+=--without-java \
|
|||
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
# This enables kio_ldap (needed by kaddresbook).
|
||||
.if defined(WITH_LDAP) || exists($(LOCALBASE)/lib/libldap.so)
|
||||
LIB_DEPENDS+= ldap:${PORTSDIR}/net/openldap21-client
|
||||
PLIST_APPEND+= plist.ldap
|
||||
.endif
|
||||
|
||||
.if exists(${X11BASE}/include/Xm/Xm.h)
|
||||
WITH_MOTIF= yes
|
||||
.endif # exists(${X11BASE}/include/Xm/Xm.h)
|
||||
|
@ -85,5 +81,7 @@ post-install:
|
|||
${CHMOD} u+s ${PREFIX}/bin/kcheckpass
|
||||
${CHGRP} kmem ${PREFIX}/bin/ksysguardd && \
|
||||
${CHMOD} g+s ${PREFIX}/bin/ksysguardd
|
||||
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g' \
|
||||
| ${SED} -e 's,%%X11BASE%%,${X11BASE},g'
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
122
x11/kdebase4/files/patch-configure
Normal file
122
x11/kdebase4/files/patch-configure
Normal file
|
@ -0,0 +1,122 @@
|
|||
--- configure.orig Sat Aug 23 22:55:38 2003
|
||||
+++ configure Sat Aug 23 22:57:16 2003
|
||||
@@ -33894,8 +33894,67 @@
|
||||
echo "$as_me:$LINENO: result: not found" >&5
|
||||
echo "${ECHO_T}not found" >&6
|
||||
|
||||
- { echo "$as_me:$LINENO: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&5
|
||||
-echo "$as_me: WARNING: Could not find libfontconfig anywhere, check http://www.fontconfig.org/" >&2;}
|
||||
+
|
||||
+ echo "$as_me:$LINENO: checking for pkg-config" >&5
|
||||
+echo $ECHO_N "checking for pkg-config... $ECHO_C" >&6
|
||||
+ if test -n "$PKGCONFIG"; then
|
||||
+ kde_cv_path="$PKGCONFIG";
|
||||
+ else
|
||||
+ kde_cache=`echo pkg-config | sed 'y%./+-%__p_%'`
|
||||
+
|
||||
+ if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
|
||||
+ echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
+else
|
||||
+
|
||||
+ kde_cv_path="NONE"
|
||||
+ dirs="${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin"
|
||||
+ kde_save_IFS=$IFS
|
||||
+ IFS=':'
|
||||
+ for dir in $PATH; do
|
||||
+ dirs="$dirs $dir"
|
||||
+ done
|
||||
+ IFS=$kde_save_IFS
|
||||
+
|
||||
+ for dir in $dirs; do
|
||||
+ if test -x "$dir/pkg-config"; then
|
||||
+ if test -n ""
|
||||
+ then
|
||||
+ evalstr="$dir/pkg-config 2>&1 "
|
||||
+ if eval $evalstr; then
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ else
|
||||
+ kde_cv_path="$dir/pkg-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
|
||||
+ echo "$as_me:$LINENO: result: not found" >&5
|
||||
+echo "${ECHO_T}not found" >&6
|
||||
+
|
||||
+ { echo "$as_me:$LINENO: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&5
|
||||
+echo "$as_me: WARNING: Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ " >&2;}
|
||||
+
|
||||
+ else
|
||||
+ echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
+echo "${ECHO_T}$kde_cv_path" >&6
|
||||
+ PKGCONFIG=$kde_cv_path
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $kde_cv_path" >&5
|
||||
@@ -33905,6 +33964,30 @@
|
||||
fi
|
||||
|
||||
|
||||
+if test -n "$PKGCONFIG"; then
|
||||
+ vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
+ if test -n "$vers" && test "$vers" -ge 1000000
|
||||
+ then
|
||||
+ LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`"
|
||||
+ LIBFONTCONFIG_RPATH=
|
||||
+ for args in $LIBFONTCONFIG_LIBS; do
|
||||
+ case $args in
|
||||
+ -L*)
|
||||
+ LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | sed -e "s/-L/-R/g"`
|
||||
+ LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`"
|
||||
+
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_FONTCONFIG 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
if test -n "$FONTCONFIG_CONFIG"; then
|
||||
vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | sed -e 's/libfontconfig //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test -n "$vers" && test "$vers" -ge 1000000
|
||||
@@ -37753,7 +37836,7 @@
|
||||
do
|
||||
for j in ldap.h;
|
||||
do
|
||||
- echo "configure: 37756: $i/$j" >&5
|
||||
+ echo "configure: 37839: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_incdir=$i
|
||||
@@ -37775,7 +37858,7 @@
|
||||
do
|
||||
for j in libldap.$ext;
|
||||
do
|
||||
- echo "configure: 37778: $i/$j" >&5
|
||||
+ echo "configure: 37861: $i/$j" >&5
|
||||
if test -r "$i/$j"; then
|
||||
echo "taking that" >&5
|
||||
ldap_libdir=$i
|
||||
|
33
x11/kdebase4/files/patch-kdm-backend-client.c
Normal file
33
x11/kdebase4/files/patch-kdm-backend-client.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
--- kdm/backend/client.c 18 Jun 2003 20:05:15 -0000 2.25.2.4
|
||||
+++ kdm/backend/client.c 6 Aug 2003 16:02:39 -0000 2.25.2.5
|
||||
@@ -1,5 +1,5 @@
|
||||
/* $TOG: verify.c /main/37 1998/02/11 10:00:45 kaleb $ */
|
||||
-/* $Id: client.c,v 2.25.2.4 2003/06/18 20:05:15 ossi Exp $ */
|
||||
+/* $Id: client.c,v 2.25.2.5 2003/08/06 16:02:39 ossi Exp $ */
|
||||
/*
|
||||
|
||||
Copyright 1988, 1998 The Open Group
|
||||
@@ -1009,7 +1009,11 @@ StartClient (struct display *d,
|
||||
exit (1);
|
||||
# endif
|
||||
# ifdef USE_PAM
|
||||
- pam_setcred(pamh, 0);
|
||||
+ if (pam_setcred(pamh, 0) != PAM_SUCCESS) {
|
||||
+ LogError("pam_setcred for %\"s failed, errno=%d\n",
|
||||
+ name, errno);
|
||||
+ exit (1);
|
||||
+ }
|
||||
/* pass in environment variables set by libpam and modules it called */
|
||||
pam_env = pam_getenvlist(pamh);
|
||||
ReInitErrorLog ();
|
||||
@@ -1267,7 +1271,9 @@ SessionExit (struct display *d, int stat
|
||||
#ifdef USE_PAM
|
||||
if (pamh) {
|
||||
/* shutdown PAM session */
|
||||
- pam_setcred(pamh, PAM_DELETE_CRED);
|
||||
+ if (pam_setcred(pamh, PAM_DELETE_CRED) != PAM_SUCCESS)
|
||||
+ LogError("pam_setcred(DELETE_CRED) for %\"s failed, errno=%d\n",
|
||||
+ d->verify->user, errno);
|
||||
pam_close_session(pamh, 0);
|
||||
pam_end(pamh, PAM_SUCCESS);
|
||||
pamh = NULL;
|
172
x11/kdebase4/files/patch-konsole-konsole-TEPty.cpp
Normal file
172
x11/kdebase4/files/patch-konsole-konsole-TEPty.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
--- konsole/konsole/TEPty.cpp 22 Nov 2002 13:17:57 -0000 1.75
|
||||
+++ konsole/konsole/TEPty.cpp 24 Aug 2003 21:44:00 -0000
|
||||
@@ -65,6 +65,9 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
+// Get the Q_OS_* defines
|
||||
+#include <qglobal.h>
|
||||
+
|
||||
#ifdef __sgi
|
||||
#define __svr4__
|
||||
#endif
|
||||
@@ -88,6 +91,10 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+#include <sys/param.h>
|
||||
+#endif
|
||||
+
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -198,9 +205,30 @@ public:
|
||||
|
||||
FILE* syslog_file = NULL; //stdout;
|
||||
|
||||
-#define PTY_FILENO 3
|
||||
+#define DEFAULT_PTY_FILENO 3
|
||||
+int PTY_FILENO = -1; // None allocated yet.
|
||||
+
|
||||
#define BASE_CHOWN "konsole_grantpty"
|
||||
|
||||
+void TEPtyInit()
|
||||
+{
|
||||
+/*
|
||||
+** FreeBSD can't dup2(fd,3) because fd 3 is already in use by
|
||||
+** some weird pipe. So instead, we get a new throwaway fd
|
||||
+** that's not in use by anyone.
|
||||
+*/
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ PTY_FILENO = open("/dev/null",O_RDWR);
|
||||
+ if (PTY_FILENO == -1) {
|
||||
+ perror("konsole:open PTY");
|
||||
+ /* This won't work either, but hey .. */
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+ }
|
||||
+#else
|
||||
+ PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int chownpty(int fd, bool grant)
|
||||
// param fd: the fd of a master pty.
|
||||
// param grant: true to grant, false to revoke
|
||||
@@ -212,6 +240,8 @@ int chownpty(int fd, bool grant)
|
||||
newsa.sa_flags = 0;
|
||||
sigaction(SIGCHLD, &newsa, &oldsa);
|
||||
|
||||
+ if (PTY_FILENO == -1) TEPtyInit();
|
||||
+
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
{
|
||||
@@ -225,7 +255,12 @@ int chownpty(int fd, bool grant)
|
||||
/* We pass the master pseudo terminal as file descriptor PTY_FILENO. */
|
||||
if (fd != PTY_FILENO && dup2(fd, PTY_FILENO) < 0) exit(1);
|
||||
QString path = locate("exe", BASE_CHOWN);
|
||||
- execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", NULL, NULL);
|
||||
+ /*
|
||||
+ ** Because konsole_grantpty now can't expect the fd
|
||||
+ ** to be constant, we need an additional parameter.
|
||||
+ */
|
||||
+ QString fdnumber = QString::number(PTY_FILENO);
|
||||
+ execle(path.ascii(), BASE_CHOWN, grant?"--grant":"--revoke", fdnumber.ascii(), NULL, NULL);
|
||||
exit(1); // should not be reached
|
||||
}
|
||||
|
||||
@@ -486,6 +521,16 @@ int TEPty::makePty(bool _addutmp)
|
||||
// open and set all standard files to slave tty
|
||||
int tt = m_SlaveFd; // Already opened?
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** It seems to be possible for SlaveFd to be closed in error
|
||||
+ ** somewhere along the line. So check it for "liveness".
|
||||
+ */
|
||||
+ struct stat sb;
|
||||
+ if (fstat(tt,&sb)!=0)
|
||||
+ tt=-1; // Apparently not alive.
|
||||
+#endif
|
||||
+
|
||||
if (tt < 0)
|
||||
tt = open(ttynam, O_RDWR);
|
||||
|
||||
@@ -524,14 +569,57 @@ int TEPty::makePty(bool _addutmp)
|
||||
}
|
||||
strncpy(l_struct.ut_name, str_ptr, UT_NAMESIZE);
|
||||
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /* FreeBSD until august 22, 2003 returned ENOMEM for too-long
|
||||
+ ** hostnames. Then sanity prevailed (?) and the error was changed
|
||||
+ ** to NAMETOOLONG, but this breaks konsole .. again.
|
||||
+ **
|
||||
+ ** Instead of bailing out with long hostnames, put in partial
|
||||
+ ** hostnames (the first UT_HOSTSIZE characters) instead.
|
||||
+ */
|
||||
+ char hostnamebuffer[MAXHOSTNAMELEN+1];
|
||||
+ memset(hostnamebuffer,0,MAXHOSTNAMELEN+1);
|
||||
+ if (gethostname(hostnamebuffer, MAXHOSTNAMELEN) == -1)
|
||||
+ {
|
||||
+ if ( (errno==ENOMEM) || (errno==ENAMETOOLONG) ) {
|
||||
+ /* ignore it, but very odd */
|
||||
+ }
|
||||
+ else {
|
||||
+ /* Not much chance of this being visible anywhere ... */
|
||||
+ perror("konsole:gethostname");
|
||||
+ abort();
|
||||
+ }
|
||||
+ }
|
||||
+ /* Copy hostname, possibly only partially */
|
||||
+ memset(l_struct.ut_host,0,UT_HOSTSIZE);
|
||||
+ strncpy(l_struct.ut_host,hostnamebuffer,UT_HOSTSIZE);
|
||||
+ l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
+#else
|
||||
+ /* Non-FreeBSD systems */
|
||||
if (gethostname(l_struct.ut_host, UT_HOSTSIZE) == -1) {
|
||||
- if (errno != ENOMEM)
|
||||
+ if (errno != ENOMEM)
|
||||
abort();
|
||||
l_struct.ut_host[UT_HOSTSIZE]=0;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (! (str_ptr=ttyname(tt)) ) {
|
||||
+#ifdef Q_OS_FREEBSD
|
||||
+ /*
|
||||
+ ** In FreeBSD, the ttyname() call always returns NULL
|
||||
+ ** for the kinds of devices (ptys) we have opened,
|
||||
+ ** so don't abort, use a foolish default value instead.
|
||||
+ ** The call to login() probably won't work _anyway_,
|
||||
+ ** since normally users can't update the wtmp file.
|
||||
+ **
|
||||
+ ** If we were real sticklers for accuracy, we'd copy the
|
||||
+ ** code from konsole_grantpty that does it's darndest to
|
||||
+ ** file out the right tty name.
|
||||
+ */
|
||||
+ str_ptr = const_cast<char *>("/dev/konsole");
|
||||
+#else
|
||||
abort();
|
||||
+#endif
|
||||
}
|
||||
if (strncmp(str_ptr, "/dev/", 5) == 0)
|
||||
str_ptr += 5;
|
||||
@@ -607,7 +695,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
// #define CERASE 0177
|
||||
// #endif
|
||||
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCGETA,(char *)&ttmode);
|
||||
#else
|
||||
# if defined (_HPUX_SOURCE) || defined(__Lynx__)
|
||||
@@ -621,7 +709,7 @@ void TEPty::startPgm(const char* pgm, QV
|
||||
ttmode.c_cc[VINTR] = CTRL('C');
|
||||
ttmode.c_cc[VQUIT] = CTRL('\\');
|
||||
ttmode.c_cc[VERASE] = 0177;
|
||||
-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
+#if defined (Q_OS_FREEBSD) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
|
||||
ioctl(0,TIOCSETA,(char *)&ttmode);
|
||||
#else
|
||||
# ifdef _HPUX_SOURCE
|
62
x11/kdebase4/files/patch-konsole-konsole-konsole_grantpty.c
Normal file
62
x11/kdebase4/files/patch-konsole-konsole-konsole_grantpty.c
Normal file
|
@ -0,0 +1,62 @@
|
|||
--- konsole/konsole/konsole_grantpty.c 2 Sep 2002 01:09:24 -0000 1.7
|
||||
+++ konsole/konsole/konsole_grantpty.c 24 Aug 2003 21:44:01 -0000
|
||||
@@ -40,7 +40,9 @@
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
|
||||
-#define PTY_FILENO 3 /* keep in sync with grantpty */
|
||||
+#define DEFAULT_PTY_FILENO 3 /* keep in sync with TEPty.cpp */
|
||||
+int PTY_FILENO = DEFAULT_PTY_FILENO;
|
||||
+
|
||||
#define TTY_GROUP "tty"
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -52,11 +54,13 @@ int main (int argc, char *argv[])
|
||||
uid_t uid;
|
||||
mode_t mod;
|
||||
char* tty;
|
||||
+ int command_fd; /* which fd to use? */
|
||||
|
||||
/* check preconditions **************************************************/
|
||||
- if (argc != 2 || (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
+ if (( (argc != 3) && (argc != 2) /* optional third arg */ ) ||
|
||||
+ (strcmp(argv[1],"--grant") && strcmp(argv[1],"--revoke")))
|
||||
{
|
||||
- printf("usage: %s (--grant|--revoke)\n",argv[0]);
|
||||
+ printf("usage: %s (--grant|--revoke) [fd]\n",argv[0]);
|
||||
printf("%s is a helper for\n",argv[0]);
|
||||
printf("konsole and not intented to\n");
|
||||
printf("be called from the command\n");
|
||||
@@ -83,6 +87,22 @@ int main (int argc, char *argv[])
|
||||
uid = 0; /* root */
|
||||
mod = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
}
|
||||
+
|
||||
+ command_fd = DEFAULT_PTY_FILENO;
|
||||
+ if (argv[2])
|
||||
+ {
|
||||
+ command_fd = atoi(argv[2]);
|
||||
+ }
|
||||
+ if (command_fd > 2) /* must be out of stdin,stdout,stderr range */
|
||||
+ {
|
||||
+ PTY_FILENO=command_fd;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr,"%s: Bad command fd (seems to be %d)\n",argv[0],command_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
/* Get the group ID of the special `tty' group. */
|
||||
p = getgrnam(TTY_GROUP); /* posix */
|
||||
gid = p ? p->gr_gid : getgid (); /* posix */
|
||||
@@ -117,6 +137,9 @@ int main (int argc, char *argv[])
|
||||
if (dirp->d_fileno != dsb.st_ino)
|
||||
continue;
|
||||
{
|
||||
+ /* Else this is the right device file .. any possible memory
|
||||
+ ** leak here because two files match is unimportant?
|
||||
+ */
|
||||
int pdlen = strlen(_PATH_DEV), namelen = strlen(dirp->d_name);
|
||||
pty = malloc(pdlen + namelen + 1);
|
||||
if (pty) {
|
18
x11/kdebase4/files/patch-konsole-konsole-main.cpp
Normal file
18
x11/kdebase4/files/patch-konsole-konsole-main.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- konsole/konsole/main.cpp 29 Jun 2003 21:53:11 -0000 1.243.2.3
|
||||
+++ konsole/konsole/main.cpp 24 Aug 2003 21:44:02 -0000
|
||||
@@ -123,6 +123,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
+extern void TEPtyInit();
|
||||
|
||||
/* --| main |------------------------------------------------------ */
|
||||
int main(int argc, char* argv[])
|
||||
@@ -137,6 +138,7 @@ int main(int argc, char* argv[])
|
||||
bool scrollbaron = true;
|
||||
QCString wname = PACKAGE;
|
||||
|
||||
+ TEPtyInit();
|
||||
|
||||
KAboutData aboutData( PACKAGE, I18N_NOOP("Konsole"),
|
||||
VERSION, description, KAboutData::License_GPL_V2,
|
|
@ -0,0 +1,33 @@
|
|||
--- ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed May 7 07:44:17 2003
|
||||
+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c Wed Aug 27 18:51:18 2003
|
||||
@@ -168,6 +168,8 @@
|
||||
int mib[4];
|
||||
struct kinfo_proc p;
|
||||
size_t len;
|
||||
+ size_t buflen = 256;
|
||||
+ char buf[256];
|
||||
|
||||
if ((ps = findProcessInList(pid)) == 0)
|
||||
{
|
||||
@@ -239,10 +241,17 @@
|
||||
#endif
|
||||
|
||||
/* process command line */
|
||||
- /* the following line causes segfaults on some FreeBSD systems... why?
|
||||
- strncpy(ps->cmdline, p.kp_proc.p_args->ar_args, sizeof(ps->cmdline) - 1);
|
||||
- */
|
||||
- strcpy(ps->cmdline, "????");
|
||||
+ /* do a sysctl to get the command line args. */
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_ARGS;
|
||||
+ mib[3] = pid;
|
||||
+
|
||||
+ if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
|
||||
+ strcpy(ps->cmdline, "????");
|
||||
+ else
|
||||
+ strncpy(ps->cmdline, buf, buflen - 1);
|
||||
|
||||
return (0);
|
||||
}
|
|
@ -277,6 +277,8 @@ lib/kde3/kio_imap4.la
|
|||
lib/kde3/kio_imap4.so
|
||||
lib/kde3/kio_info.la
|
||||
lib/kde3/kio_info.so
|
||||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
lib/kde3/kio_mac.la
|
||||
lib/kde3/kio_mac.so
|
||||
lib/kde3/kio_man.la
|
||||
|
@ -2764,6 +2766,7 @@ share/services/imagethumbnail.desktop
|
|||
share/services/imap4.protocol
|
||||
share/services/imaps.protocol
|
||||
share/services/info.protocol
|
||||
share/services/ldap.protocol
|
||||
share/services/kaccess.desktop
|
||||
share/services/kded/favicons.desktop
|
||||
share/services/kded/mountwatcher.desktop
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
lib/kde3/kio_ldap.la
|
||||
lib/kde3/kio_ldap.so
|
||||
share/services/ldap.protocol
|
11
x11/kdebase4/pkg-message
Normal file
11
x11/kdebase4/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
This port has installed fonts into %%PREFIX%%/share/fonts
|
||||
|
||||
You'll have to add %%PREFIX%%/share/fonts
|
||||
to your X font path by either:
|
||||
|
||||
$ xset fp+ %%PREFIX%%/share/fonts
|
||||
$ xset fp rehash
|
||||
|
||||
or by adding it to your X-server configuration file (usually
|
||||
/etc/X11/XF86Config or %%X11BASE%%/lib/X11/XF86Config) and
|
||||
restarting the X-server.
|
Loading…
Reference in a new issue