diff options
author | lofi <lofi@FreeBSD.org> | 2003-08-28 19:39:01 +0000 |
---|---|---|
committer | lofi <lofi@FreeBSD.org> | 2003-08-28 19:39:01 +0000 |
commit | 4c0390554ed093dbd226b97771752a24bdffa3ce (patch) | |
tree | d09f18f0cef6bf4031c2bd42c7b179fffbf77658 /x11 | |
parent | b733e42dab484739651fbd8e052d232f9cdf3e28 (diff) | |
download | FreeBSD-ports-4c0390554ed093dbd226b97771752a24bdffa3ce.zip FreeBSD-ports-4c0390554ed093dbd226b97771752a24bdffa3ce.tar.gz |
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)
Diffstat (limited to 'x11')
70 files changed, 3206 insertions, 63 deletions
diff --git a/x11/kde4-baseapps/Makefile b/x11/kde4-baseapps/Makefile index c2820dd..d3157b3 100644 --- a/x11/kde4-baseapps/Makefile +++ b/x11/kde4-baseapps/Makefile @@ -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> diff --git a/x11/kde4-baseapps/files/patch-configure b/x11/kde4-baseapps/files/patch-configure new file mode 100644 index 0000000..fcc7afb --- /dev/null +++ b/x11/kde4-baseapps/files/patch-configure @@ -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 + diff --git a/x11/kde4-baseapps/files/patch-kdm-backend-client.c b/x11/kde4-baseapps/files/patch-kdm-backend-client.c new file mode 100644 index 0000000..fe44c4f --- /dev/null +++ b/x11/kde4-baseapps/files/patch-kdm-backend-client.c @@ -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; diff --git a/x11/kde4-baseapps/files/patch-konsole-konsole-TEPty.cpp b/x11/kde4-baseapps/files/patch-konsole-konsole-TEPty.cpp new file mode 100644 index 0000000..44642dc8 --- /dev/null +++ b/x11/kde4-baseapps/files/patch-konsole-konsole-TEPty.cpp @@ -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
\ No newline at end of file diff --git a/x11/kde4-baseapps/files/patch-konsole-konsole-konsole_grantpty.c b/x11/kde4-baseapps/files/patch-konsole-konsole-konsole_grantpty.c new file mode 100644 index 0000000..5093a52 --- /dev/null +++ b/x11/kde4-baseapps/files/patch-konsole-konsole-konsole_grantpty.c @@ -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) {
\ No newline at end of file diff --git a/x11/kde4-baseapps/files/patch-konsole-konsole-main.cpp b/x11/kde4-baseapps/files/patch-konsole-konsole-main.cpp new file mode 100644 index 0000000..989b346 --- /dev/null +++ b/x11/kde4-baseapps/files/patch-konsole-konsole-main.cpp @@ -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, diff --git a/x11/kde4-baseapps/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c b/x11/kde4-baseapps/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c new file mode 100644 index 0000000..4f57a70 --- /dev/null +++ b/x11/kde4-baseapps/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c @@ -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); + } diff --git a/x11/kde4-baseapps/files/plist.base b/x11/kde4-baseapps/files/plist.base index 4f9df2e..ae0ca83 100644 --- a/x11/kde4-baseapps/files/plist.base +++ b/x11/kde4-baseapps/files/plist.base @@ -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 diff --git a/x11/kde4-baseapps/files/plist.ldap b/x11/kde4-baseapps/files/plist.ldap deleted file mode 100644 index 082395f..0000000 --- a/x11/kde4-baseapps/files/plist.ldap +++ /dev/null @@ -1,3 +0,0 @@ -lib/kde3/kio_ldap.la -lib/kde3/kio_ldap.so -share/services/ldap.protocol diff --git a/x11/kde4-baseapps/pkg-message b/x11/kde4-baseapps/pkg-message new file mode 100644 index 0000000..f97e365 --- /dev/null +++ b/x11/kde4-baseapps/pkg-message @@ -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. diff --git a/x11/kde4-runtime/Makefile b/x11/kde4-runtime/Makefile index c2820dd..d3157b3 100644 --- a/x11/kde4-runtime/Makefile +++ b/x11/kde4-runtime/Makefile @@ -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> diff --git a/x11/kde4-runtime/files/patch-configure b/x11/kde4-runtime/files/patch-configure new file mode 100644 index 0000000..fcc7afb --- /dev/null +++ b/x11/kde4-runtime/files/patch-configure @@ -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 + diff --git a/x11/kde4-runtime/files/patch-kdm-backend-client.c b/x11/kde4-runtime/files/patch-kdm-backend-client.c new file mode 100644 index 0000000..fe44c4f --- /dev/null +++ b/x11/kde4-runtime/files/patch-kdm-backend-client.c @@ -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; diff --git a/x11/kde4-runtime/files/patch-konsole-konsole-TEPty.cpp b/x11/kde4-runtime/files/patch-konsole-konsole-TEPty.cpp new file mode 100644 index 0000000..44642dc8 --- /dev/null +++ b/x11/kde4-runtime/files/patch-konsole-konsole-TEPty.cpp @@ -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
\ No newline at end of file diff --git a/x11/kde4-runtime/files/patch-konsole-konsole-konsole_grantpty.c b/x11/kde4-runtime/files/patch-konsole-konsole-konsole_grantpty.c new file mode 100644 index 0000000..5093a52 --- /dev/null +++ b/x11/kde4-runtime/files/patch-konsole-konsole-konsole_grantpty.c @@ -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) {
\ No newline at end of file diff --git a/x11/kde4-runtime/files/patch-konsole-konsole-main.cpp b/x11/kde4-runtime/files/patch-konsole-konsole-main.cpp new file mode 100644 index 0000000..989b346 --- /dev/null +++ b/x11/kde4-runtime/files/patch-konsole-konsole-main.cpp @@ -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, diff --git a/x11/kde4-runtime/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c b/x11/kde4-runtime/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c new file mode 100644 index 0000000..4f57a70 --- /dev/null +++ b/x11/kde4-runtime/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c @@ -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); + } diff --git a/x11/kde4-runtime/files/plist.base b/x11/kde4-runtime/files/plist.base index 4f9df2e..ae0ca83 100644 --- a/x11/kde4-runtime/files/plist.base +++ b/x11/kde4-runtime/files/plist.base @@ -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 diff --git a/x11/kde4-runtime/files/plist.ldap b/x11/kde4-runtime/files/plist.ldap deleted file mode 100644 index 082395f..0000000 --- a/x11/kde4-runtime/files/plist.ldap +++ /dev/null @@ -1,3 +0,0 @@ -lib/kde3/kio_ldap.la -lib/kde3/kio_ldap.so -share/services/ldap.protocol diff --git a/x11/kde4-runtime/pkg-message b/x11/kde4-runtime/pkg-message new file mode 100644 index 0000000..f97e365 --- /dev/null +++ b/x11/kde4-runtime/pkg-message @@ -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. diff --git a/x11/kde4-workspace/Makefile b/x11/kde4-workspace/Makefile index c2820dd..d3157b3 100644 --- a/x11/kde4-workspace/Makefile +++ b/x11/kde4-workspace/Makefile @@ -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> diff --git a/x11/kde4-workspace/files/patch-configure b/x11/kde4-workspace/files/patch-configure new file mode 100644 index 0000000..fcc7afb --- /dev/null +++ b/x11/kde4-workspace/files/patch-configure @@ -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 + diff --git a/x11/kde4-workspace/files/patch-kdm-backend-client.c b/x11/kde4-workspace/files/patch-kdm-backend-client.c new file mode 100644 index 0000000..fe44c4f --- /dev/null +++ b/x11/kde4-workspace/files/patch-kdm-backend-client.c @@ -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; diff --git a/x11/kde4-workspace/files/patch-konsole-konsole-TEPty.cpp b/x11/kde4-workspace/files/patch-konsole-konsole-TEPty.cpp new file mode 100644 index 0000000..44642dc8 --- /dev/null +++ b/x11/kde4-workspace/files/patch-konsole-konsole-TEPty.cpp @@ -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
\ No newline at end of file diff --git a/x11/kde4-workspace/files/patch-konsole-konsole-konsole_grantpty.c b/x11/kde4-workspace/files/patch-konsole-konsole-konsole_grantpty.c new file mode 100644 index 0000000..5093a52 --- /dev/null +++ b/x11/kde4-workspace/files/patch-konsole-konsole-konsole_grantpty.c @@ -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) {
\ No newline at end of file diff --git a/x11/kde4-workspace/files/patch-konsole-konsole-main.cpp b/x11/kde4-workspace/files/patch-konsole-konsole-main.cpp new file mode 100644 index 0000000..989b346 --- /dev/null +++ b/x11/kde4-workspace/files/patch-konsole-konsole-main.cpp @@ -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, diff --git a/x11/kde4-workspace/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c b/x11/kde4-workspace/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c new file mode 100644 index 0000000..4f57a70 --- /dev/null +++ b/x11/kde4-workspace/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c @@ -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); + } diff --git a/x11/kde4-workspace/files/plist.base b/x11/kde4-workspace/files/plist.base index 4f9df2e..ae0ca83 100644 --- a/x11/kde4-workspace/files/plist.base +++ b/x11/kde4-workspace/files/plist.base @@ -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 diff --git a/x11/kde4-workspace/files/plist.ldap b/x11/kde4-workspace/files/plist.ldap deleted file mode 100644 index 082395f..0000000 --- a/x11/kde4-workspace/files/plist.ldap +++ /dev/null @@ -1,3 +0,0 @@ -lib/kde3/kio_ldap.la -lib/kde3/kio_ldap.so -share/services/ldap.protocol diff --git a/x11/kde4-workspace/pkg-message b/x11/kde4-workspace/pkg-message new file mode 100644 index 0000000..f97e365 --- /dev/null +++ b/x11/kde4-workspace/pkg-message @@ -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. diff --git a/x11/kdebase3/Makefile b/x11/kdebase3/Makefile index c2820dd..d3157b3 100644 --- a/x11/kdebase3/Makefile +++ b/x11/kdebase3/Makefile @@ -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> diff --git a/x11/kdebase3/files/patch-configure b/x11/kdebase3/files/patch-configure new file mode 100644 index 0000000..fcc7afb --- /dev/null +++ b/x11/kdebase3/files/patch-configure @@ -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 + diff --git a/x11/kdebase3/files/patch-kdm-backend-client.c b/x11/kdebase3/files/patch-kdm-backend-client.c new file mode 100644 index 0000000..fe44c4f --- /dev/null +++ b/x11/kdebase3/files/patch-kdm-backend-client.c @@ -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; diff --git a/x11/kdebase3/files/patch-konsole-konsole-TEPty.cpp b/x11/kdebase3/files/patch-konsole-konsole-TEPty.cpp new file mode 100644 index 0000000..44642dc8 --- /dev/null +++ b/x11/kdebase3/files/patch-konsole-konsole-TEPty.cpp @@ -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
\ No newline at end of file diff --git a/x11/kdebase3/files/patch-konsole-konsole-konsole_grantpty.c b/x11/kdebase3/files/patch-konsole-konsole-konsole_grantpty.c new file mode 100644 index 0000000..5093a52 --- /dev/null +++ b/x11/kdebase3/files/patch-konsole-konsole-konsole_grantpty.c @@ -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) {
\ No newline at end of file diff --git a/x11/kdebase3/files/patch-konsole-konsole-main.cpp b/x11/kdebase3/files/patch-konsole-konsole-main.cpp new file mode 100644 index 0000000..989b346 --- /dev/null +++ b/x11/kdebase3/files/patch-konsole-konsole-main.cpp @@ -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, diff --git a/x11/kdebase3/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c b/x11/kdebase3/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c new file mode 100644 index 0000000..4f57a70 --- /dev/null +++ b/x11/kdebase3/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c @@ -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); + } diff --git a/x11/kdebase3/files/plist.base b/x11/kdebase3/files/plist.base index 4f9df2e..ae0ca83 100644 --- a/x11/kdebase3/files/plist.base +++ b/x11/kdebase3/files/plist.base @@ -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 diff --git a/x11/kdebase3/files/plist.ldap b/x11/kdebase3/files/plist.ldap deleted file mode 100644 index 082395f..0000000 --- a/x11/kdebase3/files/plist.ldap +++ /dev/null @@ -1,3 +0,0 @@ -lib/kde3/kio_ldap.la -lib/kde3/kio_ldap.so -share/services/ldap.protocol diff --git a/x11/kdebase3/pkg-message b/x11/kdebase3/pkg-message new file mode 100644 index 0000000..f97e365 --- /dev/null +++ b/x11/kdebase3/pkg-message @@ -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. diff --git a/x11/kdebase4-runtime/Makefile b/x11/kdebase4-runtime/Makefile index c2820dd..d3157b3 100644 --- a/x11/kdebase4-runtime/Makefile +++ b/x11/kdebase4-runtime/Makefile @@ -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> diff --git a/x11/kdebase4-runtime/files/patch-configure b/x11/kdebase4-runtime/files/patch-configure new file mode 100644 index 0000000..fcc7afb --- /dev/null +++ b/x11/kdebase4-runtime/files/patch-configure @@ -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 + diff --git a/x11/kdebase4-runtime/files/patch-kdm-backend-client.c b/x11/kdebase4-runtime/files/patch-kdm-backend-client.c new file mode 100644 index 0000000..fe44c4f --- /dev/null +++ b/x11/kdebase4-runtime/files/patch-kdm-backend-client.c @@ -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; diff --git a/x11/kdebase4-runtime/files/patch-konsole-konsole-TEPty.cpp b/x11/kdebase4-runtime/files/patch-konsole-konsole-TEPty.cpp new file mode 100644 index 0000000..44642dc8 --- /dev/null +++ b/x11/kdebase4-runtime/files/patch-konsole-konsole-TEPty.cpp @@ -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
\ No newline at end of file diff --git a/x11/kdebase4-runtime/files/patch-konsole-konsole-konsole_grantpty.c b/x11/kdebase4-runtime/files/patch-konsole-konsole-konsole_grantpty.c new file mode 100644 index 0000000..5093a52 --- /dev/null +++ b/x11/kdebase4-runtime/files/patch-konsole-konsole-konsole_grantpty.c @@ -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) {
\ No newline at end of file diff --git a/x11/kdebase4-runtime/files/patch-konsole-konsole-main.cpp b/x11/kdebase4-runtime/files/patch-konsole-konsole-main.cpp new file mode 100644 index 0000000..989b346 --- /dev/null +++ b/x11/kdebase4-runtime/files/patch-konsole-konsole-main.cpp @@ -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, diff --git a/x11/kdebase4-runtime/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c b/x11/kdebase4-runtime/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c new file mode 100644 index 0000000..4f57a70 --- /dev/null +++ b/x11/kdebase4-runtime/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c @@ -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); + } diff --git a/x11/kdebase4-runtime/files/plist.base b/x11/kdebase4-runtime/files/plist.base index 4f9df2e..ae0ca83 100644 --- a/x11/kdebase4-runtime/files/plist.base +++ b/x11/kdebase4-runtime/files/plist.base @@ -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 diff --git a/x11/kdebase4-runtime/files/plist.ldap b/x11/kdebase4-runtime/files/plist.ldap deleted file mode 100644 index 082395f..0000000 --- a/x11/kdebase4-runtime/files/plist.ldap +++ /dev/null @@ -1,3 +0,0 @@ -lib/kde3/kio_ldap.la -lib/kde3/kio_ldap.so -share/services/ldap.protocol diff --git a/x11/kdebase4-runtime/pkg-message b/x11/kdebase4-runtime/pkg-message new file mode 100644 index 0000000..f97e365 --- /dev/null +++ b/x11/kdebase4-runtime/pkg-message @@ -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. diff --git a/x11/kdebase4-workspace/Makefile b/x11/kdebase4-workspace/Makefile index c2820dd..d3157b3 100644 --- a/x11/kdebase4-workspace/Makefile +++ b/x11/kdebase4-workspace/Makefile @@ -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> diff --git a/x11/kdebase4-workspace/files/patch-configure b/x11/kdebase4-workspace/files/patch-configure new file mode 100644 index 0000000..fcc7afb --- /dev/null +++ b/x11/kdebase4-workspace/files/patch-configure @@ -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 + diff --git a/x11/kdebase4-workspace/files/patch-kdm-backend-client.c b/x11/kdebase4-workspace/files/patch-kdm-backend-client.c new file mode 100644 index 0000000..fe44c4f --- /dev/null +++ b/x11/kdebase4-workspace/files/patch-kdm-backend-client.c @@ -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; diff --git a/x11/kdebase4-workspace/files/patch-konsole-konsole-TEPty.cpp b/x11/kdebase4-workspace/files/patch-konsole-konsole-TEPty.cpp new file mode 100644 index 0000000..44642dc8 --- /dev/null +++ b/x11/kdebase4-workspace/files/patch-konsole-konsole-TEPty.cpp @@ -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
\ No newline at end of file diff --git a/x11/kdebase4-workspace/files/patch-konsole-konsole-konsole_grantpty.c b/x11/kdebase4-workspace/files/patch-konsole-konsole-konsole_grantpty.c new file mode 100644 index 0000000..5093a52 --- /dev/null +++ b/x11/kdebase4-workspace/files/patch-konsole-konsole-konsole_grantpty.c @@ -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) {
\ No newline at end of file diff --git a/x11/kdebase4-workspace/files/patch-konsole-konsole-main.cpp b/x11/kdebase4-workspace/files/patch-konsole-konsole-main.cpp new file mode 100644 index 0000000..989b346 --- /dev/null +++ b/x11/kdebase4-workspace/files/patch-konsole-konsole-main.cpp @@ -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, diff --git a/x11/kdebase4-workspace/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c b/x11/kdebase4-workspace/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c new file mode 100644 index 0000000..4f57a70 --- /dev/null +++ b/x11/kdebase4-workspace/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c @@ -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); + } diff --git a/x11/kdebase4-workspace/files/plist.base b/x11/kdebase4-workspace/files/plist.base index 4f9df2e..ae0ca83 100644 --- a/x11/kdebase4-workspace/files/plist.base +++ b/x11/kdebase4-workspace/files/plist.base @@ -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 diff --git a/x11/kdebase4-workspace/files/plist.ldap b/x11/kdebase4-workspace/files/plist.ldap deleted file mode 100644 index 082395f..0000000 --- a/x11/kdebase4-workspace/files/plist.ldap +++ /dev/null @@ -1,3 +0,0 @@ -lib/kde3/kio_ldap.la -lib/kde3/kio_ldap.so -share/services/ldap.protocol diff --git a/x11/kdebase4-workspace/pkg-message b/x11/kdebase4-workspace/pkg-message new file mode 100644 index 0000000..f97e365 --- /dev/null +++ b/x11/kdebase4-workspace/pkg-message @@ -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. diff --git a/x11/kdebase4/Makefile b/x11/kdebase4/Makefile index c2820dd..d3157b3 100644 --- a/x11/kdebase4/Makefile +++ b/x11/kdebase4/Makefile @@ -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> diff --git a/x11/kdebase4/files/patch-configure b/x11/kdebase4/files/patch-configure new file mode 100644 index 0000000..fcc7afb --- /dev/null +++ b/x11/kdebase4/files/patch-configure @@ -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 + diff --git a/x11/kdebase4/files/patch-kdm-backend-client.c b/x11/kdebase4/files/patch-kdm-backend-client.c new file mode 100644 index 0000000..fe44c4f --- /dev/null +++ b/x11/kdebase4/files/patch-kdm-backend-client.c @@ -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; diff --git a/x11/kdebase4/files/patch-konsole-konsole-TEPty.cpp b/x11/kdebase4/files/patch-konsole-konsole-TEPty.cpp new file mode 100644 index 0000000..44642dc8 --- /dev/null +++ b/x11/kdebase4/files/patch-konsole-konsole-TEPty.cpp @@ -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
\ No newline at end of file diff --git a/x11/kdebase4/files/patch-konsole-konsole-konsole_grantpty.c b/x11/kdebase4/files/patch-konsole-konsole-konsole_grantpty.c new file mode 100644 index 0000000..5093a52 --- /dev/null +++ b/x11/kdebase4/files/patch-konsole-konsole-konsole_grantpty.c @@ -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) {
\ No newline at end of file diff --git a/x11/kdebase4/files/patch-konsole-konsole-main.cpp b/x11/kdebase4/files/patch-konsole-konsole-main.cpp new file mode 100644 index 0000000..989b346 --- /dev/null +++ b/x11/kdebase4/files/patch-konsole-konsole-main.cpp @@ -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, diff --git a/x11/kdebase4/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c b/x11/kdebase4/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c new file mode 100644 index 0000000..4f57a70 --- /dev/null +++ b/x11/kdebase4/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c @@ -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); + } diff --git a/x11/kdebase4/files/plist.base b/x11/kdebase4/files/plist.base index 4f9df2e..ae0ca83 100644 --- a/x11/kdebase4/files/plist.base +++ b/x11/kdebase4/files/plist.base @@ -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 diff --git a/x11/kdebase4/files/plist.ldap b/x11/kdebase4/files/plist.ldap deleted file mode 100644 index 082395f..0000000 --- a/x11/kdebase4/files/plist.ldap +++ /dev/null @@ -1,3 +0,0 @@ -lib/kde3/kio_ldap.la -lib/kde3/kio_ldap.so -share/services/ldap.protocol diff --git a/x11/kdebase4/pkg-message b/x11/kdebase4/pkg-message new file mode 100644 index 0000000..f97e365 --- /dev/null +++ b/x11/kdebase4/pkg-message @@ -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. |